Skip to content

Add support for LilyGo T-Echo Card (and tiny-ui!)#2517

Open
oltaco wants to merge 6 commits into
meshcore-dev:devfrom
oltaco:techo-card
Open

Add support for LilyGo T-Echo Card (and tiny-ui!)#2517
oltaco wants to merge 6 commits into
meshcore-dev:devfrom
oltaco:techo-card

Conversation

@oltaco
Copy link
Copy Markdown
Member

@oltaco oltaco commented May 10, 2026

This PR adds support for the LilyGo T-Echo Card. It depends on #2516 otherwise the clock doesn't work due to the accelerometer/magnetometer being auto-detected as an RTC.

Added a new tiny-ui for the 72*40 screen, big thanks to @pelgraine for the U8g2 display wrapper 👍

I decided to try something different with the tiny ui and added a scrolling header with node name, battery voltage, buzzer, GPS and BLE status.
The main screen shows unread msg count, battery voltage and BLE pin when not connected, and there is no recent messages screen as there's not enough space anyway. It might be worth removing the recent adverts screen as well but I've left it in for now.

Triple click to toggle buzzer, double click on C button to toggle "torch".

Accelerometer/compass is currently disabled but could be enabled by a future update. The speaker could also potentially be enabled for use with alternate notification sounds, who knows :)

@oltaco
Copy link
Copy Markdown
Member Author

oltaco commented May 10, 2026

Here's a little poorly shot video of the new tiny ui in action
https://streamable.com/0ia0m4

@pelgraine
Copy link
Copy Markdown

Loaded up my T-Echo Card with the firmware from this PR and can confirm the new tiny UI looks fantastic. @oltaco has done a brilliant job.

return radio.std_init(&SPI);
}

uint32_t radio_get_rng_seed() {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these have been refactored from the target modules, since the cleanup.
So, you can remove these 3 functions. (get rng, set params, and set tx power)

extern MomentaryButton back_btn;
#endif

bool radio_init();
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, can remove these 3 decl's

NRF52BoardDCDC::begin();
Wire.begin();

for (uint8_t i = 0; i < sizeof(Led) / sizeof(*Led); i++)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this sizeof(*Led) is a little cryptic.... convention is: (sizeof(x) / sizeof(x[0]))

}

void TechoCardBoard::powerOff() {
nrf_gpio_cfg_sense_input(BUTTON_PIN, NRF_GPIO_PIN_PULLUP, NRF_GPIO_PIN_SENSE_LOW);\
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is that trailing backslash supposed to be there?

@ripplebiz
Copy link
Copy Markdown
Member

Good stuff.... high fives all round (Insert Penguins meme here)

@oltaco
Copy link
Copy Markdown
Member Author

oltaco commented May 15, 2026

@ripplebiz No worries, I'll sort all these out tomorrow :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants