BBB 4-wire touchscreen problems, ts_calibrate

I’m trying to wire a touchscreen lcd to the BBB.
The lcd appears to be working great, biggest trouble I’m having is with touch.

Main problem I’m having, I load my device tree file that enables lcd/touch. I can cat
out /dev/input/touchscreen0 or /dev/input/event1 and see data when tapping the lcd, as expected. It gets weird when I run ts_calibrate. The results of ts_calibrate seem to vary with each try. Sometimes it might finish, most times it just freezes, sometimes the order of the touch corners will vary(appears to get false touch events).

It in the chance it seemed to finish, I run ts_test and it will work good for a few seconds and then freeze.

In all cases after I have problems with either ts_calibrate/ts_test, when I try to cat out /dev/input/touchscreen0/event1,
it appears dead(i’ve checked to ensure no ts* utils were still running). Data no longer is coming out. So its looking like the ts utils kills the touchscreen after a very short period of usage, a few seconds. By just catting out the device (before running any ts utils) I can tap the screen all day and see data coming out.

The only way to restore it, is reboot and reload the device tree.

I’m mapping the following pins for touch:
AIN0 - left
AIN1 - right
AIN2 - down
AIN3 - up
Its just pin to pin connections. I believe I had the same touchscreen working on BB, and earlier with the BBB on 3.2. And I thought I had everything working on the BBB 3.8 kernel, but i’m beginning to doubt my memory…

I’ve tried building kernel/rootfs with Angstrom, I’ve tried Robert Nelsons guide both debian/ubuntu, all
seems to show the same issue.

I’ve been going back and forth trying to determine if it is kernel, hardware (wiring), possibly device tree related, or some rootfs issue (ts utils problem).

I’m coping the device tree file I’ve pieced together below. Any suggestions would be greatly appreciated.



I’m trying the same thing. I started from BB-BONE-LCD4-00A1.dts and make the changes for the LCD cape keys. Touch calibration works ok but the board takes 1 minute to power up the display and allow me to ssh to it. I was in looking dmesg and found something like this:

[ 0.560060] Waiting for root device /dev/mmcblk0p2…
[ 60.500238] bone-capemgr bone_capemgr.8: failed to load firmware ‘BB-VIEW-LCD 4-00A0.dtbo’
[ 60.508830] bone-capemgr bone_capemgr.8: loader: retrying slot-7 BB-VIEW-LCD4 :00A0 (prio 0)
[ 60.508873] bone-capemgr bone_capemgr.8: slot #4: Requesting firmware ‘cape-b one-2g-emmc1.dtbo’ for board-name ‘Bone-LT-eMMC-2G’, version ‘00A0’
[ 60.508891] bone-capemgr bone_capemgr.8: slot #4: dtbo ‘cape-bone-2g-emmc1.dt bo’ loaded; converting to live tree
[ 60.509109] bone-capemgr bone_capemgr.8: slot #4: #2 overlays
[ 60.509839] of_get_named_gpio_flags: can’t parse gpios property
[ 60.509853] of_get_named_gpio_flags: can’t parse gpios property
[ 60.509863] of_get_named_gpio_flags: can’t parse gpios property
[ 60.509898] gpio-rctrl rstctl.3: gpio_rctrl_request eMMC_RSTn
[ 60.509932] omap_hsmmc mmc.10: Got rstctl (gpio:#0 name eMMC_RSTn) label:eMMC _RSTn
[ 60.509945] gpio-rctrl rstctl.3: gpio_rctrl_deassert eMMC_RSTn
[ 60.510196] edma-dma-engine edma-dma-engine.0: allocated channel for 0:3
[ 60.510241] edma-dma-engine edma-dma-engine.0: allocated channel for 0:2
[ 60.510535] bone-capemgr bone_capemgr.8: slot #7: Requesting part number/vers ion based 'BB-VIEW-LCD4-00A0.dtbo
[ 60.510555] bone-capemgr bone_capemgr.8: slot #7: Requesting firmware ‘BB-VIE W-LCD4-00A0.dtbo’ for board-name ‘Override Board Name’, version ‘00A0’
[ 60.510647] mmc.10 supply vmmc_aux not found, using dummy regulator
[ 60.510740] omap_hsmmc mmc.10: pins are not configured from the driver
[ 60.537394] bone-capemgr bone_capemgr.8: slot #4: Applied #2 overlays.

Definitely something is not write. I am loading the device tree through uEnv.txt file because I don’t know any other way

optargs=quiet drm.debug=7 capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN capemgr.enable_partno=BB-VIEW-LCD4

This is my dts file


did you compiled the dts file and put the result in /lib/firmware/ ?

something like the following.
dtc -O dtb -o BB-VIEW-LCD-00A0.dtbo -b 0 -@ BB-VIEW-LCD-00A0.dts
cp BB-VIEW-LCD-00A0.dtbo /lib/firmware/