No longer support for Megaload


MegaLoad is a Windows based boot loader for all Atmel ATMega microcontrollers that support the Bootloader function.  MegaLoad is a solution for everybody who wants fast loading (~8k in 3 seconds) and easy software upgrade via MCU RS232 port.

MegaLoad is written in Visual C# and the source code is available for 100$usd that can be pay via paypal at


  • support device larger than 128k flash
  • Small Bootloader code. Only 256 words if only flash program is need (512 word if flash & EEPROM)
  • Only embedded requirement is RS232 connector like a MAX232.
  • Communicates at 9600,19200,38400,57600,115200bps on Com1 to 20
  • Simple Monitor window is available to help you to debug your code
  • Checksum everywhere to secure data
  • Automatic page retry, if error in flash programming
  • Automatic byte retry, if error in EEPROM programming
  • Manual set & clear DTR,RTS if need.
  • Reset button


System Requirements

  •  Windows, .NET framework 2.0 runtime
  • RS232
  • ATMega



Megaload Tutorial

Megaload Software

Megaload Bootloader Code for ICCAVR

Megaload Bootloader for CodeVision

128 Comments to “MegaLoad”

  • Amjad August 1, 2010 at 4:52 pm

    I tried with arduinomega with atmega1280. But check the bootloader which does not compile unless I change in assembly.s to (see change of mega1280 to 3rd line instead of 1st line)
    .if MEGA64 | MEGA128
    SPMCR = 0×68
    .elif MEGA324 | MEGA644 | MEGA1280
    SPMCR = 0×37
    SPMCR = 0×57
    After this change all works fine with arduinomega

  • Stefan Karl August 2, 2010 at 10:29 am


    Hello, I use Megaload with an ATMega32, i have tried some small firmware and everything works fine, bootloader and firmware.
    Now I want to load a firmware with megaload, but an error occurred:
    Error in Flash Hex File 77
    76 :1004A20093553B56E75698574E580C59D159A25A74
    77 :0A04B200815B745C885DD95EA8616F
    78 :040000050080012B4B
    79 :00000001FF
    Did you know the problem and is there any solution to solve the problem?
    Thanks for your help.

  • Stefan Karl August 2, 2010 at 1:12 pm

    i found it now in an older comment, i use now pg4uwarc.exe and convert the avrstudion-hex-file to an intel-hex file, thanks to Frik

  • Saba September 20, 2010 at 3:18 pm

    I m using mega loader version 7.0 with atmega32. it works well but when i use megaloader with atmega644 it does not work. plz tel me the reason why it happens
    waiting for reponse

  • admin September 20, 2010 at 3:38 pm

    Your #define in the .c and .s file could be wrong, Maybe it’s not the same for the 64 & 644, Check the datasheet of both MCU


  • ali December 6, 2010 at 8:40 am


  • Jimmy December 14, 2010 at 10:02 am

    is can use for encrypt the Flash code too (like application note at Atmel website: AVR230 / AVR231)? Many thanks

  • admin December 14, 2010 at 1:09 pm


  • berad January 17, 2011 at 10:02 am

    Hi there. I just installed the latest (6.3), but it sits there awaiting target . The device is sending FF ~every second at 9600 — I can see this on a terminal. The bootloader fw is a few years old now — is 6.3 not backwards compatible perhaps?

  • admin January 17, 2011 at 4:22 pm

    Give me your personal email, I will send you the hex file


  • Harshad February 12, 2011 at 5:15 pm

    i had used this one in atmega16L 8pu (0938k) bt is not successful on atmega16L 8pu (1031).
    does these numbers matter??????

  • admin February 12, 2011 at 10:02 pm

    I don’t understand why, it’s strange???

  • Divya Alok February 15, 2011 at 6:27 am

    Does Megaload 7.1 work with Windows 7…..I have used it with Win XP and Vista but in those cases I used the previous versios of Megaload.

  • admin February 15, 2011 at 6:56 am

    I don’t know, if you try it please give me feedback!!

  • Gert van der Merwe February 20, 2011 at 12:26 am

    Hi again Sylvian
    Ok..sorry I have read a bit more on solving it from other posts..
    I have reduced my Comms to 19200 and it seems.
    I have also increased the NSHIFTPAGE = 8 not 7 as ZPAGEMSB = PAGEMSB+1 thus 6+1 = 7 and then NSHIFTPAGE = ZPAGEMSB + 1;
    Now that I understood that is running like a mouse with sneakers.. I have one question on the RAMPZ to 0×00 in the main.c File and RAMPZ to 0×5B in the "Can128.h" file bothers when I bootload now…it seems to per I axpected…but seems the code does not run… ?

  • Paul March 12, 2011 at 11:38 am

    I tried to use your MegaLoad V6.3 with ATmega2561. But I always get the message "Your comm is close".
    FuseBits, ComPort and Baudrate should be correct (I did it as you wrote in your tutorial).. Can you help me? Im not really good with this stuff.

  • admin March 12, 2011 at 5:16 pm

    I don’t know if it’s work with a 2561, I never had feedback on this MCU… and I don’t plan to make new bootloader for new MCU that’s to many hours for me and it give me 0$


  • Kramer March 27, 2011 at 11:31 am

    Hi Sylvain,

    two fixes are necessary for the bootloader on an AT90CAN128 to get it compiled with CVAVR (CodeVision AVR) 2.05.xx:

    - Change name of include file in line 591 to “90can128.h”
    - Add “#define IVCE 0″ after line 598


  • Steve Jarpe May 9, 2011 at 8:46 pm

    I was wondering if you have any reports of the successful use of MegaLoad on a Linux system, using mono.  If I was reasonably sure that it would work, then I wouldn't mind purchasing the source code.

  • admin May 10, 2011 at 12:06 pm

    I don’t know if it’s work or not, but please keep up inform!

  • Jeff June 30, 2011 at 5:20 am

    I am using a 10'' netbook would it be possible for the screen to be resized to fit these smaller computers

  • admin June 30, 2011 at 11:25 am

    The app don’t have this posibility, and I don’t have time to rework this code

    Sylvain Bissonnette

  • user September 1, 2011 at 6:15 pm

    Seems that latest version available on this site is 6.3, tried to upload flash in 644, but got nowhere, it just sits and waits for target… 

  • admin September 2, 2011 at 11:54 am

    I have never try on a 644, maybe the #define is not correct, check with the datasheet


  • Ronaldo September 13, 2011 at 8:13 pm

    Dear Admin,
    Today can run version BootLoader 7.4 with 6.3  with ATMEGA32 over win vista 32bit.  
     I used codivisionavr 2.05.0.
    Thanks you for your contribution and help.

  • Alexsander September 14, 2011 at 7:16 am

    For atmega 1281 will be support.

  • admin September 14, 2011 at 11:33 am

    No, I don’t have time to work on new devices


  • Alexsander September 16, 2011 at 10:41 am

    #if (MEGATYPE == Mega1281)
       #include "mega1281.h"
      #define  DeviceID       Mega1280
      #define  FlashSize      Flash256k
      #define  PageSize       Page256
      #define  EEpromSize     EEprom4096
      #define  PageByte       256
      #define  NSHIFTPAGE     8
      #define  INTVECREG      MCUCR

      #if (UART == 0)
        #define PULLUPPORT      PORTE
        #define PULLUPPIN       0×01

      #if (UART == 1)
        #define PULLUPPORT      PORTD
        #define PULLUPPIN       0×04

      #if (UART == 2)
        #define PULLUPPORT      PORTH
        #define PULLUPPIN       0×01

      #if (UART == 3)
        #define PULLUPPORT      PORTJ
        #define PULLUPPIN       0×01
    atmega 1281is supported

  • admin September 16, 2011 at 11:35 am

    Hey thanks for your work!

  • HuyNX October 12, 2011 at 1:44 am

    Thanks Sylvain, Megaload help me alot.
    I work with ATmega1280. The source code for CodevisionAVR miss a define RAMPZ_FLAG, if you use ATmega1280 please add #define RAMPZ_FLAG

  • admin October 12, 2011 at 2:22 am

    Thanks for your work and thanks for your post!


  • Jane December 20, 2011 at 8:00 am

    I usually use the megaload.Net.exe application for update firmware my machine.
    but, Sometimes I find this error message.
    "The application failed to initialize properly (0xc000007b) Click on OK to terminate the application."
    I don't know why this message is poped up.
    ensurely I set up the .net framework 2.0
    i really want to know why the message is pope up.

  • admin December 20, 2011 at 1:15 pm

    Is that a new message, It was working before? I never saw this error.

  • Satman February 15, 2012 at 10:26 am

    Hi all,
    What hardware do you use for programming with MegaLoad?

  • admin February 15, 2012 at 2:00 pm

    max232 on the serial port of your mcu

  • Mikhail April 10, 2012 at 5:48 am

    I m using mega loader version 1.0 (for CVAVR) with atmega16+MegaLoad .NET (last version). it works well but when i use megaloader with atmega32 it does not work. After reset mega32, MegaLoad .NET start, send page 0, but mega32 send @@@@@@. plz tel me the reason why it happens
    Sorry for my english ))) i am copy-paste same dialog ))))))))))))

  • Fakhar April 10, 2012 at 3:07 pm

    Hi, i used this bootloader with Atmega32 controller, it worked well. Now i switched to atmega64 and its not working..i have changed the #define for atmega64 in .c and .s file…i have double checked it…but no output. The application keeps on hanging on the first page while sending it to controller. Kindly help me in this regard..


  • admin April 10, 2012 at 3:27 pm

    Did you have some lock bit check in your M32?

  • Fakhar April 11, 2012 at 7:49 am

    actually i am not using Lock bits. When i program my controller from Megaload i dont change BLB-bits. i dont check them.
    When i apply the same scenario to Atmega64 its not working. i have also checked the SPCSR register in datasheet which is at 0×68 addreess. Rest of the things are appearing to be correct. Dont know where the problem is :p

  • admin April 11, 2012 at 12:21 pm

    I don’t have many clue, It’s not me who wrote the bootloader code for CVAVR, maybe there is something wrong in there?

  • alex May 3, 2012 at 1:55 pm

    Will it job your project at crossing rx tx? Is necessary for booting from K-Line Interface.

  • admin May 3, 2012 at 1:57 pm

    I don’t understand anything…

  • alex May 3, 2012 at 2:07 pm
  • admin May 3, 2012 at 2:44 pm

    I don't know I had never try

  • Toan Thieu May 7, 2012 at 4:53 am

    Dear friends,
    I try bootloader  with ATMEGA1280, it is not working. I try with commends of Amjad. The bootloader is working but the my application code is not working. If I program the AVRISPmkII, it's working normally. I also test with ATMEGA128, it really good. Anybody can give me a help or commend about this case. Thank you so much.
    .if MEGA64 | MEGA128
    SPMCR = 0×68
    .elif MEGA324 | MEGA644 | MEGA1280
    SPMCR = 0×37
    SPMCR = 0×57

  • lixudong May 25, 2012 at 7:42 am

    I come back to your web just want to say thank you.

  • Manjeet May 31, 2012 at 2:06 am

    Dear  Syl.
    I compiled Megaload for my Atmeg32 many times with different baud rates. It responded pm;y with 19200. Now when I load the hex file it keeps on sennding the file again and again. I also checked in the monitor window it showed after the end command it sarts again and again. rest all is fine it did work at the speed of light.
    Please help to sort out this.

  • admin May 31, 2012 at 12:43 pm

    It's look like the bootloader don't jump to your program, but I don't know why….

  • mixail August 25, 2012 at 4:23 pm

    Hi all !
    C:\iccv7avr\bin\iccavr  -e -D__ICC_VERSION="7.20" -D_EE_EXTIO -DATMega2561  -l -g -MExtended -MLongJump -MHasMul -MEnhanced -Wf-use_elpm  -e:0×40000 -xcall -ucrtboot256.o -bvector:0×3fc00.0×40000 -bfunc_lit:0×3fccc.0×40000 -dram_end:0×21ff -bdata:0×200.0×21ff -dhwstk_size:20 -beeprom:0.4096 -fihx_coff -S2 main.c  -lcatm256
    !ERROR file 'main.o': undefined symbol '_read_program_memory'
    !ERROR file 'main.o': undefined symbol '_write_page'
    !ERROR file 'main.o': undefined symbol '_fill_temp_buffer'
    !ERROR file 'main.o': undefined symbol '_enableRWW'
    Done: there are error(s). Exit code: 1. Sat Aug 25 20:14:38 2012

  • admin August 28, 2012 at 1:20 am

    You need to include the .s file in your project

Post comment

Please note

All my source codes were taken from my personal projects.

Everything is for your information only. The C/C++ codes have been written
with ICCAVR. You can find the header and source CRT files by downloading their compiler.

All is for your information and everything is AS IS without any warranty of any kind. No other files are available and I don't make any modification for any body.



Electronic Links


AGC Anemometer AVR AVR Bootloader Bootloader Capacitence Capacitor Clock Color Control DCC Debugger Devices Digital driver Function Generator High Gain Microphone Humidity Inductance Inductor Laser LCD LED 3W Library Lightning Detector MegaLoad Meter Moodlight Mood Light MS5534 Nixie OscilloScope projector Rain Fall Sensor rgb RGB LED Scop Sensor SHT75 Temperature Terminal Tipping Bucket Train Modeling Vintage Water Detector