Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - tjrobinson

Pages: [1] 2
I've written my experiences up if anyone is interested. The blog post could do with some more detail in places but hopefully it's accurate and may be of interest/help to others in a similar situation.

Thanks for your attempts to get things working again - much appreciated. Unfortunately I ran out of things I could try and there's only so long I could be without the camera so had to resort to paying for it to be repaired. Hopefully the stuff we tried will help somebody else out in future though.

My phone (Samsung Note II) can record in slow motion at 1/8 speed so in theory that's 240fps. I'm not sure whether it's actually capable of recording individual frames at 240fps though - there's probably some fakery going on as it is just a "toy" compared to proper cameras.

I've not got the skills/time for the microcontroller option though I could probably give the photodiode and soundcard a go.

A new autoexec.bin which attempts to write to a log file would be useful for sure.

How much bigger is a full log that the 15 minutes worth I've got so far?

The bigger question - is there anything specific we're looking for? An error message I assume? Could the blinker seek the log bytes looking for certain patterns perhaps?


The real duration was about 15 minutes. The light changed to a solid red after that time - we left it for a couple of minutes then stopped.

The framerate was 50fps - it was a 5D Mark 3 - does that do 60fps?

I'm not in a position to try this again for a while but can try adjusting the exposure and ambient light if we do it again. Is there anything else that would help? What's the best way of checking that the output is being decoded correctly? Readable text and no strange characters?

What do you make of the log from angelsl?

I wrote a little utility to deblink it programmatically, using ffmpeg to convert your video to frames and then detecting the LED blinks from there.

Here is the result. 8519 (8480 actual data) bits read from 53391 frames.

Code: [Select]
      init:ff071ffc:00:01: [PM] DisablePowerSave (Counter = 1)
K287 ICU Firmware Version 1.1.1 ( 3.3.7 )
ICU Release DateTime 2012.05.14 13:18:25
      init:ff02b744:00:03: [SEQ] CreateSequencer (Startup, Num = 6)
      init:ff02b994:00:02: [SEQ] NotifyComplete (Startup, Flag = 0x10000)
      init:ff02b9f8:00:03: [SEQ] NotifyComplete (Cur = 0, 0x10000, Flag = 0x10000)
   Startup:ff02b664:00:05: [SEQ] seqEventDispatch (Startup, 0)
   Startup:ff012624:8b:05: startupEntry
   Startup:ff1b9340:81:03: Initialize Adjective & Situation
   Startup:ff0125e4:8b:05: startupPropAdminMain : End
   Startup:ff02b994:00:02: [SEQ] NotifyComplete (Startup, Flag = 0x20000000)
   Startup:ff02b9f8:00:03: [SEQ] NotifyComplete (Cur = 1, 0x20000002, Flag = 0x20000000)
   Startup:ff071ffc:00:01: [PM] DisablePowerSave (Counter = 2)
   Startup:ff07206c:00:01: [PM] EnablePowerSave (Counter = 1)
**INT-50h*:ff071ffc: 0:01: [PM] DisablePowerSave (Counter = 2)
**INT-50h*:ff07206c:00:01: [PM] EnablePowerSave (Counter = 1)

The code I wrote, as well as the deblink result is here. There is a missing zero bit at index 0x647 that I added when converting to ASCII to get the result above. The corrected result is also there.

angelsl, that's brilliant, thank you for doing this. Hopefully the output means something to somebody - fingers crossed.

With some help from a fellow ML user locally I managed to run the deblink module live, though the results don't look as good as what you've managed.

Here's a time-compressed video of the output:

I didn't have a chance to recompile the module with output to a text file enabled unfortunately :/ I have high quality stills of the final output but the video gets the general idea across.

I'll probably blog about the process properly soon, we had some camera inception going on!

I'm based in Reading, England.

The video was recorded using my phone's slow-motion mode. It may not be great - if it's an unsuitable then I'll need to think of another plan.


Sorry, I have been speaking with a1ex over this issue for a number of weeks now and the latest information hasn't been posted here. His most recent post is now out of date.

Without going into too much detail, it turns out there is nothing wrong with ROM1 and the next step a1ex suggested was to use the deblink module to decode the startup messages, hence my previous post.

I don't have access to a camera to run the deblink module myself, so was hoping somebody might be able to attempt it remotely, by pointing their camera at the video I posted (see my previous message).

a1ex said he may be able to do this but hasn't replied for a while so I expect he is busy or away. I was hoping somebody else might be able to have a go so that I can send a1ex the additional diagnostic information.

I've got a video of the full startup LED blink sequence from an autoexec.bin a1ex sent me.

