[UNMAINTAINED] Canon 5D Classic Firmware ** Beta 4 **

Started by coutts, June 14, 2012, 04:54:02 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

vscd

Thanx for the effort! The first 5D is still a great camera with unmatched T-Stops and lowlight abilities... so this is definately an interesting step for some of us. Is there any Beta-Firmware available for testing or can we just use the normal trumk (for 60D etc.)?

maphoto

which to firmware I have to download for being able to modify my to firmware of the canon 5d classic? thank you

i have a necessary to do a time lapse, or do the movie with my canon 5d classic, if must possible which firmware downloaded, and where?

thank u so much.

bart

Canon 5D C sounds a lot like Canon 1D C  ???

coutts

Sorry I haven't had much time to work on this :|
I could release an autoexec.bin (or feel free to compile it yourself from the sources! www.bitbucket.org/hudson/magic-lantern), but not much works yet. Until I finish up fixing the properties, there won't be much to test yet.

I fixed the gui_state property a few days ago and that made the intervalometer work, so now I just need to narrow down which properties work and which don't. The thing bothering me right now is the aperture property (doesn't seem to work right), shutter speed and ISO properties are working so that can be changed from the menu.

Question: should I keep picture styles in the ML menu or hide it since it probably won't provide much more functionality? More or less convenience.

So, any suggestions for what to leave / what to remove for the 5dc would help.

gio.bertelli

Quote from: Solo on June 25, 2012, 08:41:00 PM
LV mode will not, as far as I know for LV is an additional matrix, and we do not have it

What does an "additional matrix" mean? Isn't LV just a direct reading of 320x240 pixel at a fixed distance directly from the sensor? I thought it was just a software result of getting direct access to cmos readings. Does it need a 2nd cricuit?

BTW do you think we'll be able to get the shuttercount value?

scrax

Quote from: gio.bertelli on July 06, 2012, 05:42:19 AM
What does an "additional matrix" mean? Isn't LV just a direct reading of 320x240 pixel at a fixed distance directly from the sensor? I thought it was just a software result of getting direct access to cmos readings. Does it need a 2nd cricuit?

BTW do you think we'll be able to get the shuttercount value?
What I understood (and could also be totally wrong...) is that the camera is like a computer and in the firmware (not sure, maybe it's in the camera and the firmware is just additional programs) there is an OperatingSystem in it (DryOs), that is used by ML.
If in the OS there isn't the software that make what you say ML can't use/do it.
For example 3x zoom in 600D is not portable to other camera because it is only in the 600D firmware.
This means that canon could in theory add LV to 5Dc OS but then are you sure that it's CPU is fast enough to show you a fluid LiveView? I can save .422 file that are 3 times bigger than 320x240 so it's more cpu intensive.
Since we don't know all the hardware specs, this approach is safer because ML use what canon already coded and tested (with the full specs at hand).

for the shutter count I'll believe yes.
I'm using ML2.3 for photography with:
EOS 600DML | EOS 400Dplus | EOS 5D MLbeta5- EF 100mm f/2.8 USM Macro  - EF-S 17-85mm f4-5.6 IS USM - EF 70-200mm f/4 L USM - 580EXII - OsX, PS, LR, RawTherapee, LightZone -no video experience-

coutts

short term is a no for shutter count. I can't find the property for it yet. Feel free to help me hunt it down :)
But the fact that canon can check the shutter count at its service centers tells me that there is a property recording it somewhere.

Made some progress today: ML is now detecting half press shutter finally :D
I had to hijack a state object (EMState) to see when the shutter was pressed. This is because for whatever reason, only an event for halfshutter unpress is sent by the GUI task. So I had to improvise.


Next I need to find focus confirmation, that will make Trap Focus work.
For HDR / bulb timer I need to find a way to trigger full press of the shutter (PROP_REMOTE_SW2 isn't in the 5dc).
For custom AF patterns I need to find the property for the focus points.


Progressing nicely :)

vscd

For the Shuttercountvalue-Topic:   Wouldn't it be possible to dump the whole memory, make a picture, dump again and compare both dumped images? There should be one register altered, but this is just one guess.

coutts

Quote from: vscd on July 10, 2012, 03:57:46 PM
For the Shuttercountvalue-Topic:   Wouldn't it be possible to dump the whole memory, make a picture, dump again and compare both dumped images? There should be one register altered, but this is just one guess.
the property region of memory can't be observed, it just dumps an empty file. I've found anything past 0x1000000 is invisible to dumps (memory layout is different than dryos). In 400plus they just use a simple pointer in memory to read the shutter value.

I could try that, but I don't have something to diff the 2 dumps. Anybody want to write up a python script? :D

a1ex


#from math import *
import ctypes
p = "/media/EOS_DIGITAL/ROM"
Ax = open(p + "18.BIN").read()
print "."
Bx = open(p + "19.BIN").read()
print "."
Cx = open(p + "20.BIN").read()
print "."
Dx = open(p + "21.BIN").read()
print "."
Ex = open(p + "22.BIN").read()
print "."
print "read"

A = ctypes.cast(Ax, ctypes.POINTER(ctypes.c_uint32))
B = ctypes.cast(Bx, ctypes.POINTER(ctypes.c_uint32))
C = ctypes.cast(Cx, ctypes.POINTER(ctypes.c_uint32))
D = ctypes.cast(Dx, ctypes.POINTER(ctypes.c_uint32))
E = ctypes.cast(Ex, ctypes.POINTER(ctypes.c_uint32))
print "cast"

# just for test... this is how a counter looks like
A[1] = 1
B[1] = 2
C[1] = 3
D[1] = 4
E[1] = 8

# and that's a reversed counter
A[2] = 9
B[2] = 7
C[2] = 5
D[2] = 4
E[2] = 4

for i in xrange(0, 0x8000000):
l = (A[i], B[i], C[i], D[i], E[i])
lr = l[::-1]
ls = tuple(sorted(l))
lu = list(set(l))
if (ls==l or ls==lr) and min(l) != max(l) and len(lu) > 3:
print i,[hex(x) for x in l]


;)

