T-Deck Pro - Touchscreen not working [ FIXED ] #13

Open
opened 2026-10-04 23:06:08 +02:00 by adam · 5 comments
Owner

FIXED:

Going forward, you and other users with the same T-Deck Pro variation will need to use firmware that I've labelled with "hyn" as the others use different touch drivers and won't work.


Hi,

Since a long time the touchscreen of my T-Deck Pro is not working. In earlier versions (like few months) ago it was working but quite sensitive and having false touch readings.

I'm not sure which version of the T-Deck Pro i have but i think the V1.1 audio.
With official firmware or version 9.7 ripple it works but not with newer releases 10+ of ripple. That why i want to run Meck because it's open source and we can fix the underlying issue.

Probably something in the pin-out has changed over time in the source but i cannot figure it out for now.
For the rest it's working fine except for some X offset i have changed for the screen as it's otherwise to far left.

How can i help troubleshooting this issue ?


PlatformIO is set to meck_audio_ble running latest dev.

[Touch] CST328 not found at 0x1A (err=2) DEBUG: setup() - Touch input FAILED

Also vibration motor is not working but that is for another time :)

--- Terminal on COM10 | 115200 8-N-1
--- Available filters and text transformations: debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
DEBUG: === setup() - STARTING ===
DEBUG: TDeckBoard::begin() - starting
DEBUG: TDeckBoard::begin() - peripheral power enabled
DEBUG: TDeckBoard::begin() - I2C initialized
DEBUG: TDeckBoard::begin() - LoRa power enabled
DEBUG: TDeckBoard::begin() - GPS power enabled
DEBUG: TDeckBoard::begin() - GPS Serial2 initialized at 38400 baud
DEBUG: TDeckBoard::begin() - 4G modem power disabled
DEBUG: TDeckBoard::begin() - Battery voltage: 4196 mV
BQ27220: Design Capacity = 1400 mAh (target 1400)
BQ27220: Design Capacity already correct, FCC=1400 mAh
DEBUG: TDeckBoard::begin() - complete
DEBUG: setup() - board.begin() done
[Touch] CST328 not found at 0x1A (err=2)
DEBUG: setup() - Touch input FAILED
DEBUG: setup() - about to call display.begin()
DEBUG: setup() - E-Ink reset pin initialized
>>> TOUCH DIAG: compiled CST328_PIN_RST = 38 (MAX expects -1; a real GPIO means stale Pro variant)
DEBUG: setup() - Touch reset pin initialized
_PowerOn : 40997
_Update_Full : 1016001
_Update_Part : 651001
DEBUG: setup() - display.begin() returned true
_PowerOn : 41000
_Update_Part : 651001
DEBUG: setup() - Loading screen drawn
DEBUG: setup() - about to call radio_init()
DEBUG: radio_init() - starting
DEBUG: radio_init() - fallback_clock started
DEBUG: radio_init() - rtc_clock started
DEBUG: radio_init() - initializing LoRa SPI...
[  4505][E][esp32-hal-cpu.c:110] addApbChangeCallback(): duplicate func=0x420b1308 arg=0x3fc994b8
  #0  0x420b1308 in _on_apb_change at C:/Users/xxx/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-spi.c:652

