Mikrocontroller mit SMB2/3 und USB-HID: Challenger+ RP2350 WiFi6/BLE5 ?

OP #7767096
Lesenswert?

Hallo zusammen,

für ein Projekt suche ich einen Mikrocontroller, der per SMB/CIFS eine Datei von Windows und Mac auslesen kann und Daten als USB-HID ausgeben kann. Das Challenger+ RP2350 WiFi6/BLE5 von iLabs scheint mir ein möglicher Kandidat zu sein: der Pico-Teil als USB-HID und der ESP32-Teil für die SMB-Kommunikation. Würde das funktionieren ?

Kennt Ihr ggf. eine einfachere Alternative (einen µC, der beides kann) ?

Grüße Tobias

OP #7767148
Lesenswert?

Hallo Harald, hallo A.K.,

vielen Dank für Eure Antworten. Warum SMB/CIFS? Der µC soll eine Datei sowohl von Windows- als auch von Mac-Hosts erhalten können. Das Bereitstellen der Datei soll mit einfachen Bordmitteln geschehen, ohne dass weitere Programme/Dienste auf dem Host installiert werden müssen (mangels Serverfunktionalität auf Windows scheidet daher z.B. SSH aus).

Persönliche Seite #7767155
Lesenswert?

Tobias schrieb:

Kennt Ihr ggf. eine einfachere Alternative (einen µC, der beides kann) ?

Der ESP32S3 kann WiFi und hat eine USB-Peripherie und kann dementsprechend schon direkt mit einem USB-Host reden und braucht da nicht noch einen RP für. Für den ESP32S3 gibt es diverse Boards und Devkits.

Möchtest du eine ganze Datei per HID übertragen? Klingt furchtbar umständlich und ineffizient.

Tobias schrieb:

Der µC soll eine Datei sowohl von Windows- als auch von Mac-Hosts erhalten können.

Das ginge auch mit einem Webserver. Kaum noch jemand nutzt SMB und das macht ständig irgendwelche Probleme, während HTTP allgegenwärtig und super unterstützt ist. Für den ESP32 gibt es natürlich fertige Webserver. Wenn es unbedingt im Dateibrowser funktionieren muss wäre WebDAV auch eine Option, das wäre auf Basis des Webservers vermutlich gut umsetzbar. Nebenbei funktioniert das auch problemlos übers Internet wenn man es mit HTTPS sichert (SMB ist da zu unsicher für und müsste mit VPN gesichert werden, aber das auf dem ESP zu implementieren dürfte unspaßig sein).

Tobias schrieb:

ohne dass weitere Programme/Dienste auf dem Host installiert werden müssen

Webbrowser sind ja schon lange überall vorinstalliert.

OP #7767198
Lesenswert?

Hallo Niklas,

vielen Dank für Deine Antwort.

Niklas G. schrieb:

Möchtest du eine ganze Datei per HID übertragen? Klingt furchtbar umständlich und ineffizient.

Der µC soll bestimmte Daten aus der Datei entnehmen und diese dann wie eine externe Tastatur an einem anderen Gerät eingeben. Hintergrund: Das Gerät selbst ist ein medizinisches Gerät, welches Daten nur über eine externe Tastatur entgegennehmen kann.

OP #7767219
Lesenswert?

Niklas G. schrieb:

Tobias schrieb:

Der µC soll eine Datei sowohl von Windows- als auch von Mac-Hosts erhalten können.

Das ginge auch mit einem Webserver. Kaum noch jemand nutzt SMB und das macht ständig irgendwelche Probleme, während HTTP allgegenwärtig und super unterstützt ist.

Das stimmt. Allerdings soll das Ganze quasi im Hintergrund ablaufen; der PC selbst wird "nebenbei" noch für diverse andere Aufgaben genutzt.

Persönliche Seite #7767223
Lesenswert?

Tobias schrieb:

Allerdings soll das Ganze quasi im Hintergrund ablaufen; der PC selbst wird "nebenbei" noch für diverse andere Aufgaben genutzt.

