Forum: Mikrocontroller und Digitale Elektronik Digispark führt Sketch nicht automatisch aus


von Benjamin Z. (mr_digi)


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....

von Stefan F. (Gast)


Lesenswert?

Da sollte eigentlich so funktionieren, wie du es erwartest.

von Benjamin Z. (mr_digi)


Lesenswert?

Kann es vlt. daran liegen, dass evtl kein Bootloader vorinstalliert ist?

: Bearbeitet durch User
von Info (Gast)


Lesenswert?

Dein Programm sollte nach dem Bootloader laufen, der aber erstmal 6 s 
lang auf Befehle über USB wartet...

von Stefan F. (Gast)


Lesenswert?

Benjamin Z. schrieb:
> Kann es vlt. daran liegen, dass evtl kein Bootloader vorinstalliert ist?

Wie kriegt er ohne Bootloader sein Programm hochgeladen?

von Benjamin Z. (mr_digi)


Lesenswert?

Stefanus F. schrieb:
> Benjamin Z. schrieb:
>> Kann es vlt. daran liegen, dass evtl kein Bootloader vorinstalliert ist?
>
> Wie kriegt er ohne Bootloader sein Programm hochgeladen?

Danke für die Gegenfrage. Hilft ungemein weiter....

Meine Frage ist, warum der Digispark das Sketch nicht automatisch 
ausführt...!!!!!!!!!!!

von Einer K. (Gast)


Lesenswert?

Benjamin Z. schrieb:
> Meine Frage ist, warum der Digispark das Sketch nicht automatisch
> ausführt...!!!!!!!!!!!

Das kann ich dir nicht sagen.

Hast du die 6 bis 10 Sekunden abgewartet?

von Benjamin Z. (mr_digi)


Lesenswert?

Ja, das habe ich. Länger sogar...

von Stefan F. (Gast)


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.

von Benjamin Z. (mr_digi)


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
}

von Benjamin Z. (mr_digi)


Lesenswert?

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

von Stefan F. (Gast)


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?

von Benjamin Z. (mr_digi)


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?

von Einer K. (Gast)


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...

von Dumpfbacke (Gast)


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.

von Benjamin Z. (mr_digi)


Lesenswert?

Dumpfbacke schrieb:


> Versucht doch mal, den Digispark an einer Powerbank zu hängen. Also ganz
> ohne Rechner.

Das habe ich gemacht und das Problem besteht weiterhin...
Kann es auch sein, dass ich die bei Amazon gekauft habe und die Teile 
einfach nur Schrott sind?

von Stefan F. (Gast)


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.

von Al. K. (alterknacker)


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.

: Bearbeitet durch User
von Robert R. (rubberduck09)


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).

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.