DEBUG: radio_init() - SPI initialized, calling radio.std_init()...
DEBUG: radio_init() - radio.std_init() returned: SUCCESS
DEBUG: setup() - radio_init() done
DEBUG: CPU power: idle at 80 MHz
DEBUG: setup() - about to call fast_rng.begin()
DEBUG: setup() - fast_rng.begin() done
DEBUG: setup() - ESP32 filesystem init - calling SPIFFS.begin()
DEBUG: setup() - SPIFFS.begin() done
[  5649][E][sd_diskio.cpp:199] sdCommand(): Card Failed! cmd: 0x00
[  5655][E][sd_diskio.cpp:806] sdcard_mount(): f_mount failed: (3) The physical drive cannot work
[  5964][E][sd_diskio.cpp:199] sdCommand(): Card Failed! cmd: 0x00
DEBUG: setup() - SD card retry 2/3
[  6522][E][sd_diskio.cpp:199] sdCommand(): Card Failed! cmd: 0x00
[  6528][E][sd_diskio.cpp:806] sdcard_mount(): f_mount failed: (3) The physical drive cannot work
[  6837][E][sd_diskio.cpp:199] sdCommand(): Card Failed! cmd: 0x00
DEBUG: setup() - SD card retry 3/3
[  7395][E][sd_diskio.cpp:199] sdCommand(): Card Failed! cmd: 0x00
[  7401][E][sd_diskio.cpp:806] sdcard_mount(): f_mount failed: (3) The physical drive cannot work
[  7710][E][sd_diskio.cpp:199] sdCommand(): Card Failed! cmd: 0x00
DEBUG: setup() - SD card not available after 3 attempts
DEBUG: setup() - about to call store.begin()
DEBUG: setup() - store.begin() done
DEBUG: setup() - about to call the_mesh.begin()
DEBUG: radio_set_params() - bw=62.5 sf=7 preamble=32
DEBUG: setup() - the_mesh.begin() done
DEBUG: setup() - about to call serial_interface.begin() with BLE
DEBUG: setup() - serial_interface.begin() done
DEBUG: setup() - about to call the_mesh.startInterface()
DEBUG: setup() - the_mesh.startInterface() done
DEBUG: setup() - about to call sensors.begin()
DEBUG: No GPS wake/reset pin found for this board. Continuing on...
DEBUG: GPS detected
DEBUG: setup() - sensors.begin() done
GPS: prefs gps_baudrate=0 (0=use default)
GPS: Serial2 started at 38400 baud (RX=44 TX=43)
DEBUG: setup() - about to call ui_task.begin()
DEBUG: Start GPS is N/A on this board. Actual GPS state unchanged
DEBUG: setup() - ui_task.begin() done
TCA8418: Keyboard initialized OK
DEBUG: setup() - Keyboard initialized
setup() - RTC time: 1785174421 (valid=YES)
GPS: pref gps_enabled=1
DEBUG: Start GPS is N/A on this board. Actual GPS state unchanged
GPS: power ON
DEBUG: setup() - BLE disabled at boot (standalone mode)
[ 10736][E][vfs_api.cpp:113] exists(): File system is not mounted
ALARM: No config file, using defaults
ALARM: Boot init, 0 alarms enabled
setup() complete - free heap: 144712, largest block: 118772
setup() heap probe: 25K=yes 10K=yes 4K=yes
DEBUG: === setup() - COMPLETE ===
_PowerOn : 40998
_Update_Part : 651000
DEBUG: RadioLibWrapper: noise_floor = -103
DEBUG: RadioLibWrapper: noise_floor = -102
>>> SplashScreen calling gotoHomeScreen() <<<
_PowerOn : 40999
_Update_Part : 651000
DEBUG: RadioLibWrapper: noise_floor = -103
DEBUG: RadioLibWrapper: noise_floor = -103
DEBUG: RadioLibWrapper: noise_floor = -102
DEBUG: RadioLibWrapper: noise_floor = -102
**FIXED:** > Going forward, you and other users with the same T-Deck Pro variation will need to use firmware that I've labelled with "hyn" as the others use different touch drivers and won't work. --- Hi, Since a long time the touchscreen of my T-Deck Pro is not working. In earlier versions (like few months) ago it was working but quite sensitive and having false touch readings. I'm not sure which version of the T-Deck Pro i have but i think the V1.1 audio. With official firmware or version 9.7 ripple it works but not with newer releases 10+ of ripple. That why i want to run Meck because it's open source and we can fix the underlying issue. Probably something in the pin-out has changed over time in the source but i cannot figure it out for now. For the rest it's working fine except for some X offset i have changed for the screen as it's otherwise to far left. How can i help troubleshooting this issue ? --- PlatformIO is set to `meck_audio_ble` running latest dev. `[Touch] CST328 not found at 0x1A (err=2) DEBUG: setup() - Touch input FAILED` Also vibration motor is not working but that is for another time :) ``` --- Terminal on COM10 | 115200 8-N-1 --- Available filters and text transformations: debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time --- More details at https://bit.ly/pio-monitor-filters --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H DEBUG: === setup() - STARTING === DEBUG: TDeckBoard::begin() - starting DEBUG: TDeckBoard::begin() - peripheral power enabled DEBUG: TDeckBoard::begin() - I2C initialized DEBUG: TDeckBoard::begin() - LoRa power enabled DEBUG: TDeckBoard::begin() - GPS power enabled DEBUG: TDeckBoard::begin() - GPS Serial2 initialized at 38400 baud DEBUG: TDeckBoard::begin() - 4G modem power disabled DEBUG: TDeckBoard::begin() - Battery voltage: 4196 mV BQ27220: Design Capacity = 1400 mAh (target 1400) BQ27220: Design Capacity already correct, FCC=1400 mAh DEBUG: TDeckBoard::begin() - complete DEBUG: setup() - board.begin() done [Touch] CST328 not found at 0x1A (err=2) DEBUG: setup() - Touch input FAILED DEBUG: setup() - about to call display.begin() DEBUG: setup() - E-Ink reset pin initialized >>> TOUCH DIAG: compiled CST328_PIN_RST = 38 (MAX expects -1; a real GPIO means stale Pro variant) DEBUG: setup() - Touch reset pin initialized _PowerOn : 40997 _Update_Full : 1016001 _Update_Part : 651001 DEBUG: setup() - display.begin() returned true _PowerOn : 41000 _Update_Part : 651001 DEBUG: setup() - Loading screen drawn DEBUG: setup() - about to call radio_init() DEBUG: radio_init() - starting DEBUG: radio_init() - fallback_clock started DEBUG: radio_init() - rtc_clock started DEBUG: radio_init() - initializing LoRa SPI... [ 4505][E][esp32-hal-cpu.c:110] addApbChangeCallback(): duplicate func=0x420b1308 arg=0x3fc994b8 #0 0x420b1308 in _on_apb_change at C:/Users/xxx/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-spi.c:652 DEBUG: radio_init() - SPI initialized, calling radio.std_init()... DEBUG: radio_init() - radio.std_init() returned: SUCCESS DEBUG: setup() - radio_init() done DEBUG: CPU power: idle at 80 MHz DEBUG: setup() - about to call fast_rng.begin() DEBUG: setup() - fast_rng.begin() done DEBUG: setup() - ESP32 filesystem init - calling SPIFFS.begin() DEBUG: setup() - SPIFFS.begin() done [ 5649][E][sd_diskio.cpp:199] sdCommand(): Card Failed! cmd: 0x00 [ 5655][E][sd_diskio.cpp:806] sdcard_mount(): f_mount failed: (3) The physical drive cannot work [ 5964][E][sd_diskio.cpp:199] sdCommand(): Card Failed! cmd: 0x00 DEBUG: setup() - SD card retry 2/3 [ 6522][E][sd_diskio.cpp:199] sdCommand(): Card Failed! cmd: 0x00 [ 6528][E][sd_diskio.cpp:806] sdcard_mount(): f_mount failed: (3) The physical drive cannot work [ 6837][E][sd_diskio.cpp:199] sdCommand(): Card Failed! cmd: 0x00 DEBUG: setup() - SD card retry 3/3 [ 7395][E][sd_diskio.cpp:199] sdCommand(): Card Failed! cmd: 0x00 [ 7401][E][sd_diskio.cpp:806] sdcard_mount(): f_mount failed: (3) The physical drive cannot work [ 7710][E][sd_diskio.cpp:199] sdCommand(): Card Failed! cmd: 0x00 DEBUG: setup() - SD card not available after 3 attempts DEBUG: setup() - about to call store.begin() DEBUG: setup() - store.begin() done DEBUG: setup() - about to call the_mesh.begin() DEBUG: radio_set_params() - bw=62.5 sf=7 preamble=32 DEBUG: setup() - the_mesh.begin() done DEBUG: setup() - about to call serial_interface.begin() with BLE DEBUG: setup() - serial_interface.begin() done DEBUG: setup() - about to call the_mesh.startInterface() DEBUG: setup() - the_mesh.startInterface() done DEBUG: setup() - about to call sensors.begin() DEBUG: No GPS wake/reset pin found for this board. Continuing on... DEBUG: GPS detected DEBUG: setup() - sensors.begin() done GPS: prefs gps_baudrate=0 (0=use default) GPS: Serial2 started at 38400 baud (RX=44 TX=43) DEBUG: setup() - about to call ui_task.begin() DEBUG: Start GPS is N/A on this board. Actual GPS state unchanged DEBUG: setup() - ui_task.begin() done TCA8418: Keyboard initialized OK DEBUG: setup() - Keyboard initialized setup() - RTC time: 1785174421 (valid=YES) GPS: pref gps_enabled=1 DEBUG: Start GPS is N/A on this board. Actual GPS state unchanged GPS: power ON DEBUG: setup() - BLE disabled at boot (standalone mode) [ 10736][E][vfs_api.cpp:113] exists(): File system is not mounted ALARM: No config file, using defaults ALARM: Boot init, 0 alarms enabled setup() complete - free heap: 144712, largest block: 118772 setup() heap probe: 25K=yes 10K=yes 4K=yes DEBUG: === setup() - COMPLETE === _PowerOn : 40998 _Update_Part : 651000 DEBUG: RadioLibWrapper: noise_floor = -103 DEBUG: RadioLibWrapper: noise_floor = -102 >>> SplashScreen calling gotoHomeScreen() <<< _PowerOn : 40999 _Update_Part : 651000 DEBUG: RadioLibWrapper: noise_floor = -103 DEBUG: RadioLibWrapper: noise_floor = -103 DEBUG: RadioLibWrapper: noise_floor = -102 DEBUG: RadioLibWrapper: noise_floor = -102 ``` <!-- github-sync-id:4990772401 -->
Author
Owner

