Magic Lantern Forum

Using Magic Lantern => General Help Q&A => Camera Emergency Department => Topic started by: a1ex on August 23, 2012, 11:44:46 AM

Title: Diagnostic tools
Post by: a1ex on August 23, 2012, 11:44:46 AM
1) Portable display test

If your camera is not booting, this is the first diagnostic tool you can try, to make sure the hardware is alive.

This tool attempts to print some messages on the display without calling any routine from the main firmware. It only uses the bootloader routines, and works on any ML-enabled camera, any firmware version. More info about this test here (

autoexec.bin (

2) LED blink test

If the display test did not work, here's a simpler test that only blinks a LED.

Works on: 500D, 550D, 600D, 50D, 60D, 5D Mark II, 1100D, all firmware versions.
autoexec.bin (

This test blinks the card LED (C0220134 - SD LED and C02200BC - CF LED) from bootloader.

If it blinks:
- Camera is alive (obvious)
- Bootloader is OK (it loads autoexec.bin)
- We can run diagnostic code on it (for example, computing a checksum of the ROM or examining the boot process).

If it doesn't blink:
- Card is not bootable OR
- Bootflag is not enabled in the camera (ML not installed) OR
- Hardware failure (main board doesn't power up) OR
- Bootloader corrupted (very unlikely) OR
- Unsupported camera model (the LED address is different)

More LED addresses:

3) ROM dumper

From main firmware: at startup, ML will save the ROM contents to ML/LOGS/ROM*.BIN. To get a fresh ROM dump, simply delete those files, start the camera from a ML card, and wait until the card activity LED stops.

From bootloader (use if the main firmware cannot start):
Works on: 550D, 60D, 600D, 5D3 (all firmware versions). Can be updated for any other camera, on request.
autoexec.bin (

4) Startup log

You can get a very detailed log about Canon boot process using the dm-spy-experiments branch.

You can get even more details if you add some stubs (tracing points) and compile from source:

5) Startup log blinker

If the camera is unable to save a log file, we may want to blink Canon's startup messages using the card LED. You may use a second ML-enabled camera, or an Arduino board with a photocell, to decode the messages.
Title: Re: Diagnostic tools
Post by: ilguercio on August 23, 2012, 02:10:05 PM
These are just in case of a major problem, right?
Title: Re: Diagnostic tools
Post by: jplxpto on November 06, 2012, 11:14:49 PM
I think we could add that my suggestion:
Title: Re: Diagnostic tools
Post by: jplxpto on November 21, 2012, 01:17:36 AM

I think you wanted to say:

Code: [Select]
dump_big_seg(0xF0000000, CARD_DRIVE"ROM.BIN");