Digispark USB

Der chaotische Hauptfaden

Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese

Antworten
ch_ris
Beiträge: 3039
Registriert: Mo 30. Nov 2015, 10:08

Digispark USB

Beitrag von ch_ris »

Die Odyssee ist leider noch nicht vorbei.
Nachdem die Kommunikation über Usb und Terminal ja nun am PC funktioniert,
hab ich's mit dem Telefon versucht. Leider kann das, ansonsten ausgezeichnete Terminal (Serial Usb Terminal)
mit der DigiUSB library (noch?) nicht sprechen.
Hab das echo Beispiel aus der DigiCDC library ausprobiert, funktioniert wunderbar.
Win10 64 reagiert aber mit allergischem Schock namens Bluescreen darauf.
soweit so schlecht, für heute bin ich erstmal satt.
Benutzeravatar
zauberkopf
Beiträge: 9523
Registriert: So 11. Aug 2013, 15:33
Wohnort: gefährliches Halbwissen

Re: Digispark USB

Beitrag von zauberkopf »

mal genauer !
Was hasst Du genau vor ?
ch_ris
Beiträge: 3039
Registriert: Mo 30. Nov 2015, 10:08

Re: Digispark USB

Beitrag von ch_ris »

PC verbindung brauch ich zum debugen
Das Handy soll dann als Bedien-gerät fungieren wenn's fertig ist.

Es gibt für die Kommunikation per Terminal mit dem Digispark zwei Möglichkeiten bzw Bibliotheken.(ohne hardware)
DigiUSB, lahm; byte für byte; Handy Terminal kann's nicht.
und DigiCDC, sobald sich das Ding am PC(win10 64) anmeldet= Bluescreen. ist wohl ein Treiberproblem so wie ich's verstanden habe.
Benutzeravatar
zauberkopf
Beiträge: 9523
Registriert: So 11. Aug 2013, 15:33
Wohnort: gefährliches Halbwissen

Re: Digispark USB

Beitrag von zauberkopf »

kannst Du timing probleme ausschließen ? die platinen werden ja in unterschiedlichen versionen angeboten..

Edit : ich hatte letztens einen sehr sonderbaren fall :
Ein neu eingerichtetes Linuxsystem war sehr instabil.
Der Verursacher : Eine USB Gambird Tastatur !
Mein Gesicht muss göttlich gewesen sein.
Denkbar ist aber auch, das irgendwas mit dem USB-Subsystem nicht stimmt.
Unter Win10 habe ich gelegentlich den effekt, das ein Bluetooth stack vom dongle abstürzt.
wenn den dann rausziehe friert alles ein.
ch_ris
Beiträge: 3039
Registriert: Mo 30. Nov 2015, 10:08

Re: Digispark USB

Beitrag von ch_ris »

Nee, kann ich nicht ausschließen.
aber wie rausfinden?
Nach dem ersten bsod hab ich auch einen zweiten riskiert, nur um Zufall schon mal auszuschließen.
bin nicht der einzige mit dem Problem, was ich so lese deutet auf "den" win10-64 Treiber.
hab's immer noch nicht geschafft mir wieder ein Linux zu holen, das wäre wohl das beste.


Davon ab, hab ich bei diesem ersten Projektchen schon zwei von den Dingern gebrickt.
Durch intensives Uploaden und/oder wechsel auf den neusten Bootloader?
nächstes mal werde ich soweit möglich erst mal auf nem arduino testen und dann portieren.
Benutzeravatar
Cyrix
Beiträge: 637
Registriert: Di 13. Aug 2013, 01:47
Wohnort: Bremen-Nord

Re: Digispark USB

Beitrag von Cyrix »

Ich hatte letztens auch Probleme mit einem Digispark, die USB Verbindung ist nur verfügbar solange der µC sich im Bootvorgang befindet, ich hatte den mit der Arduino IDE programmiert, hochladen gedrückt und dann den Digispark verbinden dann wird das Programm in einem Zeitraum von 60 Sekunden hochgeladen, danach ist wird die USB-Verbindung gekappt.
Benutzeravatar
zauberkopf
Beiträge: 9523
Registriert: So 11. Aug 2013, 15:33
Wohnort: gefährliches Halbwissen

Re: Digispark USB

Beitrag von zauberkopf »

