Main Content

This project is all about getting your compiled sketch onto your target board without the need to have a connection to a computer running the Arduino IDE.

The video demonstrates the operation of the loader. The first board being loaded in the video is my DCSensor (Dust Collector Sensor) board. The DCSensor binary is loaded via its ICSP connector is 3202 bytes. The second board being loaded is my DCController board. The DCController binary is loaded via its TTL Serial connector is 61258 bytes.

Terms:
ICSP - In-Circuit Serial Programming. Many Arduino boards have a dedicated 6 pin 2x3 pin header labeled ICSP.
ISP - In-System Programmer.
Intel HEX - Intel hexadecimal object file format. A file format that conveys binary information in ASCII text form.
IDE - integrated Development Environment. In this specific case it’s the Arduino IDE.
AVR - not an acronym, it’s simply the name of a family of microcontrollers developed by Atmel and now owned by Microchip Technology that are found on many boards supported by the Arduino IDE.
stk500 - an ISP developed by Atmel. In this case it’s the set of documented commands supported by the ISP and many on-chip bootloaders.
SD - Secure Digital memory card format. This project uses a micro SD card.

Overview:
If you’ve ever looked into how the Arduino IDE works, you may know that the IDE uses the command line tool avrdude to convert the Intel HEX file containing your sketch’s binary into the stk500 commands needed to load your sketch onto the target AVR microcontroller. These commands are sent directly to the microcontroller if it has a bootloader, or through an ISP connected to the board’s ICSP connector. The ISP converts the stk500 commands into AVR serial programming instructions. Using either method, you need to have your board near the computer running the IDE. But what if your microcontroller is installed somewhere that it would be inconvenient to use your computer? (outside, dusty location, etc.) You would probably have to uninstall the board whenever you need to update the software. That’s where this project comes in. It allows you to load your microcontroller in-place without the need for a physical connection to the computer running the IDE. The SD Hex Loader ISP does what avrdude does only it doesn’t require any connection to a computer, just an SD card. The loader can also work as a standard USB AVR ISP.

You could also use this board for small scale production.”

Link to article