Ardunino Uno mit ESP8266 lässt sich nicht über USB programmieren

Hallo zusammen,

ich bin ziemlich neu in diesem Bastelbusiness und kann Rat und Hilfe von Euch erfahrenen sehr gut brauchen! Danke schon mal im Voraus.

Ich habe ein Arduino Uno mit einem WiFi onboard Modul ESP8266. Sowohl der Atmega326P als auch der ESP 8266 ließen sich mal über USB und die Arduino IDE 1.8.9 programmieren.

Das funktioniert jetzt irgendwie nicht mehr. Über ISP kann ich den Atmega326P problemlos programmieren. Das “Blink” programm funktioniert einwandfrei, auch kann ich z.B. grbl 1.1 über die IDE per ISP aufspielen und mit hinterher kann auch das CNC Programm mit dem Arduino über USB verbinden.

Obwohl beim Anstecken des Boards an USB das Pling ertönt und auch im Gerätemanager das CH430G device angezeigt wird, kann ich beispielsweise das grbl1.1.hex File nciht über XLoader und USB(COM4) flashen, da friert XLoader beim Hochladen ein. Die IDE gibt mir bei den Einstellungen: Board “Arduino/Genuino Uno”, Port “COM4”, Programmer: “USBasp” den “avrdude: stk500_getsync(): not in sync: resp=0x” Fehler.
Die DIP Switches 3 und 4 habe ich auf “ON”, den Rest auf “OFF”, um den Kommunikationspfad “USB <-> MCU” aktiv zu haben.

Per ISP habe ich auch bereits den Bootloader für den 328P mit positiver Quittierung aufgespielt und auch den old Bootloader vom nano board (aber für den 328P) probiert. Das hat alles nichts gebracht.

Weiß jemand Rat? Wie kann ich wieder über IDE und USB das Board programmieren?

Und weiß jemand, wie ich den ESP8266 erreiche zum Programmieren? Kann ich den über die MCU-ISP Schnittstelle erreichen, wenn ich die DIP Switches richtig setze (5,6,7 ON,Rest OFF)? Das gab gestern zumindest eine Fehlermeldung.

danke für Eure Hilfe!

Bist du sicher, dass es ein Arduino ist....ich nicht.

Wenn es mal funktioniert hat, was hast du denn geändert ?

Ich würde mal den USB-Treiber CH340 neu installieren.

Spiel mal einen Sketch per isp drauf, der serielle Ausgaben macht und schau, ob die am PC im seriellen Monitor ankommen

Hallo,

Danke Euch für die Tipps!

HotSystems:
Spiel mal einen Sketch per isp drauf, der serielle Ausgaben macht und schau, ob die am PC im seriellen Monitor ankommen

Das ist die Fehlermeldung, wenn ich versuche ganz normal über USB und “USBasp” den willkürlich gewählten Beispiel-Sketch zu programmieren:

Arduino: 1.8.9 (Windows 10), Board: "Arduino/Genuino Uno"

Sketch wird kompiliert...

Compiling libraries...

Compiling core...

Linking everything together...

avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\PortableApps\PortableApps\arduino-1.8.9\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM4
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xea
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xea
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xea
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xea
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xea
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xea
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xea
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xea
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xea
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xea

avrdude done.  Thank you.

Problem beim Hochladen auf das Board. Hilfestellung dazu unter http://www.arduino.cc/en/Guide/Troubleshooting#upload.

Wenn ich es über “Arduino as ISP” programmiere:

avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\PortableApps\PortableApps\arduino-1.8.9\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM4
         Using Programmer              : arduino
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "C:\Users\Tig\AppData\Local\Temp\arduino_build_234498/sketch_serialmonitor_example.ino.hex"
avrdude: writing flash (2264 bytes):

Writing | ################################################## | 100% 2.52s

avrdude: 2264 bytes of flash written
avrdude: verifying flash memory against C:\Users\Tig\AppData\Local\Temp\arduino_build_234498/sketch_serialmonitor_example.ino.hex:
avrdude: load data flash data from input file C:\Users\Tig\AppData\Local\Temp\arduino_build_234498/sketch_serialmonitor_example.ino.hex:
avrdude: input file C:\Users\Tig\AppData\Local\Temp\arduino_build_234498/sketch_serialmonitor_example.ino.hex contains 2264 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.38s

avrdude: verifying ...
avrdude: 2264 bytes of flash verified

avrdude done.  Thank you.

Wenn ich dann den programmierten Arduino an USB anschließe und den Serial moitor starte und bediene, scheint das auch gut zu funktionieren: Ausgabe ist so wie beschrieben. Auch bei 1 geht die LED an und bei 0 wieder aus.

HotSystems:
Bist du sicher, dass es ein Arduino ist…ich nicht.