coutts

guess there isn't a pointer in the first 0x1000000 of memory like in the 400d. hmm, the hunt continues

Chucho

Can you get the shutter count by printing out ioGlobalStdset?

void MyGlobalStdSet ()
{ int f1 = -1;
   while (f1==-1) { f1=FIO_CreateFile("A:/STDOUT.TXT"); if
(f1==-1) SleepTask(100); } ioGlobalStdSet(1,f1);}

NSTUB (0xFFB4A358, ioGlobalStdSet);

coutts

Quote from: Chucho on July 12, 2012, 06:42:47 AM
Can you get the shutter count by printing out ioGlobalStdset?

void MyGlobalStdSet ()
{ int f1 = -1;
   while (f1==-1) { f1=FIO_CreateFile("A:/STDOUT.TXT"); if
(f1==-1) SleepTask(100); } ioGlobalStdSet(1,f1);}

NSTUB (0xFFB4A358, ioGlobalStdSet);
Didn't seem to print anything to that file, interesting. I know there are some printf statements in the ROM, are we using the right arguments for this?

edit:
could be related to this (taken from vxworks documentation):
QuoteAll tasks will use this new assignment when doing I/O to stdFd, unless they have specified a task-specific standard file descriptor (see ioTaskStdSet( )).
http://www-kryo.desy.de/documents/vxWorks/V5.4/vxworks/ref/ioLib.html#ioGlobalStdSet

coutts

Good news: custom AF points may work for 5dc! Property seems to be the same from DryOS. Can anyone verify if the values are the same?


bluecherry

Hi,
I wonder if trap focus will work when I have AF under AE lock button (under thumb), half shutter I have AE lock?

It is Custom Function -> position "04" value "1"


coutts

Quote from: bluecherry on July 14, 2012, 11:14:55 PM
Hi,
I wonder if trap focus will work when I have AF under AE lock button (under thumb), half shutter I have AE lock?

It is Custom Function -> position "04" value "1"
I still need to find a status pointer that indicates focus confirmation, but yes I believe it should still work regardless of that CFn value.

The hunt continues for shutter actuation counter too, searched about 1000 properties yesterday with no luck. HDR bracketing works now, but I need to find PROP_LENS to determine min/max aperture that ML can use. That will fix aperture setting. As it stands, intervalometer and hdr bracketing are the only 2 features that work.

And some disappointing news for focus patterns, I couldn't set any custom focus patterns using the property. Not sure if it's going to be possible now. It just reverted to 0 every time I set something (selecting no AF points). Weird.

