MegaLoad U | Beta tester needed

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
66 Comments to “MegaLoad U | Beta tester needed”
Post comment
Please note
Categories
- All projects
- Audio
- Clock
- Electric Train
- Gadjet
- General Posting
- Laser
- Lastes News
- LED
- Library
- Sensor
- Software
- Work Bench Tools
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

admin
All my source codes were taken from my personal projects.
Wow this is a great resource.. I’m enjoying it.. good article
[...] [...]
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
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
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
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
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?
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
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.
I don’t understantd your question / your comment
Sylvain
Will the sourcecode be available, or maybe a dll that we could use in different programs?
The source code is available for 100$usd, and it’s in visual C#
Hi Sylvain,
I'm testing your bootloader 10.0 with ATmega1280, which version of ICC did you use for compiling?
Thanks,
Noelia
Any of there last version should work?
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
can you change your bootloader to codevisionAVr compiler language?
no I don’t have time for that and I had never work with other compiler only ICC
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?
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
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!!!
:-/
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
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
Did you make the appropriate change in the .S file
Yep, I changed
SPMCR = 0×68
and left
ELPM_INST = 1
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+
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
Yep, I changed
SPMCR = 0×68
and left
ELPM_INST = 1
thanks for your help.
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
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
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
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.
Hi Sylvain pic series processors use to ARV Do not have a program such as micro code studio for s?
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?
I don’t think what you want exist
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
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
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 ……..
did anyone ever tryed mega644 ???
and successed ?
Hi, I don't know,
Sylvain
What do you think where problem can be ?
I can`t make work any of your bootloaders with 644
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
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
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
Hi Sylvain,
In your bootloader source code we can only program with EEPROM ! what about flash ?
No, flash and eeprom
please can you explain me how build with ICCAVR ?
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
Hi admin, I got a problem when I install the setup.exe of MegaLoad U, it tell me i need windowsbase v3.0..
It's look like you don't have .NET 3.0 runtime installed Check on Micro$oft web site
Sylvain
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 ();