Instructions for using the Mimo Magic Touch with the Raspberry Pi
Instructions to use Mimo Monitors Magic Touch & Magic Touch Deluxe with Raspberry Pi
Instructions work for all Magic Touch and Magic Touch Deluxe 10" Monitors.
Mimo Monitors UM-1010A Magic Touch Deluxe 10" USB touch display (https://www.mimomonitors.com/products/mimo-magic-touch-deluxe)
Powered USB Hub capable of supplying at least 1A of current (Dynax Model: U24H41 is used in the example case)
NO hub required if you use the included AC adapter with the display (with Magic Touch a hub as described above is required)
Raspberry Pi (a model B, in the example case)
1. Download the latest version of the official Raspberry Pi OS, Raspbian: http://downloads.raspberrypi.org/raspbian_latest
2. Burn the image to an SD Card. In the example we used a Windows machine and burned the image onto an 8 GB card via Win32DiskImager (http://sourceforge.net/projects/win32diskimager/). If you prefer Linux, use DD. You must use an SD card that is 4GB or larger.
3. Download the archive from Mimo. We have re-built the kernel around the build of Raspbian dating to 6/20/14. We have tested it with the Raspberry Pi B+ on a Magic Touch. Get in touch if you have problems: https://cdn.shopify.com/s/files/1/0026/7132/files/Mimo-Pi-Aug2014.zip?3545)
Previous build from February 2014 (http://cdn.shopify.com/s/files/1/0026/7132/files/RaspberryPi-Mimo.zip)
4. Mount the SD card on a Linux machine. If you are using Windows, you must install and run a program that understands Linux partitions. We recommend http://www.paragon-software.com/home/extfs-windows/. It is free for personal use. Any program you use must be able to WRITE ext4 partitions.
5. Open the Mimo archive and copy:
-kernel.img to the boot partition of the SD Card (NOT the /boot directory of the ext4 file system). It is a good habit to keep the original files, therefore we recommend renaming the existing kernel.img to kernel-stock.img.
The remainder of the files go into the locations as outlined by the archive file’s directory structure.
- /etc/X11/Xorg.conf - file – No backup is needed as this file does not exist already.
- /usr/share/X11/xorg.conf.d/10-evdev.conf - file - Overwrite the existing file. We recommend that you rename the existing file 10-evdev-stock.conf.
- /lib/firmware - directory – Overwrite the existing file. As with the others, we recommend that you rename the existing directory firmware-stock.
- /lib/modules - directory – Overwrite what is there. Again, rename the existing directory modules-stock.
6. Please connect power to the Pi and the hub. Next connect the screen to the hub. Finally, connect the hub to the Pi. Depending on how you choose to complete the following steps, you may find a keyboard, mouse, and/or network cable to be of use. If you wish to connect a second monitor, the config.txt will need to be changed. Remove the # in front of hdmi_force_hotplug. Alternatively, you can boot with the Mimo alone and then SSH into the Raspberry Pi. Please note that this latter solution requires a network connection.
7. Boot the system. The Mimo Magic Touch should display a green screen.
8. Via either console or SSH run 'sudo raspi-config' to:
- Expand filesystem
- Enable boot to desktop/scratch. Desktop log in as user “pi” on the graphical desktop
- At this stage you can enable or change whatever else you prefer. In this instance we changed the localization to en_US.UTF-8 UTF-8
At this point, you should have a functional X session and a functional touch response. Calibration issues are quite common at this stage, and it is possible though unlikely that X or Y may be reversed. To calibrate the touch screen:
9. Open the evdev configuration file in your text editor of choice. We use vi: /usr/share/X11/xorg.conf.d/10-evdev.conf
At the end of the file is this section:
Identifier "USBest touchscreen catchall"
Option "Calibration" "18 4084 20 4045"
Option "EmulateThirdButton" "1"
Option "EmulateThirdButtonTimeout" "750"
Option "EmulateThirdButtonMoveThreshold" "30"
The touch screen alignment requires us to establish some parameters that instruct the driver on how to “stretch” the touch screen input across the available screen area. To accomplish this, we must download a simple utility called evtest. To download the utlity, use the Debian Advanced Package Tool (Apt) tool.
10. To download and install the “evtest” package, call the command 'sudo apt-get install evtest.’
11. Launch evtest.
12. Evtest will list the attached input devices. Select the number that corresponds to the USBest_Technology Touch Interface (in the example system, this was device number one).
13. Evtest will display some configuration data then pause, waiting for input.
14. Use your finger or a stylus to touch the very top left corner of the touch screen. Evtest will scroll a series of data outputs with both ABS_X and ABS_Y lines, with numeric values after:
Event: time 1374175747.420998, type 3 (EV_ABS), code 0 (ABS_X), value 484
Event: time 1374175747.421011, type 3 (EV_ABS), code 1 (ABS_Y), value 3364
15. Write down the lowest observed ABS_X value and the highest observed ABS_Y value from the outputs displayed.
16. Repeat the process once more, except in this instance you will use your finger or style to touch the lower right hand corner of the screen. This time, write down the highest ABS_X value and the lowest ABS_Y.
17. Open the 10-evdev.conf file we used in step #9 and change the: Option "Calibration" "18 4084 20 4045". Substitute the minX, maxX, minY, maxY numbers for the values observed in steps #14-16.
18. Though this is very unlikely with capacitive screen, but each screen is different and it is possible that the X values are swapped. If this applies, insert the line: Option “InvertX” “true.” If the Y values are inversed, all the line: Option “InvertY” “true.”
19. Save the file and reboot. With these new values, your cursor should follow your finger or the stylus very closely.
Calibration procedure inspired by the article below and modified for the Mimo Magic Touch (http://news.hopeindustrial.com/2013/using-a-raspberry-pi-with-a-hope-industrial-systems-touch-screen-part-ii-touch-screen-setup/)