Ich hatte letztens auch Probleme mit einem Digispark, die USB Verbindung ist nur verfügbar solange der µC sich im Bootvorgang befindet, ich hatte den mit der Arduino IDE programmiert, hochladen gedrückt und dann den Digispark verbinden dann wird das Programm in einem Zeitraum von 60 Sekunden hochgeladen, danach ist wird die USB-Verbindung gekappt.
Ja.. das ist normal.
Nee, kann ich nicht ausschließen.
aber wie rausfinden?
Du kannst das Board ja "auswählen".

Ist nur so ne Idee !
Übrigens : Gibts auch eine möglichkeit das Problem anders zu lösen :
Arduino + Bluetooth modul.
Dafür gibt es unterstützung in PocketCode.
Falls Du das nicht kennst : Das ist ne Programmierumgebung fürs Handy auf dem Handy.
Also für Leute die selbst beim scheissen gerne Programmieren.. ;-)
ch_ris
Beiträge: 3039
Registriert: Mo 30. Nov 2015, 10:08

Re: Digispark USB

Beitrag von ch_ris »

@cirix , ich hab mir den Gerätemanager offengelassen um zu prüfen wer jetzt gerade angemeldet ist oder nicht.

bin grade hierauf gestoßen:
https://nerdralph.blogspot.com/2020/02/ ... ouart.html
es baut auch, mit compiler flag "-std=c++11", bin gespannt was passiert wenn ich das uploade.
wäre auf jeden fall ressourcen-schonend.
.text 536 0
.data 24 8388704
.bss 29 8388728

Frage ist nur was man damit anfängt. ist auch quatsch bzw nützt bei dem Problem nichts.

@ zauberkopf, edit , ach so meinst du das. nee Frequenz passt. :?: 16,5mhz :?: da ist auch noch raum für fragezeichen
aber wer weiß wo da ein timing problem entstehen könnte, hauptverdächtiger muss ja der eigene code sein.

ich hab jetzt erst mal den lowcdc treiber gelöscht, beim nächsten Versuch werd ich wissen ob das den bluescreen verhindert, sobald der bootloader sich abmeldet.
nochmal edit. jawoll:
Dateianhänge
2021-01-14 11_21_24-Geräte-Manager.png
2021-01-14 11_21_24-Geräte-Manager.png (3.44 KiB) 1782 mal betrachtet
ch_ris
Beiträge: 3039
Registriert: Mo 30. Nov 2015, 10:08

Re: Digispark USB

Beitrag von ch_ris »

konnte jetzt mehrere beispiele ausprobieren.

digiusb gefällt mir besser.
scheint nicht so empfindlich zu sein wie digiCDC.
vor allem ist jederzeit eine Verbindung möglich ohne Neustart.
Benutzeravatar
zauberkopf
Beiträge: 9523
Registriert: So 11. Aug 2013, 15:33
Wohnort: gefährliches Halbwissen

Re: Digispark USB

Beitrag von zauberkopf »

Was und wie programmierst Du denn auf dem Schmierfone ?
ch_ris
Beiträge: 3039
Registriert: Mo 30. Nov 2015, 10:08

Re: Digispark USB

Beitrag von ch_ris »

Um Himmels Willen! ;) Gar nich, das fehlt mir noch.
ich nehm gern den eeprom um werte abzulegen, dann kann ich da per Terminal was konfigurieren ohne eben neu zu programmieren.
Hier jetzt eine Ladeanzeige für Moped die bei Über- oder Unterspannung warnt, bzw. die Spannungsgrenzen dafür.
und da hätte ichs gern mit dem phone gemacht weil das ding ja schon eingebaut ist.
Nu muss halt bis auf weiteres der Laptop her(halten).
Dateianhänge
IMG_20210115_104154.jpg
ch_ris
Beiträge: 3039
Registriert: Mo 30. Nov 2015, 10:08

Re: Digispark USB

Beitrag von ch_ris »

