Neuling bittet um Hilfe - ATTiny 45 programmieren

Hallo,

bei der Suche nach Möglichkeiten zur Realisierung von "belebten Modellbahnszenen" bin ich auf die Lösung von Herbert, den dazugehörigen Sketch und die entsprechende Diskussion hier im Forum gestoßen.

Ich habe versucht mich zu belesen und auch schon erste Versuche mit meinem Arduino Uno unternommen.

Installiert ist die Version 1.8.1 der Arduino Software auf einem Win10 Pro 64 Bit System. Schnittstelle zum Arduino Uno ist Com3 als Bord ist Arduino Uno/ ausgewählt.

Über Datei/Öffnen habe ich den Sketch "belebtes_Haus_mit_TV_fuer_Arduino" geöffnet und anschließend auf meinen Arduino Uno übertragen. LEDs und Vorwiderstände verkabelt und mit
dem Arduino verbunden und es funktionierte.

Zwischenzeitlich habe ich mir ein paar ATTiny 45-20 PU besorgt, mit dem Ziel, den Sketch "belebtes_Haus_mit_TV_Attiny" auf die "Käfer" zu bringen.

An dieser Stelle nun stoße ich an meine Grenzen. Entsprechende, im Netz gefundene Infos sind älteren Datums und verlinkte Seiten laufen ins Leere oder existieren nicht mehr.

Auf github.com habe ich eine Datei "ATTinyCore-master.zip" gefunden, das Archiv entpackt und den enthaltene Ordner (ATTinyCore-master) in mein Verzeichnis C/Users/"Name"/Arduino/hardware/ kopiert. In der Software ist unter Datei/Voreinstellungen/ als Sketchbook Speicherort C/Users/"Name"/Arduino/ als Pfad eingetragen.

Nach dem Neustart der Arduino IDE finde ich unter Werkzeuge/Board/ Einträge zu ATTiny.

Ab dieser Stelle weiß ich nicht mehr weiter.

Im Netz gefundene Anleitungen sind, wie bereits erwähnt, älteren Datums, nutzen eine andere Software und sind zum Teil sogar widersprüchlich in der Reihenfolge der auszuführenden Schritte.

Von daher ist es mir bisher nicht gelungen einen ATTiny zu beschreiben.

Es wäre sehr nett, wenn jemand von den Profis hier im Forum einem ganz neuen Neuling Hilfestellung geben könnte.

Auch wenn es älter ist, es funktioniert:

Arduino und ATtiny45/85 mit ArduinoISP

Ich schließe mich HotSystems' Aussage an, ergänze aber noch um nachfolgendes Bild, was ich für mich selbst immer wieder gerne einsetze. Falls man diese Winzlinge mit Quarz betreiben möchte sollte man beachten, dass normalerweise nur noch 3 I/O-Pins zur Verfügung stehen. Hier hilft der Einsatz von I²C, damit konnte ich sogar am AT Tiny 85 ein LCD-Display und eine 4x4 Keyboard-Matrix in Betrieb nehmen. Für Modellbau-Anwendungen bieten sich also sehr viele Möglichkeiten damit.
LG, Rudi

Danke für die schnelle Reaktion. HotSystems, die Seite hatte ich bisher noch nicht gefunden.

Ich habe nun meine IDE 1.8.1 gelöscht und die IDE 1.6.4 installiert.

Die Hardware-Support Dateien für die Arduino IDE, Version 1.6.1. runtergeladen, entpackt und in den angegebenen Ordner kopiert.

Alsnächster Schritt soll der Arduino (auf Port COM3) als ISP programmiert werden. Ich habe das ArduinoISP Beispiel geöffnet und versucht es hochzuladen.

Der Vorgang endet mit folgender Fehlermeldung:

Arduino: 1.6.4 (Windows 8.1), Platine: "Arduino Uno"

"Der Sketch verwendet 4.884 Bytes (15%) des Programmspeicherplatzes. Das Maximum sind 32.256 Bytes.

