rnode: 60s display timeout, keyboard wake, tap never sleeps, trim idle UI

This commit is contained in:
DeFiDude
2026-06-11 23:01:43 -06:00
parent 6c224c4f9b
commit c4d4309f8d
2 changed files with 31 additions and 9 deletions
+6 -1
View File
@@ -194,6 +194,8 @@ float epd_update_fps = 0.5;
#if BOARD_MODEL == BOARD_CARDPUTER_ADV
#define DISPLAY_BLANKING_TIMEOUT 30*1000
#define CARDPUTER_ADV_DISPLAY_INTENSITY_DEFAULT 96
#elif BOARD_MODEL == BOARD_TDECK
#define DISPLAY_BLANKING_TIMEOUT 60*1000
#else
#define DISPLAY_BLANKING_TIMEOUT 15*1000
#endif
@@ -1768,7 +1770,10 @@ bool epd_blanked = false;
void update_display(bool blank = false) {
display_updating = true;
#if BOARD_MODEL == BOARD_TDECK
if (td_ui_ready) td_poll_touch();
if (td_ui_ready) {
td_poll_touch();
td_poll_keyboard();
}
#endif
if (blank == true) {
last_disp_update = millis()-disp_update_interval-1;
+25 -8
View File
@@ -133,7 +133,8 @@ void td_poll_touch() {
if (!td_touch_down) return;
td_touch_down = false;
// Tap released
// Tap released. Taps only wake or interact — the screen sleeps on the
// inactivity timeout alone, never from a tap.
if (display_blanked) {
display_unblank();
last_disp_update = 0;
@@ -146,11 +147,27 @@ void td_poll_touch() {
} else if (in_panel && bt_state == BT_STATE_PAIRING) {
bt_disable_pairing(); // tap again to cancel
} else {
last_unblank_event = millis() - display_blanking_timeout - 1; // screen off
display_unblank(); // count as activity, extend the timeout
}
last_disp_update = 0;
}
// T-Deck keyboard (ESP32-C3 @ I2C 0x55, single translated byte per read).
// Any keypress wakes the display / extends the inactivity timeout.
#define TD_KB_ADDR 0x55
uint32_t td_last_kb_poll = 0;
void td_poll_keyboard() {
if (millis() - td_last_kb_poll < 50) return;
td_last_kb_poll = millis();
Wire.requestFrom((uint8_t)TD_KB_ADDR, (uint8_t)1);
if (Wire.available() && Wire.read() != 0) {
display_unblank();
last_disp_update = 0;
}
}
void td_ui_init() {
if (td_ui_ready) return;
display.setRotation(3);
@@ -404,10 +421,12 @@ void td_draw_idle_content() {
td_canvas->print(modbuf);
y += 12;
char brbuf[24];
snprintf(brbuf, sizeof(brbuf), "%.2f Kbps", (float)lora_bitrate / 1000.0f);
td_canvas->setCursor(x, y);
td_canvas->print(brbuf);
if (radio_online) {
char brbuf[24];
snprintf(brbuf, sizeof(brbuf), "%.2f Kbps", (float)lora_bitrate / 1000.0f);
td_canvas->setCursor(x, y);
td_canvas->print(brbuf);
}
y += 14;
td_canvas->setCursor(x, y);
@@ -565,8 +584,6 @@ void td_draw_footer() {
char vbuf[20];
snprintf(vbuf, sizeof(vbuf), "Firmware v%d.%02d", MAJ_VERS, MIN_VERS);
td_canvas->print(vbuf);
td_canvas->setCursor(188, TD_FOOT_Y + 4);
td_canvas->print("touch: pair / screen off");
}
void td_render_frame() {