It was recorded at 1/8th speed (I think, might have been 1/4 speed) on a phone.

I've trimmed it and shrunk it down to about 24MB.

Would anyone you be able to see if they can deblink it?



Because it had been working fine for years, then within a few minutes of using it with ML it froze up and never started again.

Why are you so convinced it's not ML?

I think it's time to call it quits :(

Camera Emergency Department / Re: [UNBRICKED] Bricked 60D Err 70
« on: October 11, 2014, 11:50:49 AM »
This thread is marked as [UNBRICKED] - how did you fix it?

Thanks, didn't realise it was his personal connection that was struggling.

Camera Emergency Department / Re: [UNBRICKED] Bricked 60D Err 70
« on: October 06, 2014, 04:21:29 PM »
"the camera can't be any deader than it is right now"

It can, believe me!

Can anyone suggest what I should try next?

I've watched the video a few times and tried to decode it manually, and it appears to just be showing the 0xA5 pattern five times - no actual debug messages.

Blink video, taken by a Canon compact camera in 240fps mode, 1/8th normal speed, (the only other camera I have access to at the moment):

Update: blink video available below

I've defined PRINT_EACH_MESSAGE in dm-spy.c and am now seeing some blinking - no sign of the 5 synchronization blinks, but something at last!

Branch: dm-spy-experiments
Revision: 11899
Changeset: 6caaf883e18f3745063ffd480ab37e4230275517 [6caaf883e18f]

  • make clean
  • make
  • (inside platform/60D.111) make zip
  • copy zip contents to SD card
  • usual EOSCard.exe steps, remove battery, etc

Here's the Makefile.user I'm using under Cygwin on Windows:

Code: [Select]
# Supported camera models

# Supported camera models for "UNIFIED" builds (Digic IV only)

# GCC-related stuff
# for yagarto or the official ARM toolchain use ARM_ABI=none-eabi otherwise use ARM_ABI=elf

# Intercept all DebugMsg's

Update: blink video available below

Ok, progress. I've finally built an autoexec.bin from the dm-spy-experiments branch. I get a solid light though, no blinking. Anything specific I should check?

Update: compilation problems now solved

Thanks, I've got a bit further using that. Now onto this...

Code: [Select]
[ AR       ]   newlib-libc.a
[ CP       ]   newlib-libm.a
[ CP       ]   gcc-libgcc.a
[ LD       ]   magiclantern
debug.o: In function `stub_test_task':
debug.c:(.text+0x4530): undefined reference to `printf'
debug.c:(.text+0x4540): undefined reference to `printf'
debug.c:(.text+0x4564): undefined reference to `printf'
exmem.o: In function `_srm_malloc_suite':
exmem.c:(.text+0x650): undefined reference to `printf'
exmem.c:(.text+0x708): undefined reference to `printf'
exmem.o:exmem.c:(.text+0x7b0): more undefined references to `printf' follow
dm-spy.o: In function `debug_intercept':
dm-spy.c:(.text+0x178): undefined reference to `dm_spy_extra_install'
dm-spy.c:(.text+0x1a4): undefined reference to `dm_spy_extra_uninstall'
make[1]: *** [magiclantern] Error 1
make[1]: Leaving directory `/home/tjrobinson/magic-lantern/platform/60D.111'
make: *** [60D] Error 2

Update: compilation problems now solved

I've got this far, what might cause this error?

Code: [Select]
tjrobinson@magiclantern:~/magic-lantern$ make
make -C  /home/tjrobinson/magic-lantern/platform/50D.109
make[1]: Entering directory `/home/tjrobinson/magic-lantern/platform/50D.109'
[ VERSION  ]   ../../platform/50D.109/version.bin
[ VERSION  ]   ../../platform/50D.109/version.c
[ CC       ]   version.o
make -C ../../tcc
make[2]: Entering directory `/home/tjrobinson/magic-lantern/tcc'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/tjrobinson/magic-lantern/tcc'
make[1]: *** No rule to make target `../../src/libs/dietlib-0.33-Os/dietlibc.a', needed by `strrchr.o'.  Stop.
make[1]: Leaving directory `/home/tjrobinson/magic-lantern/platform/50D.109'
make: *** [50D] Error 2

Is anyone able to compile this for a 60D (1.1.1)? I'm a C# software developer but I'm a bit lost when it comes to C (and the related ecosystem).

I'm in Berkshire, England - if anyone happens to be nearby!

Next step is this, if I can find someone local to help:

I'm working with a1ex over PM. There's been some progress - we've managed to get a ROM dump.

Pages: [1] 2