Flash firmware T-Keyboard ESP32-C3 pro LilyGO T-Deck
Tento návod popisuje nahrání novějšího firmware do klávesnice T-Keyboard, která je součástí zařízení LilyGO T-Deck.
Novější firmware vylepšuje podporu stisku více kláves najednou, například při použití Shift. Díky tomu není potřeba mačkat každou klávesu samostatně a psaní se chová přirozeněji.
Firmware také umožňuje softwarově ovládat podsvícení klávesnice. Například při začátku psaní se může podsvícení automaticky zapnout.
Klávesnice T-Keyboard používá samostatný čip ESP32-C3, proto se firmware nahrává přes USB-UART programátor přímo do klávesnicového modulu.
Firmware: T-Keyboard_Keyboard_ESP32C3_250620.bin
Potřebné vybavení
- USB-UART programátor s 3.3V logikou
- použitý převodník: LaskaKit převodník 6pin USB-TTL UART CP2102 s DTR pinem
- propojovací kabely
- nainstalovaný
esptool
Zapojení
V návodu byl použit tento USB-UART převodník:
LaskaKit převodník 6pin USB-TTL UART CP2102 s DTR pinem
Na převodníku jsou piny označené:
DTR, RXD, TXD, +5V, GND, 3V3
Pro flashování T-Keyboard se používají pouze piny TXD, RXD, GND a případně 3V3. Pin DTR se v tomto ručním postupu nepoužívá a pin +5V se nezapojuje.
Zapojení mezi USB-UART programátorem a T-Deck:
| USB-UART programátor | T-Deck |
|---|---|
| TXD | RX |
| RXD | TX |
| GND | GND |
| 3V3 | VCC, pokud napájíme z programátoru |
| DTR / DRT | nezapojovat |
| +5V | nezapojovat |
Používat pouze 3.3V logiku. Pin +5V z USB-UART programátoru nezapojovat.
Před zapnutím zařízení musí být připojená anténa. Zařízení se při flashování zapíná a provoz bez připojené antény může poškodit rádiovou část.
Pro vstup do bootloaderu je potřeba propojit pin BOOT s GND a následně zařízení resetovat nebo připojit napájení.
Fotky zapojení:
Instalace esptool
Na macOS / Linux:
python3 -m pip install esptool
Na Windows:
py -m pip install esptool
Ověření komunikace
Nejdříve jsem ověřil, že je ESP32-C3 dostupné v bootloaderu.
Na macOS byl sériový port:
/dev/cu.usbserial-0001
Příkaz:
esptool --chip esp32c3 --port /dev/cu.usbserial-0001 --baud 115200 --before no-reset --after no-reset read-mac
Pokud je vše správně zapojené, výstup obsahuje informace o čipu a MAC adresu, například:
Connected to ESP32-C3 Chip type: ESP32-C3 MAC: xx:xx:xx:xx:xx:xx
Flash firmware
Firmware soubor:
T-Keyboard_Keyboard_ESP32C3_250620.bin
Flashovací příkaz na macOS:
esptool --chip esp32c3 --port /dev/cu.usbserial-0001 --baud 115200 --before no-reset --after no-reset write-flash -z --flash-mode dio --flash-freq 80m 0x0 T-Keyboard_Keyboard_ESP32C3_250620.bin
Během flashování musí být BOOT stále propojený s GND.
Po dokončení:
- odpojit propojení
BOOT→GND - resetovat nebo odpojit a znovu připojit napájení
- klávesnice by měla naběhnout s novým firmwarem
Poznámky pro Linux
Na Linuxu bude port typicky:
/dev/ttyUSB0
nebo:
/dev/ttyACM0
Příklad příkazu:
esptool --chip esp32c3 --port /dev/ttyUSB0 --baud 115200 --before no-reset --after no-reset read-mac
Pokud není přístup k portu povolený, je potřeba přidat uživatele do skupiny dialout:
sudo usermod -aG dialout $USER
Poté je nutné se odhlásit a znovu přihlásit.
Poznámky pro Windows
Na Windows bude port ve tvaru například:
COM3
Příklad ověření:
esptool --chip esp32c3 --port COM3 --baud 115200 --before no-reset --after no-reset read-mac
Příklad flashování:
esptool --chip esp32c3 --port COM3 --baud 115200 --before no-reset --after no-reset write-flash -z --flash-mode dio --flash-freq 80m 0x0 T-Keyboard_Keyboard_ESP32C3_250620.bin
Pokud se port nezobrazuje, může být potřeba nainstalovat ovladač pro použitý USB-UART převodník, například CH340 nebo CP210x.
Řešení problémů
Failed to connect: No serial data received
ESP32-C3 neodpovídá. Zkontrolovat:
- zda je správně propojeno
TXD → RXaRXD → TX - zda je propojené
GND - zda je zařízení napájené
- zda je
BOOTpropojený sGNDpřed resetem nebo připojením napájení - zda se používá správný sériový port
Invalid head of packet
Zařízení posílá data, ale pravděpodobně není v bootloader režimu.
Pomohlo použít ruční boot režim a volbu:
--before no-reset --after no-reset
Postup:
- propojit
BOOTsGND - resetovat zařízení nebo znovu připojit napájení
- spustit
read-mac - pokud projde, spustit flashování
Flashování je nestabilní
Doporučení:
- použít baudrate
115200 - zkrátit propojovací kabely
- nepoužívat 5V logiku
- pokud USB-UART nedokáže dodat dostatečný proud z 3V3 pinu, napájet zařízení jinak a mezi zařízeními propojit pouze
GND,TXaRX
Ověřený postup
V tomto případě byl nejdříve ověřen čip příkazem:
esptool --chip esp32c3 --port /dev/cu.usbserial-0001 --baud 115200 --before no-reset --after no-reset read-mac
Poté byl firmware úspěšně nahrán příkazem:
esptool --chip esp32c3 --port /dev/cu.usbserial-0001 --baud 115200 --before no-reset --after no-reset write-flash -z --flash-mode dio --flash-freq 80m 0x0 T-Keyboard_Keyboard_ESP32C3_250620.bin