Apologies for the delay! Work has been incredibly busy as of late.

Would you try the merged version of this build first (with the Erase boxed ticked in the Custom Firmware option on the Meshcore.io web flasher)? https://github.com/pelgraine/Meck/releases/tag/pro-hyn-touch-fix-test

If that doesn't work, try the other (not merged) version without the erase firmware box ticked and let me know how you go.

Apologies for the delay! Work has been incredibly busy as of late. Would you try the merged version of this build first (with the Erase boxed ticked in the Custom Firmware option on the Meshcore.io web flasher)? https://github.com/pelgraine/Meck/releases/tag/pro-hyn-touch-fix-test If that doesn't work, try the other (not merged) version without the erase firmware box ticked and let me know how you go. <!-- github-comment-id:5267012430 -->
Author
Owner

Hi,

No problems, thanks for your reply.
The merged variant of the current release 1.12.6 with erase did not fix the touchscreen.

Your fix release is working ! Flashed the merged with erase,

Hi, No problems, thanks for your reply. The merged variant of the current release 1.12.6 with erase did not fix the touchscreen. Your fix release is working ! Flashed the merged with erase, <!-- github-comment-id:5290328208 -->
Author
Owner

Is your vibration motor working? If yes can i help you fixing mine?
I can make a new issue for the vibration motor.