Es soll also immer wieder automatisch eine Datei übertragen werden? Wo kommt die Datei überhaupt her? Muss es denn unbedingt eine Datei von der Festplatte des PCs sein, wie wäre es mit einer Web-GUI wo man die HID-Aktionen eingibt/konfiguriert und per JavaScript werden die dann automatisch raus geschickt? Javascript-GUIs sind heutzutage praktisch genau so mächtig wie gewöhnliche PC-Programme, aber laufen halt im Browser. Da könnte man sich beliebige Dinge zusammenklicken und die automatisch ablaufen lassen. Nur Dateien automatisch von der Festplatte lesen geht natürlich nicht.

OP #7767225
Lesenswert?

Harald K. schrieb:

Tobias schrieb:

Nein, der µC soll als SMB-Client agieren und die Datei vom bereitstellenden PC abholen.

Und wozu soll das gut sein? Was hat das mit der Funktion als USB-HID zu tun?

Hatte ich um 14:53 geschrieben: der µC soll (neben der SMB-Client-Tätigkeit) als externe Tastatur dienen.

Wie willst Du die SBM-Credentials verwalten (Benutzername/Password), hast Du Dir darüber schon mal Gedanken gemacht?

Es wird jeweils ein µC mit pro PC (Win oder Mac) genutzt; somit ist jeweils nur ein "Benutzername und Passwort" pro µC notwendig. Die Daten sollen entsprechend auf dem individuellen µC abgelegt werden.

(prx) A. K. schrieb:

Wenn das File nicht zu gross ist, dann pack auf den PC einen TFTP-Server drauf. Den kriegst du sogar mit einem AVR bedient.

Danke für den Tipp. Der TFTP-Server wäre aber ein Programm/Dienst, welches bei Win/Mac nicht standardmäßig dabei ist, oder?

OP #7767237
Lesenswert?

(prx) A. K. schrieb:

Wenn du um jeden Preis SMB implementieren willst, wird dich niemand daran hindern. Erwarte nur nicht, dass dich jeder dich in dieser Entscheidung bestätigen wird.

Hm, etwas Simpleres als SMB wäre mir auch lieber... leider muss der Dateiaustausch halt mit Win/Mac-Bordmitteln funktionieren.

Gibt es/kennt Ihr eine andere Möglichkeit als SMB?

