meine Erfahrung mit Digispark aus China

Begonnen von KölnSolar, 09 Oktober 2016, 17:47:54

Vorheriges Thema - Nächstes Thema

KölnSolar

ich wollte in die wunderbare Welt des Bastelns mit µ-Computern aufsteigen und hab mich erst einmal für einen ATtiny85 entschieden. Nachdem ich verstanden hatte, dass es zur Programmierung einen ISP benötigt, war mir der Digispark aufgefallen. Der bringt ja den ISP in Form eines Bootloaders und USB-Anschluss direkt mit. Und dann fand ich den digispark bei einem chinesischen Anbieter mit 8Pin-Sockel für den ATtinyX5PU20. Prima dachte ich, gleich 2 Fliegen mit einer Klappe, denn die µC sollen ja recht empfindlich sein und schnell kaputt gehen. Dann kann man sie ja einfach austauschen und ohne ISP direkt am Windows-Rechner anschließen.
Stundenlang hab ich das probiert. Es klappte einfach nicht. Unbekanntes USB-device. Bis ich dann auf den Trichter kam, dass der bootloader im Original-Digispark auf dem ATtiny geflashed ist und nicht auf der Platine  ??? Und meine µC sind ja jungfreulich  >:(
Da ich trotz fehlendem ISP nicht aufgeben wollte, hab ich gesucht und die Möglichkeit gefunden mit dem Rpi zu flashen. Das hat eigentlich recht problemlos funktioniert und siehe da, mit geflashtem micronucleus-bootloader wird der Digispark  jetzt am Windows-PC erkannt, wo ich nun mit Arduino IDE den ATtiny85 flashen kann.

Nur für den Fall, dass jemand die Teile hat und sich Stunden der Verzweiflung ersparen möchte.....  ;)
Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

ArduPino

#1
Habe selber diese Digispark, auch nicht die Original.
Erkennt man im übrigen daran, das der Reset Pin beim original Digispark als eigener Pin konfiguriert ist. Resetfunktion ist damit abgeschaltet.
Das einzige was man machen muss, ist zuerst mal einen "Digistump Driver" zu installieren.
Glaube den habe ich direkt von der Digispark Internetseite.
Danach öffnet man die Arduino IDE 1.6.6 und dort im Menü Datei-> Voreinstellungen
Ziemlich am Ende findet sich eine Zeile "Zusätzliche Boardverwalter URLs"
Dort trägt man ein :
http://digistump.com/package_digistump_index.json
Dann unter Werkzeuge->Board->Boardverwalter nach Digistump suchen, installieren und event. die IDE neu starten.
Damit war es das eigentlich. Einen Bootloader brennen braucht man eigentlich nicht.
Egal was man da einstellt. Glaube auch mal gelesen zu haben, das man das nicht soll, irgend was war da  :o

In der IDE dann auf "Hochladen" drücken, Sketch wird kompiliert und erst dann den Digispark an den USB anschließen !
Die haben einen speziellen Bootloader der 2 Sekunden wartet, sobald dieser mit Strom versorgt wird. Kommt kein Upload, wird das normale Programm abgearbeitet.
Anders als bei z.B. Attinys braucht man beim Wechsel der Mhz nichts anderes zu machen als z.B. "Digispark 8Mhz no USB" auswählen, Hochladen drücken, einstecken und fertig.
Möchte man danach auf 16Mhz laufen lassen, das gleiche, eben mit "Digispark (default) 16,5Mhz"
Damit ist es z.B. möglich, Tastaturcodes zu senden, praktisch als Serielle Ausgabe Ersatz.
Einfach einen Texteditor starten, ins Editorfenster klicken und den Digispark starten.
Der rasselt dann alles da rein :)

Ganz wichtig ist noch zu sagen, das man Pin 3 und 4 nicht beschalten darf (soll) wenn man diesen am PC per USB anschließt, egal ob zum flashen oder zur Stromversorgung !
Auch sind die Pins etwas anders, da z.B. Dioden eingebaut sind.
Habe mal ein Bild gemacht, vielleicht hilft das jemandem.

Das Bild ist aus dem Netz, die Bezeichnungen PWM/LED AnalogIn und ganz unten das mit den Dioden ist von mir eingefügt worden.
Hoffe das geht so in Ordnung.

KölnSolar