Globale Variablen verwenden 472 Bytes (23%) des dynamischen Speichers, 1.576 Bytes für lokale Variablen verbleiben. Das Maximum sind 2.048 Bytes.

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x72

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x72

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x72

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x72

avrdude: stk500_recv(): programmer is not responding

Probleme beim Hochladen auf die Platine. Hilfestellung dazu unter http://www.arduino.cc/en/Guide/Troubleshooting#upload .

avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x72

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x72

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x72

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x72

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x72

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x72

Dieser Report hätte mehr Informationen mit
"Ausführliche Ausgabe während der Kompilierung"
aktiviert in Datei > Einstellungen"

???

Als letztes steht, was du machen sollst. Hast du es gemacht ?

Du musst den Sketch ganz normal auf den Uno hochladen.
Evtl. defektes USB-Kabel oder anderen USB-Port verwenden.

Das hätte auch mit der Version 1.8.1 funktionieren müssen, warum gerade V 1.6.4 ?

Die 1.6.4 habe ich installiert um nach genau dem Beispiel in dem Link verfahren zu können.

Unter Voreinstellungen habe ich nun den Haken bei "Ausführliche Ausgabe bei Kompilierung" gesetzt, den USB-Port und das Kabel gewechselt und erneut versucht den Sketch auf den Uno zu laden.

Ergebnis, folgende Fehlermeldung:

Arduino: 1.6.4 (Windows 8.1), Platine: "Arduino Uno"

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10604 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\ArduinoISP.cpp -o C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\ArduinoISP.cpp.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\hooks.c.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\WInterrupts.c.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\wiring.c.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\wiring_analog.c.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\wiring_digital.c.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\wiring_pulse.c.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\wiring_shift.c.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\abi.cpp.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\CDC.cpp.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\HardwareSerial.cpp.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\HardwareSerial0.cpp.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\HardwareSerial1.cpp.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\HardwareSerial2.cpp.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\HardwareSerial3.cpp.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\HID.cpp.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\IPAddress.cpp.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\main.cpp.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\new.cpp.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\Print.cpp.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\Stream.cpp.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\Tone.cpp.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\USBCore.cpp.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\WMath.cpp.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\WString.cpp.o

Verwende die zuvor kompilierte Datei: C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\core.a

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc -w -Os -Wl,--gc-sections -mmcu=atmega328p -o C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp/ArduinoISP.cpp.elf C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp\ArduinoISP.cpp.o C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp/core.a -LC:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp -lm

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-objcopy -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp/ArduinoISP.cpp.elf C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp/ArduinoISP.cpp.eep

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-objcopy -O ihex -R .eeprom C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp/ArduinoISP.cpp.elf C:\Users\Uli\AppData\Local\Temp\build5714430925113664694.tmp/ArduinoISP.cpp.hex

Der Sketch verwendet 4.884 Bytes (15%) des Programmspeicherplatzes. Das Maximum sind 32.256 Bytes.

Globale Variablen verwenden 472 Bytes (23%) des dynamischen Speichers, 1.576 Bytes für lokale Variablen verbleiben. Das Maximum sind 2.048 Bytes.

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x09

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x09

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x09

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x09

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x09

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x09

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x09

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x09

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x09

Probleme beim Hochladen auf die Platine. Hilfestellung dazu unter http://www.arduino.cc/en/Guide/Troubleshooting#upload .

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x09

Wie sind deine Einstellungen in der IDE.
Du darfst nur "Sketch hochladen" klicken, oder die entsprechende Schaltfläche.

Hast du mal überprüft ob der korrekte Port eingestellt ist?
Sieht nicht danach aus.

kannst du aus den Beispielen den Blink Sketch hochladen ?
Mach noch einen Haken bei ausfühliche Ausgabe während Hochladen.
Ich vermute mal du versuchst den Sketch mit Programmer hochzuladen.
Gehe einfach auf hochladen (Strg + U)