Jetzt verunsicherst Du mich, das Board wurde als solches verkauft. also es ist ein Clon, wenn Du das meinst. Hat einen Atmel Atmega 328Pdrauf…

HotSystems:
Wenn es mal funktioniert hat, was hast du denn geändert ?

Eigentlich nichts, ausser dass ich verschiedene Sketches auf entweder den Atmega328P oder eben den ESP8266 mit dem Websockets Sketch bespielen wollte. Je nachdem welchen Chip ich programmieren wollte muss ich (zumindest bei Verbindung mit USB) die DIP schalter richtig setzen (3,4 ON für Atmega, 5,6,7 ON für ESP8266. Wenn dann der Websocket auf dem ESP ist und grbl auf dem Atmega, dann nur 1,2 ON für Kommunikation zwischen ESP und Atmega ohne USB Kabel → so dachte ich zumindest). Irgendwann kamen diese “not in sync” Fehlermeldungen. Daraufhin hab ich es eben mit dem ISP programming versucht. Und über die IDE eben auch den Bootloader neu geflasht.

Ich check nicht, warum das programmieren über USB nicht mehr geht.

Vielen Dank Euch.

Also wenn du den Clon mit ISP programmiert hast ist der Bootloader weg.
Also Arduinoas ISP mit den Clone verbinden und dann Bootloader Brennen drücken. Nach Abschluss kannst du wieder "normal" via USB Programmieren.
Gruß
DerDani

P.S.: Wir der ESP an dem AVR hängt kann man jetzt nur raten.

Danke Dir. Das habe ich ja auch schon gedacht:

logfile

Das ist das Ergebnis. Ich interpretiere das als erfolgreich und positiv. Dann stecke ich alles um und stelle unter Werkzeuge Board: “Arduino/Genuino”, Port:“COM4”, Programmer “USBasp” ein und drücke auf “Hochladen” und bekomme:

Arduino: 1.8.9 (Windows 10), Board: "Arduino/Genuino Uno"

Sketch wird kompiliert...
Compiling libraries...
Compiling core...
Linking everything together...

avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\PortableApps\PortableApps\arduino-1.8.9\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM4
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x73
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x73
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x73
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x73
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x73
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x73
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x73
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x73
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x73
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x73

avrdude done.  Thank you.

Problem beim Hochladen auf das Board. Hilfestellung dazu unter http://www.arduino.cc/en/Guide/Troubleshooting#upload.

und da steck ich fest.

Auf der Platine ist eine Tabelle aufgedruckt für die DIP Switches. Die muss man entsprechend stellen, um die verschiedenen Modi zum Programmieren bzw kommunizieren der Chips untereinander hat.

Um nochmal den Gedanken aufzugreifen,dass es vielleicht doch kein Arduino Uno ist.
Das ist das Board, was ich bei Ebay gekauft habe: LINK

Mir ist die Beschreibung nicht ganz eindeutig, was das nun für ein Board ist. Ich habe in der IDE versucht einen Bootloader für WeMos D1 oder auch NodeMCU zu flashen gab aber beide male eine Java exception:

Arduino: 1.8.9 (Windows 10), Board: "Arduino/Genuino Uno"

java.lang.NullPointerException
	at cc.arduino.packages.uploaders.SerialUploader.burnBootloader(SerialUploader.java:329)
	at processing.app.Editor.lambda$handleBurnBootloader$65(Editor.java:2384)
	at java.lang.Thread.run(Thread.java:748)
Fehler beim Brennen des Bootloaders.

log.txt (9.25 KB)

DIPSwitchtab.jpg

Also Bootloader brennen ist erfolgreich? Richtig, dann sollte der Bootloader auch auf dem AVR sein.
Sowie ich die DIPs interpretieren kann man die Verbindung mit USB konfigurieren damit man an beiden (ESP und ATMEGA) an Firmware hochladen kann. Willst du also via USB den sketch hochladen müsste meiner Meiniun nach die zweite Zeile an den DIPs geschaltet werden. Also USB Upload auf den Arduino Atmega DIP 3+4. Da es sich hierbei nicht um einen orginalen Aufbau handelt weiß ich auch nicht ob der Autoreset bei Upload auch durchgeführt wird.
Da du dass aber schon ausprobiert hast würde ich mal versuchen ob du den Schaltplan deines exoten mal auftreibst und hier mal reinhängst.
Ein Test wäre auchmal einfach einen minimal Sketch mit iregendeiner Seriellen Ausgabe jede Sekunde und dann mit Schalter 3+4 Ein sehen ob da was kommt auf der Seriellen Konsole.
Kommt etwas aus der AVR richtung Rechner ist das schonmal okay.
Einmal Seriell Echo aufspielen und dann dem Arduino was schicken das müsste er dann zurückschicken. Dann geht der Pfad RX/TX, dann könnte es am Autoreset liegen.

Gruß
DerDani