Arduino Nano Clone programmieren

Moin,

ich habe schon einige andere Posts hier gesehen, die sich mit dem Thema auseinandergesetzt haben, aber irgendwie haben mir die alle nicht weitergeholfen.

Ich habe mir einen Arduino Nano Clone gekauft. Dachte zu dem Zeitpunkt, dass der sich genauso programmieren lässt wie alle anderen Arduinos, einfach anschließen, Treiber automatisch installieren lassen, IDE nutzen und los gehts. Wie ich herausgefunden habe, ist bei den Clones in der Regel ein anderer Chip verbaut, nämlich der "CH340". Ich habe den Treiber von der offiziellen Website heruntergeladen und installiert, aber es funktioniert trotzdem nicht.

Hier der Fehler:

avrdude: ser_open(): can't open device "\\.\COM3": Das System kann die angegebene Datei nicht finden.

Ich hab in der IDE das richtige Board (Arduino Nano) ausgewählt. Als Port habe ich nichts ausgewählt. Ich könnte COM4 auswählen, aber dann lädt sich die IDE beim hochladen tod. Meinen Arduino Uno Clone lässt sich ganz einfach plug&play programmieren. Dort wird als Port auch COM3 verwendet.

Weiß jemand von euch, was das Problem ist und wie ich es beheben kann?

arduinodude1:
Weiß jemand von euch, was das Problem ist und wie ich es beheben kann?

Evtl. ist das zumindest ein schneller Workaround:

In der IDE Strg-Alt-s (Sketch->Kompilierte Binärdatei exportieren) drücken und die erzeugte Daten (vermutlich *.hex) von Hand mit avrdude (bei mir im Arduino Programmverzeichnis, dann weiter ..../hardware/tools/avr/bin/) zum Arduino übertragen.

avrdude zeigt eine Hilfe an, wenn es mit -h aufgerufen wird.

Gruß

Gregor

Danke für deine Antwort. Wie genau rufe ich avrdude auf?

arduinodude1:
Danke für deine Antwort. Wie genau rufe ich avrdude auf?

Kannst Du mit DOS umgehen?
Evtl. kann man avrdude auch mit Hilfe der Maus starten, ansonsten per „cd“ in das passende Verzeichnis und dort „avrdude -h“ eingeben.

Gruß

Gregor

Wenn Du bei "Board" den NANO aussuchst dann erscheint "Pozessor" da kannst Du "old Boodloader" aussuchen.
Andererseits gibt es bei Nachbauten auch solche mit dem ATmega168 Controller.

Grüße Uwe

Nein, funktioniert nicht

PS. das galt uwefed

arduinodude1:
Als Port habe ich nichts ausgewählt.

Dann kann es schonmal prinzipiell nicht funktionieren. Du musst auf jeden Fall den richtigen Port auswählen. Hast Du mal im Gerätemanager geschaut, ob da der Nano als Com-Device erscheint? z.B. als
USB-SERIAL CH340 (COM18)( die COM.Nr. ist bei dir natürlich anders )

Wenn Du in der IDE ( bei richtig angewähltem Port ) 'Boardinformationen holen' auswählst, muss dieses erscheinen:
NanoBoard.PNG
Wenn das alles nicht klappt, ist der Treiber nicht richtig installiert.

NanoBoard.PNG

MicroBahner:
Dann kann es schonmal prinzipiell nicht funktionieren. Du musst auf jeden Fall den richtigen Port auswählen. Hast Du mal im Gerätemanager geschaut, ob da der Nano als Com-Device erscheint? z.B. als

USB-SERIAL CH340 (COM18)

( die COM.Nr. ist bei dir natürlich anders )

Wenn Du in der IDE ( bei richtig angewähltem Port ) 'Boardinformationen holen' auswählst, muss dieses erscheinen:
NanoBoard.PNG
Wenn das alles nicht klappt, ist der Treiber nicht richtig installiert.

Doch das klappt alles. Der Nano ist im GM mit COM5 eingetragen.

