Atmel Studio 7 – Programming the Arduino Uno via the bootloader without programmer.


In this tutorial I will explain how to program the Arduino Uno with Atmel Studio 7 without using a programmer / debugger. I also take the time to write a simple blink program that you can upload.

All you need for this tutorial is Atmel Studio 7, an Arduino Uno and the Arduino IDE.



  1. You got the whole story wrong boy! There id no point in comapring atmel studio with arduino. I personally used avr studio and code vision for programming avr micros. Now i use arduino almost all the timr for developing a prototype.then if i feel it worht the effort i design a pcb and put an atmel micro on it and it most cases i put an arduino board inside a project. Arduino is designed for prototyping and is excellent on it.

  2. Does this method still mean that the millis() function, and therefore interrupts are enabled, even if it's programmed in embedded C in Atmel Studio?

  3. I have a problem . So when i do build solution and go to tools to run arduino everything goes well even with the code but when I upload it to the Arduino uno it only blinks for a while and after nothing happens .Any suggest?

  4. I think this is something ATMEL should be SHOUTING about as it promotes there IDE but thankfully you have, and very well done …cheers!

  5. @joop Brokking: thank you so much i was able to do that for my Arduino Uno via Keil uvision 5. I would really appreciate if you can help me same with my STM32F411RE nucleo board and Freedom frdm-kl25z board. Please advise., Also how did you get an information regarding PORTB on arduino that 0B00100000 is high and 0B11011111 is low? also what does DDRB 0B00100000 does?

  6. Exactly what I was looking for. Wanted to use my arduino nano, but didn't want to use arduino IDE. Most other tutorial only use the atmega chip in a breadboard; also not what I was looking for. Thank you.

  7. great stuff! I just followed your instructions and all went fine cheers!!!…are all studio's functions now available please?…also they don't seem to keen on telling you this do they? maybe they would like you to buy ICE.

  8. Very useful. Thanks.
    I have a question. I need to develop an application where an analog channel is acquired continuously and data streamed to a PC via USB. I believe I need a minimum of a dual core microcontroller that can have DMA channel to shift the acquired data to on board memory on continuous basis. Another core running in parallel will deterministically access the data from DMA stream it to USB channel. Is it possible to do that with any off the shelf MC boards available for makers. Thanks in advance.

  9. Why does the order of functions placed in the code matter in ATmel Studio 7 when it doesn't matter in Arduino IDE? Are they not using the same compiler?

  10. Great video. Thanks! 🙂 .. for those whose current arguments show error, here's the updated one:

    -C"C:Program Files (x86)Arduinohardwaretoolsavr/etc/avrdude.conf" -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w:"$(TargetDir)$(TargetName).hex":i

    Change the com port accordingly.

  11. Biggest problem: no Linux version! Why? Because Atmel decided to use MS studio! DOH! WHEN are generic chip makers going to learn? Open platforms are required to further the use of otherwise OS agnostic chips! STOP restricting the market … PLEASE!

  12. Hi Joop,
    have you tested the external tool with teh latest arduino version 1.8.8? After I updated my arduino version from 1.8.0 to 1.8.8 an update of the external tools are needed.!
    No the tool is located at C:Program FilesWindowsAppsArduinoLLC.ArduinoIDE_1.8.19.0_x86__mdqgnx93n4wtthardwaretoolsavr/bin/avrdude.exe
    The arguments are -C"C:Program FilesWindowsAppsArduinoLLC.ArduinoIDE_1.8.19.0_x86__mdqgnx93n4wtthardwaretoolsavr/etc/avrdude.conf" -v -patmega328p -carduino -PCOM6 -b115200 -D -Uflash:w:"$(ProjectDir)Debug$(TargetName).hex:"i
    However, there is still something not correct, the code is not uploaded, ot even a try. Just nothing in the output window, no signs on the board (TX/RX LEds etc.)
    Does it work for you?

  13. this is not efficient, you must to write more code than in arduino ide to do the same job, instead of simplify things, this is more complicated, the key is simplicity that is why arduino is so popular.

  14. Nice video (:
    I have a question:
    If you have PORTB = B00000011; // = 3
    then what is the difference between PORTB |= (1 << 5); And PORTB |= (3 << 5); ?? (: I think (3 << 5); means move all the bits 5 places to the left? but what about (1 << 5);? I am a bit confused (:

  15. Hi.
    I recently wanted to do the same trick on my own, but decided to first look for a ready solution and immediately found your video. The solution works, thank you.
    Permit me a small correction — you suggest the Debug subdir in the command line parameters, but this won't work for Release builds (and this is probably why some readers weren't able to do the trick).
    Instead I suggest the following path:
    It works for both Debug and Release builds — tested.
    Thanks again.

  16. i try right now to follow the step but it is not working, on the ouput i am getting: "avrdude.exe: can't open input file DebugGPIO_AVR.hex': No such file or directory" and can read from file 'DebugGPIO_AVR.hex' failed

  17. Thank you sir for that very useful information.
    Could you please help us make a video on how to send data atmega328p to IOT by SIM800l module?

  18. Hi there, nice video and very useful. I have a question for the atmel ice debugger. Does it need to connect to arduino all the time for programming uploading? or just use usb to connect the arduino? If the debugger is connected to the arduino, is it necessary to connect arduino to pc by usb or not? really confused. Thank you

  19. Well, I am almost 51 and you have done me a great service. I have been looking for a couple days on how to set up my Arduino projects in either AmtelStudio or PlatformIO, both of which does not give error free ways of getting it to work with a basic Uno board. This video was indeed the answer with AmtelStudio the winner for me (thanks to you). I am now a subscriber as well. Thank you sir. I wish you great success.

  20. -C"C:Program Files (x86)Arduinohardwaretoolsavr/etc/avrdude.conf" -v -patmega328p -carduino -PCOM6 -b115200 -D -Uflash:w:"$(ProjectDir)Debug$(TargetName).hex":i

  21. My Arduino resets when i boot the program on it with Atmel Studio, but the program doesn't works insted my arduino keeps the last program (programed by Arduito IDE) after the reset. Any help? (Sorry for my english)

  22. Looking at the GUI(even the name gives it out :D) it's a "rebranded" Visual Studio with Atmel's toolchain. Since I'm very familiar with VS i might switch

  23. this method DOES NOT WORK with Arduino ide downloaded from WINDOWS STORE, please make sure that u are using the one downloaded from official Arduino website.


Please enter your comment!
Please enter your name here