Digispark im Terminal nutzen

Gast #5178500
Lesenswert?

Hallo zusammen.

Ich habe von einem Bekannten (Elektronikbastler) einen Digispark Mini 
geschenkt bekommen.
Die Treiber habe ich installiert, den Digispark habe ich in die Arduino 
IDE eingebunden und anschließend ein Beispielprogramm geflasht, was auch 
das tut was es soll (die auf dem Board aufgelötete LED blinken lassen).

Nun möchte ich ein kleines Programm schreiben, welches über USB (über 
den virtuellen COM-Port -> USB) ein paar Zeichen ausgibt.
Allerdings erscheint der Digispark nicht als virt. COM-Port in meinem 
Gerätemanager unter Windows, auch nicht im Terminal erscheint ein 
COM-Port, den ich auswählen könnte.

Könnt ihr mir weiterhelfen oder hattet ihr bereits ähnliches "Problem", 
dass der Digispark nicht als COM-Port aufgeführt wird?

Eine Verbindung hat der Digispark ja zum OS, sonst hätte ich ja 
offensichtlich nicht das Beispiel-Blink-Programm flashen können.

In der Arduino IDE erscheint als ausgewähltes Modul übrigens unten 
rechts im IDE-Fenster "Digispark (Default - 16.5Mhz) auf COM7".

Vielen Dank und Gruß
Gast #5178569
Lesenswert?

Ok, danke!

Immerhin konnte ich jetzt schon mal anhand deines Links die Lib 
einbinden und den Controller mit der eingebundenen Lib flashen.
Allerdings wird weiterhin der Controller nicht als virt. COM-Port (im 
Terminal und im Gerätemanager) erkannt.
Nach dem Flashen und erneutem Einstecken des Digisparks erscheint in 
Win10 die Meldung, dass es sich um ein "unbekanntes USB-Gerät" handelt 
(und somit nicht genutzt werden kann).

Sämtliche Versuche haben nun auch nicht weitergeholfen.

