Getting Touch Events to work using BeagleBoard xM ULCD7 Angstrom and JavaFX

Hello there,

I find very convenient to post on this thread as I’m trying to do something similar. We managed to have working a touch screen which has an eGalax touchscreen controller in a BeagleBoard xM running the ubuntu minimal release by Robert Nelson, at the beggining was really hard to find the issues with that screen, as we tried to install the propietary driver which was a complete mess, and the touchscreen wasn’t working as expected. After dealing with kernel modules and generic drivers we finally could make it work and run a java application wich is a GUI to handle with touch events.

Now after some problems with power issues where the beagleboard is installed, we are trying to merge all the work we have done in ubuntu to Angstrom in a BeagleBoard RevX without SD card (flashed NAND).

  • We decided to go with Angstrom beacuse is a light distribution expected to work in embedded platforms. Ubuntu itself is a heavy distro and the filesystem has a big size (obviously there is memory limitations with the BeagleBoard NAND0.)
  • BeagleBoard RevX has a NAND we can flash with a filesystem format that is “immune” to power failures.

So far we have use the narcissus online builder to download a light root filesystem we can flash in the BB’s NAND (making sure the size fits in the NAND capacity). Using XFCE as the desktop environment and downloading the needed packages to run the java aplication. One thing we have observed from narcissus online builder is that the kernel version it brings is quite old (2.6.32 I think) and things are different from ubuntu to Angstrom (lsusb doesn’t exist, lsmod gives an empty list, there is no possibility to re-configure the kernel, etc.)

In ubuntu, after troubleshoting the touchscreen we figured out that we needed some modules loaded in the kernel and some utilities installed to calibrate and configure the screen (evdev, uinput, hidraw, xinput, xinput-calibrator, etc.)

In the Angstrom side, the screen was always doing the same when we touch it. Everytime we touched the screen, the cursor was placed at the top-left corner of the screen, and doing some cat in the /dev/input/ corresponding to the usb touscreen input, the output was always the same, so we tried to reconfigure the kernel without any success. After that we decided to build from the Angstrom sources the kernel (which is a newer version! 3.2.XX I recall) and configuring and loading the modules we required.

After replacing the kernel, now the screen at least do something, so we tried to calibrate to see if finally was going to work, but the calibration procedure was always the same with no changes in the behavior of the cursor. What we observe is that the axes are inverted and no matter the changes we make to the config files pointed by the calibration utility (xinput-calibrator) the result is always the same. The calibration is supossed to work after the procedure and to make the changes permanent we have to modify some config files but the structure of the angstrom filesystem is so different that I don’t know if I’m doing the right steps, anyway after rebooting the board the behavior is the same, axes inverted. At this point I don’t know if the java aplication is going to respond to the touch events in the screen as is stated here.

What I will do, is to build a filesystem with the directions in the javafx page and see the results, I will post any changes or result I get from that procedure and keep you posted.

By the way, thank you for posting your own results since is interesting to find people that is doing something similar to what you are doing,

best regards,