Web (IP) über USB - auch für ESP32?

(Firma: Q3) #7912685
Lesenswert?

Ich besitze einen Ebook-Reader "ReMarkable". Neben WLAN kann der auch "IP over USB", und zwar am Mac und auch Windows, ohne dass dazu ein extra Treiber installiert werden müsste.

Auf einer der Setup-Seiten des Readers steht, man möge ihn per Kabel mit einem Computer verbinden und dann im Browser einfach die IP 10.x.y.z eingeben - und siehe da, man kann so völlig problemlos die aufgespielten Bücher sehen und verwalten, Up- und Download klappen problemlos.

Bekommt man das auch mit einem ESP32 hin? Wäre cool für ein Messgerät, was wir in Arbeit haben, um Kalibrier-Daten zu editieren, ohne WLAN oder extra Software - man kann die Daten ja mit einer PIN sichern. Ein Webserver ist auf dem ESP ja kein Hexenwerk ...

Hat das hier schonmal jemand gemacht?

#7960112
Lesenswert?

Ich hatte mir überlegt, ob man das Verhalten vom reMarkable (IP-over-USB, also Webzugriff über 10.x.y.z ohne Treiber) auch mit einem ESP32 nachbauen kann – z. B. für ein Messgerät, um Kalibrierdaten im Browser zu editieren, ohne WLAN oder Zusatzsoftware. Nach etwas Recherche ist klar: Das, was der reMarkable macht, basiert auf RNDIS bzw. CDC-ECM, also einer USB-Netzwerk-Schnittstelle. macOS, Windows und Linux erkennen das automatisch als virtuelle Netzwerkkarte – daher klappt der Webzugriff sofort.

Der ESP32 (klassisch) kann das leider nicht, weil er gar keinen echten USB-Port hat. Erst die neueren ESP32-S2/S3/C3 besitzen USB-OTG-Hardware, aber Espressifs aktueller USB-Stack unterstützt nur CDC/ACM (virtuelle COM-Ports), HID, MIDI und Mass Storage – kein RNDIS oder ECM. Es gibt zwar experimentelle TinyUSB-Beispiele, aber noch nichts offiziell Stabilisiertes.

Alternativen: • USB-Mass-Storage-Modus: ESP32-S3 meldet sich als Laufwerk, man kann Kalibrierdaten einfach als Datei (z. B. JSON) öffnen und ändern – funktioniert ohne Treiber. • Serieller Proxy: Webinterface lokal über ein kleines PC-Tool, das über die serielle USB-Verbindung kommuniziert.

Kurz: „IP over USB“ wie beim reMarkable geht mit dem ESP32 derzeit nur mit viel Eigenarbeit im TinyUSB-Stack, aber Mass-Storage ist eine einfache, treiberlose und praxistaugliche Alternative.

#7960244
Lesenswert?

Ralf L. schrieb:

Serieller Proxy: Webinterface lokal über ein kleines PC-Tool, das über die serielle USB-Verbindung kommuniziert.

Man kann auch im Browser auf die seriellen Schnittstellen zugreifen. Nennt sich Web Serial API. Geht aber nicht bei allen Browsern: https://caniuse.com/web-serial

Und die Webseite, die das macht, muss ja auch von irgendwoher kommen. Die könnte auf dem Mass Storage Device liegen.

#7968489
Lesenswert?

Markus K. schrieb:

Und die Webseite, die das macht, muss ja auch von irgendwoher kommen. Die könnte auf dem Mass Storage Device liegen.

Wenn schon, dann richtig.

Eine kleine Erweiterung zu deinem USB-Device, und schon kann beim Einstöpseln der Browser die Wunsch-URL vom Device erfragen und die Seite öffnen. Auch wenn das Device selber eine CDC-ACM serielle Verbindung zur Verfügung stellt.

https://developer.chrome.com/docs/capabilities/build-for-webusb

Und wenn du deine Seite dann noch mit dem richtigen Webmanifest ausgestattet hast, kann der Benutzer auf "Installieren" klicken, und hat die Seite auch verfügbar, wenn kein Internet vorhanden ist.

Angehängte Dateien:
: Bearbeitet durch User

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren