Zobrazit stránkuStarší verzeZpětné odkazyNahoru Tato stránka je pouze pro čtení. Můžete si pouze prohlédnout zdrojový kód, ale ne ho měnit. Zeptejte se správce, pokud si myslíte, že něco není v pořádku. ====== 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: [[https://github.com/Xinyuan-LilyGO/T-Deck/blob/master/firmware/T-Keyboard_Keyboard_ESP32C3_250620.bin|T-Keyboard_Keyboard_ESP32C3_250620.bin]] ===== Potřebné vybavení ===== * USB-UART programátor s 3.3V logikou * použitý převodník: [[https://www.laskakit.cz/prevodnik-6pin-usb-ttl-uart--cp2102--dtr-pin/|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: [[https://www.laskakit.cz/prevodnik-6pin-usb-ttl-uart--cp2102--dtr-pin/|LaskaKit převodník 6pin USB-TTL UART CP2102 s DTR pinem]] Na převodníku jsou piny označené: <code> DTR, RXD, TXD, +5V, GND, 3V3 </code> 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 | <WRAP important> 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. </WRAP> 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í: {{::img_4982.jpg?400|{{ :todo:t-keyboard-zapojeni-1.jpg?direct |Zapojení T-Deck}}}} {{:c3_boot.jpg?400|{{ :todo:t-keyboard-zapojeni-2.jpg?direct |Detail programovacího headeru}} ===== Instalace esptool ===== Na macOS / Linux: <code bash> python3 -m pip install esptool </code> Na Windows: <code powershell> py -m pip install esptool </code> ===== Ověření komunikace ===== Nejdříve jsem ověřil, že je ESP32-C3 dostupné v bootloaderu. Na macOS byl sériový port: <code> /dev/cu.usbserial-0001 </code> Příkaz: <code bash> esptool --chip esp32c3 --port /dev/cu.usbserial-0001 --baud 115200 --before no-reset --after no-reset read-mac </code> Pokud je vše správně zapojené, výstup obsahuje informace o čipu a MAC adresu, například: <code> Connected to ESP32-C3 Chip type: ESP32-C3 MAC: xx:xx:xx:xx:xx:xx </code> ===== Flash firmware ===== Firmware soubor: <code> T-Keyboard_Keyboard_ESP32C3_250620.bin </code> Flashovací příkaz na macOS: <code bash> 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 </code> 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: <code> /dev/ttyUSB0 </code> nebo: <code> /dev/ttyACM0 </code> Příklad příkazu: <code bash> esptool --chip esp32c3 --port /dev/ttyUSB0 --baud 115200 --before no-reset --after no-reset read-mac </code> Pokud není přístup k portu povolený, je potřeba přidat uživatele do skupiny ''dialout'': <code bash> sudo usermod -aG dialout $USER </code> Poté je nutné se odhlásit a znovu přihlásit. ===== Poznámky pro Windows ===== Na Windows bude port ve tvaru například: <code> COM3 </code> Příklad ověření: <code powershell> esptool --chip esp32c3 --port COM3 --baud 115200 --before no-reset --after no-reset read-mac </code> Příklad flashování: <code powershell> 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 </code> 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 → RX'' a ''RXD → TX'' * zda je propojené ''GND'' * zda je zařízení napájené * zda je ''BOOT'' propojený s ''GND'' př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: <code bash> --before no-reset --after no-reset </code> Postup: - propojit ''BOOT'' s ''GND'' - 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'', ''TX'' a ''RX'' ===== Ověřený postup ===== V tomto případě byl nejdříve ověřen čip příkazem: <code bash> esptool --chip esp32c3 --port /dev/cu.usbserial-0001 --baud 115200 --before no-reset --after no-reset read-mac </code> Poté byl firmware úspěšně nahrán příkazem: <code bash> 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 </code> t-keyboard-update-firmware.txt Poslední úprava: 21.06.2026 16:03autor: mkubik