Magic Lantern Forum

Magic Lantern Releases => Camera-specific discussion => Topic started by: a1ex on May 14, 2014, 03:09:19 PM

Title: Canon 500D / T1i
Post by: a1ex on May 14, 2014, 03:09:19 PM
As you know, a while ago I've got a used 500D (http://magiclantern.fm/forum/index.php?topic=2317) for the purpose of studying how to reflash it (that is, brick it somehow and then attempt to recover it). I'm not exactly there yet with understanding Canon's startup process (some progress here (https://bitbucket.org/hudson/magic-lantern/commits/branch/dm-spy-experiments) and here (http://www.magiclantern.fm/forum/index.php?topic=2388.0)), so meanwhile I've ironed out some ML bugs.

The new installer is working (starting from April 22, 2014), so you can install it directly from nightly builds (http://builds.magiclantern.fm/). Therefore, the install process is now as simple as:


Installation:
1) Format the card from the camera.
2) Make sure you are running Canon firmware 1.1.1 (http://www.canon-europe.com/Support/Consumer_Products/products/cameras/Digital_SLR/EOS_500D.aspx?type=download&page=1).
3) Copy ML files (http://builds.magiclantern.fm/) on the card and run Firmware Update.

Uninstallation:
1) Run Firmware Update from your ML card.
2) Follow the instructions.

