Porting ML to XSi (450D)

Started by rwl408, September 06, 2013, 06:07:43 AM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

LTG2004

Hey Ant123, could you please update those download links as i would like to test this build.. They seem to be broken :( :(

gunny2k6

was lucky enough to be given a 450d .. started doing google found this an updated 450d from 1.04 to 1.09 (arg when u can find it lol) then 1.10 (had to flash from eos util on pc) and gave your test files ago and it works! OK not much you can do but loads magic lantern menus !! .. I know this camera is so old now and be awesome to have more features but I guess like the most of magic lantern seems to be dead or lack of devs 😔

removed it from my sd card via format option and just stock canon again as lack of being able to do really anything with this so no point leaving it running.




botenredwolf

I'm also behind porting this, as I'm also running the 450D/XSi and don't mind experimenting. Also can help by dumping and building if need be, although I don't know my way around too much code, I can at least be a guinea pig.

armedchanger

Tried using your files but camera only flashes LED when ML450D110.fir is the only .fir file on the card.

Also tried to put original 1.1.0 firmware on the card with your fir. I can select ML450D110.fir and confirm the update and get the error message.

I'm I missing something?

Thanks

Ant123


armedchanger

Quote from: Ant123 on June 24, 2017, 10:12:29 PM
Read the FAQ first...
Couldn't get it to work but managed to get it to work with EOScard software.

I think that there is huge potential for porting ML to XSi/450d because a lot of people use it as a 2nd camera. The intervalometer works as you said.

This thread needs more exposure and more devs joining in.

mikeuk

I have tried it on my 450D and it doesn't seem to work. It is installed but I can't seem to be able to load the ML menu up, Also it messes up the live mode, it flashes strange text.

When I press bin buttom this is what show up, then it crash and have to remove the battery to restart. I pressed Set and nothing happened.




I do have 1.1.0 firmware installed. Is there a different region of 1.1.0 firmware?? My camera is UK Version.

Many Thanks

Mike

a1ex

Managed to emulate the 450D GUI in QEMU, and also ran some tests on Ant's build:



Animation (click to zoom):



Emulation log

Canon menu screenshots (without ML loaded):


Besides the not-so-impressive feature set, I have a few questions:

- On the actual hardware, do the fonts look as bad as in the following screenshot?



- Do the colors in the menu customization mode really look as radioactive as these?



- Does the "ETTR ETTR ETTR ETTR" message show up on actual hardware as in the above screenshot?

Another surprise: if I compile ML from the vxworks branch (here), it doesn't boot correctly. When trying to compile from Ant's repository, changeset b05d7ea7f486 does not exist (did I misread the screenshot?) and his vxworks branch doesn't work either (emulation log - it gets stuck on initial screen). Compiling from latest changeset from Ant (c700f92) gives the same result (stuck on initial screen, with LED turned on).

Unfortunately, I did not have this commit when Ant posted his build - that would have embedded his local (uncommitted) changes in the executable file - so I'm unable to re-create his binaries from the current sources.

In any case, continuing the ML port on VxWorks models just got easier by an order of magnitude - or maybe two :)

Ant123

Quote from: a1ex on September 22, 2017, 09:31:17 PM
Does the "ETTR ETTR ETTR ETTR" message show up on actual hardware as in the above screenshot?
Yes, if you are talking about ML Prefs menu.

QuoteCompiling from latest changeset from Ant (c700f92) gives the same result (stuck on initial screen, with LED turned on).
Try this patch:
diff -r 18ac6b0f9929 platform/450D.110/init.c
--- a/platform/450D.110/init.c Sun Oct 30 14:43:33 2016 +0200
+++ b/platform/450D.110/init.c Sun Sep 24 14:27:14 2017 +0300
@@ -89,7 +89,9 @@
// _mem_init();
bmp_vram_idle_ptr = malloc(360*240);
// _find_ml_card();
- msleep(550);
+ // msleep(550);
+ uint32_t size;
+    while((FIO_GetFileSize("AUTOEXEC.BIN", &size ) != 0) || (size == 0))  msleep(10);
_load_fonts();
        // msleep(300);
call("DisablePowerSave");

Note: I'm using gcc-arm-none-eabi-4_7-2012q4. With GCC 4.8 it stuks.

a1ex

Confirmed - works with gcc-arm-none-eabi-4_7-2012q4 (without requiring the FIO workaround).

BTW - address 0xFFD65490 doesn't seem valid for 450D - did you mean 0xFFD237F0 ?

Does that mean not all these patches from disable_cache_clearing are actually required for booting?

Ant123

Quote from: a1ex on December 05, 2017, 01:55:49 AMBTW - address 0xFFD65490 doesn't seem valid for 450D - did you mean 0xFFD237F0 ?
Yes. There was wrong address 0xFFD65490.
But it doesn't help to create working binaries using modern GCC.
Only gcc-arm-none-eabi-4_7-2012q4 generates binary which doesn't stuck.

QuoteDoes that mean not all these patches from disable_cache_clearing are actually required for booting?
I don't know. I just found the same opcodes based on 40D port.

gunny2k6

Quote from: mikeuk on August 26, 2017, 11:55:02 AM
I have tried it on my 450D and it doesn't seem to work. It is installed but I can't seem to be able to load the ML menu up, Also it messes up the live mode, it flashes strange text.

When I press bin buttom this is what show up, then it crash and have to remove the battery to restart. I pressed Set and nothing happened.




I do have 1.1.0 firmware installed. Is there a different region of 1.1.0 firmware?? My camera is UK Version.

Many Thanks

Mike

should not matter i Had 450D working with it ...i m in UK.... but have since traded in the 450D ...got as latest i could now on 77D (love it or hate it) not looked back i really like it as a huge leap forward. ye could get better but its what i wanted so :P

vijaymanickaraja

I have the same problem, i just put the .FIR file and was try to install it. now the camera is not booting. please help me to resolve this issue.

ArcziPL

I guess you put the installer (ML450D110.fir) on the card but not the ML itself. The installer set the boot-flag in the camera and made the card bootable but camera is not starting, as the the ML files are missing.

You have several solutions:
- put the ML to the card; unpack the files from the following archive
https://bitbucket.org/Ant123/magic-lantern-40d/downloads/magiclantern-Nightly.2016Oct26.450D110.zip

or
- format the card in a PC or another camera to make it non-bootable again.

In both cases camera should boot again. To clear the boot-flag from your camera you have to make it boot using any of the mentioned solutions, then put the installer on a working card (ML450D110.fir file) and select "update firmware" from camera's menu again.
M50.110 [main cam] | G7X III [pocket cam] | 70D.112 [gathers dust] | M.202 [gathers dust] | waiting for M5II

justgerd

I'd be interested a lot in helping out. I have experience with C, but no experience with CFW of any kind. Can someone point me to resources specifically about ML?


miguelate

Hi everybody, I have a 450D and I would like tu use ML on it. I have tried to install it but is not working.
I have downloaded the files from the links given on the page 1 of this topic. I have used the installer ML450D110.fir and the files from the zip file 'magiclantern-Nightly.2016Oct26.450D110'.
My firmware version is the correct one 1.1.0 and the SDcard it has been modifided on  EOScard so it is not Bootable.
When I try to install ML the screen gets black and a blue led is shinning.

May I am missing something? Or what am I doing wrong?


EDIT: Finally I could run ML on my 450D. I tought I could use video recorder function but it does not allow me. Is there any other version which I can record video with?

Thank you so much

Ant123

Quote from: miguelate on May 08, 2018, 04:19:04 PM
Is there any other version which I can record video with?

EOS 450D has no video recording function out of the box. It's only theoretically possible to implement Motion JPEG(848x568px, ~22fps) recording without sound, but I abandoned the porting process in 2016 because of problems with the compiller...

reddeercity

Quote from: Ant123 on May 08, 2018, 10:14:16 PM
EOS 450D has no video recording function out of the box. It's only theoretically possible to implement Motion JPEG(848x568px, ~22fps) recording without sound, but I abandoned the porting process in 2016 because of problems with the compiller...
Interesting -- Can you share any code ?
I'm interested in trying to get  mjpeg implementation on 5d2 & other digic4 cams .

Ant123

I don't have any code.
But AFAIK this program captures MJPEG frames via USB. I posted the resolution and framerate from video file recorded using this program. The average bitrate was ~30-35 Mbit/s. Maybe it's limited by USB.

miguelate

Thank you so much for your reply Ant123

reddeercity

Quote from: Ant123 on May 09, 2018, 09:36:57 AM
I don't have any code.
But AFAIK this program captures MJPEG frames via USB. I posted the resolution and framerate from video file recorded using this program. The average bitrate was ~30-35 Mbit/s. Maybe it's limited by USB.
Ok , I know of this already thanks.
On another note , I was wondering if you could PM me you rom files form a download link somewhere  ?
I interesting in decompiling it to do some investigations in the Jpeg routines .

Ant123

Quote from: reddeercity on May 10, 2018, 04:26:24 AM
if you could PM me you rom files form a download link somewhere  ?
I interesting in decompiling it to do some investigations in the Jpeg routines .

If you don't want to wait you can download and decompile 1000D fw right now.
Or do you need exactly 450D?

reddeercity

Thank they could be useful , I'll check them out .
QuoteOr do you need exactly 450D?
Yes , I want to see how thinks work in this cam , but that alright @ArcziPL sent me one (thanks again)

justgerd

So essentially, after I got the vxworks branch to compile, I tried to (probably in the worst way possible ;) port your patches for the 450D to the current tree, but I got really cryptic compiler errors. I will instead try to fix module compiler problems (not much better, but not as many) to get other modules working.

Also, am I the only one who has a flickering LiveView screen as long as ML is enabled?