Dann musst Du in der IDE auch COM5 auswählen und den Hinweis von Uwe beachten. Meines Wissens verwenden die Clone alle immer noch den alten Bootloader.
Setze in der IDE das Häkchen bei Voreinstellungen->Ausführliche Ausgabe während .. Hochladen. Und dann poste mal was da passiert.

MicroBahner:
Dann musst Du in der IDE auch COM5 auswählen und den Hinweis von Uwe beachten. Meines Wissens verwenden die Clone alle immer noch den alten Bootloader.
Setze in der IDE das Häkchen bei Voreinstellungen->Ausführliche Ausgabe während .. Hochladen. Und dann poste mal was da passiert.

MicroBahner:
Dann musst Du in der IDE auch COM5 auswählen und den Hinweis von Uwe beachten. Meines Wissens verwenden die Clone alle immer noch den alten Bootloader.
Setze in der IDE das Häkchen bei Voreinstellungen->Ausführliche Ausgabe während .. Hochladen. Und dann poste mal was da passiert.

COM5 ist ausgewählt und bei Prozessor ist ATmega168 ausgewählt. Wie gesagt, wenn ich den verfügbaren Port auswähle, lädt es sich tod.

MicroBahner:
Dann musst Du in der IDE auch COM5 auswählen und den Hinweis von Uwe beachten. Meines Wissens verwenden die Clone alle immer noch den alten Bootloader.
Setze in der IDE das Häkchen bei Voreinstellungen->Ausführliche Ausgabe während .. Hochladen. Und dann poste mal was da passiert.

MicroBahner:
Dann musst Du in der IDE auch COM5 auswählen und den Hinweis von Uwe beachten. Meines Wissens verwenden die Clone alle immer noch den alten Bootloader.
Setze in der IDE das Häkchen bei Voreinstellungen->Ausführliche Ausgabe während .. Hochladen. Und dann poste mal was da passiert.

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega168 -carduino -PCOM5 -b19200 -D -Uflash:w:C:\Users\Jan\AppData\Local\Temp\arduino_build_348675/display_test.ino.hex:i 

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

         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

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

avrdude done.  Thank you.

arduinodude1:
... ATmega168 ausgewählt ...

Das ist ziemlich sicher falsch. Gibt es keine Auswahl mit ATmega 328?

Gruß

Gregor

arduinodude1:
COM5 ist ausgewählt und bei Prozessor ist ATmega168 ausgewählt.

Warum wählst Du ATmega168 aus, und nicht ATmega368P(old Bootloader) ? Der 168 ist die wesentlich unwahrscheinlichere Variante. Ausserdem kannst Du mal ein Lupe nehmen, und schauen was auf dem Chp draufsteht. Da muss man nicht raten.

Die Ausgaben deuten darauf hin, dass der falsche Bootloader verwendet wird ( die Baudrate stimmt nicht ). Das liegt am falsch eingestellten Prozessor. Der lädt sich auch nicht tot, der lädt garnicht, weil keine Verbindung zustande kommt.

Prozessor ist ATmega168 ausgewählt.

Hast Du denn einen ATmega168 auf dem NANO drauf? Lies mal die Markierung auf dem quadratischen IC.
Aber da müßte eine andere Fehlermeldung kommen, sowas wie ID Nummer falsch.

Hast Du was an die Pins D0 und /oder D1 angeschlossen?
Grüße Uwe

MicroBahner:
Warum wählst Du ATmega168 aus, und nicht ATmega368P(old Bootloader) ? Der 168 ist die wesentlich unwahrscheinlichere Variante. Ausserdem kannst Du mal ein Lupe nehmen, und schauen was auf dem Chp draufsteht. Da muss man nicht raten.

Die Ausgaben deuten darauf hin, dass der falsche Bootloader verwendet wird ( die Baudrate stimmt nicht ). Das liegt am falsch eingestellten Prozessor. Der lädt sich auch nicht tot, der lädt garnicht, weil keine Verbindung zustande kommt.

Igrendjemand meinte ich solle das mal ausprobieren, kein plan wer das jetzt war. hat mich auch gewundert, denn auf meinem Nano ist ein ATmega328 verbaut.

