Hi all, I've managed to get the H43 resistive touchscreen working with the ubuntu image on the mini210S, ts_calibrate works just fine and ts_test too. Unfortunately, I can't seem to get it to work in X. I've tried using xinput_calibrator but it seems to be grabbing my usb mouse and fa_ts_input at the same time. Does fa_ts_input have anything to do with my 1wire touchscreen? If I do 'cat /proc/input/devices', I get: I: Bus=0013 Vendor=dead Product=beef Version=0101 N: Name="fa_ts_input" P: Phys=input(ts) S: Sysfs=/devices/virtual/input/input1 U: Uniq= H: Handlers=mouse0 event1 B: PROP=0 B: EV=b B: KEY=400 0 0 0 0 0 0 0 0 0 0 B: ABS=1000003 I see that TOUCHSCREEN_IF is enabled if TOUCHSCREEN_1WIRE is selected in the .config/kconfig, so it seems that they're related but I'm at a loss as to what to try next. Does anyone have any ideas?
Ubuntu and 1wire touchscreens
fa_ts_input is for older resistive touchscreens, where position was meausured by CPU's ADC. 1-wire touchscreen uses extra microcontroller on LCD's board and is available through /dev/touchscreen-1wire
Tomasz, thanks for clearing that up, I knew that /dev/touchscreen-1wire is the resistive touchscreen interface for the ts on my H43 but enabling the touchscreen-1wire driver also enabled the fa_ts_input driver. so the next question is, how to get X to talk to tslib/touchscreen-1wire?
Have you read this thread ? http://www.friendlyarm.net/forum/topic/3366 They say you need 3 things: 1. qt built with -qt-mouse-tslib option 2. loading 1-wire module into tslib: module_raw one-wire-ts-input 3. proper tslib configuration: export TSLIB_TSDEVICE=/dev/touchscreen-1wire export QWS_MOUSE_PROTO="tslib:/dev/touchscreen-1wire IntelliMouse:/dev/input/mouse1"
Sorry, I didn't notice you want to start X11, not Qt. Your case should be similiar, you also need xorg-server compiled against tslib - it's called xserver-xorg-input-tslib.
Hi Tomasz, yes, I had read that post for getting the touchscreen working with just tslib/qt. the tslib stuff just didn't want to work with X for me for some reason, so I messed around with the mini210_1wire.c input driver code, I've now got it so that it will output an 'evdev' device via udev defined /dev/input/event1 device, and it will still use tslib if you want it to. My code is a bit hinky and I don't totally understand what's going on with it but I've got it working in X now. if I use the tslib + one-wire-ts-input and /dev/touchscreen-1wire from the console, ts_calibrate works correctly, if I use the 'input' raw module and /dev/input/event1, ts_calibrate also works correctly. If I try and use tslib + X, it gets things very wrong for some reason in xinput_calibrator. My evdev device didn't calibrate very well for some reason, so in my driver code I've cheated a little bit and used the minX:Y/maxX:Y values from ts_calibrate, I then use those to map the raw X/Y values into something that the evdev device understands, once I added that code in, it seems to work.