ich hab ja bereits 2 kaputt gemacht, einen heilen/neuen hatte ich noch übrig.
gestern hab ich den halben Tag damit verbracht einen Bootloader zu kompilieren und per payload zu installieren(auf dem nicht beschädigten).
einziger Unterschied ist das ich in der bootloaderconfig.h - ENTRYMODE ENTRY_EXT_RESET //ENTRY_ALWAYS- gesetzt habe,
und die aktuelle version 2.04, statt 2.02.
das ging. einmal.
ist beim an stöpseln als mirconucleus erkannt worden.
hab Software aufgespielt, beim erneuten an-stöpseln ist die sofort gestartet.
mit pin5 auf masse aber auch, heist, irgendwas funktioniert nicht.
die Frage warum, ist rhetorisch weil ich die zweite Tageshälfte damit verbracht habe eine ISP toolchain (BurnOmat/Arduino as ISP) zu basteln, was mir eh besser gefällt.
Trotzdem wär's ja lehrreich zu wissen.
Software und Bootloader(?) sind jetzt auf allen dreien drauf.
Software läuft, Bootloader nicht.
Die fuses sind teilw. unterschiedlich.
bei allen ist SELFPRGEN=0, SPIEN=0, CKSELx=0001,RSTDISBL=1
:?:
wenn ich ab jetzt per ISP programmiere brauche ich ja den Bootloader nicht mehr.
Falls der noch drauf ist, wie werde ich den los?
edit.wird überschrieben
ch_ris
Beiträge: 3039
Registriert: Mo 30. Nov 2015, 10:08

Re: Digispark USB

Beitrag von ch_ris »

ch_ris hat geschrieben: Do 14. Jan 2021, 09:50 bin grade hierauf gestoßen:
https://nerdralph.blogspot.com/2020/02/ ... ouart.html
es baut auch, mit compiler flag "-std=c++11", bin gespannt was passiert wenn ich das uploade.
wäre auf jeden fall ressourcen-schonend.
.text 536 0
.data 24 8388704
.bss 29 8388728
Was haltet ihr denn davon:
Ein Adapterkabel mit Nano/ch340. funktioniert an Handy und Pc.
Dann wäre diese wackelige -Software Usb Seriell- Geschichte vom Tisch.
Mit Levelshifter könnte man das noch für was anders benutzen.
K-Line vielleicht? oder 3v zeug.
ch_ris
Beiträge: 3039
Registriert: Mo 30. Nov 2015, 10:08

Re: Digispark USB

Beitrag von ch_ris »

ich halte das mal fest für die Nachwelt, wer PicoUART verwenden möchte, in Zusammenhang mit einem Arduino als usb2ttl:

in der pu_config.h:

Code: Alles auswählen

#ifndef PU_BAUD_RATE
#define PU_BAUD_RATE 9600L      //115200      // default baud rate
#endif

// port and bit for Tx and Rx - can be same
#define PU_TX B,3   //0
#define PU_RX B,4    //1
TX des Arduino muss an DATA- bzw. USB-2

Damit funktionieren auf jeden Fall die Beispiele schon mal.
edit: Board: 8mhz
ch_ris
Beiträge: 3039
Registriert: Mo 30. Nov 2015, 10:08

Re: Digispark USB

Beitrag von ch_ris »

Bisschen Zeit ist vergangen, das Endprodukt LadekontrollLeuchte ist eingebaut.
Der Tacho-Korregierer liegt bereit...
meine Zusammenfassung:
Software USB ist Mist.
Daraus folgt, ich flashe per ISP, bootloader fällt weg, serielle Verbindung mit USB-TTL.
Bleibt als einziger Vorteil der USB Stecker an der Platine, naja, ein kabelchen+Stecker tät's auch.
Dann wäre eine schmalere Bauform möglich/schön die komplett in einem Schrumpfschlauch verschwindet.
Also eigentlich ist mein Fazit, das ganze Digispark Konzept ist Mist.
das was ich an kleineren boards finde hat allerdings keine Spannungsversorgung onboard.
Jannyboy
Beiträge: 1412
Registriert: So 11. Aug 2013, 14:49
Wohnort: Kreis Augsburg

Re: Digispark USB

Beitrag von Jannyboy »

Ich verwende für solche Projekte ein PIC16F1455.

Der kann alles was man so braucht und ist die USB-Spax-Schraube schlecht hin. Wenn es mehr Bumms an Rechenpower braucht wäre der STM32F103 eine Option.

Grüße Jan
Benutzeravatar
Fritzler
Beiträge: 12597
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Digispark USB

Beitrag von Fritzler »

Die AVRs sind mit SoftUSB sehr gut ausgelastet, da geht nicht mehr viel.
Wenn deine Software dann noch gut was braucht ist Schicht im Schacht.

Ich hatte das mal genutzt als Extratastatur mit ISM Funk, viel mehr geht nicht.

Mit Uraltpics sollt man eigentlich nicht mehr neu anfangen.
Als Bastler will man nicht günstig für eine Großsserie einkaufen, sondern seine Nerven behalten :lol:

Beim STM32F103 muss man aufpassen.
Den Chinesen is wohl die günstige Quelle von F103 ausgegangen und die Bluepills enthalten fast nurnoch Clone und die sind nicht immer Binärkompatibel.