Bin heute den ganzen Tag unterwegs und kann mich erst gegen Abend wieder melden. Danke für eure Unterstützung

Ich habe jetzt mal alles zurück auf Anfang gesetzt, mir einen neuen Arduino Uno und ein neues USB-Kabel besorgt.

Dann in der IDE den Arduino Uno als Platine und Com3 als Port eingestellt und aus den Beispielen den Blink-Sketch
auf den Uno geladen - funktioniert.

Ich habe mich exakt an die von HotSystems verlinkte Anleitung aus #1 gehalten und konnte so einen ATTiny 45 mit dem Blink-Sketch aus den Beispielen produzieren. Das hat schonmal geklappt.

Nun, in der IDE unter Werkzeuge wieder den Arduino Uno als Platine, Com 3 als Port und als Programmer wieder "AVRISP mkll" eingestellt.

In der IDE den Sketch "belebtes_Haus_mit_TV_fuer_Arduino.ino" geöffnet und auf den Uno hochgeladen.

/*  Simulation "belebtes Haus für die Modellbahn" */
/*  Version "Flimmern nur wenn die Pin-13 LED an ist */
byte pwmFlimmerPin=10; // PWM Pin für das "analoge" Flimmern
long flimmerStart,flimmerEnd; // Anfangs- und Endzeiten für das Flimmern
// LED Pins für das normale Blinken deklarieren
byte leds[]   ={9,   11,   8,   13};
// LED Blinktakt in Millisekunden für diese Pins
long ledtakt[]={22000, 30333, 50000, 92100};
// Variablen zum Merken von millis()-Zeiten beim Schalten/Blinken
long ledtime[sizeof(leds)];

void setup() {
//  Serial.begin(9600);
  // Alle verwendeten Pins auf OUTPUT setzen
  pinMode(pwmFlimmerPin, OUTPUT);  
  for (int i=0;i<sizeof(leds);i++)
    pinMode(leds[i], OUTPUT);
}

boolean milliSekundenTakt(int dauer, long &alterWert) {
// Parameter "dauer": Dauer einer Blinkphase (an bzw. aus)
// Parameter "alterWert": Variable zum Speichern des millis() Timers
// Rückgabewert: true wenn die Zeit bis zum nächsten Umschalten abgelaufen ist, sonst false
  if (millis() - alterWert < dauer) return false;
  while (millis() - alterWert >= dauer) alterWert+=dauer;
  return true;  
}

void blinkenImTakt() {
  
// Alle gleichmäßig blinkenden LEDs in ihrem eigenen Takt blinken lassen  
  for (int i=0;i<sizeof(leds);i++) // alle LEDs in einer Schleife durchgehen
  {
    if (milliSekundenTakt(ledtakt[i],ledtime[i])) // Takt für diese LED abgelaufen?
    {
      digitalWrite(leds[i],!digitalRead(leds[i]));  // wenn ja ==> Umschalten
      if (leds[i]==13 && digitalRead(leds[i])) // Pin-13 LED wurde gerade eingeschaltet
      {
       flimmerStart=millis()+2000; // Anfangszeit für das Flimmern setzen
       flimmerEnd =millis()+25000;  // Endzeit für das Flimmern setzen
      }  
//      Serial.print("Pin ");Serial.print(leds[i]);Serial.print(" = ");Serial.println(digitalRead(leds[i]));
    }
  }
}

void flimmernPwmPin() {
// Die flimmernde LED im Zufallsmodus flimmern lassen
  static long alterWert;
  static int flimmerDauer=200;
  static byte flimmerHelligkeit;
  if (milliSekundenTakt(flimmerDauer,alterWert)) // Takt abgelaufen?
  {
    flimmerDauer=1+random(200); // neue Flimmerdauer als Zufallswert
    if (millis()>flimmerStart && millis()<flimmerEnd)
      flimmerHelligkeit=random(256); // neue Flimmerhelligkeit als Zufallswert
    else  
      flimmerHelligkeit=0; // Flimmern aus wenn falsche Zeit zum Flimmern
    analogWrite(pwmFlimmerPin, flimmerHelligkeit); 
  }  
}