vballmoc

Hi,

this is great work in progress. I only registered to encourage you.
I have the 5D classic and love it. The only thing I wish would be an AutoISO function in P/Av/Tv mode (even if it is only between ISO 100 and 400), but of course, anything would be great.
I keep my fingers crossed that you manage soon.
Keep up the fantastic work,
Bests,
Chris

aumortis

All the nifty things sounds cool, but will it add AF microadjustment?

Still, can't wait to see it released : )

hacksawbob

Hi, awesome work you are doing with the 5DC. I am trialing ML on my 500D at work and its been great! I'd love to start time lapsing on the 5DC is it possible to just use this feature? Or shall I just bite the bullet and get a hardware intervalometer? I am going on holiday in 2 weeks and I'd like to do some time lapsing while I'm away.

coutts

Quote from: hacksawbob on July 16, 2012, 02:17:41 PM
Hi, awesome work you are doing with the 5DC. I am trialing ML on my 500D at work and its been great! I'd love to start time lapsing on the 5DC is it possible to just use this feature? Or shall I just bite the bullet and get a hardware intervalometer? I am going on holiday in 2 weeks and I'd like to do some time lapsing while I'm away.
intervalometer will work :)
I haven't released an autoexec.bin yet just because there is so much to fix yet. I am close though, don't worry.

Quote from: aumortis on July 16, 2012, 12:33:48 PM
All the nifty things sounds cool, but will it add AF microadjustment?

Still, can't wait to see it released : )
unfortunately no :( 5dc is far too old for this feature.

Quote from: vballmoc on July 15, 2012, 06:35:53 PM
Hi,

this is great work in progress. I only registered to encourage you.
I have the 5D classic and love it. The only thing I wish would be an AutoISO function in P/Av/Tv mode (even if it is only between ISO 100 and 400), but of course, anything would be great.
I keep my fingers crossed that you manage soon.
Keep up the fantastic work,
Bests,
Chris
This may be possible, but first I need to work on getting ML running stable on the camera.

xnor

Auto ISO would be awesome!

Let me know when I can be of any help.
Got a 5D and a degree in computer science. :-)

coutts

Beta 1 is available for download. Please check the first post of this thread for details.

valadorf

I just tried it, my 5DC is half dead when I make my CF bootable for ML. The all buttons located at the back of the camera does now work (no reaction from LCD nor camera) + the shutter button can focus but won't snap a shot. Pressing the "Trash" button does not display the ML menu.

I followed the instructions on how to install ML + 5DC hack. At first I got a steady blue light and when ML won't work for me I updated the Mod firmware twice to disable then enable bootflag. Same result as before (Half dead state).

And Auto ISO will be the best addition for 5DC as I shoot events more often (light conditions vary)

Oh and my 5DC still works normally, just couldn't get (beta) ML to run.

Keep up the great job! 

coutts

Quote from: valadorf on July 25, 2012, 12:41:23 AM
I just tried it, my 5DC is half dead when I make my CF bootable for ML. The all buttons located at the back of the camera does now work (no reaction from LCD nor camera) + the shutter button can focus but won't snap a shot. Pressing the "Trash" button does not display the ML menu.

I followed the instructions on how to install ML + 5DC hack. At first I got a steady blue light and when ML won't work for me I updated the Mod firmware twice to disable then enable bootflag. Same result as before (Half dead state).

And Auto ISO will be the best addition for 5DC as I shoot events more often (light conditions vary)

Oh and my 5DC still works normally, just couldn't get (beta) ML to run.

Keep up the great job!
Sorry about that, this is confirmed an issue now due to the link I had up for making the card bootable. Tomorrow I will make the installer write the bootflags to the cf card (like ML does for other cameras).


Just to clarify, your camera was not bricked there. It is only a "soft brick", pulling the battery and putting a good card in fixes this. I guess the mac program to make bootable cards doesn't write the correct flags.

edit:
i guess it's not working even using the make_bootable.sh script... something is wrong here :(

coutts

I have updated the installer FIR included with the download in the original post. It now calls the bootloader function responsible for setting the card bootflags. So, users will not need to worry about making their cards bootable now. Still not sure why this isn't working on some cameras, I need more testers to try and report how it works.