Wenn du dich allerdings eher mit AVRs auskennst und nicht umsteigen möchtest, dann ist ein USB-UART Brückenchip sicherlich die bessere Wahl.
ch_ris
Beiträge: 3039
Registriert: Mo 30. Nov 2015, 10:08

Re: Digispark USB

Beitrag von ch_ris »

naja, auskennen... tu ich mich mit gar nix.
um mal jetzt bei dem "tiny85 konzept" zu bleiben
so würde ich mir das als Bastler wünschen:
2021-07-03 09_39_31-_endtopp.svg - Inkscape.png
2021-07-03 09_39_31-_endtopp.svg - Inkscape.png (10.26 KiB) 1117 mal betrachtet
1x4cm, automotiv regler, bisschen Platz für KleinZeug auf der rechten Seite.

sowas selber zu designen seh ich mich außer Stande.
wenn's da eine schöne fertige Lösung gäbe mit egal was , würde ich sofort umsteigen.
Benutzeravatar
gafu
Beiträge: 6388
Registriert: Mi 14. Aug 2013, 20:56
Wohnort: nahe Jena
Kontaktdaten:

Re: Digispark USB

Beitrag von gafu »

an welchen spannungsregler dachtest du denn dabei?
für kleinleistung ist vielleicht auch ein analoger mit niedrigem Iq (leerlaufstromaufnahme) denkbar, und lasten (relais) dann über transistoren direkt mit boardspannung befeuern. Dann kann das immer an der batterie bleiben und muss nicht abgeschaltet werden.

So ein einfaches board bekommt man doch bestimmt noch in single-layer hin, und kann das zu hause produzieren :)
ch_ris
Beiträge: 3039
Registriert: Mo 30. Nov 2015, 10:08

Re: Digispark USB

Beitrag von ch_ris »

Infineon hat ja zb duzende verschiedene im katalog.
die nur teilweise für direkte Verbindung uc- bordnetz gedacht sind. hab ich aber nicht gefunden und einige röhm bd irgendwas5v1A geordert.

selbermachen...tja, wird vielleicht mal zeit :?
ch_ris
Beiträge: 3039
Registriert: Mo 30. Nov 2015, 10:08

Re: Digispark USB

Beitrag von ch_ris »

gafu hat geschrieben: Sa 3. Jul 2021, 12:54 So ein einfaches board bekommt man doch bestimmt noch in single-layer hin, und kann das zu hause produzieren :)
ich arbeite ja dran :)
das ist auch nötig, merk ich gerade:
VUSB ist ja alles Mist imo.
PicoUART funktioniert hinreichend prima, beißt sich aber mit PinChangeInterupt, das brauche ich aber.
Der (SpenceKonde)ATTinyCore hat Uart drin, braucht aber zwingend AIN0/1 was auf P0/1 liegt.
usb+- bzw. rxtx liegt beim Digispark aber auf P3/4 :roll:
ch_ris
Beiträge: 3039
Registriert: Mo 30. Nov 2015, 10:08

Re: Digispark USB

Beitrag von ch_ris »

es spricht! verständlich!
na dann kanns eine gang-Anzeige werden.
Dateianhänge
noex_102.jpg
Name vergessen
Beiträge: 3261
Registriert: Mo 12. Aug 2013, 19:47

Re: Digispark USB

Beitrag von Name vergessen »

ch_ris hat geschrieben: Sa 3. Jul 2021, 07:29 Software USB ist Mist.
Daraus folgt, ich flashe per ISP, bootloader fällt weg, serielle Verbindung mit USB-TTL.
Bleibt als einziger Vorteil der USB Stecker an der Platine, naja, ein kabelchen+Stecker tät's auch.
Und so toll ist der Stecker auch nicht. Wie Du schon schriebst, ist die Platine dafür zu breit, daher ist der Stecker zu nah am Board, um sinnvoll in einem Gehäuse eingebaut zu werden, ohne, daß die aufgesteckte Buchse rausrutscht. Und man braucht zum Anschluß ein Verlängerungskabel, kein stinknormales USB-B. Also auch eher ziemlicher Murks.

Der Bootloader zerlegt sich offenbar auch von selbst, zumindest bei meinem. Ich hatte damit einen Fernbedienungsempfänger gebaut, nach nur 2 Wochen Benutzung nur noch Geblinke und "device descriptor read/64, error -84", "device not accepting address 5, error -71", "unable to enumerate USB device".