SSH, Webserver, WebDAV, (T)FTP fallen ja leider (wegen der Bordmittel-Beschränkung) aus :-(

OP #7767255
Lesenswert?

Niklas G. schrieb:

Aber wie gesagt: Muss es unbedingt eine echte Datei sein die unbedingt von der Festplatte vom PC kommen muss? Wo kommen die Daten her?

Ja, die Datei wird von einer Software erzeugt, die auf dem PC läuft (eine andere Datenweitergabe, z.B. "an Port senden" o.ä. ist nicht möglich).

(prx) A. K. schrieb:

Dann - wie gesagt - nimm etwas mit Linux. So RasPi Richtung, aber der echte, nicht der Pico. Da ist der SMB Client an Bord und kann ggf auf Stand gehalten werden.

Linux wäre dafür natürlich perfekt. Ich möchte/muss einen µC nutzen, da die Stromversorgung nur über die USB-Schnittstelle erfolgen kann, an welche der µC als "externe Tastatur" angeschlossen ist (genauer USB1.1, d.h. max. 0,5A).

OP #7767283
Lesenswert?

Thomas W. schrieb:

Wo ist das Problem:

https://www.berrybase.de/raspberry-pi-zero-wh?c=319

Und ja, es laeuft jetzt gerade an einem USB-Port an einem PC.

Hallo Thomas, das wäre tatsächlich eine gute Lösung. Weißt Du, wie empfindlich der Pi Zero ggü. Power Off ohne Shutdown ist? Hintergrund: das System wird mehrmals täglich einfach stromlos gestellt werden, da das Gerät an dem Pi Zero / µC einfach ausgeschaltet wird.

Niklas G. schrieb:

Tobias schrieb:

Ja, die Datei wird von einer Software erzeugt, die auf dem PC läuft

Die kann man nicht modifizieren? Keine Chance ein Batch-Script zu schreiben was regelmäßig die Datei hochlädt? Oder eine Mini-Anwendung die das macht?

Auf dem PC soll tatsächlich kein Programm/App/Dienst/Skript o.ä. laufen

#7767311
Lesenswert?

Tobias schrieb:

Hm, etwas Simpleres als SMB wäre mir auch lieber... leider muss der Dateiaustausch halt mit Win/Mac-Bordmitteln funktionieren.

Gibt es/kennt Ihr eine andere Möglichkeit als SMB?

SSH, Webserver, WebDAV, (T)FTP fallen ja leider (wegen der Bordmittel-Beschränkung) aus :-(

Klar. Noch mehr Schmerz mit Bluetooth und Bluetooth-FTP. Oder per Klaut mit IP-over-DNS tunneln. :) Oder mit einem "erratisch" blinkenden Quadrat auf dem Bildschirm.

pack auf den PC einen TFTP-Server drauf

+1

Wer denkt sich eigentlich solchen Schwachsinn aus. (?)

OP #7767349
Lesenswert?

G. K. schrieb:

Tobias schrieb:

das wäre tatsächlich eine gute Lösung. Weißt Du, wie empfindlich der Pi Zero ggü. Power Off ohne Shutdown ist? Hintergrund: das System wird mehrmals täglich einfach stromlos gestellt werden, da das Gerät an dem Pi Zero / µC einfach ausgeschaltet wird.

Dann installiere openwrt auf dem Ding.

Hallo G.K., vielen Dank für den Tipp - da werde ich mich einmal einlesen!

Motopick schrieb:

Wer denkt sich eigentlich solchen Schwachsinn aus. (?)

Hallo Motopick, die PCs werden im medizinischen Bereich eingesetzt. Hierauf etwas zu installieren, soll v.a. aus Haftungsgründen unterbleiben - unabhängig davon, ob es technisch ggf. sinnvoll wäre.

#7767354
Lesenswert?

Tobias schrieb:

die PCs werden im medizinischen Bereich eingesetzt. Hierauf etwas zu installieren, soll v.a. aus Haftungsgründen unterbleiben

Was nahelegt, dass der PC über Netz keine nichtessentiellen Dienste anbietet, und damit eben auch keine Fileservices. Sofern man nicht bloss die Versicherung im Auge hat, sondern auch den Sinn solcher Regeln. Womit dieser Lösungsweg gestorben sein sollte.

#7767373
Lesenswert?

Tobias schrieb:

die PCs werden im medizinischen Bereich eingesetzt. Hierauf etwas zu installieren, soll v.a. aus Haftungsgründen unterbleiben - unabhängig davon, ob es technisch ggf. sinnvoll wäre.

Und was für eine merkwürdige Idee steckt dahinter, ein Ding ("Gerät" will ich das jetzt mal nicht nennen) zu konstruieren, das sich (mit viel Aufwand) eine sich offenbar häufiger ändernde Datei von einem Dateiserver abholen soll, um sich dann gegenüber einem anderen PC als USB-HID auszugeben?

Was für ein Problem meint das zu lösen?

Beitrag #7767382 wurde von einem Moderator gelöscht.
#7767553
Lesenswert?

Tobias schrieb:

Dann installiere openwrt auf dem Ding.

Hallo G.K., vielen Dank für den Tipp - da werde ich mich einmal einlesen!

Bastel aber erst deinen Kram unter Raspbian fertig und fummel das danach auf openwrt rüber. Und speichere die Daten trotzdem ruhig mit Prüfsummen ab und schreibe nach einem sync einen zusätzlichen fertig_nach_sync Marker via touch in ein anderes Filesystem oder so. SD-Karten sind halt merkwürdig. Optimal für ausschalten im laufenden Betrieb wäre eine 2. SD-Karte oder ähnlich wo die beweglichen Daten drauf liegen, dann kann auf der 1. SD-Karte nur das readonly OS + Anwendung liegen. Im Extremfall könnte die Anwendung wenn die Filesysteme auf der 2. Karte komplett kaputt sind diese komplett neu formatieren und die entsprechenden Verzeichnisse neu anlegen und dann mounten.

Die diversen sync Optionen erhöhen auch die Sicherheit gegen Stromausfall, zusätzlich braucht das Datenfilesystem auf nur dann rw gemountet sein wenn tatsächlich geschrieben wird, ansonsten reicht ro. (mount -o remount)

Und stell das Ergebnis hier ruhig zur Verfügung.

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