RPI USB WiFi Bridge – RP2040/RP2350-Geräte über WLAN flashen
Ich habe eine kleine USB-zu-WLAN-Bridge auf Basis eines ESP32-S3 gebaut.
Ein RP2040-/RP2350-Gerät wird per USB an den ESP32-S3 angeschlossen. Der ESP32-S3 kann z. B. über eine Powerbank versorgt werden, übernimmt die USB-Verbindung und macht das angeschlossene Gerät anschließend über WLAN erreichbar.
Damit kann man zum Beispiel ein OpenKNX-Gerät mit RP2040/RP2350 drahtlos erreichen und flashen, ohne mit dem Laptop direkt per USB daneben sitzen zu müssen.
Der Hauptgrund dafür war bei mir, dass ich keinen Laptop mehr habe und mir ein Firmware-Upload über KNX für häufiges Testen zu lange dauert.
Was kann die Bridge?
Wie funktioniert die Einrichtung?
Beim ersten Start öffnet der ESP32-S3 einen eigenen WLAN-Hotspot:
RPI-USB-WiFi-XXXXXX
Mit diesem WLAN verbindet man sich einfach per Handy oder PC.
Danach öffnet sich die WLAN-Einrichtung. Dort wählt man das eigene WLAN aus und gibt das WLAN-Passwort ein.
Der ESP32 startet anschließend neu und verbindet sich mit dem normalen WLAN.
Danach reicht es, die IP-Adresse des ESP32 im Browser zu öffnen.
Firmware flashen
Das angeschlossene RPI-Gerät kann direkt über das Webinterface geflasht werden.
Dazu wird die gewünschte .uf2-Datei einfach ausgewählt oder in das Fenster gezogen.
Vor dem eigentlichen Flashen wird die Firmware geprüft und es werden einige Informationen angezeigt, zum Beispiel erkannte OpenKNX-Daten und UF2-Informationen.
Anschließend kann die Firmware direkt auf das angeschlossene Gerät übertragen werden.
Browser-Konsole
Die serielle Ausgabe des angeschlossenen Geräts kann ebenfalls direkt im Browser angezeigt werden.
Damit kann man nach einem Firmware-Update sofort sehen, was das Gerät ausgibt, ohne eine zusätzliche serielle Verbindung zum PC herstellen zu müssen.
Hardware
Benötigt wird ein ESP32-S3 mit 16 MB Flash (8 MB Flash könnten ausreichen, das habe ich bisher aber nicht getestet)
Das RPI Gerät wird direkt per USB an den ESP32-S3 angeschlossen. Die Bridge selbst kann zum Beispiel über eine Powerbank versorgt werden.
Software
Das Projekt basiert auf ESP-IDF 6.1.x.
Quellcode, Screenshots und weitere Informationen gibt es hier:
https://github.com/mpl1337/RPI-USB-WiFi-Bridge
So kann das OpenKNX-Gerät eingebaut bleiben und trotzdem über WLAN erreicht und schnell mit neuer Firmware versorgt werden.
https://de.aliexpress.com/item/1005009523697481.html?spm=a2g0o.productlist.main.1 .7d717b2f7hCtEP&algo_pvid=2588b52f-a745-4633-9374-7f1bacd6d2ec&algo_exp_id=2588b52f-a745-4633-9374-7f1bacd6d2ec-0&pdp_ext_f=%7B%22order%22%3A%222015%22%2C%22eva l% 22%3A%221%22%2C%22fromPage%22%3A%22search%22%7D&pd p_npi=6%40dis%21EUR%213.59%213.59%21%21%2127.38%21 27.38%21%400b1585c117887208062253047e0dd5%21120000 49707307395%21sea%21DE%21134662450%21X%211%210%21n _tag%3A-29919%3Bd%3A7d405748%3Bm03_new_user%3A-29895&curPageLogUid=vKlHd76mEy1u&utparam-url=scene%3Asearch%7Cquery_from%3A%7Cx_object_id%3 A1005009523697481%7C_p_origin_prod%3A
Ich habe eine kleine USB-zu-WLAN-Bridge auf Basis eines ESP32-S3 gebaut.
Ein RP2040-/RP2350-Gerät wird per USB an den ESP32-S3 angeschlossen. Der ESP32-S3 kann z. B. über eine Powerbank versorgt werden, übernimmt die USB-Verbindung und macht das angeschlossene Gerät anschließend über WLAN erreichbar.
Damit kann man zum Beispiel ein OpenKNX-Gerät mit RP2040/RP2350 drahtlos erreichen und flashen, ohne mit dem Laptop direkt per USB daneben sitzen zu müssen.
Der Hauptgrund dafür war bei mir, dass ich keinen Laptop mehr habe und mir ein Firmware-Upload über KNX für häufiges Testen zu lange dauert.
Was kann die Bridge?
- Serielle USB-Verbindung über WLAN weiterleiten
- Serielle Konsole direkt im Browser anzeigen
- Serielle Konsole über TCP
- RP2040- und RP2350-Geräte erkennen
- .uf2-Firmware direkt über den Browser hochladen und flashen
- Firmware vor dem Flashen auswerten
- OpenKNX-Informationen aus der Firmware anzeigen
Wie funktioniert die Einrichtung?
Beim ersten Start öffnet der ESP32-S3 einen eigenen WLAN-Hotspot:
RPI-USB-WiFi-XXXXXX
Mit diesem WLAN verbindet man sich einfach per Handy oder PC.
Danach öffnet sich die WLAN-Einrichtung. Dort wählt man das eigene WLAN aus und gibt das WLAN-Passwort ein.
Der ESP32 startet anschließend neu und verbindet sich mit dem normalen WLAN.
Danach reicht es, die IP-Adresse des ESP32 im Browser zu öffnen.
Firmware flashen
Das angeschlossene RPI-Gerät kann direkt über das Webinterface geflasht werden.
Dazu wird die gewünschte .uf2-Datei einfach ausgewählt oder in das Fenster gezogen.
Vor dem eigentlichen Flashen wird die Firmware geprüft und es werden einige Informationen angezeigt, zum Beispiel erkannte OpenKNX-Daten und UF2-Informationen.
Anschließend kann die Firmware direkt auf das angeschlossene Gerät übertragen werden.
Browser-Konsole
Die serielle Ausgabe des angeschlossenen Geräts kann ebenfalls direkt im Browser angezeigt werden.
Damit kann man nach einem Firmware-Update sofort sehen, was das Gerät ausgibt, ohne eine zusätzliche serielle Verbindung zum PC herstellen zu müssen.
Hardware
Benötigt wird ein ESP32-S3 mit 16 MB Flash (8 MB Flash könnten ausreichen, das habe ich bisher aber nicht getestet)
Das RPI Gerät wird direkt per USB an den ESP32-S3 angeschlossen. Die Bridge selbst kann zum Beispiel über eine Powerbank versorgt werden.
Software
Das Projekt basiert auf ESP-IDF 6.1.x.
Quellcode, Screenshots und weitere Informationen gibt es hier:
https://github.com/mpl1337/RPI-USB-WiFi-Bridge
So kann das OpenKNX-Gerät eingebaut bleiben und trotzdem über WLAN erreicht und schnell mit neuer Firmware versorgt werden.
https://de.aliexpress.com/item/1005009523697481.html?spm=a2g0o.productlist.main.1 .7d717b2f7hCtEP&algo_pvid=2588b52f-a745-4633-9374-7f1bacd6d2ec&algo_exp_id=2588b52f-a745-4633-9374-7f1bacd6d2ec-0&pdp_ext_f=%7B%22order%22%3A%222015%22%2C%22eva l% 22%3A%221%22%2C%22fromPage%22%3A%22search%22%7D&pd p_npi=6%40dis%21EUR%213.59%213.59%21%21%2127.38%21 27.38%21%400b1585c117887208062253047e0dd5%21120000 49707307395%21sea%21DE%21134662450%21X%211%210%21n _tag%3A-29919%3Bd%3A7d405748%3Bm03_new_user%3A-29895&curPageLogUid=vKlHd76mEy1u&utparam-url=scene%3Asearch%7Cquery_from%3A%7Cx_object_id%3 A1005009523697481%7C_p_origin_prod%3A

