May
6

MegaLoad U | Beta tester needed

Author admin    Category All projects     Tags

I just finish a new version of MegaLoad,  It's name is MegaLoad U  for Universal.  You will be able to use old and future devices without upgrading MegaLoad U.  It not compatible with the old bootloader files.  You need the bootloader that came with MegaLoad U.  It's a first release so please be cool with me!  So I'm waiting for your beta testing…

New bootloader C and S file release on the 20/07/10  Please comment

DownLoad

MegaLoad U

BootLoader




66 Comments to “MegaLoad U | Beta tester needed”

  • Pharmacy technician book May 7, 2010 at 6:08 am

    Wow this is a great resource.. I’m enjoying it.. good article

  • MegaLoad « MicroSyl | MCU Electronics projects May 12, 2010 at 6:33 pm

    [...] [...]

  • Alex Lennon May 25, 2010 at 11:39 am

    Hi Sylvain,
    Your MegaLoad looks like it might be just what I need for a project I'm working on for a client. We're using the AVR tool chain with an ATMega1280 based board (Arduino Mega) as the development platform.
    I took a quick look at the source to the bootloader but there doesn't seem to be any obvious definition for the ATMega1280. Can you tell me if this is supported 'out of the box'? It does seem very flexible in terms of configuration so presumably it wouldn't be too much work to modify? (or would it ?)
    Thanks
    Alex Lennon

  • admin May 25, 2010 at 12:35 pm

    Hi Alex,
    The old version of megaload don’t support the 1280, but I just wrote MegaLoad U and it should work, with any MCU, the user must make there own define according to his MCU, Megaload U is in pre beta realease… ( I only try it on a Mega8) but it should work. you can give a try and at the same time give me feedback
    Sylvain

  • Chrille June 4, 2010 at 7:21 am

    Hi,
    can I run it on Vista? Because one of my friends tried to run the old version on his computer with Vista installed and it didn't work (I was running XP and had no problem). We didn't spend much time to investigate why, maybe it was something wrong with his computer. Anyway MegaLoad responded the reset of the microcontroller but became "not responding program" every time directly when starting to transmit data.
    Regards
    Chrille in Sweden

  • admin June 4, 2010 at 11:17 am

    Hi,
    That’s a very good question but I don’t have the answer, I never got feedback about MegaLoad & Vista. I don’t run Vista so I can’t test it, if you try the last megaload please let us know the result
    Sylvain

  • Jacek June 6, 2010 at 5:22 pm

    Hi,
    I have similar question as Alex Lennon. What do I have to change in main.c and assembly.s to use it with ATmega1280?whether the older version (http://www.microsyl.com/index.php/2010/03/30/megaload/) works properly with atmega1280?

  • admin June 6, 2010 at 5:37 pm

    I can’t say, you need to check in the datasheet to make the good #define. There is to many MCU I can’t make all this work
    Sylvain

  • Emily N. June 11, 2010 at 1:37 am

    Hi, I’m very interested in Linux but Im a Super Newbie and I’m having trouble deciding on the right distribution for me (Havent you heard this a million times?) anyway here is my problem, I need a distribution that can switch between reading and writing in English and Japanese (Japanese Language Support) with out restarting the operating system.

  • admin June 11, 2010 at 1:40 am

    I don’t understantd your question / your comment
    Sylvain

  • Andrei July 5, 2010 at 1:30 pm

    Will the sourcecode be available, or maybe a dll that we could use in different programs?

  • admin July 5, 2010 at 3:31 pm

    The source code is available for 100$usd, and it’s in visual C#

  • Noelia July 19, 2010 at 2:59 pm

    Hi Sylvain, 
    I'm testing your bootloader 10.0 with ATmega1280, which version of ICC did you use for compiling?
    Thanks,
    Noelia

  • admin July 19, 2010 at 5:16 pm

    Any of there last version should work?

  • Noelia July 19, 2010 at 6:26 pm

    I had problems compiling your bootloader 10.0 with ICC8 and ICC7.
    Now I'm working with your bootloader 7.4 and I could find the problem with ATMega1280. There is only one wrong line in assembly.s. The correct value for SPMCR is 0×57. Changing this line the bootloader works ok!
    Thank you very much!
    Noelia 

  • Alex ferra July 24, 2010 at 4:39 pm

    can you change your bootloader to codevisionAVr compiler language?

  • admin July 25, 2010 at 10:11 pm

    no I don’t have time for that and I had never work with other compiler only ICC

  • Neophonixe September 18, 2010 at 2:56 pm

    I use Megaload U for Atmega2560, when it goes to programing mode, after sending page#0 it tries to send page#1 for 5 times and at the end it fails to program the flash.
    My settings are:
    #define PageSize         256
    #define NSHIFTPAGE       8   (7+1=8 on page330 table 29-9)
    #define INTVECREG        MCUCR
    SPMCR = 0×57
    I use HEX code generated from CodeVision.
    Any Suggestions?

  • admin September 18, 2010 at 9:13 pm

    Hmmm I had never try on a device larger than 128k, the only thing I can say, try to compile the bootloader with the demo version of ICCAVR…

    Good luck and keep me inform
    Sylvain

  • Neophonixe September 19, 2010 at 4:30 am

    Mon ami, at least tell me some advise about how your bootloader writes on flash. I think maybe there is some problem in addressing pages!!!
    :-/

  • MicroSyl September 19, 2010 at 7:28 pm

    Check the .S file, and the .C file, and the datasheet of your MCU,  I can't explaine "how it's work" there is to many thing to say

    Sylvain

  • Patrick Fletcher-Jones October 4, 2010 at 7:13 pm

    Hi,
    been looking at the settings from your other bootloader.
    Looks like the settings should be,
    #define PageSize 256
    #define NSHIFTPAGE 8
    I've just tried them and it make no difference. The programming is so slow, there must be a problem somewhere.
    Patrick 

  • admin October 5, 2010 at 12:10 am

    Did you make the appropriate change in the .S file

  • Patrick Fletcher-Jones October 5, 2010 at 10:58 am

    Yep, I changed
    SPMCR = 0×68
    and left
    ELPM_INST = 1

  • Patrick Fletcher-Jones October 5, 2010 at 11:04 am

    Just to let you know, I'm using XP and a real serial port. Did try a USB to RS232 convertor too.
    Things look they are working, well the bootloader is responding and pages are being sent from the PC App. Its just so slow and the device never seems to finish programming. Left it over night and it was at page 1000+

  • Sylvain Bissonnette October 5, 2010 at 1:04 pm

    Did you setup SPMCR register for your MCU in the .S file
    ;*********************************************************
    ; SPMCR Address and ELPM OPCode Setting (USER SETUP)
    ;*********************************************************

    ;SPMCR = 0×68
    ;SPMCR = 0×37
    SPMCR = 0×57   ; SPMCR Register location. Check in the datasheet of your MCU

    ELPM_INST = 1  ; Check if your MCU have ELPM opcode

  • Patrick Fletcher-Jones October 5, 2010 at 4:28 pm

    Yep, I changed
    SPMCR = 0×68
    and left
    ELPM_INST = 1
    thanks for your help.

  • Patrick Fletcher-Jones October 5, 2010 at 4:54 pm

    Just looking, your code makes referance to SPMCR in the .s file the Mega128 datasheet, does not have SPMCR. It makes reference to SPMCSR, which when I checked  contains the control bits needed to control the Boot Loader operations.
    I had already changed it, but it didnt make any difference.
    The code seems to be running. I can see the comms back from the AVR and the PC is sending pages to the AVR. The AVR is spending ages doing something, not sure what. As soon as the AVR sends the ! control character the PC application responds with the next page.
    Cheers,
    Patrick

  • Sento October 6, 2010 at 7:53 am

    Hi Sylvain,
    how do i can setup a pagesize = 0×100 (256 bytes) with MegaloadU?
    Sending two bytes in the prologue isn't supported yet, right now?
    There are any documentations about the bootloader protocol?
     

    You queried comments about megaload, here is mine:
    1) In some test cases the .NET application sends more pages than the hex file have.
    2) At the end of flash programming, the application crashes sometimes. ("daily crashes")
    3) If virtual ports are lost (for instance an USB device is disconnected), the .NET application crashes.
    4) The COM port enumeration dosn't show the COM name.
    5) More than 19 COM ports are not supported and ports who not availabled where not hidden from the list.
    The bootloader is very scanty and contains many failures: the UDRx register isn't cleared after receiving a character – unexpected characters will be received in timeout conditions; the uart should be flushed instead of receiving of a single dummy character; the protocol assures no safety communication; the checksum handling is inadequate and may loose a failure detection (how about the hamming distance of a 'simple' addition?); your mechanism is absolutely time critical.
    I've implemented an interrupt driven uart receiver to store received characters in a ring buffer – increased consumption: 82 bytes - this method isn't time critical (more suitable for generalized bootloader).
    At the beginning of the flash procedure i erase the entire flash. At the end of flash programming i perform a CRC32 check.

    Optimized code is a praiseworthy matter – however – safe code favours.

    Sento

  • admin October 6, 2010 at 12:26 pm

    Hi Sento,

    Thanks for your post, I comment your post
    1- I don’t understand why it send more pages, but what is the real problem if I send one more page?
    2- When exactly the app crash after programming
    3- I will correct that in the next release
    4- it’s written com1 or com2 or com3….. no?
    5- More than 19 com is a little bit overkill
    if you correct the bootloader code could you send it to me?

    I’m right now on a big project next release will not be before 2011

    Thanks
    Sylvain Bissonnette

  • Jan H Ugelstad October 8, 2010 at 1:03 pm

    Hi,

    Great software, considering buying the source for a customer. However, I need to test a bit more, but there seems to be now way of exiting the bootloader if contact with MegaLoad U isn't established. As my mega boots in the boot section, it stays there forever if there's no contact with Megaload and new firmware isn't completely downloaded. I'd like a very short timeout so if contact isn't established, it immediately jumps to the application section and starts whatever code is there.
     
    Regards,
    Jan H.

  • ercan October 17, 2010 at 12:33 pm

    Hi Sylvain pic series processors use to ARV Do not have a program such as micro code studio for s?

  • ercan October 17, 2010 at 12:36 pm

    Hi Sylvain pic series processors use a program such as micro code studio ARV s Do not have a program for issuing out the hex s?

  • admin October 17, 2010 at 3:05 pm

    I don’t think what you want exist

  • bluewave65 July 31, 2011 at 5:38 pm

    After compiling loader for mega644 with correct parameters :
    ( SPMCR = 0×37, MCUCR, PAGESIZE256, NSHIFT 8 )
    getting message " sending page 0" and that`s it !
    If i try another CPU like mega16, 32 all working properly ….. what is wrong with that ?

    Thanks

  • admin July 31, 2011 at 6:07 pm

    Did you make changes in the .s file? and did you check in the datasheet of the 644 or you just take the value from the M64?

    Sylvain

  • bluewave65 July 31, 2011 at 6:22 pm

    yes i changed it, 
    megaload.net .s file contain spmcr = 0×37 information but according m644 datasheet  SPMCR is 0×57.

    I try them both, but still same problem ……..

  • bluewave65 August 2, 2011 at 1:32 pm

    did anyone ever tryed mega644 ???
    and successed ?

  • Sylvain August 2, 2011 at 1:37 pm

    Hi,  I don't know,
    Sylvain

  • bluewave65 August 2, 2011 at 10:24 pm

    What do you think where problem can be ?
    I can`t make work any of your bootloaders with 644 :(

  • Greg August 9, 2011 at 9:56 pm

    Hello everybody,
    I've tried to make a bootloader for an atmega128 and found a problem.
    The thing is…. the MCU on wakeup sends the following stream:
    <'>'><Page length><'!'>
    The atmega 128 has 256 byte Page Length, so after I've modified the main.c, the result was:
    <'>'><0><'!'>.
    In order to make it work, I had to cheat the PC and set Page Length to 128, and only on second transmission, burn the data to Flash.
    Hope I could help.
    Best regards,
     
    Greg

  • Hassan August 23, 2011 at 6:22 pm

    Hi admin, please I want to know, is your software works with ATmega16 ?? in fact, I have to program ATmega16 via RS232 without using an external programmer. So , to do this, I have to find bootloader program , which will be uploaded in the flash memory of microcontroller. Then, I have to realize an application in C #  to send the Hex file through the interface. I have many difficulties. I have many bootloader code but I don't know how to adapt my interface in C# with bootloader. please can you help me ? please. thank u

  • admin August 23, 2011 at 7:54 pm

    Yes it should work, I never try on M16, Check the C bootloader source code and make the good define for your MCU and let me know the result

    Sylvain

  • Hassan August 24, 2011 at 2:57 pm

    Hi Sylvain,
    In your bootloader source code we can only program with EEPROM ! what about flash ?

  • admin August 24, 2011 at 2:58 pm

    No, flash and eeprom

  • Hassan August 24, 2011 at 5:05 pm

    please can you explain me how build with ICCAVR ?

  • Hassan August 24, 2011 at 6:47 pm

    in your tutorial you wrote : " You need to select the apropriate ATMega MCU Type, Set the BootLoader 
    Options to « Bootloader » and set the Bootloader size larger than your Bootloader code. 
    After that when you have a succesfull build, you just have to program this code in your 
    AVR." I don't understand how to build ?? please explain me more.thank u

  • DreamCat August 26, 2011 at 5:40 am

    Hi admin,  I got a problem when I install the setup.exe of MegaLoad U, it tell me i need windowsbase v3.0..
     

  • Sylvain Bissonnette August 26, 2011 at 12:37 pm

    It's look like you don't have .NET 3.0 runtime installed  Check on Micro$oft web site
    Sylvain

  • Ronaldo September 5, 2011 at 9:02 pm

    I downloaded the BootLoader file and tried to compile with codevision 1.24.5 and 2.05.
    not find "wdr ();"
    not found  # include <macros.h>
    I will use atmega32 run at 4.000MHz
    I change the
    //#include "iom8v.h"
    #include <mega32.h>

    and remove # include <macros.h>
    after it, has only three errors on the WDR ();

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.

Categories

Blogroll

Electronic Links

Tags

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