This week, I began my adventure to connect an external touch screen to my Yamaha MODX. Yamaha does not support this,
so, we are on our own on this …
After looking on several websites, I noticed that there are 3 touch screens that do work. (I also did see a lot of other postings, from touch screens that did NOT work)
Those touch screens seems to work:
– a Dell S2240T
– a Dell E2014T
– a monitor from a company called “Green House”
First of all, spoiler alert ! at the end of this article, you will notice that I succeeded in my doings 🙂
Click here to see a movie of my working proof-of-concept !
It became clear that these touch screens are no longer produced. If you are in luck, you may find one of the above types on Ebay.
Those objects are mostly located in the US, so for European MODX fans, this is not an option.
(unless you want to pay big money for a second-hand object)
Connecting a regular monitor to the MODX is no longer a secret, you will find enough information on various sites,
where you can just pick out a model of a DisplayLink adapter (USB to VGA/DVI/HDMI) that works.
But I wanted to go for the extra mile, simply attaching a screen to my MODX wouldn’t be enough for me, I also needed touch functionality.
(otherwise I would still need to use the regular built-in touch-screen)
So, I had an HP NL571AA laying around somewhere. I connected it via the “USB to device” port to a Philips 24″ 1920×1080 screen
(That I had also laying around somewhere) eeh voila, subito presto, I was able to see the MODX on this external monitor.
That was easy 🙂
One thing I noticed, was that I could see the image on the MODX built-in screen and on the external monitor at the same time.
I assume this was due to the fact that I’m running OS 2.51, because everything I did see on YouTube, showed only an image
on the external monitor or on the internal screen, but not on both at the same time …
I’ll come back to this info later on in this blog-post.
My journey began with opening up my MODX …
It became clear that I discovered a “backup” solution, in case nothing else would work. If you take a closer look at picture 3 (above),
you will notice a small ribbon-cable with 4 wires.
This is the type of connection that is widely used, when you buy a bare touch panel. So, in case anything else fails,
I could drill a small hole in my MODX casing, and solder 4 wires to the PCB connector, and bring them out via a 4-pole connector,
so I could attach an external touch panel. But this is an option I rather not prefer.
It involves soldering into the MODX, and making a hole in the MODX casing.
This would only be a backup plan .. (which is luckely not needed, as you will see further on in this blog post)
While my MODX was laying open on the “surgery-table”, I did a quick check to see if my idea was correct.
I connected a bare touch panel and fired up my MODX, and I was able to calibrate the touch panel, and was able to use it after calibration.
Next step, doing some more “investigation”
I did have look at the website http://sandsoftwaresound.net/yamaha-modx-inside-stuff/ , written by Paul J. Drongowski
After looking at the diagrams, I noticed UART0, a 6-pins header, used for debugging. Also the mcu, AM3352BZCZ80 (an ARM Cortex-A8), confirmed my earlier suspicion, this thing must run Linux ! 6-pins debugging interface, the ARM-processor, the internal touch screen,
it was something I had seen in lots of projects, mostly running Linux …
After all, my wifes’ Samsung washing machine also run Linux 🙂
After some more googling, I came across an official Yamaha website, where you can download the sourcecode of the firmware.
It was just hiding in plane site 🙂 https://download.yamaha.com/sourcecodes/synth/
Linux sourcecode should be publicly availabel after all …
I downloaded all MontaVista Linux sourcecode, and started doing some research on this code.
When looking at the sourcecode, I noticed that the MODX Linux was using tslib 1.14 … Wait a minute, tslib you said ?
I remembered vaigely that I also used tslib when connecting those cheap Chinese touch-screen to all kinds of hardware …
RaspBerry Pi, FPGA’s, Odroid XU4 … This is where I gained momentum 🙂
A search for the right hardware …
I was sure I hand the necessary hardware laying around somewhere, after all, I already did some touch screen projects
with other microcontrollers and single-board-computers.
After spending 10 minutes looking in my spare parts bin, I came up with at bunch touch displays and some touch panel controllers. (picture 3, below – not all the same, luckely for me)
The most important part, the correct USB 4-wire touch controller !
After some testing, I did find a suited USB 4-wire touch controller ! (picture 5 and 6, below) Ofcourse there are multiple designs
of these 4-wire controllers. In picture 4, below, you can see 2 different types.
The one on the left does NOT work, the one on the right is the one you need.
Searching on Ebay, revealed that the correct controllers are easy to find. I did a search on ebay, and it did take me less then a minute,
to find the correct one. (photo 13, below, I intentionally did take out the sellers name) Make sure when you order one,
that is the one with only one IC on it ! (ask the seller of the object that the picture corresponds with the one he is going to ship to you. Those things are not expensive, but even a couple of dollars or euro, would be a waste if you get the wrong one)
The IC on this controller is a 4078HM011. While searching for a datasheet, nothing came up in google. But, if you actually look for ftp-rap04u2-f (the number on the PCB), you will find enough links to the correct controller.
You also need other parts, besides the USB 4-wire touch controller
Furthermore you need a touch panel, preferable 10″ or bigger. (photo 14, below) Note that my example does NOT have the correct 4 wire USB touch controller. It will be hard to find a display of your choice, comming with the correct USB controller,
that’s why I pointed to a correct controller above …
Don’t worry, the touch panels do work with other controllers, they are intercangeable, as long as the touch panel itself exposes his 4-wire connection. You also need to take care of the fact that those touch screens comes in various “flavours”. Depending on the Displaylink adapter you are using, you may need to choose a touch screen with a VGA, DVI or HDMI input. (or you could also use an “in-between” adapter. For example, the HP displaylink adapter (photo 1 below – HP NL571AA, there are widely available on Ebay for a nice price)
I’m using, does have a DVI output, it does come with an “in-between” adapter to switch from DVI to VGA. So, your experience may differ. For those who already own a non-touch screen/monitor, there is also an “in between” solution. You may buy a restistive touch panel on itself, and stick it to your monitor … They come in all kinds of sizes, just search for one that corresponds to your monitor size.
They sell them with and without the 4wire USB touch controller. Just make sure you buy one that exposes the 4wire connection,
so you can attach it to a 4wire USB touch controller. (photo 15, below, is an example of such a 4wire touch panel)
Other bits and pieces
Furthermore you also need a power supply (depending on the touch screen you bought) Normally this is a 12V power supply,
but check the description of your touch screen. Next, you will also need a USB 2.0 hub (preferaby a powered USB-hub,
but for me a non-powered works just fine) with 3 ports. (one for the displaylink, one for the 4wire USB controller,
and one to connect a USB stick for further OS updates or backup/restore purpose)
And one or multiple USB cables, depending on what you bought.
In photo 3, below, you will see my “setup”, what you need to do:
1. connect the USB hub to the the “USB to device” port of your MODX.
2. connect one side of the displaylink adapter to the USB hub, and the other part to your screen. (photo 1, below)
3. connect the 4wire USB touch controller to the USB hub with one side, and to the touch-panel with the other side. (photo 7, below)
This is it 🙂
Some pitfalls …
1. Power up your screen (and USB hub) before powering on your ModX.
Make sure that all connections are OK.
Otherwise it will not work !
2. When you get an image on the external screen AND on the ModX, it means that your 4wire USB controller is not connected properly
or is of the wrong type.
3. testing the touch panel without connecting the screen, does NOT work !
(only if you use the “backup plan”, without the 4wire USB touch controller, so connecting directly the touch panel to the internal touch controller of the ModX itself (photo 3, above).
4. When you use the external touch screen for the first time, you MUST calibrate it ! (pressing “Utility”, “Part Select Mute/Solo” and “Enter” button on the ModX, one after another, you will then get the “touch the white square” on the screen, follow the instructions as you would normally calibrate the internal touch screen.
5. When your internal screen goes blank, and you get an image on the external screen, it means your touch controller is recognized !
So, in case of further issues, investigate the connection between touch controller and touch-screen (simply read-on with the next points)
6. When your touch controller is recognized, you will not get some blank space at the bottom of your external touch screen.
(photo 12, below, show the screen without the touch controller recognized) When the controller is recognized, the ModX image will fill up to the bottom of the screen.
7. When you are not able to calibrate the screen, there are 2 possibilities, read on point 8 & 9 for these issues.
8. It’s possible that your touch panel does have his X- and Y-axis the other way around, simply turn around the coloured cable
like you see in photo 7, below. (so, red should be at the bottom, and black at the top)
9. If you are able to go trough a few steps of the touch screen calibration process, but can’t fully finish it,
you need to change your screen aspect ratio. I had this problem when using 16:9 view instead of 4:3
As you can see in photo 8 and 9 (below) compared to photo 10 and 11 (below), you will not only see that the interface is more “narrow”, but also the white squares that you need to touch, are not in the same position.
(in photo 9 the square is more to the left, then in photo 11)
This influences the calibration process, I’m only able to succesful calibrate in 4:3 settings !
I’m sure that more questions or issues will arise when more people start to fiddle around with this “new” method of external touch screen on the ModX. I will try to update this how-to, whenever I get more feedback or questions …
In the meanwhile, keep on making music 🙂