ZitatEinen Bootloader brennen braucht man eigentlich nicht.
Bei Deinem Digi nicht. Der attiny ist ja schon verbaut und der bootloader geflashed Meine haben aber einen 8Pin-Dim-Sockel zur Aufnahme von jungfräulichen attinys und da muss der bootloader erst geflashed werden  >:(
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

juergs

#3
Ältere Arduino-IDE erzeugt zwei Hex-Files. Eines mit Bootloader und eines ohne. (Vorteilhaft für ISP)  (;-)

<EDIT> Meine neuere Arduino-IDE-Version zeigt diese Verhalten nicht mehr. Build-TMP-Verzeichnis ist jetzt "aufgeräumter" und enthält nur den aktuell compilierten Sketch.
Alte build-tmp-Verzeichnisse werden offensichtlich jetzt gelöscht. (WINDOWS + V1.6.9) und es wird nur das File ohne Bootloader erzeugt.</EDIT>

Auch noch mein Hinweis auf die "empfindliche" USB-Schutz-Schottky-Diode MBR0520LT (Sicherung), beim Betrieb über USB-Hub mit mehr als 0.5A Stromversorgung.

ZitatAfter setting up the ide, it is straight forward to upload the sketches to attiny85 on digistump. Only difference here is , you need to connect the device to usb port after you have pressed the sketch upload button!

quickstart
schematic

Grüße,
Jürgen

KölnSolar

#4
Zitat....mit dem Rpi zu flashen. Das hat eigentlich recht problemlos funktioniert
Bis ich gestern mal wieder "spielen" und jungfräuliche attiny85 mit dem bootloader beglücken wollte. Aber dann beim flashen mit avrdude: AVR device not responding. China-Chip kaputt, also den nächsten. Das selbe Problem. Und mit Option -F sah ich dann, dass die device signature feherhaft ist. Was ist das ? Problem der Chinaware ? Nein, auch der Dritte mit fehlerhafter signature. und dabei stellte ich fest, dass sich die angezeigte signature auch noch ständig veränderte ?!?!?
Irgendwann bin ich dann die Anleitung Schritt für Schritt durchgegangen. Beim modprobe spi_bcm2708 wurde ich stutzig. Wieso geht das nicht ? Ahh, weil die neuere Version spi_bcm2835 geladen ist. Aber das war doch vor ein paar Wochen noch anders. Da hatte die Anltg. zu 100% gepasst. Also hab ich mir eine zusätzliche Zeile in der /boot/config.txt laden: dtoverlay=spi-bcm2708 eingebaut. Man glaubt es nicht, danach gings. Kein Chip kaputt. Die wundersamen Welten...
Schönes Wochenende
Markus

Edit: Ach so, für die, denen es nicht klar ist: ich hatte zwischenzeitlich dem Rpi ein Update gegönnt  >:(
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt


ArduPino

Zitat von: KölnSolar am 14 Oktober 2016, 21:57:55
Bei Deinem Digi nicht. Der attiny ist ja schon verbaut und der bootloader geflashed Meine haben aber einen 8Pin-Dim-Sockel zur Aufnahme von jungfräulichen attinys und da muss der bootloader erst geflashed werden  >:(

Ach so, jetzt versteh ich das :D

KölnSolar

soooo, am WE mal wieder mein Bastelprojekt voran bringen wollen. Es war mal wieder zum verzweifeln. Sa. war endlich mein Billig-433-Modul eingetroffen. Das muss jetzt aber getestet werden  ;D Erst einen Defekt des Funkmoduls im Verdacht, hab ich es fast in die Tonne gehauen. Ihr kennt das ja beim Funk: Man sieht so schön, was geht und was nicht  ;D Als ich nicht mehr weiter wusste, habe ich doch einfach mal ein .hex aus der IDE erzeugt, auf den Rpi geschoben und dort geflashed. Und plötzlich funkte es(der CUL empfing was)  :P Auch das 2. Modul und auch 2 Sender aus alten Temp-Aussensensoren  funktionierten problemlos :o Mir fiel auf, dass eine LED auf dem Digi nun flackerte, während sie zuvor(IDE geflashed) beim senden dauerleuchtete. Definitiv ein Symptom erkannt :) Tja, und die Ursache ? Das falsche Board in der IDE gewählt 8) Funktionierten Einfach-Sketches wie "LED blinken lassen" problemlos mit "Digispark  (8mhz - no usb), so stellte sich das "flackern" erst mit Auswahl des Boards "Digispark (default - 16,5 Mhz)" ein. Ja nee, is klar: 16,5 MHz ist logisch, wenn man die Fuses auf 8 MHz internal eingestellt hat ? ! ? ! ?
Egal, damit funktioniert endlich meine "Infrastruktur"  zum Kompilieren und Flashen :) WE kaputt  >:(
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

juergs

#8
Was meinst Du mit "WE kaputt" ?


Hier die ATtiny-FuseSettings nochmal explizit für 8+16.5 MHz:
https://forum.fhem.de/index.php/topic,52755.msg517158.html#msg517158

KölnSolar

RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

juergs