Digispark führt Sketch nicht automatisch aus

OP #5998037
Lesenswert?

Hallo Leute,

ich habe mir aus Spaß an der Freude mal einen Digispark gekauft.
Mit Programmieren habe ich ein wenig Erfahrung, nur noch kein bisschen 
mit der ArduinoIDE.

Also, ich habe folgendes Problem:

Ich habe z.B. ein kleines Testsketch zur Überprüfung der 
Funktionsüberprüfung geschrieben (blinkende LED). Habe das Sketch wie 
angewiesen übertragen und es funktioniert auch erstmal. Die onboard-LED 
blinkt. Wenn ich jetzt aber den Digispark herausziehe und dann wieder 
einstecke, wird das Sketch nicht automatisch ausgeführt.

Sollen auf dem Digispark gespeicherte Sketchs nicht automatisch 
ausgeführt werden, wenn man ihn an einen beliebigen Rechner steckt?
Oder habe ich da was falsch verstanden?

Vielen Dank für eure konstruktiven Rückmeldungen....
Gast #5998065
Lesenswert?

Benjamin Z. schrieb:
> Danke für die Gegenfrage. Hilft ungemein weiter....

Ich formuliere es anders: Hat dein Digispark einen Bootloader 
installiert?

a) ja, wenn du ihn einfach nur in eine USB buchse deines PC stecken 
musstet - ohne weitere Verbindungen
b) nein, wenn du zum Flashen einen ISP Programmieradapter verwendet hast

Also a oder b? Davon hängt die weitere Vorgehensweise ab.
OP #5998066
Lesenswert?

Sowas wie hier wird doch automatisch ausgeführt, wenn man diese 6-10 
sek. wartet...:

void setup() {
  // Initialisierung der digitalen PINs
  pinMode(0, OUTPUT);
}

void loop() {
  digitalWrite(0, HIGH);  //schaltet die LED ein
  digitalWrite(1, HIGH);
  delay(100);            //wartet 100ms
  digitalWrite(0, LOW);   //schaltet die LED aus
  digitalWrite(1, LOW);
  delay(100);            //wartet 100ms
}
Gast #5998073
Lesenswert?

> Ich habe ihn einfach in die USB Buchse meines Laptops gesteckt.

Also mit Bootloader, was "Info" und "Arduino Fanboy D" bestätigt.

Benjamin Z. schrieb:
> Sowas wie hier wird doch automatisch ausgeführt

Erwartest du das oder funktioniert es tatsächlich. Mit ist jetzt nicht 
klar, was du mit deinem Beitrag aussagen möchtest.

Wenn es funktioniert, dann hat sich dein Problem wohl in Luft aufgelöst.

Lag es jetzt nur an den 6 Sekunden oder hast du das Programm verändert?
OP #5998077
Lesenswert?

Mein Problem ist, dass es nur funktioniert, wenn ich es über die IDE 
hochlade. Entferne ich den Digispark aus der USB-Buchse und stecke ihn 
wieder hinein, wird das o.g. Sketch nicht automatisch ausgeführt...

Meine Frage war, ob Sketches, die schon einmal auf den Digispark 
hochgeladen wurden, beim erneuten einstecken in einen beliebigen PC, 
Laptop, etc. denn  automatisch ausgeführt werden, oder nicht?
Gast #5998079
Lesenswert?

Benjamin Z. schrieb:
> void setup() {
>   // Initialisierung der digitalen PINs
>   pinMode(0, OUTPUT);
> }

Du verwendest 2 Pins, setzt aber nur einen auf OUTPUT
Initialisiere beide Pins.

Und ja, manche haben die Onboard LED auf Pin 1

Benjamin Z. schrieb:
> Meine Frage war, ob Sketches, die schon einmal auf den Digispark
> hochgeladen wurden, beim erneuten einstecken in einen beliebigen PC,
> Laptop, etc. denn  automatisch ausgeführt werden, oder nicht?

Ja, werden sie!

Und, wenn nicht, dann läuft was falsch.
KA, was...
Gast #5998095
Lesenswert?

Beim Digispark handelt es sich ja nur um einen ATtiny85.
Dieser hat einen Bootloader drauf, damit das Programm auch ohne 
Programmiergerät geschrieben werden kann.

Ein Sketch wird compiliert und anschließend im Flash des Tiny abgelegt.
Es wird nach einer Spannungsunterbrechung nichts vergessen.

Nach dem Herstellen der Spannungsversorgung sollte zuerst der Bootloader 
und anschließend das eigentliche Programm (compilierter Sketch) 
ausgeführt werden.

Passiert das nicht, können mehrer Fehler vorliegen:
1. Der Tiny bekommt keinen sauberen Reset durch das Einstecken.
2. Der Bootloader startet das Programm nicht.
3. Der Bootloader hat das Programm nach dem ersten Test zerschossen.
4. Du hast ein anderes Programm geschrieben, was halt nicht blinkt.
5. ...

Versucht doch mal, den Digispark an einer Powerbank zu hängen. Also ganz 
ohne Rechner.
Gast #5998111
Lesenswert?

Benjamin Z. schrieb:
> Kann es auch sein, dass ich die bei Amazon gekauft habe

Kann sein, das weißt du eher, als wir.

> und die Teile einfach nur Schrott sind?

Das halte ich für möglich, aber sehr unwahrscheinlich. Denn der 
Bootloader funktioniert ja, also ist das Board prinzipiell 
funktionsfähig.
#5999369
Lesenswert?

Habe gerade ein Digispark am PC.
Das Programm übernommen hochgeladen.
Hier muss beachtet werden das der Digispark erst angesteckt wird wenn
das Compilieren fertig ist und das Hochladen beginnt.
Wenn der Digispark gleich angesteckzt wird geht alles genauso,
Anzeige fertig hochgeladen ,...abber es ist nicht so.

..bei mir läuft das Programm auch nach wieder anstecken nach ca.4-5 sec.
#6113808
Lesenswert?

Das beschriebene Problem hatte ich auch.
Geholfen hat schlussendlich nur den Bootloader zu aktualisieren.
Es ist ja ein einfacher 'micronucleus' bootloader.

Ich hab mir den mal selber kompiliert aber mit der Änderung dass der nur 
dann in den Bootloader geht wenn zum Power-On P0 mit GND verbunden ist:

https://www.reschpara.de/opensource:arduino#alternativer_bootloader_fuer_digispark_attiny85_boards

Ein Bootloader mit 'normalem' bekanntem Verhalten (5-6 Sekunden 
Bootloader, danach in Sketch) gibts hier:
https://github.com/micronucleus/micronucleus/blob/master/upgrade/releases/upgrade-t85_default.hex

Der Upload geht wie auf meiner Seite auch beschrieben.

Der Trick an der Sache ist dass der bootloader hier als eine art 
trojanisches Pferd in den Attiny85 kommt. Es wird in den Sketch Bereich 
geladen. Wenns dann anläuft packt der Sketch den enthaltenen Boot-Code 
an die passende Stelle und tötet sich danach selbst (um nicht bei jedem 
Power-On neu zu flashen).

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