(http://a1ex.magiclantern.fm/bleeding-edge/new-installer.png)


Raw video (the old-style raw_rec (http://www.magiclantern.fm/forum/index.php?topic=5247.0)) is also working (starting from today, May 14). Please discuss raw recording usage in the Raw Video (http://www.magiclantern.fm/forum/index.php?board=49.0) section, not here.

You should not expect ML for 500D to be as polished as on the larger cameras, but it's pretty good as a development platform, and fairly cheap if you want to do dangerous experiments on it.

Don't just report issues. Go ahead and fix them!

(start here (http://www.magiclantern.fm/forum/index.php?topic=991), and once you fix or improve something, follow this tutorial (http://www.magiclantern.fm/forum/index.php?topic=7940.0) to submit your contribution)
Title: Re: Magic Lantern for 500D
Post by: Hey on May 18, 2014, 12:01:01 PM
Hi a1ex, thank you for making ML available for the 500D.

Using a recent nighlty, I can't use the video mode; as soon as I start recording it crashes and I have to restart the camera (err 70). I'm sorry but I won't be able to fix that as I don't have any programming skills (except html :P). So yeah here are the logs.

Also, it would be good to update the feature comparison matrix with "unofficial" modules; for example the 500D is the only camera to not support the bolt trigger one, and I wouldn't know it without asking the developer/scrolling through all the reply.

Thank you for your time. Hopefully this will help.

CRASH00_500D_Video.LOG
https://mega.co.nz/#!UAYzlYJC!TvRepZ52jtCtEFAbPtNirOS7wh-85K8mhT6KtdbjfkU (https://mega.co.nz/#!UAYzlYJC!TvRepZ52jtCtEFAbPtNirOS7wh-85K8mhT6KtdbjfkU)

log000_500D_Video.log
https://mega.co.nz/#!cBg2nITD!syFqKSjfj-h6PnaDTO3EKR6LimK_T4S4kfKQc8E-P4U
Title: Re: Magic Lantern for 500D
Post by: a1ex on May 19, 2014, 11:36:03 PM
This is a strange bug triggered on 500D by simply drawing on the screen. Therefore, it can't be solved (at least not with my current knowledge).

Last time I've checked it was working though (recording for at least 30 seconds). Try turning off Global Draw, then turn overlays back on one by one until you find the buggy one, then slowdown the corresponding drawing code by adding asm("nop") calls.

Sure, if anyone finds a better solution, would be great.
Title: Re: Magic Lantern for 500D
Post by: josepvm on July 18, 2014, 11:38:15 AM
 Full HD H.264 video recording works now with Global Draw enabled, using the new Nightly Builds.

So you can use Focus Peaking, see the live histogram, etc.  Great !  :)

And raw recording is also working (both raw_rec and mlv_rec).  With 864x486 maximum resolution, if you want continuous shooting, inside the 21 MB/s data transfer limit for SD bus  (I mean "continuous" with  4GB max file size, of course, as 500D uses FAT32 formatted cards).

For raw video disabling global draw is needed. If you try to enable it, recording will fail after a few seconds. 


Title: Re: Magic Lantern for 500D
Post by: a1ex on July 18, 2014, 12:55:05 PM
... which confirms this bug is very unpredictable; with the same build and same settings, I bet you'll get a crash sooner or later.
Title: Re: Magic Lantern for 500D
Post by: kyrobb on August 23, 2014, 08:10:59 PM
Will the 500D shoot 23.976 fps at full 1080 with fps override? In h.264 compressed mode of course?
Title: Re: Magic Lantern for 500D
Post by: josepvm on August 29, 2014, 12:06:14 AM
Will the 500D shoot 23.976 fps at full 1080 with fps override? In h.264 compressed mode of course?

No, It's not possible.

See this post from Greg:
http://www.magiclantern.fm/forum/index.php?topic=10111.msg125888#msg125888 (http://www.magiclantern.fm/forum/index.php?topic=10111.msg125888#msg125888)
Title: Re: Canon 500D / T1i
Post by: musartsmitty on January 10, 2015, 08:29:04 PM
 Are the BMH (on camera help files) available for the Jan 03, 2015 nightly build? They were not in the /ml/doc directory of the zip file I downloaded!

Also is there a reason for ISO 25600 being removed from ML v.2.3.500d.111?

Tks
Title: Re: Canon 500D / T1i
Post by: Greg on January 10, 2015, 09:02:36 PM
Analog ISO 500D is 1600, any higher value no make sense. This can be done in postprocess.
Title: Re: Canon 500D / T1i
Post by: Tralfaz on February 09, 2015, 04:52:00 PM
Hope this is the right spot.

Just picked up a used Canon T1I - 500D.  Verified my firmware was 1.1.1 and installed Magic Lantern on it.  While going through the menus checking everything out, it showed the Internal Temp as "157 raw (help needed)".

Does anyone know what this means and is it dangerous for my camera?

Thanks in advance...
Al
Title: Re: Canon 500D / T1i
Post by: Walter Schulz on February 09, 2015, 05:25:06 PM
Does anyone know what this means

You may help spending some time and effort
http://www.magiclantern.fm/forum/index.php?topic=9673.0

Title: Re: Canon 500D / T1i
Post by: Tralfaz on February 09, 2015, 06:08:15 PM
Thank you Walter.  I had tried searching for 'internal temp' and 'help needed', but didn't find anything like the link you provided.  Even looked in the ML manual.  I didn't realize the 'help needed' was a way to ask for my help for this camera.  I thought it meant I needed to get help for my camera! LOL

Anyway, I am in the process right now of putting together the temp values to post in the other link when everything is done. 

Thanks once again for the quick response.
Title: Re: Canon 500D / T1i
Post by: od4g on March 29, 2015, 03:12:33 AM
Is it just me or is there no Bulb Ramping on the 500D/T1i? I had 1.1.1 installed before I installed ML. Everything seems fine, no errors, however I just have no option for Bulb Ramping. Searching Google and these forums hasn't led me nowhere. Intervalometer and Bulb Timer are there and working, but Ramping is nowhere to be found. I was really looking forward to trying it out. If it's not just me, is it in the works or never going to happen? Should I try a previous nightly and/or uninstall and reinstall Canon 1.1.1 and then ML (Edit: tried a few back to January with no luck)? Oh yea I just started with the 3/28 nightly. Any input would be appreciated. Thanks for everything else that's included though! Cheers.
Title: Re: Canon 500D / T1i
Post by: Walter Schulz on March 29, 2015, 08:59:42 AM
Bulb ramping has gone. http://www.magiclantern.fm/forum/index.php?topic=5705.0
Title: Re: Canon 500D / T1i
Post by: nate01 on August 16, 2015, 01:28:50 PM
Does anyone thing that there will be a forthcoming fix for continuous recording on the 500d at any point? I wish I could do it myself, but I lack the necessary skills... sadly!
Title: Re: Canon 500D / T1i
Post by: Walter Schulz on August 16, 2015, 01:36:40 PM
What are you missing?
Seamless recording beyond 29:59 in MLV/RAW was implemented in nightly builds about 6 months ago.
Seamless recording in H.264 is not possible. Limit is coded in Canon firmware (at time of writing) and you will loose about half a second at 29:59.
Title: Re: Canon 500D / T1i
Post by: Arubeto on August 29, 2015, 05:52:23 PM
Hi there,

I read about Magic Lantern in a magazine about digital photography ("ct Digitale Fotografie" in Germany) and wanted to try out ML with my Canon EOS 500D.

The article in the magazine said there were nightly builds and stable release for most cameras, but as far as I understand, this differentiation is not the case anymore. If I got the opening post in the thread right, installing "nightly builds" only is the way to go now. On https://builds.magiclantern.fm/#/ there is an option to show older builds. Since atm. I only want to use the additional function ML unlocks/provides, I'd be very interested in which of those previous versions/builds for the 500D could be considered the last "stable" version which a user should install.

Thanks in advance!

Arubeto
Title: Re: Canon 500D / T1i
Post by: Walter Schulz on August 29, 2015, 05:59:45 PM
http://www.magiclantern.fm/forum/index.php?topic=15045
Title: Re: Canon 500D / T1i
Post by: thepianoneedswater on January 25, 2016, 07:56:13 PM
Can the 500D actually go above 1/4000 shutter speed with still photography? I was attempting to take wide aperture photos outside in the snow, but there's too much light. I've put it in live view and enabled exposure override, but above 1/4000 I see no difference in live view or in the photos. The resulting photo reports 1/4000 as the shutter speed when ML shutter is set for 1/8000.

Thanks
Title: Re: Canon 500D / T1i
Post by: Greg on January 25, 2016, 09:24:12 PM
Mechanical shutter - 1/4000 (photo)
Electronic shutter - 1/8000 (video)
Title: Re: Canon 500D / T1i
Post by: zcream on March 20, 2016, 08:41:06 PM
I got two contradictory comments on 1080p video. One suggested I can only do 1080p at 21fps. Another said that 1080p 30fps in working. Can we do 1080p at 24 or 25p ? At what max bitrate ?
Thanks!
Title: Re: Canon 500D / T1i
Post by: Walter Schulz on March 20, 2016, 09:03:14 PM
RAW or H.264?

RAW: Maximum bitrate (card interface limit) is about 21 MByte/s and 1080p30 requires about 5 x 21 MByte/s for continuous recording.
Title: Re: Canon 500D / T1i
Post by: Quba on April 04, 2016, 05:27:03 PM
Hi everyone!

Is there some news about this crash?
With my camera I can shoot video until I make ML menu appear (in order to change expo setting, eventually). Then the ERR 70 crash happen.
I tried with all Expo override, GlobalDraw, movie tweaks and even energy saving disabled, the same thing happens everytime.

I wrote an Issue here : https://bitbucket.org/hudson/magic-lantern/issues/2487/eos-500d-crash-when-recording-video-err-70

Then I found old builds of ML here : https://bitbucket.org/hudson/magic-lantern/downloads
But I don't have all features I had before update... Such as Stack focus, Movie Tweaks and others....

Where can I find ALL older versions of ML in order to find the one I had before?

Thanks
Title: Re: Canon 500D / T1i
Post by: Walter Schulz on April 04, 2016, 05:32:16 PM
https://builds.magiclantern.fm/jenkins/job/500D.111/
Title: Re: Canon 500D / T1i
Post by: a1ex on April 05, 2016, 06:16:16 PM
That crash can be triggered by simply drawing on the screen while recording, even with a minimal autoexec that does nothing else. So... I have no idea how to fix it.
Title: Re: Canon 500D / T1i
Post by: gwhite0992 on December 26, 2016, 06:15:27 PM
I am new to ML and use it mostly for bracketing. Recently I wanted to take video and to my surprise, the software crashed after a minute and a half repeatedly. (err 70) I noticed that the display has so much info that I didn't need so I used the disp button to reduce the clutter(small movie camera bottom right). The crashing stopped. Hope this is helpful  (nightly 20160ct9)
All settings were the default settings. Has anyone else has success with this change?
Title: Re: Canon 500D / T1i
Post by: thearczoro on December 31, 2016, 12:50:29 PM
Yeah, I notice that error while recording with default setting.

CRASH00.log
Code: [Select]
ASSERT: FALSE
at SoundDevice\SoundDevice_CODEC.c:1080, task ASIF
lv:1 mode:20


Magic Lantern version : Nightly.2016Dec19.500D111
Mercurial changeset   : 4f72a0eabb16 (unified) tip
Built on 2016-12-19 00:14:22 UTC by jenkins@nightly.
Free Memory  : 134K + 2985K
Title: Re: Canon 500D / T1i
Post by: Applenet on January 10, 2017, 10:47:25 PM
Just trying out video, and thought I'd look to ML.

I'm down at the first hurdle. The T1i firmware on my camera is 1.1.0 and on the Canon site it's 1.1.2. ML require 1.1.1, right?

What's a noob to do?
Title: Re: Canon 500D / T1i
Post by: thearczoro on January 14, 2017, 12:54:09 AM
Just trying out video, and thought I'd look to ML.

I'm down at the first hurdle. The T1i firmware on my camera is 1.1.0 and on the Canon site it's 1.1.2. ML require 1.1.1, right?

What's a noob to do?

Just download ML Nightly, it's included firmware 1.1.1. PM me if you need FW 1.1.1.
Title: Re: Canon 500D / T1i
Post by: Walter Schulz on January 14, 2017, 09:07:52 AM
You may want to correct this statement.
FIR in nightly: ML-SETUP.FIR, 65916 Bytes
Used to install/deinstall cam's bootflag and making card bootable/non-bootable.
Title: Re: Canon 500D / T1i
Post by: thearczoro on January 14, 2017, 01:34:38 PM
You may want to correct this statement.
FIR in nightly: ML-SETUP.FIR, 65916 Bytes
Used to install/deinstall cam's bootflag and making card bootable/non-bootable.
You're correct. I got it wrong. Btw, if someone need firmware v1.1.1 you can PM me, I have a copy of it. I will send FW by email. Later @a1ex maybe update ML for 500D with FW 1.1.2.  :)
Title: Re: Canon 500D / T1i
Post by: Applenet on January 20, 2017, 08:09:30 PM
Thanks thearczoro, but no offence, you're new to the forum, so am I. I'm not comfortable installing firmware provided by a total stranger.

Is 1.1.1 available from a trusted source? (again, don't mean to offend thearczoro). And is that my only option?
Title: Re: Canon 500D / T1i
Post by: thearczoro on January 23, 2017, 03:40:35 PM
Thanks thearczoro, but no offence, you're new to the forum, so am I. I'm not comfortable installing firmware provided by a total stranger.

Is 1.1.1 available from a trusted source? (again, don't mean to offend thearczoro). And is that my only option?
That's okay, I'm just a newbie here lol. Just because I'm a silent reader with few posts over 2 years. Just helping a total stranger too, who need help. http://builds.magiclantern.fm/ (http://builds.magiclantern.fm/) all here is a trusted source with full of explanation. Do It At Your Own Risk!  8) 8) 8)
Title: Re: Canon 500D / T1i
Post by: Greg on April 01, 2017, 02:08:56 PM
End of 500D support.
Title: Re: Canon 500D / T1i
Post by: thearczoro on April 04, 2017, 06:17:02 AM
End of 500D support.

 :'( Thanks for your hard work @Greg, @A1ex, and the dev team for supporting our device.
Title: Re: Canon 500D / T1i
Post by: Walter Schulz on April 04, 2017, 07:53:42 AM
Happy April Fools' Day, thearczoro!
Title: Re: Canon 500D / T1i
Post by: thearczoro on April 05, 2017, 04:03:18 AM
Happy April Fools' Day, thearczoro!

 ;D Sssstt... Make it more dramatic. Lol..  :D :D :D Btw, any news about firmware v1.1.2?
Title: Re: Canon 500D / T1i
Post by: Greg on April 05, 2017, 02:08:15 PM
I do not plan future support 500D. This is an old camera, for me it has too many limitations.
Title: Re: Canon 500D / T1i
Post by: GenerallyNerdy on April 23, 2017, 12:36:05 AM
New to ML and I have recently had issues with crashing. The error it puts on screen says something about missing a sound file. I only use my T1i in video mode. It seems that if I drop the frame rate to about 15fps the issue goes away, but anything 25fps and up throws the error. HELP?

ASSERT: FALSE
at SoundDevice\SoundDevice_CODEC.c:1080, task ASIF
lv:1 mode:20


Magic Lantern version : Nightly.2016Dec19.500D111
Mercurial changeset   : 4f72a0eabb16 (unified) tip
Built on 2016-12-19 00:14:22 UTC by jenkins@nightly.
Free Memory  : 141K + 2816K
Title: Re: Canon 500D / T1i
Post by: thearczoro on April 28, 2017, 08:54:12 AM
New to ML and I have recently had issues with crashing. The error it puts on screen says something about missing a sound file. I only use my T1i in video mode. It seems that if I drop the frame rate to about 15fps the issue goes away, but anything 25fps and up throws the error. HELP?

ASSERT: FALSE
at SoundDevice\SoundDevice_CODEC.c:1080, task ASIF
lv:1 mode:20


Magic Lantern version : Nightly.2016Dec19.500D111
Mercurial changeset   : 4f72a0eabb16 (unified) tip
Built on 2016-12-19 00:14:22 UTC by jenkins@nightly.
Free Memory  : 141K + 2816K


Change your display for video with minimal info.
Title: Re: Canon 500D / T1i
Post by: cbeard7693 on July 12, 2017, 05:15:44 PM
I just updated my 500D firmware to 1.1.2, as there is no 1.1.1 available from Canon. Will ML not work with the newest FW update?
Title: Re: Canon 500D / T1i
Post by: Walter Schulz on July 12, 2017, 08:36:44 PM
Please read installation instructions: Top of page -> Downloads -> Download Nightly Builds -> Select your cam.
Title: Re: Canon 500D / T1i
Post by: thearczoro on July 31, 2017, 03:35:20 AM
I just updated my 500D firmware to 1.1.2, as there is no 1.1.1 available from Canon. Will ML not work with the newest FW update?
You need to downgrade first to FW v1.1.1: http://pel.hu/down/v111-t1i-500d-x3-win.exe
Title: Re: Canon 500D / T1i
Post by: dfort on December 08, 2017, 01:54:41 AM
Knock knock, Hello? Any 500D users still out there? @a1ex - have you managed to brick yours? We're making some progress with 10bit/12bit raw recording on Digic IV cameras that use LVState which includes the 500D. If one of you could run a test build to get the SRM_BUFFER_SIZE for this camera we could give it a try.

Test builds are on my downloads page:

https://bitbucket.org/daniel_fort/magic-lantern/downloads/

Look for this file:

find-SRM_BUFFER_SIZE.2017Dec06.500D111.zip

Limited time offer. I prefer keeping my downloads page free of obsolete builds.
Title: Re: Canon 500D / T1i
Post by: Danne on December 08, 2017, 03:06:47 AM
Got two of these babies atcwork. Will test tomorrow.
Title: Re: Canon 500D / T1i
Post by: a1ex on December 08, 2017, 08:15:10 AM
Ran it in QEMU - it flashes too fast (you have replaced the printf with a bmp_printf, right?), but it's 1AE followed by some zeros. That should give around 27 MB, so it's 0x1ae0000.

NotifyBox will redraw the message in background, should it get erased, while bmp_printf just prints it once.
Title: Re: Canon 500D / T1i
Post by: dfort on December 08, 2017, 09:02:29 PM
I was using bmp_printf because of the control over where to print on the screen. I moved it around so it wouldn't interfere with the other overlays but I suppose that on some cameras they still clash. Switched over to NotifyBox and gave it a timeout value of 10000 so it should stay on the screen long enough to read it.

Posted a new build on my downloads page (https://bitbucket.org/daniel_fort/magic-lantern/downloads/).

Off topic--how did you shoot a silent still in QEMU? According to the documentation (https://bitbucket.org/hudson/magic-lantern/src/46f2e6e1cbb045f34c05581c6fa1270a8982297d/contrib/qemu?at=qemu):

Quote
What does not work (yet):
  • LiveView (WIP, very hard);
  • Still photo capture (WIP - the capture process itself works);
Title: Re: Canon 500D / T1i
Post by: dfort on December 08, 2017, 09:55:37 PM
Got two of these babies atcwork. Will test tomorrow.

Try the new and improved find-SRM_BUFFER_SIZE build I posted and see how it works on the camera.

By the way I made these builds so anyone who can install ML can help find SRM_BUFFER_SIZE for their camera. The way it works is like this, check consts.h file for a camera that has SRM_BUFFER_SIZE working (look in either crop_rec_4k or raw_video_10bit_12bit branches) and you'll see a hint at how to find it:

Code: [Select]
#define SRM_BUFFER_SIZE 0x1AE0000   /* print it from srm_malloc_cbr */
The srm_malloc_cbr function lives in src/exmem.c - I just added that last line that uses NotifyBox to print the SRM_BUFFER_SIZE onto the screen:

Code: [Select]
static void srm_malloc_cbr(void** dst_ptr, void* raw_buffer, uint32_t raw_buffer_size)
{
    if (!srm_buffer_size)
    {
        /* we can't tell how much to allocate; the allocator tells us */
        srm_buffer_size = raw_buffer_size;
    }
    else
    {
        /* it should tell us the same thing every time */
        ASSERT(srm_buffer_size == raw_buffer_size);
    }
   
    /* return the newly allocated buffer in the output variable */
    *dst_ptr = raw_buffer;
   
    /* announce it's done */
    give_semaphore(srm_alloc_sem);
   
    NotifyBox(10000, "SRM_BUFFER_SIZE 0x%x", srm_buffer_size);
}

@a1ex - I didn't replaced the printf with a bmp_printf, because there was no printf there to begin with. I didn't use printf in my builds because that involves using the console and I wanted to make this as easy as possible to use.
Title: Re: Canon 500D / T1i
Post by: a1ex on December 08, 2017, 11:49:50 PM
To get this value, I didn't even have to take a picture - just went to the Free Memory dialog, which does a test allocation.

Taking an emulated full-res capture with the vanilla silent module is doable, but requires a gdb script (or a custom build) to fake the LiveView status. One such test is ran on the nightly builds (see this screenshot (http://builds.magiclantern.fm/jenkins/job/QEMU-nightly-tests/383/artifact/qemu/magiclantern-Nightly.2017Dec08.1200D101/15-silent-capture.png) and this animation (http://builds.magiclantern.fm/jenkins/view/QEMU/job/QEMU-nightly-tests/383/artifact/qemu/magiclantern-Nightly.2017Dec08.1200D101/test_silent_pic.gif), or this (http://builds.magiclantern.fm/jenkins/job/QEMU-nightly-tests/377/artifact/qemu/magiclantern-Nightly.2017Dec07.500D111/11-silent-capture.png) and this (http://builds.magiclantern.fm/jenkins/job/QEMU-nightly-tests/377/artifact/qemu/magiclantern-Nightly.2017Dec07.500D111/test_silent_pic.gif) for 500D, although not all models can run it that well) and another one (with a minimal codebase) is ran with the QEMU test suite (qemu-frsp).

In the crop_rec_4k branch there is a printf commented out.
Title: Re: Canon 500D / T1i
Post by: dfort on December 09, 2017, 12:54:16 AM
To get this value, I didn't even have to take a picture - just went to the Free Memory dialog, which does a test allocation.

Interesting. The new build with NotifyBox is working great with the Free Memory dialog trick.

Thanks for posting those QEMU tips. Hum, a gdb script (or a custom build) to fake the LiveView status? So much to learn here.

In the crop_rec_4k branch there is a printf commented out.

That figures. I did it using the raw_video_10bit_12bit branch and only printed out the SRM_BUFFER_SIZE. Looks like there's more information in the crop_rec_4k branch code.

Code: [Select]
//printf("srm_malloc_cbr(%x, %x, %x)\n", dst_ptr, raw_buffer, raw_buffer_size);
Now if I could only get all this stuff for the Digic IV 10bit/12bit stuff working in the crop_rec_4k branch. Back on topic -- and that includes the 500D.
Title: Re: Canon 500D / T1i
Post by: jonnybel on March 01, 2018, 10:20:40 PM
You need to downgrade first to FW v1.1.1: http://pel.hu/down/v111-t1i-500d-x3-win.exe
This download link is dead and I can't find the 1.1.1 firmware update anywhere :(

My 500D is still running 1.0.9 and I just found out about ML :D
Title: Re: Canon 500D / T1i
Post by: dfort on March 02, 2018, 05:31:26 AM
This download link is dead and I can't find the 1.1.1 firmware update anywhere :(

This: http://pel.hu/eoscard/ is the place where you should be able to get pretty much any Canon firmware updater but you are right, the link to the 500D 1.1.1 firmware isn't working. I have a "500D Canon Firmware for Testers" that contains the 1.1.1 and 1.1.2 Canon updaters on my downloads page as a backup.

https://bitbucket.org/daniel_fort/magic-lantern/downloads/

If someone has a dump of the 1.1.2 firmware I'd appreciate a PM.
Title: Re: Canon 500D / T1i
Post by: dfort on April 13, 2018, 05:27:51 AM
Got my hands on a 500D so I did the 1.1.2 firmware dump myself. The portable dumper didn't work so we ended up using the "blind dumper" - more details in this post (https://www.magiclantern.fm/forum/index.php?topic=16534.msg199730#msg199730).

That was about the only glitch, the rest of the update went like butter!

(https://farm1.staticflickr.com/790/27550022648_28a01d8b81.jpg) (https://flic.kr/p/HYv4Uu)

Firmware signature showed up fine in QEMU:

(https://farm1.staticflickr.com/869/41421481421_30abe6baa6.jpg) (https://flic.kr/p/267gVjM)

Worked first time in camera:

(https://farm1.staticflickr.com/894/41421482921_9093abe853.jpg) (https://flic.kr/p/267gVLD)

It also got a perfect score with the Stubs API test:

11999 passed, 0 failed
Code: [Select]
[Pass] is_play_mode() => 0x1
[Pass] src = fio_malloc(size) => 0x4211c0d0
[Pass] dst = fio_malloc(size) => 0x429200dc
[Pass] memcmp(dst, src, 4097) => 0x3f
[Pass] edmac_memcpy(dst, src, 4097) => 0x429200dc
[Pass] memcmp(dst, src, 4097) => 0x0
[Pass] edmac_memcpy(dst, src, 4097) => 0x429200dc
[Pass] memcmp(dst, src, size) => 0xcc
[Pass] edmac_memcpy(dst, src, size) => 0x429200dc
[Pass] memcmp(dst, src, size) => 0x0
[Pass] memcmp(dst, src, size) => 0xffffffc3
[Pass] edmac_memcpy_start(dst, src, size) => 0x429200dc
       dt => 0x3388
[Pass] copied => 0x400e24
[Pass] copied => 0x400e24
[Pass] copied => 0x400e24
[Pass] memcmp(dst, src, copied) => 0x0
[Pass] memcmp(dst, src, copied + 16) => 0x43
       edmac_memcpy_finish()
       free(src)
       free(dst)
Cache test A (EDMAC on BMP buffer)...
[Pass] bmp = bmp_load("ML/CROPMKS/CINESCO2.BMP", 1) => 0xfd5c0
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x83f
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x0
Cache test B (FIO on 8K buffer)...
[Pass] tries[0] => 0x114
[Pass] tries[1] => 0x109
[Pass] tries[2] => 0xec
[Pass] tries[3] => 0xdf
[Pass] failr[0] => 0x90
[Pass] failw[0] => 0x8c
[Pass] failr[1] => 0x8a
[Pass] failw[1] => 0x0
[Pass] failr[2] => 0x0
[Pass] failw[2] => 0x77
[Pass] failr[3] => 0x0
[Pass] failw[3] => 0x0
       times[0] / tries[0] => 0x16
       times[1] / tries[1] => 0x16
       times[2] / tries[2] => 0x18
       times[3] / tries[3] => 0x18
Cache tests finished.

[Pass] f = FIO_CreateFile("test.dat") => 0x3
[Pass] FIO_WriteFile(f, (void*)0xFF000000, 0x10000) => 0x10000
[Pass] FIO_WriteFile(f, (void*)0xFF000000, 0x10000) => 0x10000
       FIO_CloseFile(f)
[Pass] FIO_GetFileSize("test.dat", &size) => 0x0
[Pass] size => 0x20000
[Pass] p = (void*)_alloc_dma_memory(0x20000) => 0x40a41b38
[Pass] f = FIO_OpenFile("test.dat", O_RDONLY | O_SYNC) => 0x3
[Pass] FIO_ReadFile(f, p, 0x20000) => 0x20000
       FIO_CloseFile(f)
       _free_dma_memory(p)
[Pass] count => 0x3a98
[Pass] buf = fio_malloc(0x1000000) => 0x4211c0d0
[Pass] FIO_GetFileSize_direct("test.dat") => 0x82000000
[Pass] f = FIO_OpenFile("test.dat", O_RDWR | O_SYNC) => 0x3
[Pass] FIO_SeekSkipFile(f, 0, SEEK_END) => 0x82000000
[Pass] FIO_WriteFile(f, buf, 0x10) => 0x10
[Pass] FIO_SeekSkipFile(f, -0x20, SEEK_END) => 0x81fffff0
[Pass] FIO_WriteFile(f, buf, 0x30) => 0x30
[Pass] FIO_SeekSkipFile(f, 0x20, SEEK_SET) => 0x20
[Pass] FIO_SeekSkipFile(f, 0x30, SEEK_CUR) => 0x50
[Pass] FIO_SeekSkipFile(f, -0x20, SEEK_CUR) => 0x30
[Pass] FIO_GetFileSize_direct("test.dat") => 0x82000020
[Pass] is_file("test.dat") => 0x1
[Pass] FIO_RemoveFile("test.dat") => 0x0
[Pass] is_file("test.dat") => 0x0
[Pass] SetTimerAfter(0, timer_cbr, overrun_cbr, 0) => 0x15
[Pass] timer_func => 0x2
[Pass] SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0x839e
       msleep(900)
[Pass] timer_func => 0x0
       msleep(200)
[Pass] timer_func => 0x1
[Pass] ABS((timer_time/1000 - t0) - 1000) => 0x5
[Pass] ABS((timer_arg - ta0) - 1000) => 0xa
[Pass] timer = SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0x83a0
       msleep(400)
       CancelTimer(timer)
[Pass] timer_func => 0x0
       msleep(1500)
[Pass] timer_func => 0x0
[Pass] SetHPTimerAfterNow(0, timer_cbr, overrun_cbr, 0) => 0x15
[Pass] timer_func => 0x2
[Pass] SetHPTimerAfterNow(100000, timer_cbr, overrun_cbr, 0) => 0x614
       msleep(90)
[Pass] timer_func => 0x0
       msleep(20)
[Pass] timer_func => 0x1
[Pass] ABS(DeltaT(timer_time, t0) - 100000) => 0x12d
[Pass] ABS(DeltaT(timer_arg, ta0) - 100000) => 0xfa
[Pass] ABS((get_us_clock_value() - t0) - 110000) => 0xffffffd0
[Pass] SetHPTimerAfterNow(90000, next_tick_cbr, overrun_cbr, 0) => 0x616
       msleep(80)
[Pass] timer_func => 0x0
       msleep(20)
[Pass] timer_func => 0x3
       msleep(80)
[Pass] timer_func => 0x3
       msleep(20)
[Pass] timer_func => 0x1
[Pass] ABS(DeltaT(timer_time, t0) - 300000) => 0x86
[Pass] ABS(DeltaT(timer_arg, ta0) - 300000) => 0x51
[Pass] ABS((get_us_clock_value() - t0) - 310000) => 0xffffffec
       t0 = *(uint32_t*)0xC0242014 => 0x5cdd1
       msleep(250)
       t1 = *(uint32_t*)0xC0242014 => 0x988ca
[Pass] ABS(MOD(t1-t0, 1048576)/1000 - 250) => 0x6
       LoadCalendarFromRTC( &now )
       s0 = now.tm_sec => 0x1d
       Date/time: 2018/04/12 22:05:29
       msleep(1500)
       LoadCalendarFromRTC( &now )
       s1 = now.tm_sec => 0x1e
[Pass] MOD(s1-s0, 60) => 0x1
[Pass] MOD(s1-s0, 60) => 0x1
       m0 = MALLOC_FREE_MEMORY => 0x271a8
[Pass] p = (void*)_malloc(50*1024) => 0xff308
[Pass] CACHEABLE(p) => 0xff308
       m1 = MALLOC_FREE_MEMORY => 0x1a9a8
       _free(p)
       m2 = MALLOC_FREE_MEMORY => 0x271a8
[Pass] ABS((m0-m1) - 50*1024) => 0x0
[Pass] ABS(m0-m2) => 0x0
       m0 = GetFreeMemForAllocateMemory() => 0x2e5cd8
[Pass] p = (void*)_AllocateMemory(256*1024) => 0xa41af8
[Pass] CACHEABLE(p) => 0xa41af8
       m1 = GetFreeMemForAllocateMemory() => 0x2a5ccc
       _FreeMemory(p)
       m2 = GetFreeMemForAllocateMemory() => 0x2e5cd8
[Pass] ABS((m0-m1) - 256*1024) => 0xc
[Pass] ABS(m0-m2) => 0x0
       m01 = MALLOC_FREE_MEMORY => 0x271a8
       m02 = GetFreeMemForAllocateMemory() => 0x2e5cd8
[Pass] p = (void*)_alloc_dma_memory(256*1024) => 0x40a41b38
[Pass] UNCACHEABLE(p) => 0x40a41b38
[Pass] CACHEABLE(p) => 0xa41b38
[Pass] UNCACHEABLE(CACHEABLE(p)) => 0x40a41b38
       _free_dma_memory(p)
[Pass] p = (void*)_shoot_malloc(24*1024*1024) => 0x4c000068
[Pass] UNCACHEABLE(p) => 0x4c000068
       _shoot_free(p)
       m11 = MALLOC_FREE_MEMORY => 0x271a8
       m12 = GetFreeMemForAllocateMemory() => 0x2e5cd8
[Pass] ABS(m01-m11) => 0x0
[Pass] ABS(m02-m12) => 0x0
[Pass] suite = shoot_malloc_suite_contig(24*1024*1024) => 0xfbe98
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1800000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xfbeb8
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1800000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4c000064
[Pass] UNCACHEABLE(p) => 0x4c000064
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite_contig(0) => 0xfbd88
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1ae0000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xfbda8
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1ae0000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x46000064
[Pass] UNCACHEABLE(p) => 0x46000064
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(64*1024*1024) => 0xfbd88
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x4
[Pass] suite->size => 0x4000000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xfbda8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1324000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4210c088
[Pass] UNCACHEABLE(p) => 0x4210c088
       chunk = GetNextMemoryChunk(suite, chunk) => 0xfbdf8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1328000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42000064
[Pass] UNCACHEABLE(p) => 0x42000064
       chunk = GetNextMemoryChunk(suite, chunk) => 0xfbe28
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2e08000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4c000064
[Pass] UNCACHEABLE(p) => 0x4c000064
       chunk = GetNextMemoryChunk(suite, chunk) => 0xfbe58
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4000000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x46000064
[Pass] UNCACHEABLE(p) => 0x46000064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x4000000
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(0) => 0xfbd88
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x9
[Pass] suite->size => 0x5f00000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xfbda8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1324000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4210c088
[Pass] UNCACHEABLE(p) => 0x4210c088
       chunk = GetNextMemoryChunk(suite, chunk) => 0xfbdf8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1328000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42000064
[Pass] UNCACHEABLE(p) => 0x42000064
       chunk = GetNextMemoryChunk(suite, chunk) => 0xfbe28
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2e08000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x46000064
[Pass] UNCACHEABLE(p) => 0x46000064
       chunk = GetNextMemoryChunk(suite, chunk) => 0xfbe58
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x48e8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4c000064
[Pass] UNCACHEABLE(p) => 0x4c000064
       chunk = GetNextMemoryChunk(suite, chunk) => 0xfbe88
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4e04000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x47ae00e4
[Pass] UNCACHEABLE(p) => 0x47ae00e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0xfbeb8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x5320000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4dae00e4
[Pass] UNCACHEABLE(p) => 0x4dae00e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0xfbee8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x583c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4bae00e4
[Pass] UNCACHEABLE(p) => 0x4bae00e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0xfbf18
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x5d58000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x49ae00e4
[Pass] UNCACHEABLE(p) => 0x49ae00e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0xfbf48
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x5f00000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x45ae00e4
[Pass] UNCACHEABLE(p) => 0x45ae00e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x5f00000
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] strlen("abc") => 0x3
[Pass] strlen("qwertyuiop") => 0xa
[Pass] strlen("") => 0x0
[Pass] strcpy(msg, "hi there") => 0x1b2474
[Pass] msg => 'hi there'
[Pass] snprintf(a, sizeof(a), "foo") => 0x3
[Pass] snprintf(b, sizeof(b), "foo") => 0x3
[Pass] strcmp(a, b) => 0x0
[Pass] snprintf(a, sizeof(a), "bar") => 0x3
[Pass] snprintf(b, sizeof(b), "baz") => 0x3
[Pass] strcmp(a, b) => 0xfffffff8
[Pass] snprintf(a, sizeof(a), "Display") => 0x7
[Pass] snprintf(b, sizeof(b), "Defishing") => 0x9
[Pass] strcmp(a, b) => 0x4
[Pass] snprintf(buf, 3, "%d", 1234) => 0x2
[Pass] buf => '12'
[Pass] memcpy(foo, bar, 6) => 0x1b2440
[Pass] foo => 'asdfghuiop'
[Pass] memset(bar, '*', 5) => 0x1b2420
[Pass] bar => '*****hjkl;'
       bzero32(bar + 5, 5)
[Pass] bar => '****'
       EngDrvOut(LCD_Palette[0], 0x1234)
[Pass] shamem_read(LCD_Palette[0]) => 0x1234
       call("TurnOnDisplay")
[Pass] DISPLAY_IS_ON => 0x1
       call("TurnOffDisplay")
[Pass] DISPLAY_IS_ON => 0x0
       call("TurnOnDisplay")
[Pass] DISPLAY_IS_ON => 0x1
       task_create("test", 0x1c, 0x1000, test_task, 0) => 0x60400ac
[Pass] test_task_created => 0x1
[Pass] get_current_task_name() => 'run_test'
[Pass] task_max => 0x68
[Pass] task_max => 0x68
[Pass] mq = mq ? mq : (void*)msg_queue_create("test", 5) => 0x6060080
[Pass] msg_queue_post(mq, 0x1234567) => 0x0
[Pass] msg_queue_receive(mq, (struct event **) &m, 500) => 0x0
[Pass] m => 0x1234567
[Pass] msg_queue_receive(mq, (struct event **) &m, 500) => 0x9
[Pass] sem = sem ? sem : create_named_semaphore("test", 1) => 0x60801b8
[Pass] take_semaphore(sem, 500) => 0x0
[Pass] take_semaphore(sem, 500) => 0x9
[Pass] give_semaphore(sem) => 0x0
[Pass] take_semaphore(sem, 500) => 0x0
[Pass] give_semaphore(sem) => 0x0
[Pass] rlock = rlock ? rlock : CreateRecursiveLock(0) => 0x60a0062
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0xf
       SetGUIRequestMode(1); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x1
       SetGUIRequestMode(2); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x2
       SetGUIRequestMode(0); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x0
[Pass] display_idle() => 0x1
       GUI_Control(BGMT_PLAY, 0, 0, 0); msleep(1000);
[Pass] PLAY_MODE => 0x1
[Pass] MENU_MODE => 0x0
       GUI_Control(BGMT_MENU, 0, 0, 0); msleep(1000);
[Pass] MENU_MODE => 0x1
[Pass] PLAY_MODE => 0x0
[Pass] dialog->type => 'DIALOG'
       GUI_Control(BGMT_MENU, 0, 0, 0); msleep(500);
[Pass] MENU_MODE => 0x0
[Pass] PLAY_MODE => 0x0
       SW1(1,100)
[Pass] HALFSHUTTER_PRESSED => 0x1
       SW1(0,100)
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x1
[Pass] is_pure_play_movie_mode() => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x1
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x0

Test build on my downloads page (https://bitbucket.org/daniel_fort/magic-lantern/downloads/), pull request coming soon.

[EDIT] Pull request is open: https://bitbucket.org/hudson/magic-lantern/pull-requests/916/update-to-500d112/diff
Title: Re: Canon 500D / T1i
Post by: dfort on May 03, 2018, 02:14:00 AM
I've been pushing several users into doing tests on these firmware updates and since nobody seems to be responding on the 500D.112 and I happened to have my hands on one I guess it is up to me to run these tests.

Made a lua_fix build for the new firmware and these tests failed:

Code: [Select]
test_keys
test_lv failed
test_lens_focus
test_camera_exposure

All the others were fine. Of course the first thing I ask testers to do on a firmware update is to regress to the previous firmware version to see if this is a new issue or inherited from the previous version. Same issues on 1.1.1.

The lens focus test is interesting because it the lens will go from infinity to closest distance before failing. If the lens is focused at the closest setting to begin with it will fail right away. The 500D might be a camera that the lens can only be controlled by lua when in LiveView so I hacked up the script a bit, set the camera in LiveView and it completed this test using an old 28-105mm lens:

Code: [Select]
===============================================================================
ML/SCRIPTS/API_TEST.LUA - 2018-5-2 19:05:13
===============================================================================

Module tests...

Testing lens focus functionality...
Focus distance: 655350
Focusing backward...
Focus distance: 655350
Focus motor position: 0
Focusing forward with step size 3, wait=true...
...
Focus distance: 470
Focus motor position: -1974
Focusing backward with step size 3, wait=true...
...
Focus distance: 655350
Focus motor position: -69
Focus range: 520 steps forward, 366 steps backward.
Motor steps: 1974 forward, 1905 backward, 69 lost.
Focusing forward with step size 3, wait=false...
....................................
Focus distance: 470
Focus motor position: -1974
Focusing backward with step size 3, wait=false...
......................................
Focus distance: 655350
Focus motor position: -77
Focus range: 36 steps forward, 38 steps backward.
Motor steps: 1905 forward, 1897 backward, 8 lost.
Focusing forward with step size 2, wait=true...
...
Focus distance: 470
Focus motor position: -1967
Focusing backward with step size 2, wait=true...
...
Focus distance: 655350
Focus motor position: -69
Focus range: 840 steps forward, 770 steps backward.
Motor steps: 1890 forward, 1898 backward, 8 lost.
Focusing forward with step size 2, wait=false...
...
Focus distance: 470
Focus motor position: -1971
Focusing backward with step size 2, wait=false...
...
Focus distance: 655350
Focus motor position: -76
Focus range: 168 steps forward, 161 steps backward.
Motor steps: 1902 forward, 1895 backward, 7 lost.
Focusing forward with step size 1, wait=true...
...
Focus distance: 470
Focus motor position: -1983
Focusing backward with step size 1, wait=true...
...
Focus distance: 655350
Focus motor position: -106
Focus range: 1737 steps forward, 1477 steps backward.
Motor steps: 1907 forward, 1877 backward, 30 lost.
Focusing forward with step size 1, wait=false...
...
Focus distance: 470
Focus motor position: -2002
Focusing backward with step size 1, wait=false...
...
Focus distance: 655350
Focus motor position: -108
Focus range: 462 steps forward, 444 steps backward.
Motor steps: 1896 forward, 1894 backward, 2 lost.

Focus test completed.
Done!

The only key that test_keys is checking for is the half-shutter press.

platform/500D.111/gui.h
Code: [Select]
#define BGMT_PRESS_HALFSHUTTER 0x23
Checking this against the results of Debug -> Show GUI events

(https://farm1.staticflickr.com/824/40958398485_18a9bd1393.jpg) (https://flic.kr/p/25pmuUe)

Well 0x3f definitely didn't work and neither did 0x24 so maybe this is somewhere else?

The test_lv does put the camera in LiveView then dies.

Code: [Select]
===============================================================================
ML/SCRIPTS/API_TEST.LUA - 2018-5-2 19:55:31
===============================================================================

Module tests...
Testing module 'lv'...
Starting LiveView...

Looks like there's some doubt in the code.

platform/500D.111/gui.h
Code: [Select]
#define BGMT_LV 0xf // idk?

Finally, test_camera_exposure starts off well outside LiveView but dies when trying to set ISO values.

Code: [Select]
===============================================================================
ML/SCRIPTS/API_TEST.LUA - 2018-5-2 19:58:31
===============================================================================

Module tests...
Testing exposure settings...
Camera    : Canon EOS REBEL T1i (500D) 1.1.2
Lens      : EF28-105mm f/3.5-4.5 USM
Shoot mode: 3
Shutter   : Ç125 (raw 112, 0.007812s, 8ms, apex 7.)
Aperture  : Å5.6 (raw 48, f/5.6, apex 5.)
Av range  : Å3.5..Å22 (raw 37..80, f/3.5..f/22.6, apex 3.625..9.)
ISO       : ÄAuto (raw 0, 0, apex 0)
EC        : 0.0 (raw 0, 0 EV)
Flash EC  : 0.0 (raw 0, 0 EV)
Setting shutter to random values...
Setting ISO to random values...

However, if the exposure test is done in LiveView:

Code: [Select]
===============================================================================
ML/SCRIPTS/API_TEST.LUA - 2018-5-2 20:15:51
===============================================================================

Module tests...
Testing exposure settings...
Camera    : Canon EOS REBEL T1i (500D) 1.1.2
Lens      : EF28-105mm f/3.5-4.5 USM
Shoot mode: 3
Shutter   : Ç125 (raw 112, 0.007812s, 8ms, apex 7.)
Aperture  : Å5.6 (raw 48, f/5.6, apex 5.)
Av range  : Å3.5..Å22 (raw 37..80, f/3.5..f/22.6, apex 3.625..9.)
ISO       : Ä3200 (raw 112, 3200, apex 10.)
EC        : 0.0 (raw 0, 0 EV)
Flash EC  : 0.0 (raw 0, 0 EV)
Setting shutter to random values...
Error: shutter set to value=0.009291, got 0.010132s, expected 0.009291s
Error: shutter set to value=0.009291, got 10ms, expected 9ms
Error: shutter set to value=0.009291, got Tv6.625, expected Tv6.75
Error: shutter set to value=0.009291, got 109, expected 110 (raw)
Error: shutter 0.010132s != Tv6.625, expected 6.75
Error: shutter 5.187358s != Tv-2.375, expected -2.25
Error: shutter set to value=0.000581, got 142, expected 141 (raw)
Error: shutter set to ms=115, got 0.125s, expected 0.114626s
Error: shutter set to ms=115, got 125ms, expected 115ms
Error: shutter set to ms=115, got Tv3., expected Tv3.125
Error: shutter set to ms=115, got 80, expected 81 (raw)
Error: shutter set to value=14.672065, got 16s, expected 14.672065s
Error: shutter set to value=14.672065, got 16000ms, expected 14672ms
Error: shutter set to value=14.672065, got Tv-4., expected Tv-3.875
Error: shutter set to value=14.672065, got 24, expected 25 (raw)
Error: shutter set to value=32, got Tv-5., expected Tv-4.875
Error: shutter set to ms=7336, got 8.s, expected 7.336032s
Error: shutter set to ms=7336, got 8000ms, expected 7336ms
Error: shutter set to ms=7336, got Tv-3., expected Tv-2.875
Error: shutter set to ms=7336, got 32, expected 33 (raw)
Error: shutter set to value=0.028656, got Tv5., expected Tv5.125
Error: shutter set to value=0.028656, got 96, expected 97 (raw)
Error: shutter set to value=3.668016, got 4.s, expected 3.668016s
Error: shutter set to value=3.668016, got 4000ms, expected 3668ms
Error: shutter set to value=3.668016, got Tv-2., expected Tv-1.875
Error: shutter set to value=3.668016, got 40, expected 41 (raw)
Error: shutter set to value=19.027313, got 20.749433s, expected 19.027313s
Error: shutter set to value=19.027313, got 20749ms, expected 19027ms
Error: shutter set to value=19.027313, got Tv-4.375, expected Tv-4.25
Error: shutter set to value=19.027313, got 21, expected 22 (raw)
Error: shutter set to value=0.000488, got Tv11.000001, expected Tv11.125001
Error: shutter set to value=0.000448, got 145, expected 144 (raw)
Error: shutter set to value=19.027313, got 20.749433s, expected 19.027313s
Error: shutter set to value=19.027313, got 20749ms, expected 19027ms
Error: shutter set to value=19.027313, got Tv-4.375, expected Tv-4.25
Error: shutter set to value=19.027313, got 21, expected 22 (raw)
Error: shutter set to value=3.668016, got 4.s, expected 3.668016s
Error: shutter set to value=3.668016, got 4000ms, expected 3668ms
Error: shutter set to value=3.668016, got Tv-2., expected Tv-1.875
Error: shutter set to value=3.668016, got 40, expected 41 (raw)
Error: shutter set to value=0.007164, got 0.007812s, expected 0.007164s
Error: shutter set to value=0.007164, got 8ms, expected 7ms
Error: shutter set to value=0.007164, got Tv7., expected Tv7.125
Error: shutter set to value=0.007164, got 112, expected 113 (raw)
Error: shutter set to value=29.344129, got 29344ms, expected 32000ms
Error: shutter set to value=29.344129, got 17, expected 16 (raw)
Error: shutter set to value=29.344129, got 17, expected 16 (raw)
Setting ISO to random values...

And once again dies when setting ISO values.
Title: Re: Canon 500D / T1i
Post by: rafaelbf on June 13, 2018, 01:01:08 AM
Hi @dfort

Thanks for your tip about 500D dumping. I was also searching for new stubs and noticed some changes not present in your stubs.S

update-to-500d112
Code: [Select]
NSTUB(0xFF0234B4,  gui_init_end)
NSTUB(    0x1E8C,  mvr_config)               // please re-check
NSTUB(0xFF33030C,  fsuDecodePartitionTable)

Not sure, I have little experience with this. Can you check please?
Maybe this help your API_TEST.LUA tests.
thanks
Title: Re: Canon 500D / T1i
Post by: dfort on June 22, 2018, 07:17:28 AM
@rafaelbf -- catching up after 3 weeks on vacation. Thanks for this, will look into it when I get some time. Please send me a reminder if I flake out.
Title: Re: Canon 500D / T1i
Post by: dfort on June 23, 2018, 03:30:36 PM
@rafaelbf -- Thanks for pointing out the problem with fsuDecodePartitionTable. Looks like I didn't update it from the previous firmware version. However, the other values seem to be fine. How did you come up with those addresses?
Title: Re: Canon 500D / T1i
Post by: rafaelbf on July 16, 2018, 03:51:10 AM
How did you come up with those addresses?

@dfort
opening 2 simultaneous IDA sessions and comparing each Stub address in 111 and 112
"mvr_config" is not an address, I've noticed a change in old value.
Title: Re: Canon 500D / T1i
Post by: dfort on July 16, 2018, 02:20:03 PM
Have you tried changing those values to see if it makes any difference when running the tests?

The problems with the tests that the 500D.112 firmware update isn't passing is also present on the 500D.111 so we're in a situation where we need to do some bug hunting using 1.1.1 then see if those changes translate to the 1.1.2 firmware--it should. Not a high priority for me at this time because I don't use this camera much and when I do it seems to be fine even though it can't pass the lua API tests.
Title: Re: Canon 500D / T1i
Post by: rafaelbf on August 13, 2018, 04:54:05 AM
Hi @dfort

about the api_test.lua tests, really hangs the 500D. Not related to these Stubs.

But...check this script. It runs same functions that hangs on api_test. (Setting ISO and Enabling LiveView)
Runs fine....no hangs !! Tested on 500D fw111:

Code: [Select]
-- Simple 500d test script.

require("keys")

--printf
function printf(...)
    io.write(string.format(...))
end

function main()
    menu.close()
    console.show()

    printf("Camera    : %s (%s) %s\n", camera.model, camera.model_short, camera.firmware)
    printf("Lens      : %s\n", lens.name)
    printf("Shoot mode: %s\n", camera.mode)
    printf("ISO       : %s (raw %s, %s, apex %s)\n", camera.iso, camera.iso.raw, camera.iso.value, camera.iso.apex)

    printf("Setting ISO 800\n")
    camera.iso.value = 800
    printf("ISO       : %s (raw %s, %s, apex %s)\n", camera.iso, camera.iso.raw, camera.iso.value, camera.iso.apex)

    printf("Press any key to test LiveView...\n")
    key.wait()

    if lv.enabled then
        printf("LiveView is running; stopping...\n")
        lv.stop()
        msleep(2000)
    end

    printf("Starting LiveView...\n")
    lv.start()

    msleep(5000)
    printf("Stopping LiveView...\n")
    lv.stop()
    msleep(1000)

    printf("Test complete. Press any key to exit...\n")
    key.wait()

    console.hide()
end

keymenu = menu.new
{
    name   = "500D tests",
    help   = "Some tests on 500D",
    select = function(this) task.create(main) end,
}



(https://thumb.ibb.co/cMwFY9/IMG_1624x.jpg) (https://ibb.co/cMwFY9)


I have no idea why the api_test.lua hangs, and this script works.
Successfully sets ISO to 800 and enabled LiveView.

So, I think the 500D is ready for version 112.
Please not forget to update these new Stubs. They aren't related to these tests, but present in version 112.

And, If possible check my patch about "SoundDevice\SoundDevice_CODEC.c" crash.  ;D
Now My 500D is stable, no more crash while recording movies:

Code: [Select]
--- src/audio-common.orig.c 2018-06-01 17:50:30.343132126 -0300
+++ src/audio-common.c 2018-06-01 18:08:03.743893154 -0300
@@ -308,11 +308,15 @@
     {
         return is_menu_active("Audio");
     }
     else
     {
+        #if defined(CONFIG_500D)
+        return 0;
+        #else
         return is_movie_mode() && do_draw_meters && zebra_should_run() && !get_halfshutter_pressed();
+        #endif
     }
 #else
     return 0;
 #endif
 }
@@ -503,17 +507,20 @@
     int meters_slept_times = 0;
 
     TASK_LOOP
     {
         msleep(MIN_MSLEEP);
-        int meters_sleep_cycles = (DISPLAY_IS_ON ? (50/MIN_MSLEEP) : (500/MIN_MSLEEP));
-        meters_slept_times++;
-        compute_audio_levels(0);
-        compute_audio_levels(1);
-        if(meters_slept_times >= meters_sleep_cycles) {
-            reconfig_audio = audio_meters_step(reconfig_audio);
-            meters_slept_times = 0;
+        if (audio_meters_are_drawn())
+        {
+           int meters_sleep_cycles = (DISPLAY_IS_ON ? (50/MIN_MSLEEP) : (500/MIN_MSLEEP));
+           meters_slept_times++;
+           compute_audio_levels(0);
+           compute_audio_levels(1);
+           if(meters_slept_times >= meters_sleep_cycles) {
+               reconfig_audio = audio_meters_step(reconfig_audio);
+               meters_slept_times = 0;
+           }
         }
     }
 
 }


thanks
Title: Re: Canon 500D / T1i
Post by: dfort on August 13, 2018, 05:48:16 AM
...
I have no idea why the api_test.lua hangs, and this script works.
Successfully sets ISO to 800 and enabled LiveView.

So, I think the 500D is ready for version 112.
Please not forget to update these new Stubs. They aren't related to these tests, but present in version 112.

And, If possible check my patch about "SoundDevice\SoundDevice_CODEC.c" crash.  ;D
Now My 500D is stable, no more crash while recording movies:
...

Amazing -- Could you do a pull request for this? I no longer have a 500D to test this out. Just a week ago I sent my 500D to @critix so he can play around with ML and possibly use it to help him with the 1300D port. Looks like he's already getting into it because he approved the 500D.112 pull request (https://bitbucket.org/hudson/magic-lantern/pull-requests/916/update-to-500d112/diff).
Title: Re: Canon 500D / T1i
Post by: critix on August 13, 2018, 09:19:15 AM
Code: [Select]
NSTUB(0xFF0234B4,  gui_init_end) -> is not OK.
NSTUB(    0x1E8C,  mvr_config)               // please re-check  -> is not OK
NSTUB(0xFF33030C,  fsuDecodePartitionTable)  -> is OK

I ran Stubs API test and the result was a positive, error-free result.
I'm now trying to see why there are errors in running the api_test.lua script.
Title: Re: Canon 500D / T1i
Post by: critix on August 22, 2018, 11:37:01 AM
I've tried to see what the api_test.lua script does not work, but without a result. One of the "problems" was that the device had to be set to expanded ISO because it has ISO 3200 and expanded to 6400. The api_test.lua script is used maximum 6400.
Another change we tested. Script perform 100 random value tests. I just set maximum 10 values, and it was ok, but is crash to
Code: [Select]
printf (" Starting LiveView ... \ n ")I can not tell, unfortunately, what is not ok ...
Title: Re: Canon 500D / T1i
Post by: a1ex on September 16, 2018, 11:23:22 PM
Lua API tests almost passing 8)

Also found a way to disable the (slightly annoying) "Perform autofocus with AE lock <*> button" message in LiveView. Somebody asked for this a while ago, but I have trouble finding the original request.

That message was actually causing the failed assertion reported by critix - ML expected the camera to be "idle" right after entering LiveView, i.e. without other dialog boxes displayed on the screen.

@rafaelbf: still getting the crash at SoundDevice_CODEC.c with your patch (i.e. with audio meters disabled).



edit: might have found a fix, please try the draft patch the latest experimental lua_fix build and report back.
Title: Re: Canon 500D / T1i
Post by: dfort on March 07, 2019, 04:22:04 PM
Things have gotten very quiet on this topic. I do have something new to try out so besides the test a1ex asked for on Reply #63 (https://www.magiclantern.fm/forum/index.php?topic=11864.msg206093#msg206093) could a 500D user please try out the 10/12-bit (https://www.magiclantern.fm/forum/index.php?topic=5601.msg212997#msg212997) test build I posted on my Bitbucket downloads page (https://bitbucket.org/daniel_fort/magic-lantern/downloads/) and report back?
Title: Re: Canon 500D / T1i
Post by: critix on March 08, 2019, 10:32:26 AM
Hello
I have enabled MLV_Lite and MLV_Rec.
Unfortunately, after starting the movie, it stops automatically ...
Quote
Busy ... please wait
. That's when I use RAW video, with 10bit or 12bit.
When I activate RAW video (MLV) I receive:
Quote
Allocating 122MiB backup
. And then, after 2 seconds, I get
Quote
Frame skipped
and stops with
Quote
Busy ... please wait
. That's at 10bit and 12bit.
Should I test otherwise?
Title: Re: Canon 500D / T1i
Post by: dfort on March 08, 2019, 04:11:42 PM
I overlooked several changes that need to be done and stubs to be found -- it is not just a matter of merging in the RscMgr memory pull request (https://bitbucket.org/hudson/magic-lantern/pull-requests/731/rscmgr-memory-60d-todo-7d-maybe-also-50d/diff). Though 10/12-bit will probably work with that test build when using zoom mode.

Note that there are some new stubs to find and other changes but it shouldn't be too difficult to implement on the 500D.  ;)
Title: Re: Canon 500D / T1i
Post by: critix on March 08, 2019, 05:13:02 PM
Thanks. Tomorrow i will search new stubs...
Title: Re: Canon 500D / T1i
Post by: dfort on March 08, 2019, 07:30:39 PM
I started searching (https://bitbucket.org/daniel_fort/magic-lantern/commits/9ca871a9566d608d4daaae01a422f977d7b8818a) but now it seems this isn't going to help (https://bitbucket.org/hudson/magic-lantern/pull-requests/731/rscmgr-memory-60d-todo-7d-maybe-also-50d/diff#comment-94344444) to get 10/12-bit working on this camera.
Title: Re: Canon 500D / T1i
Post by: Walter Schulz on April 18, 2019, 08:56:18 PM
Red blinking is the message from older builds telling you what you have done: Using an incompatible firmware. Remove battery and card. Insert battery (but not card) and startup cam.
You can use any "clean" card (formatted in cardreader, formatted in cam after) to downgrade cam's firmware.
Title: Re: Canon 500D / T1i
Post by: Rezzar on April 18, 2019, 10:29:35 PM
HELP!

Okay so I messed up big time, I bought a new 500d like a month ago from a second hand guy it works flawlessly and it was in its 1.0.9 canon firmware. Then going through the Internet I found out that the 500d does not record video on manual mode. But my dumbass bought a dslr to shoot films and now I can't, I tried many things to control the iso, aperture, and shutter speed with the lighting and also tweaking the kit lens to keep the aperture at a fixed setting. So that's when I found out about magic lantern. I spent about a week researching about magic lantern so I thought "hey okay let's do this". ( this is when my dumbass starts to think) so before installing the magic lantern software I read on the magic lantern website I needed to upgrade into the 1.1.1 canon firmware 500d so aight I get on the canon website but the link for the 1.1.1 firmware isn't there only... The 1.1.2 firmware.... Now... This is where I made the mistake of installing this software and putting in on my canon... Everything went smoothly, my canon was upgraded to the 1.1.2 firmware
 
Now on the back of my mind I still have that lingering thought "yo don't you need to make sure everything goes according to the website?" BUT my dumbass just goes nah fuck it just download magic lantern and put it on the sd card then boom bam format, copy paste and then put it in the camera.... Once I did it I went to the third wrench option and I updated the firmware... silence... The screen popped up... The dial was on... I forgot what it was on... And then... Blank screen, no lights on the screen just nothing I panicked , switched off the camera took out the battery, charged it to max, put it back on but this time the mode was on P it was lit but again the screen went blank... The camera is switched on but no screen and the only thing that shows any indication of light is the red light Indicator on the bottom right side of the camera which goes on and off every 3 seconds... And here I am a man and a damaged camera losing hope but the fact that that red light is still blinking shows me a little hope. I hope you enjoyed that read because I enjoyed writing it. But still this is a real problem that I'm having and I'm in DIRE NEED OF A SOLUTION ASAP

TLDR; bought 2nd hand 500d but found out could not record video manually, magic lantern seemed like a good alternative but I installed ML on my 500d with a 1.1.2 firmware not the 1.1.1 firmware and now the screen doesn't show when I switch it on. Please if there's any suggestion on how I could fix it or turn back to normal it would help me greatly

Alkautsar.amarl@gmail.com is my email I'm new to the forum so I'm not sure how to navigate around here if I do get a reply
Title: Re: Canon 500D / T1i
Post by: Rezzar on April 18, 2019, 10:32:33 PM
I just realized my previous post was submitted and I submitted a more lengthy and longer post  :P sorry I really thought my previous post wasn't submitted  :). Teehee
Title: Re: Canon 500D / T1i
Post by: Walter Schulz on April 18, 2019, 10:33:07 PM
Status?
Reminder: You can edit posts and even delete them ...
I don't think anybody will contact you via email.
Title: Re: Canon 500D / T1i
Post by: Rezzar on April 18, 2019, 10:43:16 PM
That's good to know. This forum is cool I've just now joined and I've already gotten a reply. Sweet

UPDATE

So I've switched my camera off then took out the battery and the card . Then put back the battery without the card and switched it on. Screen comes up horray! now I've gone and put my card into my Mac and formatted it clean. Brand new 64gb sd card now before I put it back in I checked the menu settings on my 500d. The firmware says it's 1.1.2, not happy but wtv. I put the new sd card back in and the same problem arises :/ well shit...
Title: Re: Canon 500D / T1i
Post by: Walter Schulz on April 18, 2019, 10:49:04 PM
Top of page -> Downloads -> Download Nightly Builds
and follow links and instructions.
Title: Re: Canon 500D / T1i
Post by: Rezzar on April 19, 2019, 12:07:21 AM
So I've formatted my card and I've copied the 1.1.1 firmware on to it to the root directory but when I inserted the card back in the camera my screen turns blank again and the red blinking light shows up. Without the card I can access pretty much all the menu settings but with a card even a clean one with anything on it the screen won't come up
Title: Re: Canon 500D / T1i
Post by: Walter Schulz on April 19, 2019, 05:41:45 AM
So I've formatted my card

And I smell macOS. Please use disk utility and erase card first.
Title: Re: Canon 500D / T1i
Post by: hawkbox on May 19, 2019, 02:23:58 AM
I have a T1i I bought a long ass time ago and I've been trying to get it working for video with larger SD cards.  I flashed it a few months back but the video function crashes fairly often and is somewhat annoying, when I have a moment this weekend though I will try to flash this as I don't use it often but it would be nice to have it properly functional with larger cards.