gregorss:
Das ist ziemlich sicher falsch. Gibt es keine Auswahl mit ATmega 328?

Gruß

Gregor

Doch den habe ich nun wieder ausgewählt :slight_smile:

uwefed:
Hast Du denn einen ATmega168 auf dem NANO drauf? Lies mal die Markierung auf dem quadratischen IC.
Aber da müßte eine andere Fehlermeldung kommen, sowas wie ID Nummer falsch.

Hast Du was an die Pins D0 und /oder D1 angeschlossen?
Grüße Uwe

Nein ich habe an den Pins nichts angeschlossen, ich habe zwar die Pinheader selber angelötet, aber da berührt sich nichts.

gregorss:
Das ist ziemlich sicher falsch. Gibt es keine Auswahl mit ATmega 328?

Gruß

Gregor

Nicht unbedingt so abwegig wie es Dir erscheint. Hab schon mal aus Unachtsamkeit einen NANO Nachbau mit dem 168 gekauft.

Mal die 10 als erste herauskommende Angebote in einer Asiatischen Verkausfbörse angeschaut:
2 hatten wahlweise einen 168 oder 328 controller
3 einen USB C Anschluß
1 einen HT42B534 usb Adapter.
Wenn Du in der Bucht mit der Reihung billigste zuerst kommen viele 168 heraus.

Grüße Uwe

arduinodude1:
denn auf meinem Nano ist ein ATmega328 verbaut.

Doch den habe ich nun wieder ausgewählt :slight_smile:
Nein ich habe an den Pins nichts angeschlossen, ich habe zwar die Pinheader selber angelötet, aber da berührt sich nichts.

Blinkt die L-LED wenn Du den NANO am PC anschließt?
Blinken die TX/RX LED mal Kurz wenn du den Sketch drauflädst oder gar nicht?
Hast Du es mit einem anderen USB-Kabel versucht?
Grüße Uwe

arduinodude1:
Doch den habe ich nun wieder ausgewählt :slight_smile:

Wenn es in der IDE auch die Auswahl „old Bootloader“ gibt, versuche auch die mal. Ich muss ab und zu mal mit/ohne auswählen.

Gruß

Gregor

uwefed:
Blinkt die L-LED wenn Du den NANO am PC anschließt?
Blinken die TX/RX LED mal Kurz wenn du den Sketch drauflädst oder gar nicht?
Hast Du es mit einem anderen USB-Kabel versucht?
Grüße Uwe

Beim anschließen des Nanos an den PC leuchet die L-LED einmal kurz auf.
Beim neuen Bootloader blinkt oder leuchtet keine LED, außer halt die PWR LED.
Die Fehlermeldung dazu hatte ich ja schon weiter oben gepostet. Das war die, wo der Nano es immer wieder versucht.
Beim alten Bootloader blinkt hin und wieder die L-LED und die RX und TX LEDs leuchten bzw. blinken ganz schnell. Bis dann diese Fehlermeldung kommt:

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

         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM5
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
         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.16
         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: reading input file "C:\Users\Jan\AppData\Local\Temp\arduino_build_348675/display_test.ino.hex"
avrdude: writing flash (5446 bytes):

Writing | ################################################## | 100% 1.57s

avrdude: 5446 bytes of flash written
avrdude: verifying flash memory against C:\Users\Jan\AppData\Local\Temp\arduino_build_348675/display_test.ino.hex:
avrdude: load data flash data from input file C:\Users\Jan\AppData\Local\Temp\arduino_build_348675/display_test.ino.hex:
avrdude: input file C:\Users\Jan\AppData\Local\Temp\arduino_build_348675/display_test.ino.hex contains 5446 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.19s

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

avrdude done.  Thank you.

Ja, ich habe jetzt mal ein anderes USB-Kabel genommen und es hat sich nichts geändert.

arduinodude1:
... Bis dann diese Fehlermeldung kommt:

Lies mal die letzte Zeile - avrdude meldet, dass alles okay ist. Lade doch mal den „Datei/Beispiele/.../blink“-Sketch hoch.

Gruß

Gregor