void loop() {
  blinkenImTakt();
  flimmernPwmPin();
}

Bei der Verkabelung mit dem Steckbrett, gehen die Pin 8, 9, 10, 11, 13 des Arduino Uno zu den LED incl. Vorwiederständen und GND zur Katode der LEDs. Mein Schaltungsaufbau funktioniert und die LEDs verhalten sich so wie sie sollen.

Im nächsten Schritt soll der Sketch "belebtes_Haus_mit_TV_Attiny.ino" auf einen ATTiny 45 gebrannt werden.

/*  Simulation "belebtes Haus für die Modellbahn" */
/*  Version "Flimmern nur wenn die Pin-2 LED an ist */
byte pwmFlimmerPin=1; // PWM Pin für das "analoge" Flimmern
long flimmerStart,flimmerEnd; // Anfangs- und Endzeiten für das Flimmern
// LED Pins für das normale Blinken deklarieren
byte leds[]   ={   5,    4,   3,   2,   0};
// LED Blinktakt in Millisekunden für diese Pins
long ledtakt[]={6000, 8800, 13000, 20000, 20400};
// Variablen zum Merken von millis()-Zeiten beim Schalten/Blinken
long ledtime[sizeof(leds)];

void setup() {
//  Serial.begin(9600);
  // Alle verwendeten Pins auf OUTPUT setzen
  pinMode(pwmFlimmerPin, OUTPUT);  
  for (int i=0;i<sizeof(leds);i++)
    pinMode(leds[i], OUTPUT);
}

boolean milliSekundenTakt(int dauer, long &alterWert) {
// Parameter "dauer": Dauer einer Blinkphase (an bzw. aus)
// Parameter "alterWert": Variable zum Speichern des millis() Timers
// Rückgabewert: true wenn die Zeit bis zum nächsten Umschalten abgelaufen ist, sonst false
  if (millis() - alterWert < dauer) return false;
  while (millis() - alterWert >= dauer) alterWert+=dauer;
  return true;  
}

void blinkenImTakt() {
  
// Alle gleichmäßig blinkenden LEDs in ihrem eigenen Takt blinken lassen  
  for (int i=0;i<sizeof(leds);i++) // alle LEDs in einer Schleife durchgehen
  {
    if (milliSekundenTakt(ledtakt[i],ledtime[i])) // Takt für diese LED abgelaufen?
    {
      digitalWrite(leds[i],!digitalRead(leds[i]));  // wenn ja ==> Umschalten
      if (leds[i]==0 && digitalRead(leds[i])) // Pin-13 LED wurde gerade eingeschaltet
      {
       flimmerStart=millis()+2000; // Anfangszeit für das Flimmern setzen
       flimmerEnd =millis()+15000;  // Endzeit für das Flimmern setzen
      }  
//      Serial.print("Pin ");Serial.print(leds[i]);Serial.print(" = ");Serial.println(digitalRead(leds[i]));
    }
  }
}

void flimmernPwmPin() {
// Die flimmernde LED im Zufallsmodus flimmern lassen
  static long alterWert;
  static int flimmerDauer=200;
  static byte flimmerHelligkeit;
  if (milliSekundenTakt(flimmerDauer,alterWert)) // Takt abgelaufen?
  {
    flimmerDauer=1+random(200); // neue Flimmerdauer als Zufallswert
    if (millis()>flimmerStart && millis()<flimmerEnd)
      flimmerHelligkeit=random(256); // neue Flimmerhelligkeit als Zufallswert
    else  
      flimmerHelligkeit=0; // Flimmern aus wenn falsche Zeit zum Flimmern
    analogWrite(pwmFlimmerPin, flimmerHelligkeit); 
  }  
}

void loop() {
  blinkenImTakt();
  flimmernPwmPin();
}

