Learn, Implement and Share

Note

This article is a part of Arduino / ATmega328p Embedded C Firmware Programming Tutorial. Consider exploring the course home page for articles on similar topics.

Arduino Tutorial Embedded C Register Level Arduino Master Class

Arduino Tutorial Embedded C Register Level Arduino Master Class

Also visit the Release Page for Register Level Embedded C Hardware Abstraction Library and Code for AVR.

Introduction

This tutorial will walk you through the process of configuring Atmel Studio such that you can directly Program Arduino from Atmel Studio. This will let you choose Professional grade IDE ie. Atmel Studio for your programs and still use a Maker / Prototyping Hardware ie. Arduino for Testing or Deployment. 

To Flash Arduino from Atmel Studio, you need to install Arduino IDE and Drivers before. Please follow these steps to install if you haven’t. 

https://www.arnabkumardas.com/platforms/atmel/how-to-install-arduino-ide-and-drivers/

What You Will Learn

  • How to flash Arduino from Atmel Studio using bootloader?
  • How to program Arduino UNO using COM Port from Atmel Studio?
  • How to program Arduino NANO using COM Port from Atmel Studio?
  • How to flash Arduino boards from Atmel Studio?

Configuration Steps

Time needed: 5 minutes

Configuration Steps for Atmel Studio for Flashing or Programming an Arduino Board

  1. Open Atmel Studio

    Open your installed Atmel Studio IDE.

    Atmel Studio 7

  2. Go to External Tools Menu

    On the Menu Bar go to Tools -> External Tools

    External Tools Atmel Studio

  3. External Tool Window

    You should see a window like this but will be empty for you. I had already added two commands for Arduino UNO and Arduino NANO. 

    Atmel Studio Add External Tool

  4. Add a new Tool for Arduino UNO 

    Click ‘Add’ to add a new Tool. And fill the text boxes as below.

    Title: Arduino UNO

    Command: C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe

    Arguments: -C"C:\Program Files (x86)\arduino\hardware\tools\avr\etc\avrdude.conf" -v -patmega328p -carduino -PCOM10 -b115200 -D -Uflash:w:"$(ProjectDir)Debug\$(TargetName).hex":i

    Select 'Use Output Window'

    You can give any Title you want. The Command should have the path to avrdude.exe that will be in the location where you have installed the Arduino IDE. The Arguments should have the 3 most important parameters in it, the Microcontroller which is dependent on the Arduino board you are using, COM Port, and Baud Rate. COM Port system dependent and can be determined from Device Manager. Baud Rate should be 115200.

    Arduino UNO / NANO Microcontroller > -patmega328p
    Arduino MEGA Microcontroller > -patmega2560

    Add External Programming Tool Arduino in Atmel Studio

  5. Add a new Tool for Arduino Nano

    Click ‘Add’ to add a new Tool. And fill the text boxes as below.

    Title: Arduino NANO

    Command: C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe

    Arguments: -C"C:\Program Files (x86)\arduino\hardware\tools\avr\etc\avrdude.conf" -v -patmega328p -carduino -PCOM5 -b57600 -D -Uflash:w:"$(ProjectDir)Debug\$(TargetName).hex":i

    Select 'Use Output Window'

    You should notice that the microcontroller is the same as in Arduino UNO as both the board uses the same MCU. The COM Port is changed as every new board will get a new COM Port assigned by your PC. You have to check in Device Manager to which COM Port is assigned for your Board. The Baud Rate for Arduino NANO is 57600. 

  6. Build Your Program

    It usually takes few seconds to get the build done.

    Build the Program in Arduino

  7. Flash Arduino and Test

    Go to Menu -> Tools and Select the Tool you want to Test. 

    Select The Tool to Flash

  8. If Everything is fine you should get a message like this

    It usually takes few seconds to flash the Arduino.

    Success Flashing Arduino from Atmel Studio


Crazy Engineer

MAKER - ENGINEER - YOUTUBER

23 Comments

Jackson · June 14, 2022 at 12:49 am

I am receiving an error whenever I am trying to flash the device. I have downloaded the drivers according to the article attached and tested my device there and it worked fine. the error is the following:
System wide configuration file is “C:\Program Files (x86)\arduino\hardware\tools\avr\etc\avrdude.conf”

Using Port : COM10
Using Programmer : arduino
Overriding Baud Rate : 115200
avrdude.exe: ser_open(): can’t open device “\\.\COM10”: The system cannot find the file specified.

MQ · November 7, 2022 at 5:06 pm

I found this method would erase the need for Atmel ICE when programming, that is to say, it would program the Arduino UNO via USB port, it is valuable, but how to make the Arduino API – digitalRead(), digitalWrite()… be identified in Atmel Studio?

    altoid · October 6, 2023 at 12:04 pm

    You can only have that api in arduino ide. If you wanna use atmel studio you’re gonna have do everything manually without fancy abstract functions.

Your saviour · November 23, 2023 at 11:41 pm

For everyone struggling with the error
avrdude.exe: ser_open(): can’t open device “\\.\COM10”: The system cannot find the file specified
open arduino IDE, plug in your arduino and check what port appears and then modify it, it will work
For example, I saw that I was plugging my arduino in COM9, but you could be using COM5 or COM6

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.