Also doch wieder so ein schnell produzierter und wackelig 
funktionierender Schrott :-(
Persönliche Seite #5178577
Lesenswert?

Joh schrieb:
> Also doch wieder so ein schnell produzierter und wackelig
> funktionierender Schrott

Das Ding nutzt V-USB, und CDC (serielle Schnittstelle) ist via V-USB 
nicht unter Einhaltung der USB-Spezifikation umsetzbar.

Ältere Betriebssysteme waren da etwas toleranter.

Schrott ist das Ding trotzdem nicht, denn niemand zwingt einen, CDC 
damit umzusetzen. Für Tastatur-, Maus- oder Joystick-Anwendungen lässt 
sich das Biest nämlich auch einsetzen, das alles nutzt HID, und das kann 
mit V-USB spezifikationskonform umgesetzt werden.
Gast #5178649
Lesenswert?

Ok..

Und wie bringe ich das Gerät nun dazu, dass es als virt. COM-Port ein 
harmloses Zeichen an den PC (Terminal) schickt?

Treiberinstallation hat auch mit der HID-Lib ("keyboard example") 
funktioniert..
Gast #5178653
Lesenswert?

> Und wie bringe ich das Gerät nun dazu, dass es als virt. COM-Port ein
> harmloses Zeichen an den PC (Terminal) schickt?

Das tut es schon. Du stellst die Falsche Frage. Du solltest fragen: Wie 
bringe ich mein Windows dazu, dieses Gerät zu akzeptieren.

Versuche es mal mit Linux, könnte aufschlussreich sein. Vor allem die 
Ausgabe des "dmesg" Befehls.
Gast #5178741
Lesenswert?

Also Voraussetzung für mein Vorhaben ist explizit Windows (XP-10).
Wenn es -egal ob es nun am OS des PCs oder am Digispark liegt- nicht 
funktioniert, muss ich wohl oder übel auf eine andere wenn auch 
überdimensionierte Plattform mit hardware-USB-Converter (Arduino Nano) 
zurückgreifen..

Schade..
Persönliche Seite #5179336
Lesenswert?

Nur unter alten Windows-Versionen.

Sonst nicht, weil das Ding nur Low-Speed-USB unterstützt, und das für 
serielle Schnittstellen nötige CDC-Protokoll nicht spezifikationskonform 
mit Low-Speed-USB realisierbar ist.

Daß das überhaupt irgendwo funktioniert, liegt an einer sehr laxen 
Auslegung der USB-Spezifikation durch alte Betriebssystemversionen.

Du musst also entweder ein USB-Protokoll verwenden, das mit 
Low-Speed-USB auskommt (was die serielle Schnittstelle ausschließt) oder 
einen anderen Controller mit USB-Hardware (wie den Atmega32U4) 
verwenden.
Gast #5179346
Lesenswert?

Noch eine Frage zu dem HID:
Da das HID ja bei mir vom example-Sketch funktionierte und der Digispark 
auch eine Tastatur emulierte (habe ich im Editorfenster gesehen), ist es 
auch möglich, dass der Digispark über den HID-Mode Daten empfangen kann?
Schließlich wäre das ja genau jenes, was ich bräuchte?!

Gruß
Persönliche Seite #5179365
Lesenswert?

joh schrieb:
> ist es auch möglich, dass der Digispark über den HID-Mode Daten
> empfangen kann?

Ja, HID-Geräte können auch Daten empfangen. Die LEDs von Tastaturen 
beispielsweise werden auf diese Art angesteuert, oder "force 
feedback"-Joysticks.

Nur funktioniert das über komplett andere Systemfunktionen als die 
Ansteuerung einer (virtualisierten) seriellen Schnittstelle.
Gast #5179413
Lesenswert?

Naja, das müsste ich dann entsprechend für die Windows-Applikation 
programmieren, dass ein "Zeichen über HID" gesendet werden soll und eben 
nicht über den virt. COM-Port. Das ist dann der nächste Step..

Ich würde das Ganze für den PC in VB.net (Visual Studio) programmieren 
wollen.
Die App soll einfach nur zwei Buttons beinhalten, woraufhin die Pins des 
Digisparks nach Anklicken auf HIGH oder LOW gehen.

Gruß
Gast #5179796
Lesenswert?

Nochmals final den Frust ablassen:
 - Nach mehrstündigen Versuchen scheint es weder über DigiUSB/CDC oder 
anderweitig (trotz Einarbeitung in dürftige "Tutorials" im Internet) 
nicht zu klappen. Es ist auch nicht ein einziges Beispiel im Netz zu 
finden, wo von oben bis unten beschrieben ist, wie man selbst die 
mitgelieferten Beispiel-Sketches zum Laufen bringt.
Doch scheint mein Vorhaben so einfach zu sein: Ein Zeichen via USB an 
den Digispark zu senden, woraufhin er die onboard-LED ein/ausschalten 
soll.

Naja, dann wars das mit Digispark erstmal. Somit ist das Ding (für mich 
und mein ach so ominöses Projekt) unbrauchbar.

Die Hypes im Netz über so ein Ding verstehe ich dann trotzdem nicht.
Gast #5181195
Lesenswert?

Welche Hypes?
Das Teil hat nicht einmal eine richtige USB Schnittstelle!

Wer vom Fach ist, weiß dass man davon ungefähr so viel halten kann, wie 
von Lautsprecherboxen aus Plastik oder Goldfisch-Gläser ohne 
Filteranlage oder Haarschneider am Staubsauger-Rohr oder Edel-Fleece 
Pullover mit Cashmeregriff von QVC.
Gast #5181429
Lesenswert?

Stefan U. schrieb:
> Das Teil hat nicht einmal eine richtige USB Schnittstelle!

Das ist natürlich wahr.
Allerdings schafft es die Arduino IDE auf dem Weg da Software drauf zu 
spielen. Auch unter Win 10.
Das ist der Beweis für: Unmöglich ist es nicht.

Ist vielleicht nicht jedermanns Sache selber einen Treiber für Win 10 zu 
schreiben. (Meine jedenfalls nicht)
Und sowieso reichen meine USB Kenntnisse dafür nicht aus.

Joh schrieb:
> - Nach mehrstündigen Versuchen scheint es weder über DigiUSB/CDC oder
> anderweitig (trotz Einarbeitung in dürftige "Tutorials" im Internet)
> nicht zu klappen.

Habe das mal (wieder) kurz getestet.
Wenn ich einen solchen präparierten Digispark(Klon) in mein Win10 stecke 
gibts einen blauen Bildschirm. Natürlich mit dem zwangsläufig folgenden 
Win Neustart.


Wie gesagt, bei mir sind für solche Zwecke "Beetle 32U4" im Einsatz.
Die haben solche Probleme nicht. Und sind nur unwesentlich größer.
Gast #5181456
Lesenswert?

> Ist vielleicht nicht jedermanns Sache selber einen Treiber für
> Win 10 zu schreiben

Das ist der Knackpunkt. Wenn du doch in diese Richtung weiter forschen 
möchtest, könnte der generische libusb Treiber hilfreich sein, den 
letztendlich auch Arduino (wegen avrdude) verwendet. Ich würde dann mal 
dessen Dokumentation lesen.

Allerdings fürchte ich, dass man dazu erstmal lernen muss, wie USB 
überhaupt funktioniert und die Fachbegriffe dazu.

Für meinen Hausgebrauch bevorzuge ich µC Platine mit USB-UART. Mit dem 
STM32F103 komme ich klar, denn dazu liefert der Hersteller eine USB-UART 
(CDC) Library.

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