I want to make Arduino flashing tool only for a nano, a simple flashing application which could run on windows taking input as a .hex file.

I know how to do this in Linux environment using Makefiles and writing script to automate it but have no idea what all are the things which I need to know and consider before I proceed with any windows application for such cases (implementing light GUI).

Any initial guide or read through would be a great help!

  • 1
    ....... Why on earth....?!?! – Majenko Jun 3 '17 at 7:22
  • I wish to give a support for a firmware upgrade for a product wherein I would be giving a .hex file and enable flashing on customer side. IDE can be used but I wish to provide a minimal complexity for the unskilled user. – Ashish K Jun 3 '17 at 7:24
  • So you don't want an IDE then, and it has nothing to do with Makefiles. You just want to run avrdude, maybe from a little wrapper GUI. – Majenko Jun 3 '17 at 7:26
  • May be yes. @Majenko please suggest the steps that would be involved in wrapping the avrdude with the GUI. Thanks! – Ashish K Jun 3 '17 at 7:28
  • 1. Write a windows application that asks for a file. 2. Add that file name to a predefined string for executing the command. 3. Execute the command. Maybe add options to select the com port. If you're clever and your chosen windows programming language allows it you may be able to feed the output of avrdude back to the user. – Majenko Jun 3 '17 at 7:30

This application already exists. It's called AVRDUDE:


You can download it compiled for Windows at the link above. This is the very flashing tool that the Arduino IDE uses for the AVR boards such as Nano. You can get the AVRDUDE command the Arduino IDE uses to upload to the Nano by following these steps:

  1. Start the Arduino IDE
  2. File > Preferences > Show verbose output during: > upload (check) > OK
  3. Tools > Arduino Nano
  4. Sketch > Upload
  5. After the process completes scroll the black console window at the bottom of the Arduino IDE window up to the start of the upload output and you will see the command generated by the Arduino IDE, which you can adapt to your needs.

If you want to use Makefiles you can get make compiled for Windows from this package:


Note that it's incorrect to call what you're trying to do an IDE. IDE stands for Integrated Development Environment, which this is certainly not.

Not the answer you're looking for? Browse other questions tagged or ask your own question.