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
esptoolV 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í:
Na macOS / Linux:
python3 -m pip install esptool
Na Windows:
py -m pip install esptool
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
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í:
BOOT → GNDNa 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.
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.
ESP32-C3 neodpovídá. Zkontrolovat:
TXD → RX a RXD → TXGNDBOOT propojený s GND před resetem nebo připojením napájení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:
BOOT s GNDread-macDoporučení:
115200GND, TX a RXV 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