Device overview

Device MCU Display Input Radio Status
LilyGo T-Deck Pro ESP32-S3 E-paper 3.1" TCA8418 kbd + CST328 touch SX1262 LoRa Supported
LilyGo T-Deck ESP32-S3 ST7789 320×240 TCA8418 kbd + CST328 touch SX1262 LoRa Supported
LilyGo T-Deck Plus ESP32-S3 ST7789 320×240 TCA8418 kbd + CST328 touch SX1262 + GPS Supported
LilyGo T-Display-S3 ESP32-S3 ST7789 320×170 CST816 touch None Supported
LilyGo T3-S3 ESP32-S3 SSD1306 128×64 None SX1262 LoRa Supported
Heltec WiFi LoRa 32 V3 ESP32-S3 SSD1306 128×64 Button SX1262 LoRa Supported
M5Stack Cardputer ESP32-S3 ST7789 240×135 CardKB I2C kbd None Partial
CYD ESP32-2432S022C ESP32 ST7789 2.2" (I80) CST816S touch None Partial
CYD ESP32-2432S028R ESP32 ILI9341 2.8" (SPI) XPT2046 touch None Partial
ESP32-C3 Mini ESP32-C3 SSD1306 128×64 None None Minimal
One binary per architecture
The kernel is compiled separately for each architecture family: one binary for Xtensa (ESP32, S2, S3) and one for RISC-V (C3, C6). Apps and drivers are also architecture-specific. The catalog arch field filters entries to the correct binary for each device.

How hardware detection works

When Recovery OS boots on a new or blank device, it auto-provisions hardware with no user configuration needed:

  1. Chip detection — Recovery reads the chip model register at boot. It supports ESP32, S2, S3, C3, and C6, and selects the correct firmware architecture from the catalog.
  2. Power rail enable — Before scanning, Recovery enables peripheral power rails (where applicable) to ensure devices are powered.
  3. I2C bus scan — Probes addresses 0x08 through 0x77 on each I2C bus. Each responding address is looked up in the detection table.
  4. SPI device probing — GPIO-level CS pin checks determine whether SPI devices (e-paper, LoRa SX1262, SD card) are present.
  5. UART device probing — Listens on UART ports for GPS NMEA sentences and sends AT commands to detect cellular modems.
  6. Catalog match — Detected components are matched against catalog entries. Matching driver .drv.elf files are selected for download.
  7. Bundle download — Recovery downloads the firmware binary, matching drivers, and the appropriate window manager in one provisioning pass.
No board definition required
Recovery identifies hardware by component detection, not by board name. A new board with a TCA8418 keyboard and ST7789 display will automatically get the correct keyboard and LCD drivers without any manual configuration.
Want to add a new device?
See the Building Drivers guide for step-by-step instructions on creating board.json configs and porting ThistleOS to new hardware.