92 Kommentare zu “Arduino und Co. mit Atmel Studio nutzen!

  1. Spitze, ich wollte eigentlich schon immer meinen eigenen bitstream auf den Arduino laden. Ohne Programmiergerät war ich immer auf die Arduino IDE angewiesen. Muss man etwas beachten, bzw besteht die Gefahr, dass man den Bootloader kompromitiert, wenn man sich bitstreams aus Assembly lädt oder anderen Sprachen als die C-like Programmiersprache der Arduino IDE?

    • Nein, der Bootloader wird nicht überschrieben, es sei denn man stellt es explizit so ein in Atmel Studio aber da musst du keine Angst haben. Egal ob du mit Assembler, C oder C++ programmierst, beim kompilieren wird ja immer eine einheitliche HEX Datei erstellt und diese dann in den Controller übertragen.

  2. Habe gerade AtmelStudio6.1 installiert. Es gibt dort ein Arduino Plugin, das die IDE in AStudio integriert. Einige Tools sind nur 15 Tage trial, aber mal sehen…

  3. Hi Leute nach genau so ner Einstellung habe ich gesucht!
    Aber leider klappt es noch nicht ganz.
    Nehme ich dein avrdude.exe kommt die Fehlermeldung libusb0.dll nicht installiert.
    Nehme ich avrdude aus der Arduino Umgebung kommt immer eine Timeout-Meldung.

    Hier meine Beschreibung, was ich gemacht habe:
    -Arduinoboard mit Atmega2560 über USB an PC
    -die oben vorgegebenen Einstellungen vorgenommen
    -erstelleten Button gedrückt
    –>Fehlermeldungen

    In der txt Datei steht atmega2650, statt 2560 ein Fehler?

    Habt Ihr nen Vorschlag zur Lösung meines Problems?

  4. Hallo Patrick,
    dein Artikel klang vielversprechend. Jedoch scheine ich etwas übersehen zu haben denn die Argumente werden nicht akzeptiert (port selbstverständlich angepasst).
    ich benutze windows 8 64 bit und die neueste release version von Atmel Studio 6.1.
    Die ausgabe: „invalid argument“ „cant read system wide file“ was läuft da falsch ?

    vielen Danke

    • Moin Christian,
      ich heiße Martin 🙂 …. aber zu deinem Fehler: Könntest du mir mal deine Eingaben posten? Vielleicht finden wir so deinen Fehler… Ich habe nochmal alles überprüft, auch ich nutze Win8.1 64 Bit und das aktuellste Atmel Studio

      Grüße Martin

  5. Auch von mir Dank. Zu obigem Problem würde ich sagen, das die libusb0.dll in das system32 Verzeichnis in Windows kopiert werden muss.

  6. Hallo Martin,
    vielen Dank für deine schnelle Antwort.
    Leider wird bei mir in Externe Tools keine Auswahl von MCU’s angezeigt.
    Muss ich noch irgendwas einbinden?

    MFG
    Peter

  7. Viel Dank für deine Anleitung, hat super funktioniert!

    PS:
    Patrick hatte Recht, in deiner .txt – Datei bei den AVR_Tools steht fälschlicherweise 2650 beim ATMega, was natürlich durch 2560 ersetzt werden muss, ansonsten gibt es Fehlermeldungen.

  8. Hi,
    danke für die tolle Anleitung. Allerdings habe ich das Problem, dass ich den Uno dennoch nicht über Device Programming aufrufen bzw.ansprechen kann.
    Wenn ich aber auf den (deiner Anleitung nach erstellten) neuen Button anklicke, wird der Chip per avrdude angesprochen..
    Wie bekomme ich denn die neuen Dateien auf den 328P auf dem Uno?

    Über hilfe würde ich mich freuen 🙂

    Grüße
    Benny

    • Hallo Benny, hast du auch die richtige serielle Schnittstelle ausgewählt? Die sind von System zu System verschieden. Prüfe bitte auch ob du beim Flashvorgang auch immer die Datei ausgewählt ist die die „main()“-Funktion enthält.

  9. Hallo Martin,

    warum hast du meine Frage denn gelöscht?
    Unter deinem Niveau? Es gibt ja auch Anfänger, die gerne was dazulernen wollen .

    Benny

    • Oh, Entschuldigung.
      Vorhin wurde mein Beitrag nicht angezeigt, und nach dem 2ten Kommentar war es wieder da.
      Ist mir jetzt aber peinlich …

      Grüße
      Benny

    • Hey Benny ich habe nicht gelöscht, alle Anfragen müssen von mir erst genehmigt werden und ich hatte noch keine Zeit mir deine Fragen anzugucken…deswegen erscheinen sie noch nicht 😉

      Habe aber jetzt deine erste Frage beantwortet…

  10. Hallo Martin 🙂

    Sorry für mein zweites (und dummes ) Posting.
    Ich dachte das wäre gelöscht worden, und an dem Tag war mir eh eine Laus über die Leber gelaufen.
    Vielen dank für dein tolles Tutorial, und auch für deine schnelle hilfe.
    Das Problem bei mir ist, dass es eine bereits erstellte *.hex Datei ist, und da ist keine main.c Datei dabei.
    Der Com Port ist korekkt, aber ich bekomme ständig Fehlermeldungen.
    Ist alles echt nicht so einfach für einen blutigen Anfänger 🙂 .
    Naja, ich werde mich da wohl noch weiter reinlesen müssen, in die ganze Materie. Wie so oft in solchen Fällen, wird der Fehler wahrscheinlich vor dem PC sitzen.
    Ich wünsche dir einen schönen Tag 🙂

    Gruß
    Benny

  11. Hallo Martin,

    vielen Dank für das Tutorial. Bin entsprechend vorgegangen…..bekomme jedoch die Fehlermeldung das die libusb0.dll nicht gefunden wird. Der Treiber ist in deinem Paket auch nicht vorhanden.
    Zudem kann ich im Atmel Studio V6.2 nicht auf die erstellten external command button klicken. die sind grau hinterlegt. Muss den command button nichts „hinterlegt“c werden?

    Grüße Martin

    • Hallo Martin,
      sorry das ich so spät antworte, konntest du das Problem schon lösen? Welchen Programmer nutzt du? Ich gehe mal davon aus das du sonst mit dem Digispark porgrammierst? Dann lade dir dazu die Treiber runter und wenn du diese entpackst siehst im „amd64“ Ordner die passende DLL Datei. Diese kannst du in C:/Windows/system32 reinkopieren, dann sollte die Fehlermeldung behoben werden. Alternativ den Treiber auch einfach installieren 😉

  12. Moin Martin, klasse dein Tutorial, echt danke !
    Ich hab nur folgendes problem bzw. bekomme folgende Fehlermeldung :

    avrdude.exe: stk500_getsync(): not in sync: resp=0x00

    ich finde einfach nicht raus woran es liegt, hoffe du kannst mir vielleicht weiter helfen.

    Danke!

    • Hallo, das könnte viele Gründe haben… im Grunde bedeutet diese Meldung das keine Kommunikation zum Atmel Controller stattfinden kann. Entweder ist die Baudrate falsch eingestellt oder der Reset der den Atmel in den Booloader versetzt konnte nicht durchgeführt werden…

  13. Hallo,

    ich verwende einen Arduino Nano clone über USB Kabel.
    Einfach den COM port Treiber des Chipsatz installiert.

    Nen aktuelles AVRdude1.6 http://download.savannah.gnu.org/releases/avrdude/
    AVR Studio6.2

    und diese AVRdude parameter:
    -patmega328p -carduino -P\\.\COM24 -b57600 -D -Uflash:w:“$(ProjectDir)Debug\$(ItemFileName).hex“:i

    Funktioniert super auf Win7 64bit

    Vielen Dank an alle hier !!

    • Vielen Dank für den Tipp Marco. Ich habe jetzt auch auf die aktuellste Version 6.1 von AVRdude aktualisiert und in den Argumenten wird jetzt „arduino“ bzw. „wiring“ genutzt.

  14. Auch von mir vielen Dank für dieses sehr gute Tutorial. Ich habe Atmel Studion installiert und es funktionierte auf Anhieb.
    Nur eine Frage. Ich habe ein Arduino Micro-Bord mit einem ATmel 32u4 Prozessor. Welche Argumente muß ich beim Einrichten der Buttons im Feld Argumente eingeben?

    • Vielen Dank für dein Kommentar, für einen ATmega32u4 sieht es so aus:

      Arguments:
      -patmega32u4 -cavr109 -P\\.\COM15 -b57600 -D Uflash:w:“$(ProjectDir)Debug\$(ItemFileName).hex“:i

      Du musst natürlich noch deinen COM Port anpassen.
      Habe die AVR_tools.zip aktualisiert und den ATmega32u4 hintugefügt…

  15. Das ging ja sehr schnell mit der Antwort. Ich habe es gleich nach der Arbeit ausprobiert und bekomme folgende Fehlermeldung.
    „Connecting to programmer: .avrdude.exe: butterfly_recv(): programmer is not responding“
    Com-Port habe ich eingerichtet und das funktioniert auch über die arduino IDE. Die Baudrate habe ich dann noch verändert auf 115200, wie bei den anderen (UNO und MEGA). Der Mega funktioniert auch. Übrigens ist da noch ein Schreibfehler im Argument vom Mega – nicht 2650 sondern 2560.
    Ich habe dann noch eine Frage zu den Argumenten. Kann man irgendwo nachlesen, wie die einzelnen Parameter entstanden sind und welche Bedeutung sie im einzelnen haben?
    Als letztes noch – wenn es den Rahmen nicht sprengt. Ich habe schon viel recherchiert hinsichtlich einem vernünftigen Tutorial zu Atmel Studio 6. Hättest du da einen Tipp. Noch mal vielen Dank für deine Mühe.

    • Danke für den Hinweis … dachte ich habe das mit dem 2560 schon geändert. Datei habe ich aktualisiert…
      Funktioniert es denn jetzt mit 115200 und dem ATmega32u4? weil normalerweise der avr109 für 57k ausgelegt ist. Gib mir bitte da eine Rückmeldung, ich habe gerade keinen ATmega32u4 da.

      Welche Befehle du dem avrdude übergeben kannst kannst du hier nachlesen:
      http://www.nongnu.org/avrdude/user-manual/avrdude_4.html#Option-Descriptions

      Welche Argumente welcher Arduino benutzt findest du in der Arduino IDE boards.txt Datei:
      ../ArduinoIDE/hardware/arduino/avr/boards.txt

      Nach diesen Werten musst du dann gucken:
      build.mcu=
      upload.tool=avrdude
      upload.protocol=
      upload.speed=

      • Danke für die Verweise.
        Leider nein – bei beiden Baudraten kommt immer die selbe Meldung.
        Nach den Werten habe ich geschaut. upload.tool=avrdude habe ich in dieser Datei nicht gefunden.

      • Ist das denn ein Arduino Board oder der nackte Controller? Hast du einen Bootloader drauf?

        Hier ist z.B. ein Auszug aus der boards.txt Datei für den Arduino Micro:

        micro.name=Arduino Micro
        micro.upload.tool=avrdude
        micro.upload.protocol=avr109
        micro.upload.maximum_size=28672
        micro.upload.maximum_data_size=2560
        micro.upload.speed=57600
        micro.upload.disable_flushing=true
        micro.upload.use_1200bps_touch=true
        micro.upload.wait_for_upload_port=true

        micro.bootloader.tool=avrdude
        micro.bootloader.low_fuses=0xff
        micro.bootloader.high_fuses=0xd8
        micro.bootloader.extended_fuses=0xcb
        micro.bootloader.file=caterina/Caterina-Micro.hex
        micro.bootloader.unlock_bits=0x3F
        micro.bootloader.lock_bits=0x2F

        micro.build.mcu=atmega32u4
        micro.build.f_cpu=16000000L
        micro.build.vid=0x2341
        micro.build.pid=0x8037
        micro.build.usb_product=“Arduino Micro“
        micro.build.board=AVR_MICRO
        micro.build.core=arduino
        micro.build.variant=micro
        micro.build.extra_flags={build.usb_flags}

        Das steht dann unter:
        micro.upload.tool=avrdude

  16. Ich habe das Micro-Board mit bootloader, denn die scetches kann ich problemlos uploaden in der Arduino IDE über usb. Die Board.txt – Einträge zum Micro sind aus der Arduino IDE 1.0.5-r2 :

    micro.name=Arduino Micro
    micro.upload.protocol=avr109
    micro.upload.maximum_size=28672
    micro.upload.speed=57600
    micro.upload.disable_flushing=true
    micro.bootloader.low_fuses=0xff
    micro.bootloader.high_fuses=0xd8
    micro.bootloader.extended_fuses=0xcb
    micro.bootloader.path=caterina
    micro.bootloader.file=Caterina-Micro.hex
    micro.bootloader.unlock_bits=0x3F
    micro.bootloader.lock_bits=0x2F
    micro.build.mcu=atmega32u4
    micro.build.f_cpu=16000000L
    micro.build.vid=0x2341
    micro.build.pid=0x8037
    micro.build.core=arduino
    micro.build.variant=micro

    • Ich glaube ich habe die Antwort.
      Den Atmega32u4 muss man erst in den Bootloader Modus versetzen. Ich habe die AVR_tools.zip Datei aktualisiert. Da ist jetzt eine arduino_32u4.bat Datei drin. Gucke einfach in der config_atmel_studio.txt für die richtigen Argumente… hoffe es klappt alles 🙂

  17. Ich habe in command die avrdude.exe durch arduino_32u4.bat erstetzt und in Arguments das entspr. Com-Port geschrieben lt. der config…Datei „\\.\COM31“ und dann kam das:

    Der Befehl „avrdude.exe“ ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.
    FEHLER: Die Eingabeumleitung wird nicht untersttzt. Prozess wird unverzglich beendet.
    Der Befehl „avrdude.exe“ ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.

    • Vielleicht habe ich mich falsch ausgedrückt. Trotz der befolgten Hinweise, für die ich sehr dankbar bin, kommt aber immer noch die selbe Fehlermeldung. Ich habe parallel noch in andere Foren geschaut – bin aber zu keinem Ergebnis gekommen, da ich einfach noch nicht so tief in der Materie drint stecke. Sehr gern würde ich diese Platine für mein Projekt zum Laufen bekommen, da ich sie sehr vielseitig einsetzen kann.

      • Hi Jörg,

        Das grundlegende Problem ist das auf den Micros kein FTDI verbaut ist. Du musst den µC daher erst in den Bootloader Modus versetzten. Die Arduino Standard IDE macht das, mittels einer seriellen Verbindung auf 1200 Baudrate. Öffnet die Verbindung und im nächsten Moment wird die Verbindung wieder geschlossen. Der Bootloader schaltet dann in den Programming Mode um (ganz genau für 8 Sekunden). Da das ATMEL Studio leider keine sequentiellen Uploadvorgänge ausführen kann, wollte Martin abhilfe mit der Batch schaffen. Leider funktioniert diese auch nicht wie sie sollte.

        Und hier der Trick:
        Der RESET-Button auf dem Micro resetiert in Wirklichkeit nicht den µC, sondern versetzt ihn nur in den Bootloader-Modus. Und genau das kannst du ausnutzen. RESET-Button, und dann erst deinen Code Uploaden (dafür hast du dann 8 Sekunden Zeit bis der Bootloader deinen Code startet).
        Programmieren kannst du mit den Standard-Parametern und der Baud von 57600.

        LG,

    • Hallo Jörg
      ich hatten den gleichen Fehler wie du. Ich habe die bat erweitert. Vor dem aufruf von der exe zeige ich mit cd auf das Verzeichnis in dem die exe liegt
      @echo off
      echo Bitte Digispark anschliessen…(in 60 Sekunden automatischer Abbruch)
      cd C:\AtmelStudio Digispark Progarmmer\AVRdude
      micronucleus.exe –run –type intel-hex %1%

  18. Vielen Dank für die tolle Anleitung. Durch sie konnte ich meinem Ziel ein ganzes Stück näher rücken. Ich würde gerne den Arduino Nano programmieren. Allerdings wird der Nano nicht geflasht. In den Argumenten des External Tools stehen die Parameter die Marco gepostet hat. Allerdings erscheint im Output Window folgender Text:

    avrdude.exe: AVR device initialized and ready to accept instructions

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

    avrdude.exe: Device signature = 0x1e950f
    avrdude.exe: reading input file „”E:\Projekt\TEST\HelloWorld\HelloWorld\HelloWorld\Debug\HelloWorld.hex”“
    avrdude.exe: can’t open input file ”E:\Projekt\TEST\HelloWorld\HelloWorld\HelloWorld\Debug\HelloWorld.hex”: Invalid argument
    avrdude.exe: read from file ‚”E:\Projekt\TEST\HelloWorld\HelloWorld\HelloWorld\Debug\HelloWorld.hex”‘ failed

    avrdude.exe: safemode: Fuses OK (E:00, H:00, L:00)

    avrdude.exe done. Thank you.

    Irgendwie kann das .Hex file nicht gefunden werden. Ich bin leider auch Anfänger und kenne mich daher nicht aus. Es wäre schön, wenn mir jemand helfen kann.

    Vielen dank schon mal 🙂

    • Hallo Benno,
      offensichtlich kann er die HelloWorld.hex Datei nicht finden in deinem Projekt. Heißt diese so?

      Bevor du deinen Code auf den Atmel übertragen kannst musst du diesen erstmal kompilieren. Das machst du indem du auf den „Build“-Button drückst.

      Grüße
      Martin

  19. Hi, ich konnte das Problem lösen. Ich musste die „“ – Zeichen im Argument entfernen und sieht wie folgt aus:

    -patmega328p -carduino -P\\.\COM3 -b57600 -D -Uflash:w:$(ProjectDir)Debug\$(ItemFileName).hex:i

    Danke für die Antwort 🙂

    Grüße Benno

  20. Hallo, bin neu beim AVR Studio 6.x. Danke erstmal für die kurze gute Beschreibung.

    Wie ist der letzte Absatz gemeint, mit der main.c Datei?

    Wo muss ich die test.c auswählen?

    Danke. Gruß

  21. Hallo Martin,

    vielen Dank schon mal vorab für die gute Einleitung.

    Habe zur Zeit einen Arduino YUN vor mir leigen und das selbe Problem, welches Jörg wieter oben umrissen hat. Der YUN hat ja wie der Micro auch einen Atmel ATmega32u4 mit Bootloader drauf.

    Deine .bat Datei habe ich, nach einigem recherchieren, um ein paar Befehle erweitert. (hatte Probleme, dass Windoof, die AVRdude.exe nicht gefunden hatte)

    call „E:\Program Files\Arduino_prog\AVR_tools\AVRdude\avrdude.exe“ -p atmega32u4 -c avr109 -P COM8 -b 1200 -n
    timeout /T 1
    call „E:\Program Files\Arduino_prog\AVR_tools\AVRdude\avrdude.exe“ -p atmega32u4 -c avr109 -P COM8 -b 57600 -D -Uflash:w:“$(ProjectDir)Debug\$(ItemFileName).hex“:i

    Habe zu testzwecken die Ausgabe eingeschalten.

    Beim Ausführen kommt folgender Fehler:

    E:\Program Files\Atmel\Atmel Studio 6.2>call „E:\Program Files\Arduino_prog\AVR_tools\AVRdude\avrdude.exe“ -p atmega32u4 -c avr109 -P COM8 -b 1200 -n

    Connecting to programmer: .avrdude.exe: ser_send(): write error: sorry no info avail

    E:\Program Files\Atmel\Atmel Studio 6.2>timeout /T 1
    FEHLER: Die Eingabeumleitung wird nicht untersttzt. Prozess wird unverzglich beendet.

    E:\Program Files\Atmel\Atmel Studio 6.2>call „E:\Program Files\Arduino_prog\AVR_tools\AVRdude\avrdude.exe“ -p atmega32u4 -c avr109 -P COM8 -b 57600 -D -Uflash:w:“$(ProjectDir)Debug\$(ItemFileName).hex“:i
    avrdude.exe: ser_open(): can’t set com-state for „\\.\COM8“

    avrdude.exe done. Thank you.

    Kannst du mir Helfen? Ist dasProblem von Jörg gelöst?

    Vielen lieben Dank schon Vorab

    Grüni

    • Hallo Grüni, ich bin dran… hatte zurzeit wenig Zeit mir das genau anzugucken, aber es ist nicht so einfach wie bei den anderen Serien 🙂 …eine Lösung stelle ich aber demnächst zur Verfügung.

  22. Hallo,

    vielen Dank für das super Tutorial. Bin über die Einfachheit begeistert.

    Allerdings habe ich eine Frage. Kann es sein, dass bei dieser Methode eingebundene utils nicht funktionieren?

    Habe z.B. folgendes kurzen Programm geschrieben:

    #include
    #define F_CPU 8000000
    #include

    int main(void)
    {
    DDRB=0xFF;
    while(1)
    {
    PORTB = (1<<PB0);
    _delay_ms(100);
    PORTB = (~(1<<PB0));
    }
    }

    Leider macht er mir die LED nur an, aber nicht mehr aus bzw. lässt sie nicht blinken. Hast du eine Idee, woran das liegen kann?

    Ich hoffe, du kannst mir helfen.

  23. Servus zusammen,

    ich hatte das selbe Problem wie Grüni und Jörg.

    Es hat eine halbe Ewigkeit gedauert, aber ich habe es lösen können.

    Das Problem ist, dass man (anscheinend nur unter Windows) den Port nicht mehr finden kann, nachdem man ihn mit -b1200 angesprochen hat. (Passiert selbst wenn man den Port über die PowerShell öffnet)

    Die Arduino IDE löst das indem sie danach noch einmal die Ports checkt. (Sie verbose output). Ich habe das mit Batch mitteln nicht hin bekommen aber glücklicherweise springt der Arduino sofern frei genau einen Port höher.

    Mit folgendem Batch läßt sich damit unter Windows und Atmel Studio 6.2 ein Leonardo und vermutlich alle anderen 32u4 flashen.

    @echo off
    SET port=%1%
    „\avrdude.exe“ -patmega32u4 -cavr109 -PCOM%port% -b1200 -n
    SET /a port=%port%+1
    „\avrdude.exe“ -patmega32u4 -cavr109 -PCOM%port% -b57600 -D -Uflash:w:%2%:i

    ist euer absoluter Pfad.

    Command in Atmel Studio ist die Batch Datei selber
    Als Argumente:
    $(ItemDir)Debug\$(ItemFileName).hex

    ist nur die nummer des Ports also 3 oder 56
    Sowohl in der Batch Datei als auch in den Argumenten kommen keine Anführungszeichen in den Pfad, auch nicht wenn Leerzeichen im Pfad sind.

    Hoffe es hilft jemandem!

    Ciao Kai

    • Arg, meine Platzhalter wurden gestripped.

      hier noch einmal der Code:

      Batch:
      @echo off
      SET port=%1%
      “{absolutePath}\avrdude.exe” -patmega32u4 -cavr109 -PCOM%port% -b1200 -n
      SET /a port=%port%+1
      “{absolutePath}\avrdude.exe” -patmega32u4 -cavr109 -PCOM%port% -b57600 -D -Uflash:w:%2%:i

      {absolutePath} ist euer absoluter Pfad.

      Argumente:
      {portNumber} $(ItemDir)Debug\$(ItemFileName).hex

      {portNumber} ist nur die nummer des Ports also 3 oder 56

      Sorry dafür. Ich hoffe ihr lasst euch nicht verwirren.

  24. Hallo Martin,

    tolle Anleitung funktioniert alles super mitn UNO (China UNO mit CH341 Driver). Allerdings hab ich da noch ein paar Nanos (China mit CH340G Driver). Driver correct installiert und funktioniert kann mit putty schnittstelle öffnen ebenso mit Arduino IDE – flashen funktioniert dort auch. Mit AVR 6.2 und avrdude öffnet sich zwar die Schnittstelle aber ich glaube nicht das er das HEX rüberschiebt, AVRDUDE.exe: stk500v2_ReceiveMessage(): Timeout.
    Keine Ahnung warum das net funzt, hab mir dann mal deine config angeschaut,
    Arguments: -patmega328p -cwiring -P\\.\COM15 -b115200 -D -Uflash:w:“$(ProjectDir)Debug\$(ItemFileName).hex“:i
    -> bin relativ neu und hab keine Ahnung davon hab mir dann mal das angeschaut und bei CC gelesen das der Bootloader ja nen stk500 sein soll, okay gibt mir ja auch die Fehler-Ausgabe bei AVR aus. mich hatte noch Interessiert wie die Agrumente aufgebaut sind hab das auch alles verstanden bis auf „wiring“ -> also bootloader von wiring.org oder wie? warum dann nicht direkt den stk500v2 auswählen –> is aber egal funkt auch nicht. Hatte bei adafruit nachgeschaut bin allerdings nicht weitergekommen, einige schreiben man solle den highvoltage nehmen aber ja.. so richtig komme ich nicht weiter.. ich denke das liegt am bootloader oder an avrdude selber .. könntest du mir bitte erklären wie ich das ding zum laufen bekomme. Vielen Dank

    • Probiere mal anstatt -cwiring => -carduino und achte darauf das der richtige COM Port ausgewählt ist. vielleicht musst du auch die Baudrate herabsetzen: -b57600 Ein Feedback wäre super 🙂

  25. Danke für deine schnelle Rückmeldung:)
    Also Gerätemanger com 19 – settings ebenfalls baud auf 57600 gestellt und im Sytnax der agrumente auch abgeändert siehe wie folgt:

    -patmega328p -carduino -P\\.\COM19 -b57600 -D -U flash:w:“$(ProjectDir)Debug\GccBoardProject1.hex“:i

    — ach ruhe geil hat geklappt, daumen hoch;)–> warum ging das jetz? nur weil ein anderer Programmer ausgwählt wurde? das verstehe ich nicht ganz kannst du mir das erklären oder mir zumindest paar links schicken wo das erklärt wird (also was im programmer steht, gut ich habe beim original winavr angeschaut aber sorichtig blick man da nicht durch wie das ganze mit dem flashen funktioniert und was man beachten muss usw.)-> bin schon wissbegierig

    • Was man als Programmer nehmen muss kommt immer auf den Chip an, ich habe mir einfach gedacht das weil kein ATmega16u4 oder so zum programmieren eingesetzt wird, er die hohen Übertragungsgeschwindigkeit nicht verträgt 😉

  26. Moin Martin,
    vielen Dank für dein Tutorial hierzu. Meinen Nano kann ich zwar erreiche, er hält an und die Bootloader LED geht an, aber ansonsten fehlt hier noch etwas.
    Was ich nicht verstehe ist, wo soll ich das ‚*‘.c file auswählen? Auch habe ich 4 ‚External Commands, nur wie kommt hier was rein?

    Für Hilfe dankt dir oder jedem anderen
    ]:-> Christian

    • Hallo Christian, ich habe jetzt die Argumente in der AVR_tools.zip Datei soweit aktualisiert das man daruf nicht mehr achten muss. Voraussetzung ist Atmel Studio 7…

  27. Hallo,
    hab auch einen nano gekauft und bin begeistert, dass ich nun das Atmel Studio (7) benutzen kann. Ich hab auch -carduino und b57600 einstellen müssen. Damit funktiniert das Download.
    Aber kann man auch debuggen? Du hast eingangs gesagt, dass im Atmel Studio das Debuggen so gut funktioniert.
    Wenn ich aber auf debuggen klicke, meint er: „Please select a connected tool and interface“
    Ich hab schon mal versucht, in dem sich öffnenden Fenster den AvrDude als externes tool anzugeben, aber das funzt nicht.

  28. Hallo ,

    genau das habe ich mir auch so hergestellt, wunderbar ist deine Lösung mit dem Bootloder Digispark
    ich verwende von denen das DigisPark Board mit dem Atiny85 (micronucleus.exe)

    Wenn ich AvrDude verwende kann man auch den Path für Release/Debug dynamisch dartsellen:
    -p t85 -c usbasp -P usb -U flash:w:“$(TargetDir)\$(TargetName).hex“:i

    Leider habe ich ein massives Problem des DigiUSB (DigiUSBDevice ). Nach einer Weile der Kommunikation, stürzt der Baustein samt WindowsUSB ohne Bootloader ab, und ich kann den Fehler leider nicht finden. Danach ist der USB Port bis zum Neustart unbrauchbar.

  29. Danke für dein Tutorial, bei meinem Arduino Uno hatte es bereits funktioniert. Nun habe ich seit neusten ein Arduino Zero und Probleme den Befehl für „Arguments“ zusammenzukriegen, könntest du mir dabei eventuell weiterhelfen ?

  30. Hallo,

    hab das Ganze mittlerweile zum Laufen bekommen. Mein Ziel war es die Atmel IDE genauso nutzen zu können wie die von Arduino. Hab dafür die diversen Header und c/cpp Dateien aus der Arduino IDE in ein separates Verzeichnis kopiert und binde sie nun entsprechend ein.
    Hab nun mal das BlinkWithoutDelay Beispiel genommen und es auf einen Uno geflasht. Das funktioniert auch, nur stimmt die Taktung nicht. Die LED blinkt nicht im 1 Sekunden Takt sondern wesentlich schneller.
    Der Kompiler meckert auch beim kompilieren und setzt über die delay.h einen Standardwert.

    Hab nun rausgefunden dass die Arduino IDE eine „Boards.txt“ Datei beim kompilieren einbezieht. In ihr werden nun sowohl die Taktung (F_CPU) als auch verschiedene andere Parameter konfiguriert.
    Ein Teil davon erklärt der IDE wohl nur welche Header zu welchem Board gehören, wo sie zu finden sind und welche Datenübertragungsrate beim Upload eingestellt werden muss.
    Andere Parameter jedoch übergeben darin wiederum irgendwelche Hex-Werte von denen ich nicht weiß wofür sie sind.

    Ich bin nun unsicher inwieweit die anderen Werte gebraucht werden. Auch weiß ich nicht wie die Arduino IDE diese „Boards.txt“ einbindet.
    Kann/ muss ich diese Werte/ Datei noch in das Atmel Studio einbinden?

    Danke und Gruß
    Eddie

    • Die Arduino IDE übergibt ihre Werte auch nur an avrdude.exe. Diese Werte habe ich ja manuell festgelegt, das mit der boards.txt kenne ich und ist mir zu aufwendig

      • D.h. es sind gar keine der Werte implementiert? Weißt du was das für Werte sind? Die Frequenz hab ich dann mauell eingestellt

  31. Hallo!

    Ich habe alles so gemacht wie es Ganimed beschrieben hat, es funktioniert bei mir aber nicht. Ich hoffe mir kann jemand helfen obwohl der letzte Post schon ein halbes Jahr her ist.

    Mein verwendete Batch Datei:
    @echo off
    SET port=%1%
    \\.\C:\asdf\avrdude.exe -patmega32u4 -cavr109 -PCOM%port% -b1200 -n
    SET /a port=%port%+1
    \\.\C:\asdf\avrdude.exe -patmega32u4 -cavr109 -PCOM%port% -b57600 -D -Uflash:w:%2%:i

    Command:
    C:\asdf\arduino_32u4.bat

    Arguments:
    6 $(ItemDir)Debug\$(ItemFileName).hex

    Das ist der Output den ich bekomme wenn ich meinen Arduino Micro (32u4) flashn möchte:

    avrdude.exe: ser_open(): can’t open device „\\.\COM6“: Das System kann die angegebene Datei nicht finden.

    avrdude.exe done. Thank you.

    avrdude.exe: ser_open(): can’t open device „\\.\COM7“: Das System kann die angegebene Datei nicht finden.

    avrdude.exe done. Thank you.

  32. Moin Martin,
    ich habe auf Amtel Studio 7 geupdated, aber keine Änderung erreicht. In der Menuebar drücke ich meine ‚NANO‘ Schaltfläche, der Nano bootet -> rote LED blinkt einmal und anschlißend läuft mein altes Programm weiter. Auf der Schaltfläche steht nun (Stop)NANO.
    Dann sehe ich noch die External Commands 2 bis 4, dies sind ausgegraut. 1 Fehlt!? Muss in die Befehle nicht noch Kommands rein für flashen und anderes?

    Bste Grüße aus Hamburg
    Christian

  33. Ich nochmal. In meinem Projektverzeichnis /Debug ist kein .hex file. Beim Build kommt immer folgender Fehler, der mir leider nichts sagt: Severity Code Description Project File Line
    Error cannot access device-specs for ‚atsam3x8e‘ expected at ‚c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/device-specs/specs-atsam3x8e‘ GccBoardProject1 avr-gcc.exe 0

    Kann jemand helfen?

    ]:-> Christian

  34. Hallo Martin habe folgendes Problem,
    beim schreiben auf einen Adroino Nano Clon von Atmel Studio 7 bekomme ich immer die folgende Fehlermeldung:
    avrdude.exe: stk500v2_ReceiveMessage(): timeout

    an was kann das liegen?

    • Moin Klaus,
      das hatte ich auch, als die Baudrate noch 115,2kB war und ich auch den Chip 328 auswählte wie aus dem zip rauskopiert. Es läuft bei 57,6 und dem 328p.

      ]:- Christian

  35. Hallo,

    ich möchte den Arduino M0 Pro mit dem Embedded Debugger EDBG über Atmel Studio 7.0, nur mit einem microUSB Kabel programmieren bzw debuggen können.

    Wie geh ich da vor, bzw. welchen Befehl füge ich dazu ein. (Argument)

    Grüße

  36. Hallo Martin

    Herzlichen Dank für dein tolles Tutorial.

    Leider stehe ich (als Anfänger) irgendwie auf dem Schlauch und komme nicht weiter.
    Ich habe das Atmel Studio 6.2 installiert, und die oben aufgeführten Schritte befolgt. Hat soweit gut geklappt.
    Als Board habe ich das Arduino UNO R3 (ATmega 328P).

    Bei den Einstellungen habe ich bei „Device“ den ATmega 328P, aber leider kann ich bei Tool nur den „Simulator“ anwählen, und nicht etwa den USB bzw. bei mir COM4 – Port.

    Und wenn ich ein einfaches Blink-Beispiel hochlade, bleibt die LED dauernd an.
    Keine Ahnung woran das legen könnte?

    ###############################

    #include
    #include

    int main(void)
    {
    DDRD |= (1 << PD7); //PD7 High
    while(1)
    {
    // LED on
    PORTD = (1 << PD7);
    _delay_ms(1020);
    // LED off
    PORTD = (1 << PD7);
    _delay_ms(1020);
    }
    }

    ###############################

    Stimmt was am Code nicht, oder liegt es daran dass ich nicht die Schnittstelle anwählen kann?
    Wenn ich es mit der Arduino IDE (Beispiel-Code) laufen lasse blinkt es, danach mit Atmel Studio mit obigem Code nur das dauerleuchten (scheint also doch eine gewisse Form von Kommunikation zu existieren).
    Fehler erhlate ich seitens Atmel keine.

    Ich wäre sehr dankbar um Rat und Hilfe..

  37. Hallo,

    ich habe mich jetzt auch ein Paar stunden mit dem Arduino Nano und dem darauf befindlichen Atmega32u4 herumgeärgert aber es dank der vielen Kommentare und Anregungen hier in diesem top Tutorial endlich geschafft (mittlerweile Atmelstudio 7).

    Die einzigen Veränderungen die ich im Vergleich zu dem post von Kai vornehmen musste waren folgende:

    Ich musste bei der Batchdatei die Anführungszeichen entfernen so nun z.B. mein Pfad in der Batch:

    @echo off
    SET port=%1%
    C:\AVRdude\avrdude.exe -patmega32u4 -cavr109 -PCOM%port% -b1200 -n
    SET /a port=%port%+1
    C:\AVRdude\avrdude.exe -patmega32u4 -cavr109 -PCOM%port% -b57600 -D -Uflash:w:%2%:i

    Außerdem gab es bei mir noch einen Fehler im Atmelstudio, welches das .hex file mit anderem namen erstellte, weshalb ich die Eingabe bei „Arguments“ wie folgt angepasst habe:

    8 $(ItemDir)Debug\$(TargetName).hex

    Wobei die 8 mein Standartport ist, den mein Nano/Leonardo haben, wenn ich im Gerätemanager nachschaue.

    Zur Vollständigkeit möchte ich noch darauf hinweisen dass der Command für das External Tool Fenster bei mir so aussieht: C:\AVRdude\arduino_32u4.bat wobei die Batch den Inhalt von oben enthällt den ich von Kai genommen und wie beschrieben angepasst habe.

    Ich hoffe ich kann mit diesen Ergänzungen noch ein Paar Menschen helfen die so wie ich heute umherirrten.

    • Hallo Alex, danke für die Info, bei mir gab es nur eine kleine Veränderung, ich musste den Port -1 rechnen und nicht +1 wie bei dir, aber ich denke das ist von System zu System unterschiedlich.

      Außerdem habe ich noch eine kleine Pause von 2 Sekunden eingefügt damit etwas gewartet wird bis der neue serielle Port verfügbar ist… so sieht jetzt die Batchdatei bei mir aus:

      @echo off
      SET port=%1%
      C:\AVRdude\avrdude.exe -patmega32u4 -cavr109 -PCOM%port% -b1200 -n
      SET /a port=%port%-1
      ping -n 2 127.0.0.1 > NUL
      C:\AVRdude\avrdude.exe -patmega32u4 -cavr109 -PCOM%port% -b57600 -D -Uflash:w:%2%:i

  38. Vielen Dank für dieses super Tutorial. Hat mich jetzt echt Zeit gekostet eine Kommunikation zwischen meinem Arduino Uno und dem AVR Studio herzustellen. Jetzt hat es endlich geklappt dank dieses Tutorials.

  39. Danke erstmal für die Mühe^^

    Eine Frage hätt ich noch. Wenn ich den Arduino dann mit Assembler programmiere, muss ich mich noch um die Fusebits kümmern oder werden die durch den Vorgang nicht beeinflusst?

    Gruß

  40. Dein Tutorial zu Arduino via USB ist ohne Frage gut.
    Aber ich bekomme folgende Fehlermeldungen :

    avrdude.exe: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
    avrdude.exe: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
    avrdude.exe: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
    avrdude.exe: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
    avrdude.exe: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
    avrdude.exe: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
    avrdude.exe: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
    avrdude.exe: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
    avrdude.exe: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
    avrdude.exe: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

    avrdude.exe done. Thank you.

    Den avrdude zusammen mit usbasp um über die ISP Schnittstelle zu programmieren habe funktionsfähig laufen aber, wie gesagt, über die USB-Schnittstelle kriege ich es nicht ans Laufen. Die COM_Schnittstelle stimmt. Wenn di nicht stimmt gibt es eine andere Fehlermeldung.

    Command C:\avrdude\avrdude.exe
    Arguments -patmega328p -carduino -P\\.\COM4 -b115200 -D -Uflash:w:“$(ProjectDir)Debug\$(TargetName).hex“:i

    Gruß Berny

  41. Super Arbeit.
    Ich habe hier leider noch ein problem ich bekomme immer ein Timeout problem. Mit Sketch bekomme ich die Verbindung zum Nano hin nur hier nicht.
    Hier die Fehlermeldung: avrdude.exe: stk500v2_ReceiveMessage(): timeout

    Meine Parameter bei Atmel lauten:
    F:\Programieren\AVRdude\avrdude.exe
    -patmega328p -cwiring -P\\.\COM4 -b115200 -D -Uflash:w:“$(ProjectDir)Debug\$(TargetName).hex“:i

  42. Super Tutorial! Und, nach dem einen oder anderen Versuch hab‘ ich es dann auch geschafft meinen Arduino Micro zu Flashen. Allerdings geht dannach die Serielle Schnittstelle via USB nicht mehr, was wohl daran liegt, dass die Arduino IDE zusätzlichen Code überträgt der serielle Schnittstelle wieder Verfügbar macht. Hat schon jemand herausgefunden, welcher Code das ist und wie man ihn einbindet?

  43. Ich habe eine ganze Weile mit dem Arduino2560 gekämpft. Deine Seite gab den wichtigen Hinweis auf
    -verwendet den neuen AVR-Dude aus dem Link.
    –c wiring.. hab ich bisher nix davon gehört, aber es funktioniert.

    Vielen Dank

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s