How to get touch input working with a CM3 Panel

Hello,

I picked up one of these
https://www.acmesystems.it/CM3-PANEL

and following these instructions gets both the screen and touch input working on raspbian
https://www.acmesystems.it/CM3-PANEL_microsd

I tried following those same instructions on Balena OS to no avail. The LCD works fine but not the touch controller.

1.) copying the goodix-7-acme.dtbo file into the boot/overlays folder
2.) Adding these lines to config.txt

# Activates the I2C 1 port on GPIO44 and 45 to talk with the
# touch screen controller end camera crypto-chip
dtoverlay=i2c1-bcm2708,sda1_pin=44,scl1_pin=45,pin_func=6
dtoverlay=goodix-7-acme

…but the touch input isn’t working. Even looking in /dev/input shows nothing other than “mouse” and lsmod doesn’t show anything relating to the Goodix touch input driver. Any ideas on what I should do to get this working?

Hi,

Just checking; are you using this in conjunction with our balenaCloud service, and is that device currently setup in an application there?

Yes it is. I’ve been trying different kiosk applications to see if the touch would work in any of them, and nothing has worked as of yet.

https://github.com/balena-io/resin-electronjs

Cool. So if you have the device linked to a balenaCloud application then you need to change the config.txt values through the balenaCloud dashboard; part of the way the device is managed means that the config.txt is set by the cloud service, and if you change it manually then it gets reverted.

If you log in to the dashboard and go to the device in question, you should see the Device Configuration option in the left menu. In there, you can set config values which will be put into the config.txt for you.

Please give that a try, and see if it makes any difference.

All of those settings came up in the device configuration online once I added them to the config.txt file, here are some of them:

So it looks like the important one is the RESIN_HOST_CONFIG_dtoverlay and this is the value for that field:

"uart1,txd1_pin=32,rxd1_pin=33","i2c1-bcm2708,sda1_pin=44,scl1_pin=45,pin_func=6","goodix-7-acme","dpi18"

So it looks like it automatically copied anything with dtoverlay into RESIN_HOST_CONFIG_dtoverlay

Hi Zane,
does that mean that your touch controller is working now, or are you still struggling to get it to work ?
Regards
Thomas

It’s not working. I was just showing that it seems to be attempting to use the device tree settings.

Ive noticed that input on x11 kiosk stuff doesnt seem work without systemd (or works for… like a few seconds?) .

For instance some of us have done chromium kiosks with working input youll generally see this
https://github.com/jayatvars/balena-chromium-kiosk/blob/master/Dockerfile.template#L33

@Zanne470 might make sense to start at the beginning and see if your device actually shows up as an input on the host OS.
So calling lsmod and listing the devices under /dev/input would be a good starting point to see if we might need another overlay to enable your device.

The only thing that shows up under /dev/input is mouse. lsmod doesn’t list anything relating to it – it shows up as pointer:Goodix Capacitive TouchScreen when working on raspbian.

I also tried looking at the logs with dmesg and nothing shows up that I can see relating to the system even attempting to insert the module.

Jacob, I’ll try that in a few hours. I’m pretty sure I tried that repo already and it got stuck in some loop when booting where it kept saying port forwarded, port deleted, etc.

@Zane470 one piece on info on this thread is that we actually ordered a few of these CM3panels 2 months ago and its on the device teams list of device types to support, but they haven’t yet got to it. Our plan is to add a new device type and support the touchscreen and onboard wifi, but if you can figure this out it will be really great if its just configuration and doesn’t need additional OS level changes.

Adding these lines to config.txt
The following is also required

Enable the DPI port to talk with the TFT display(In front of #)

dtoverlay=dpi18
overscan_left=0
overscan_right=0
overscan_top=0
overscan_bottom=0
framebuffer_width=800
framebuffer_height=480
enable_dpi_lcd=1
display_default_lcd=1
dpi_group=2
dpi_mode=87
dpi_output_format=0x6f005
hdmi_timings=800 0 40 48 88 480 0 13 3 32 0 0 0 60 0 32000000 6

Im still super interested in these. Has anyone had any success yet?