Dabei ergeben sich für mich Unklarheiten bei der Verkabelung des Arduino Uno mit dem ATTiny 45.

Uno Pin 10 an Reset (Pin 1) ATTiny 45
GND an GND (Pin 4)
5 V an VCC (Pin 8)

? Pin 13 an (Pin 7)
? Pin 12 an (Pin 6)
? Pin 11 an (Pin 5)

und Kondensator zwischen GND und Reset des Uno.

Unsicher bin ich mir bei der Beschaltung der Pin 5, 6 und 7 des ATTiny. Welche Pin des Arduino Uno sind mit diesen Pin des ATTiny zu verbinden?

Für entsprechende Hinweise wäre ich sehr dankbar.

Uno Pin 10 an Reset (Pin 1) ATTiny 45
GND an GND (Pin 4)
5 V an VCC Pin 8

? Pin 13 an (Pin 7)
? Pin 12 an (Pin 6)
? Pin 11 an (Pin 5)

und Kondensator zwischen GND und Reset des Uno.

das ist richtig.
Nur als Programmer mußt du "Arduino as ISP" einstellen.
Das

// LED Pins für das normale Blinken deklarieren
byte leds[] ={ 5, 4, 3, 2, 0};

solltest du ändern in
// LED Pins für das normale Blinken deklarieren
byte leds[] ={ 4, 3, 2, 1, 0}; // Physische Pin 3, 4, 7, 6,5

Und auch wichtig ist, du musst zuvor auf dem ATtiny den Bootloader flashen.
Und das auch mit der richtigen Taktfrequenz. Dabei werden die Fusebits gesetzt.
Erst danach kann der Sketch auf den ATtiny geflasht werden.

Die gute Nachric
Der erste Tiny ließ sich problemlos herstellen und wurde erfolgreich getestet. Nun wollte ich einen zweiten Tiny brennen.

Ich hatte den Uno vom PC und alle Kabelverbindungen zum Steckbrett getrenn. Jetzt den Arduino wieder angeschlossen und den Blink-Sketch aus den Beispielen geöffnet und auf den Uno geladen. keine Probleme.
Dann aus den Beispielen den ArduinoISP geöffnet und versucht diesen auf den Uno zu laden.

Ohne Erfolg.

Fehlermeldung:

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x97

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x97

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x97

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x97

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x97

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x97

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x97

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x97

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x97

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x97

Mit Hilfe von "Tante Google" wurde als mögliche Fehlerquelle der Com3 ausgemacht. Der Gerätemanager zeigte keine Auffälligkeiten. Com3 deaktiviert und Neustart des PC. Com 3 wieder aktiviert und erneuter Versuch ArduinoISP auf den Uno zu laden. Negativ. Gleiche Fehlermeldung.

Über den Gerätemanager Treiber für Com3 aktualisiert mit dem Ergebnis, aktuelle Treiber sind geladen.

Neustart des PC. Nach dem Neustart erscheint eine Meldung, das die Windows Firewall teile von Java aus Sicherheitsgründen blockiert. Ich habe die entsprechende Ausnahmeregel für private Netzwerke bestätigt.

Start der Arduino IDE, ArduinoISP geöffnet und auf den Uno geladen, keine Probleme, das komplette
Prozedere durchgezogen und so meinen zweiten ATTiny 45 produziert.

Ich hoffe, dass die Blockade der Windows FireWall die "Quelle des Übels" war. Die Produktion eines weiteren Tiny morgen, wird es zeigen.

Windows.... :grinning:

Immer wieder mal schön, dran erinnert zu werden, was man früher so für Rechner-Probleme hatte.
Hilft dir jetzt nicht weiter, aber das Problem ist ja gelöst und- mein Tag gerettet. :slight_smile:

Rabenauge:
Windows.... :grinning:

Und auch da gibt es Unterschiede.

Man kann sich den Windows-Rechner schnell versauen ;), wenn man alles was kostenlos ist, draufschaufelt.