Home‎ > ‎Free Tools‎ > ‎

Spark Loader

Spark Loader 2

What is Spark Loader ?

Spark Loader is a boot loader for AVR microcontrollers, it is used for programming flash and EEPROM using a serial link (USB to Serial converters can be used) between your computer and the microcontroller through any free COM (or USB) port. Spark Loader consists of two parts:

    1. On - chip boot loader:
        A hex file that resides at the boot section of the flash memory.

    2. Windows application :
        It has the responsibility of transmitting flash and EEPROM data into the microcontroller.

Supported devices

 Tested by
 Osama Salah
ATmega32(L)   Osama Salah
 ATmega128(L) Osama Salah
 ATmega16(L)  Alex - Kazakhstan
  ATmega8535(L)   Alex - Kazakhstan
 AT90PWM3(B) Alex - Moldova
 at90pwm316  Alex - Moldova

Not tested:

These devices are supported by the code, but haven't been tested yet. If you used Spark Loader with any of them , either worked properly or not, please inform me.

ATmega48(L)   ATmega88(L)
 ATmega64(L)  ATmega162(L)  ATmega168(L)
 ATmega169(L)  ATmega8515(L) AT90CAN128 AT90PWM2(B)


On-chip boot loader:

  • License:

GNU General Public License(GPL) V. 3

- Usage

  • Download SparkLoaderBoot2.zip (ver. 2.4)
  • Open SparkLoader.prj using codeVisionAVR (A free evaluation version is available)
  • Select "Configure" from "Project" menu, and under "C Compiler" tab, select the "Chip" and "Clock" frequency you want.
  • Make sure that the "Program type" is "Boot Loader - 512w".
  • Under "After Build" tab, check "BOOTRST" and "BOOTSZ0" fuse bits, uncheck "BOOTSZ1" fuse bit,and check "BOOTRST" is checked to make the PC initially points at the first address of the boot loader section. (e.g. 3E00 for ATmega32 and a 512w boot loader).
  • Uncomment "#define UART1" (at line 21) if you want to use UART1 (Not available for all chips).
  • Change "#define BAUD 9600" (at line 102) to the required baud rate.
  • Program the chip using your ISP .

Windows Application

  • License:   


- Usage

  • Download SparkLoaderInstall from any of the following servers:
Download from Softpedia  
X86 & X64


Windows 32 bit Local Link
 Windows 64 bit
Local Link

Spark Loader is safe software
  • launch sparkLoaderInstallxx.exe and follow steps.
  • Open the program, the following window opens:


- Toolbar buttons:

  • Open (Alt + O) : Opens a browse dialog for .hex and .eep files
  • Help (Alt + H) : Opens the documentation.
  • About (Alt + A) : Shows "About" window.
  • Hide (Alt + D) : Send the program to tray.
  • Drop Area (Alt + R) : Shows/hides the drop area, you can drag files directly into this area to open them, one file can be dropped at a time.
  • Exit (Alt + X) : Exit the program.

- Information Panel:

    Some information is displayed at the left side of the main window, this information are displayed when the microcontroller is reset.

- Flash File:

    Displays the currently open flash file (.hex).
  • "Program" check box: Specifies whether to program flash or not, when the microcontroller is detected.
  • "Auto load flash file" : Enables you to automatically open the last loaded flash file, at program startup.

- EEPROM File:

    Displays the currently open eeprom file (.eep).
  • "Program" check box: Specifies whether to program eeprom or not, when the microcontroller is detected.
  • "Auto load eeprom file" : Enables you to automatically open the last loaded eeprom file, at program startup.

- Connection Panel:

  • Available Ports:
        Displays all available COM ports, recently open ports by another software are not displayed.
  • Update Ports:
            If a busy port became available, click this button to refresh the port list.
  • Baud Rate:
        Select the baud rate as adjusted in the on-chip boot loader code.

  • Connect/Disconnect:
When you are ready to program your chip, press this button to open the selected serial port. Press it again to disconnect.

  • Automatic Disconnect:
This option makes spark loader disconnects automatically from the serial port after finishing flash and/or EEPROM programming, this is useful when your application (not the boot loader) uses serial port.

  • Reset: If power fails during programming, click this button and reset the chip.

- Memory Usage Panel:

  • Program Size:
        Displays the program size in bytes

  • Flash sage:
        Displays how percentage of flash memory is occupied by this program.

  • EEPROM data size:
        Displays the eeprom data size.

  • EEPROM Usage:
        Displays how percentage of EEPROM is occupied by this eeprom data.

- Tray Icon:

    Tray icon color changes according to the currently performed process/state as follows:

 Not connected, No COM port is open.
 Connected, The selected COM port is open.
 A file (.hex or .eep) is being loaded into the program .
 A file (.hex or .eep) is being programmed into chip's memory (flash or EEPROM). Chip must be powered while a file is being programmed.

- Tray icon pop-up menu:   

Invokes a menu that contains quick commands to be used when the main window is hidden.

- Global Hot keys:

    Some hot keys are available globally, they can be used while the main window is hidden, so, you can send the program to the tray, and use these commands to control the program. The color of the tray icon indicates to the currently performed process. Just choose Baud rate and COM port, then you can do anything using hot keys.

Alt + Win + C
Alt + Win + O 
Alt + Win + D
 Show/Hide Drop Area
Alt + Win + T

Small test application

This small application stores 200 bytes in eeprom and send them using USART.

Serial Circuit

A link must be established between your PC and the microcontroller. A Max232 circuit is illustrated in P.7 of Max232 datasheet.

It is highly recommended that you keep Baud Rate Error as small as possible, using 7.3728 MHz crystal oscillator gives 0 % error and consequently reliable transmission

What is new ?

Version 2.4 
  • Solved issues of programming more than 64 KB 
  • Enhanced Windows application performance

Version 2.1
  • AT90PWM2(B) and AT90PWM3(B) support
  • Solved a bug in updating .hex and .eep files information
  • Solved the problem of changing .hex and .eep files icons
Version 2.00
  • GUI improvements
  • More enhancements for Windows 7
  • Option to assign Spark Loader with .hex and/or .eep file types
  • Automatic Disconnect button added (See Toolbar buttons above)
  • Reported and unreported bugs have been fixed
  • Solved issues regarding ATmega128 and other chips that have RAMPZ, and tested on ATmega128
  • On-chip boot loader License change to GPL, enjoy :)

Version 1.2:

  • GUI improvements
  • ATmega8535(L) tested
  • A problem with ATmega8(L) has been solved
  • Tested on both windows Vista and Windows 7


Your feedback is appreciated, so, don't hesitate to send me any question, suggestion, bug, or any thing. Your feedback is very important for making this software better.
Please tell me about your experiment with any chip using Spark Loader, either it worked properly or not.