Offenbar ist der Bootloader eher zum Testen, weniger zum Drinlassen bei Normalbetrieb gedacht.
ch_ris
Beiträge: 3039
Registriert: Mo 30. Nov 2015, 10:08

Re: Digispark USB

Beitrag von ch_ris »

Ja, hatte ich auch mehrfach. Ich werde mir von den Dingern keine mehr holen.
Die Frage ist nur...was mit denen die da sind?
R1 und R2 entfernen, und die Usb Kontakte nach Gusto...
(da ist noch Platz für einen Vorwiderstand, und dann nach P0, P1 legen damit der Attinycore funktioniert. werd ich machen)

edit : den rest (r3,r5, d1,d2,led) auch rausgeschmissen und so verdrahtet:
noex_103.jpg
mit einem nano als wandler geht's nicht. Mit einem uart adapter wohl.
das war etwas hakelig bis ich das darauf eingrenzen konnte.
vielleicht sind die widerstände zu groß.
Dateianhänge
IMG_20211122_112429.jpg
Strip 1.png
Zuletzt geändert von ch_ris am Mo 22. Nov 2021, 17:03, insgesamt 3-mal geändert.
Benutzeravatar
zauberkopf
Beiträge: 9523
Registriert: So 11. Aug 2013, 15:33
Wohnort: gefährliches Halbwissen

Re: Digispark USB

Beitrag von zauberkopf »

So richtig kann ich das nicht verstehen :
Bei mir hat sich noch nix zerlegt.

Ich bin nur hingegangen, und habe an den "USB-Stecker" später ein Kabel gelötet.
Ich fand das ganze konzept eigentlich ziemlich gut. Gut.. das der Bootloader immer davor laufen muss ist mist.
Aber hey, das ist ein billigster 8 Bit Rechner.

Ich gehe aber auch davon weg.
Langsam aber sicher, mache ich nur noch RP2040 also Rasperry Pico mit Circuit python.
Die Dinger kosten fast auch nix, können aber um längen mehr.
Ich brauch z.b. keine IDE. Kann direkt den code ändern, abspeichern, und sofort wird das programm mit dem geänderten Code gestartet.
Das ist.. Brutal.
Name vergessen
Beiträge: 3261
Registriert: Mo 12. Aug 2013, 19:47

Re: Digispark USB

Beitrag von Name vergessen »

Tja nun, vielleicht war mein Bootloader ja buggy, oder der Chip Mist, kann ja ein Chinukkenfake aus Ausschußchips gewesen sein. Oder es lag am Programm, denn ich hatte dieses Adafruit USB HID Device (Maus+Keyboard) genommen und das hatte das Problem, daß es nicht neu initialisierte. Also lief der Bootloader, das Device wird erkannt, dann endet der Loader, aber der HID-Code macht keine neue Aushandlung und dann läuft die Gurke nicht, weil der USB Stack noch immer vom Bootloader ausgeht. Das passiert aber nur bei Kaltstart des Rechners mit angeschlossenem Device, weil dann durch den Bootvorgang das Timing nicht paßt. Stöpselt man es im Betrieb ein, läuft es rund.

Um dem zu begegnen habe ich im Code dann den Watchdog eingeschaltet, der bei USB Kommunikation zurückgesetzt wird, denn bei dem Kaltstartproblem gibt es keine Kommunikation. Hat zuverlässig funktioniert, aber evtl. war es ja der WD-Reset, der sich mit dem Rest gebissen hat? Naja, wenn ich mal Muße habe, mache ich das per ISP neu und dann sollte das Problem erledigt sein.
Benutzeravatar
zauberkopf
Beiträge: 9523
Registriert: So 11. Aug 2013, 15:33
Wohnort: gefährliches Halbwissen

Re: Digispark USB

Beitrag von zauberkopf »

Okay... das ist mir noch nicht aufgefallen.
Mein "lootdevice 1.0" basierte ja auf dem Arduino, und ich habe davon, schon rund 6 oder 7 für Freunde gebaut.
Blöd war halt nur, das die für eine Programmänderung auch die Arduino-Umgebung herunterladen mussten.
+ die speziellen Ada-Fruit treiber..

Der Rasperry Pico kann aber deutlich mehr. Sein USB device bietet ein Laufwerk u.A. um den Code zu ändern, ich kann Mausemulation und Keyboard Emulation GLEICHZEITIG laufen lassen.
Antworten