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


von Tobias (biologe)


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

von Harald K. (kirnbichler)


Lesenswert?

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

Jeder µC, der einen IP-Stack bedienen kann, ausreichend RAM enthält und 
einen USB-Device-Controller enthält, kann das.

Was ist der tiefere Sinn der Übung? Maximale Ressourcen verballern für 
minimales Ergebnis?

SMB/CIFS ist ziemlich ressourcenfressend.

von (prx) A. K. (prx)


Lesenswert?

Harald K. schrieb:
> SMB/CIFS ist ziemlich ressourcenfressend.

Und ziemlich Update-verdächtig, weil sich da gerne mal etwas ändert, 
hinsichtlich Authentifizierung, Verschlüsselung und im Netz geforderter 
Protokoll-Version. Mit Linux erspart man sich deshalb Ärger.

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Deswegen sollte man sehr, sehr ernsthaft darüber nachdenken, ob die 
Grundidee tragfähig ist. Hier habe ich das Gefühl, daß das nicht 
unbedingt gegeben ist.

von Tobias (biologe)


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).

von (prx) A. K. (prx)


Lesenswert?

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

Er soll sie also nicht als Client ziehen oder regelmässig woanders 
abfragen, sondern als SMB-Server agieren? Hast Du eine Vorliebe dafür, 
dicke Bretter zu bohren?

von (prx) A. K. (prx)


Lesenswert?

Tobias schrieb:
> mangels Serverfunktionalität auf Windows scheidet daher z.B. SSH aus

Mindestens in der Pro Version steht ein optional installierbarer OpenSSH 
Server zur Verfügung. Ob auch bei Home weiss ich nicht.

: Bearbeitet durch User
von Niklas G. (erlkoenig) Benutzerseite


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.

: Bearbeitet durch User
von Tobias (biologe)


Lesenswert?

(prx) A. K. schrieb:
> Er soll sie also nicht als Client ziehen oder regelmässig woanders
> abfragen, sondern als SMB-Server agieren?

Nein, der µC soll als SMB-Client agieren und die Datei vom 
bereitstellenden PC abholen. Sorry, falls ich mich da missverständlich 
ausgedrückt habe.

von (prx) A. K. (prx)


Lesenswert?

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

von Tobias (biologe)


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.

von Harald K. (kirnbichler)


Lesenswert?

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?

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

: Bearbeitet durch User
von Tobias (biologe)


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.

von Niklas G. (erlkoenig) Benutzerseite


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.

von Tobias (biologe)


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?

von (prx) A. K. (prx)


Lesenswert?

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.

von Tobias (biologe)


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 :-(

von (prx) A. K. (prx)


Lesenswert?

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.

: Bearbeitet durch User
von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

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

Für Windows gibt es den integrierten Webserver IIS.

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

: Bearbeitet durch User
von Tobias (biologe)


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).

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

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?

von Thomas W. (Gast)


Lesenswert?

Wo ist das Problem:

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

245 Stueck sofort lieferbar.

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

von Tobias (biologe)


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

von Harald K. (kirnbichler)


Lesenswert?

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

Das ist dann ein Catch-22:

Tobias schrieb:
> Ja, die Datei wird von einer Software erzeugt, die auf dem PC läuft

von (prx) A. K. (prx)


Lesenswert?

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

Also auch nicht der Fileserver-Dienst. Interessanter Ansatz, wenn der MC 
genau den ansprechen soll.

: Bearbeitet durch User
von G. K. (zumsel)


Lesenswert?

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.

von Motopick (motopick)


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. (?)

von Tobias (biologe)


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.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Tobias schrieb:
> soll v.a. aus Haftungsgründen unterbleiben

Aber Dateien mit Anweisungen über eine komplett unsichere SMB-Verbindung 
über WLAN (!) übertragen...? Hoffentlich steuert das nur die 
Spülmaschine 👀

von (prx) A. K. (prx)


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.

: Bearbeitet durch User
von Harald K. (kirnbichler)


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 vom Autor gelöscht.
von G. K. (zumsel)


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.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.