Is your vibration motor working? If yes can i help you fixing mine? I can make a new issue for the vibration motor. <!-- github-comment-id:5290345121 -->
Author
Owner

Thanks for letting me know!

Going forward, you and other users with the same T-Deck Pro variation will need to use firmware that I've labelled with "hyn" as the others use different touch drivers and won't work.

When I get the chance I'll create more builds for these. Welcome to leave this thread open for that reason so other users can see it and know there's a working build available.

Yes, if you can create a new issue for the vibration motor with the steps you took/what you expected to happen/isn't happening that would be great, thanks.

Thanks for letting me know! Going forward, you and other users with the same T-Deck Pro variation will need to use firmware that I've labelled with "**hyn**" as the others use different touch drivers and won't work. When I get the chance I'll create more builds for these. Welcome to leave this thread open for that reason so other users can see it and know there's a working build available. Yes, if you can create a new issue for the vibration motor with the steps you took/what you expected to happen/isn't happening that would be great, thanks. <!-- github-comment-id:5290368624 -->
Author
Owner

Thanks alot for your work and fix !
Will leave it open for others indeed and create a new issue ticket for the vibration not working.

Thanks alot for your work and fix ! Will leave it open for others indeed and create a new issue ticket for the vibration not working. <!-- github-comment-id:5292111938 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/Meck#13