Arduino Builder – utility for viewing, building and uploading Arduino sketch

Why bother to make this utility as the Arduino IDE can do everything?

  • Sometimes, we only want to compile a pre-written sketch and upload it to Arduino. Normally we do this with Arduino IDE, but it’s not the best experience.
  • Sometimes, we just want to burn bootloader in HEX file for a board. There are many GUIs to AVRDUDE out there for doing this. But many of them are out-dated and do not handle for Leonardo (ATMega32U4 based), not mentioning they are just GUIs to AVRDUDE which can’t compile.
  • Arduino IDE forces sketch file name to be located in a directory of the same name and this is not handy sometimes.
  • Arduino IDE does not properly handle library files which reside in the same directory. When there is a duplicated version in IDE's libraries directory, compilation fails.

That's why I made this utility, simple, straight-forward and trying to have a sleek look, and to feel better when compiling a sketch and programming Arduino.

Links

  • Intro*

Arduino Builder is a fully standalone utility for viewing, compiling and uploading Arduino sketch file and compiled ELF or HEX file (usually bootloader) to Arduino board with Arduino serial programming interface, USBasp or Arduino ISP, without the need for Arduino IDE. This can be easily done with no more than 3 steps. When compiling is required (for uploading sketch file), the utility scans the sketch for referenced libraries and build the necessary libraries automatically.

Arduino Builders comes in GUI (graphic user interface) version, for normal end users, and CLI (command line interface) version, named Arduino Uploader, for integrating into 3rd-party applications. A real case is Mind+, the Arduino graphical programming environment.

The distribution package contains Arduino 1.0.4 core and library files, AVR GCC compiler toolchain and AVRDUDE. As only the standard Arduino libraries are shipped with the utility, in order to build with custom libraries, please place the library source code files (with identical directory name) in /arduino/libraries directory, as what is done with official Arduino IDE.

](Arduino Builder – standalone utility for building and uploading Arduino sketches | ArduinoDev.com)](A tutorial for Arduino Builder | ArduinoDev.com)

Looks like quite an effort, thanks for the contribution I will check it out. However it does not (nor can it) deal with my pet peeve that the arduino IDE no longer stores a compiled sketch's hex file into the users sketch folder as it did long ago in much earlier versions. It's a real pain to search out the temp directory for the strange file names it uses and to then store them away somewhere useful for future use. What procedure or steps do you use to handle your hex file storage?

Lefty

With my utility, compiled hex is always stored in the same directory of the sketch.

stanleyhuang:
With my utility, compiled hex is always stored in the same directory of the sketch.

Wow, nice. That feature alone is worth using your utility. Can your utility do a compile without a upload, much like the IDE has a verify option that just compiles a sketch without having to have the board attached?

Lefty

The CLI can do this, simply by specifying - for serial port option in the command line. I will add this feature to GUI soon.

Just released 0.6.1. In this revision, I added a "Build Only" button to do compiling only. A pie chart UI was also added to show memory consumption for target MCU.

I'm having trouble getting your application to run on my windows XP SP3 system.

Version 6.1
opening file explorer and clicking on ....GUI.exe, I see opening window of your GUI app for about 3 seconds, it then disappears and file explorer just hangs with a hourglass cursor. Task manager says file explorer is not responding, can't quit file explorer and have to reboot to recover.

Version 6.0
Opening file explorer and click on ....GUI.exe , I get opening window of your GUI app. Select Uno board and point to a arduino sketch .ino file and then click on comm 5 (my uno board's comm port) and GUI says error uploading.

Lefty

retrolefty:
I'm having trouble getting your application to run on my windows XP SP3 system.

Version 6.1
opening file explorer and clicking on ....GUI.exe, I see opening window of your GUI app for about 3 seconds, it then disappears and file explorer just hangs with a hourglass cursor. Task manager says file explorer is not responding, can't quit file explorer and have to reboot to recover.

Instead of re-booting, open Task Manager and 'End Process' on explorer.exe. Then from within Task Manager do File->New Task and type explorer.exe and hit okay. Should be quicker than re-booting.

Riva:

retrolefty:
I'm having trouble getting your application to run on my windows XP SP3 system.

Version 6.1
opening file explorer and clicking on ....GUI.exe, I see opening window of your GUI app for about 3 seconds, it then disappears and file explorer just hangs with a hourglass cursor. Task manager says file explorer is not responding, can't quit file explorer and have to reboot to recover.

Instead of re-booting, open Task Manager and 'End Process' on explorer.exe. Then from within Task Manager do File->New Task and type explorer.exe and hit okay. Should be quicker than re-booting.

When I try to End Process on explorer.exe (not responding) task manger kills it and then shows a new copy of explorer.exe starting and it also is not responding. As I said rebooting was the only way to get going again.

Lefty

I will test it on XP soon.
It runs quite well in Windows 7.

Version 0.6.2 is released. The new version fixed several issues and works well Windows XP.

stanleyhuang:
Version 0.6.2 is released. The new version fixed several issues and works well Windows XP.

Thank you very much, I will give it a try sometime later today.

Lefty

Well I gave it a try and it's still a no go. Lock's up file explorer and can only reboot to recover. Maybe it's my machine, so best to have someone else with an XP report if it works for them or not.

Lefty

I tested in on Windows XP in VM. What's your IE version? Is it 6.0? The UI (including the pie chart) is HTML based as I plan to port it to other OS than Windows.

The new release of 0.7.0 has added options for MCU operating frequency including 20Mhz, 16Mhz, 12Mhz and 8Mhz. An interesting Arduino variant (based on ATMega644pa) named Microduino+ is also supported in this version.

Code viewer is added in 0.8.0 and the GUI version has been renamed from Arduino Uploader to Arduino Builder as it is no longer an uploader alone.

stanleyhuang:
Code viewer is added in 0.8.0 and the GUI version has been renamed from Arduino Uploader to Arduino Builder as it is no longer an uploader alone.

hello sir,

this is having a bug when ArduinoBuilder-0.8.3 is used.

GUI and a hex file is able to burn to Nano3.0 correctly, PDE or INO is either no provided and no used.

however, we want simply and further user isolation and more easy, used the ArduinoUploader.exe command line tool alone, and also provided a hex file only, but it does not work.

followings command lines are not working at all,

ArduinoUploader test.hex 7 COM4
ArduinoUploader test 7 COM4

PC, Win7 64bit, ArduinoBuilder-0.8.3

would you please help to check what was wrong with our command line.

best regards,
xiao

Hi stanleyhuang,
Is it hard to add support for other processors and pinout variants?

Whenever I try to run Arduino Builder I keep getting the window below. Any idea ho to overcome this?

Hi!
This is an awesome tool!
However, is it possible to change the directory for the libraries but still include the standard arduino libraries? Pretty much multi-folder scanning for libraries. I (and probably everyone else) hold their libraries the folder that the Arduino IDE provides. It would be nice if as well as scanning the libraries folder inside the Arduino Builder folder, it could also scan one selected by the user and then save that preference. I tried creating a symbolic link to my arduino libraries folder inside of the library folder for Arduino Builder, but it failed.

Windows 8 32-bit (Works perfectly!)
Arduino Mega 2560 R3