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


IntroArduino 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 <install dir>/arduino/libraries directory, as what is done with official Arduino IDE.