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