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

OP (Firma: Q3) #7912685

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

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.

OP (Firma: Q3) #7960119

Ralf L. schrieb:

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.

Vielen Dank für deine Recherche.

OP (Firma: Q3) #7960158

Frank K. schrieb:

Muss das unbedingt ein ESP32 sein? Es gibt doch so viele ARM-Plattformen: Pi Pico, TI CC33xx, Microchip PIC32MZ-W1, ... fchk

Aus rein technischer Sicht muss das natürlich nicht sein.

Aber praktisch hat man halt so seine Erfahrungn, kennt die Hardware, hat Code-Schnipsel, ist an IDEs gewöhnt usw. Das wechselt man nicht mal eben so ...

#7960244

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

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

Eine eigene Frage? Dieser Thread ist über ein Jahr alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.