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)
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
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.
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.
... which confirms this bug is very unpredictable; with the same build and same settings, I bet you'll get a crash sooner or later.
Will the 500D shoot 23.976 fps at full 1080 with fps override? In h.264 compressed mode of course?
Quote from: 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?
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)
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
Analog ISO 500D is 1600, any higher value no make sense. This can be done in postprocess.
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
Quote from: Tralfaz on February 09, 2015, 04:52:00 PMDoes anyone know what this means
You may help spending some time and effort
http://www.magiclantern.fm/forum/index.php?topic=9673.0
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.
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.
Bulb ramping has gone. http://www.magiclantern.fm/forum/index.php?topic=5705.0
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!
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.
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
http://www.magiclantern.fm/forum/index.php?topic=15045
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
Mechanical shutter - 1/4000 (photo)
Electronic shutter - 1/8000 (video)
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!
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.
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
https://builds.magiclantern.fm/jenkins/job/500D.111/
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.
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?
Yeah, I notice that error while recording with default setting.
CRASH00.log
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
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?
Quote from: 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?
Just download ML Nightly, it's included firmware 1.1.1. PM me if you need FW 1.1.1.
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.
Quote from: 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.
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. :)
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?
Quote from: 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?
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)
End of 500D support.
Quote from: Greg on April 01, 2017, 02:08:56 PM
End of 500D support.
:'( Thanks for your hard work @Greg, @A1ex, and the dev team for supporting our device.
Happy April Fools' Day, thearczoro!
Quote from: Walter Schulz on April 04, 2017, 07:53:42 AM
Happy April Fools' Day, thearczoro!
;D Sssstt... Make it more dramatic. Lol.. :D :D :D Btw, any news about firmware v1.1.2?
I do not plan future support 500D. This is an old camera, for me it has too many limitations.
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
Quote from: 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
Change your display for video with minimal info.
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?
Please read installation instructions: Top of page -> Downloads -> Download Nightly Builds -> Select your cam.
Quote from: 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?
You need to downgrade first to FW v1.1.1: http://pel.hu/down/v111-t1i-500d-x3-win.exe
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.
Got two of these babies atcwork. Will test tomorrow.
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.
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):
QuoteWhat does not work (yet):
- LiveView (WIP, very hard);
- Still photo capture (WIP - the capture process itself works);
Quote from: Danne on December 08, 2017, 03:06:47 AM
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:
#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:
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.
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.
Quote from: 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.
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.
Quote from: a1ex on December 08, 2017, 11:49:50 PM
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.
//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.
Quote from: thearczoro on July 31, 2017, 03:35:20 AM
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
Quote from: jonnybel on March 01, 2018, 10:20:40 PM
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.
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
[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
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:
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:
===============================================================================
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
#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.
===============================================================================
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
#define BGMT_LV 0xf // idk?
Finally, test_camera_exposure starts off well outside LiveView but dies when trying to set ISO values.
===============================================================================
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:
===============================================================================
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.
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
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
@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.
@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?
Quote from: dfort on June 23, 2018, 03:30:36 PM
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.
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.
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:
-- 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:
--- 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
Quote from: rafaelbf on August 13, 2018, 04:54:05 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).
Quote from: rafaelbf on June 13, 2018, 01:01:08 AM
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.
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 printf (" Starting LiveView ... \ n ")
I can not tell, unfortunately, what is not ok ...
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.
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?
Hello
I have enabled MLV_Lite and MLV_Rec.
Unfortunately, after starting the movie, it stops automatically ...
QuoteBusy ... please wait
. That's when I use RAW video, with 10bit or 12bit.
When I activate RAW video (MLV) I receive:
QuoteAllocating 122MiB backup
. And then, after 2 seconds, I get
QuoteFrame skipped
and stops with
QuoteBusy ... please wait
. That's at 10bit and 12bit.
Should I test otherwise?
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. ;)
Thanks. Tomorrow i will search new stubs...
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.
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.
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
[email protected] 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
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
Status?
Reminder: You can edit posts and even delete them ...
I don't think anybody will contact you via email.
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...
Top of page -> Downloads -> Download Nightly Builds
and follow links and instructions.
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
Quote from: Rezzar on April 19, 2019, 12:07:21 AM
So I've formatted my card
And I smell macOS. Please use disk utility and erase card first.
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.
Here is the ML version for 1.1.2 firmware:
https://bitbucket.org/ccritix/magic-lantern/downloads/magiclantern-Nightly.2019Sep22.500D112.zip (https://bitbucket.org/ccritix/magic-lantern/downloads/magiclantern-Nightly.2019Sep22.500D112.zip)
Result of "Stubs API test":
[Pass] is_play_mode() => 0x1
[Pass] src = fio_malloc(size) => 0x422700d8
[Pass] dst = fio_malloc(size) => 0x42a780f0
[Pass] memcmp(dst, src, 4097) => 0xffffff5c
[Pass] edmac_memcpy(dst, src, 4097) => 0x42a780f0
[Pass] memcmp(dst, src, 4097) => 0x0
[Pass] edmac_memcpy(dst, src, 4097) => 0x42a780f0
[Pass] memcmp(dst, src, size) => 0x84
[Pass] edmac_memcpy(dst, src, size) => 0x42a780f0
[Pass] memcmp(dst, src, size) => 0x0
[Pass] memcmp(dst, src, size) => 0x9e
[Pass] edmac_memcpy_start(dst, src, size) => 0x42a780f0
dt => 0x33ff
[Pass] copied => 0x4014f0
[Pass] copied => 0x4014f0
[Pass] copied => 0x4014f0
[Pass] memcmp(dst, src, copied) => 0x0
[Pass] memcmp(dst, src, copied + 16) => 0xffffffe8
edmac_memcpy_finish()
free(src)
free(dst)
Cache test A (EDMAC on BMP buffer)...
[Pass] bmp = bmp_load("ML/CROPMKS/CINESCO2.BMP", 1) => 0xa5fd8c
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x67f
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x0
Cache test B (FIO on 8K buffer)...
[Pass] tries[0] => 0xff
[Pass] tries[1] => 0x100
[Pass] tries[2] => 0xff
[Pass] tries[3] => 0xea
[Pass] failr[0] => 0x93
[Pass] failw[0] => 0x92
[Pass] failr[1] => 0x83
[Pass] failw[1] => 0x0
[Pass] failr[2] => 0x0
[Pass] failw[2] => 0x98
[Pass] failr[3] => 0x0
[Pass] failw[3] => 0x0
times[0] / tries[0] => 0x15
times[1] / tries[1] => 0x15
times[2] / tries[2] => 0x16
times[3] / tries[3] => 0x16
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) => 0x40aaca04
[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) => 0x422700d8
[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) => 0x8606
msleep(900)
[Pass] timer_func => 0x0
msleep(200)
[Pass] timer_func => 0x1
[Pass] ABS((timer_time/1000 - t0) - 1000) => 0x1
[Pass] ABS((timer_arg - ta0) - 1000) => 0xa
[Pass] timer = SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0x8608
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) => 0xa7c
msleep(90)
[Pass] timer_func => 0x0
msleep(20)
[Pass] timer_func => 0x1
[Pass] ABS(DeltaT(timer_time, t0) - 100000) => 0x131
[Pass] ABS(DeltaT(timer_arg, ta0) - 100000) => 0xfd
[Pass] ABS((get_us_clock_value() - t0) - 110000) => 0xffffffb4
[Pass] SetHPTimerAfterNow(90000, next_tick_cbr, overrun_cbr, 0) => 0xa7e
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) => 0x6d
[Pass] ABS(DeltaT(timer_arg, ta0) - 300000) => 0x38
[Pass] ABS((get_us_clock_value() - t0) - 310000) => 0xffffff9f
t0 = *(uint32_t*)0xC0242014 => 0xdb260
msleep(250)
t1 = *(uint32_t*)0xC0242014 => 0x16256
[Pass] ABS(MOD(t1-t0, 1048576)/1000 - 250) => 0x9
LoadCalendarFromRTC( &now )
s0 = now.tm_sec => 0x3a
Date/time: 2019/09/22 15:19:58
msleep(1500)
LoadCalendarFromRTC( &now )
s1 = now.tm_sec => 0x0
[Pass] MOD(s1-s0, 60) => 0x2
[Pass] MOD(s1-s0, 60) => 0x2
m0 = MALLOC_FREE_MEMORY => 0x39188
[Pass] p = (void*)_malloc(50*1024) => 0xebad8
[Pass] CACHEABLE(p) => 0xebad8
m1 = MALLOC_FREE_MEMORY => 0x2c988
_free(p)
m2 = MALLOC_FREE_MEMORY => 0x39188
[Pass] ABS((m0-m1) - 50*1024) => 0x0
[Pass] ABS(m0-m2) => 0x0
m0 = GetFreeMemForAllocateMemory() => 0x16d974
[Pass] p = (void*)_AllocateMemory(256*1024) => 0xaac9c4
[Pass] CACHEABLE(p) => 0xaac9c4
m1 = GetFreeMemForAllocateMemory() => 0x12d968
_FreeMemory(p)
m2 = GetFreeMemForAllocateMemory() => 0x16d974
[Pass] ABS((m0-m1) - 256*1024) => 0xc
[Pass] ABS(m0-m2) => 0x0
m01 = MALLOC_FREE_MEMORY => 0x39188
m02 = GetFreeMemForAllocateMemory() => 0x16d974
[Pass] p = (void*)_alloc_dma_memory(256*1024) => 0x40aaca04
[Pass] UNCACHEABLE(p) => 0x40aaca04
[Pass] CACHEABLE(p) => 0xaaca04
[Pass] UNCACHEABLE(CACHEABLE(p)) => 0x40aaca04
_free_dma_memory(p)
[Pass] p = (void*)_shoot_malloc(24*1024*1024) => 0x4a000068
[Pass] UNCACHEABLE(p) => 0x4a000068
_shoot_free(p)
m11 = MALLOC_FREE_MEMORY => 0x39188
m12 = GetFreeMemForAllocateMemory() => 0x16d974
[Pass] ABS(m01-m11) => 0x0
[Pass] ABS(m02-m12) => 0x0
[Pass] suite = shoot_malloc_suite_contig(24*1024*1024) => 0xebad8
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1800000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xebaf8
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1800000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000064
[Pass] UNCACHEABLE(p) => 0x4a000064
shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite_contig(0) => 0xebad8
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1ae0000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xebaf8
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1ae0000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000064
[Pass] UNCACHEABLE(p) => 0x4a000064
shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(64*1024*1024) => 0xebad8
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x6
[Pass] suite->size => 0x4000000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xebaf8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x11c0000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x422700c4
[Pass] UNCACHEABLE(p) => 0x422700c4
chunk = GetNextMemoryChunk(suite, chunk) => 0xebb48
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x11c4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42000064
[Pass] UNCACHEABLE(p) => 0x42000064
chunk = GetNextMemoryChunk(suite, chunk) => 0xebb78
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x11c8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4211c088
[Pass] UNCACHEABLE(p) => 0x4211c088
chunk = GetNextMemoryChunk(suite, chunk) => 0xebba8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x11cc000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x421240a0
[Pass] UNCACHEABLE(p) => 0x421240a0
chunk = GetNextMemoryChunk(suite, chunk) => 0xebbd8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2cac000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4c000064
[Pass] UNCACHEABLE(p) => 0x4c000064
chunk = GetNextMemoryChunk(suite, chunk) => 0xebc08
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4000000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000064
[Pass] UNCACHEABLE(p) => 0x4a000064
chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x4000000
shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(0) => 0xebad8
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0xb
[Pass] suite->size => 0x5f00000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xebaf8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x11c0000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x422700c4
[Pass] UNCACHEABLE(p) => 0x422700c4
chunk = GetNextMemoryChunk(suite, chunk) => 0xebb48
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x11c4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42000064
[Pass] UNCACHEABLE(p) => 0x42000064
chunk = GetNextMemoryChunk(suite, chunk) => 0xebb78
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x11c8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4211c088
[Pass] UNCACHEABLE(p) => 0x4211c088
chunk = GetNextMemoryChunk(suite, chunk) => 0xebba8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x11cc000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x421240a0
[Pass] UNCACHEABLE(p) => 0x421240a0
chunk = GetNextMemoryChunk(suite, chunk) => 0xebbd8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2cac000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4c000064
[Pass] UNCACHEABLE(p) => 0x4c000064
chunk = GetNextMemoryChunk(suite, chunk) => 0xebc08
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x478c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000064
[Pass] UNCACHEABLE(p) => 0x4a000064
chunk = GetNextMemoryChunk(suite, chunk) => 0xebc38
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4ca8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4bae00e4
[Pass] UNCACHEABLE(p) => 0x4bae00e4
chunk = GetNextMemoryChunk(suite, chunk) => 0xebc68
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x51c4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4dae00e4
[Pass] UNCACHEABLE(p) => 0x4dae00e4
chunk = GetNextMemoryChunk(suite, chunk) => 0xebc98
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x56e0000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x49ae00e4
[Pass] UNCACHEABLE(p) => 0x49ae00e4
chunk = GetNextMemoryChunk(suite, chunk) => 0xebcc8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x5bfc000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x47ae00e4
[Pass] UNCACHEABLE(p) => 0x47ae00e4
chunk = GetNextMemoryChunk(suite, chunk) => 0xebcf8
[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") => 0x1b2424
[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
[FAIL] snprintf(buf, 3, "%d", 1234) => 0x4
[Pass] buf => '12'
[Pass] memcpy(foo, bar, 6) => 0x1b24c0
[Pass] foo => 'asdfghuiop'
[Pass] memset(bar, '*', 5) => 0x1b24a0
[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) => 0x63000ae
[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) => 0x632009c
[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) => 0x6340284
[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) => 0x636005a
[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
Only 1 fail at: [FAIL] snprintf(buf, 3, "%d", 1234) => 0x4
Hi Critix,
I am the guy who created the issue on Bitbucket. Thank you for your initiative - sorry I overlooked this post.
Unfortunately I have to report that this version has the same behaviour for me. When I try to "update" with the 500D running firmware 1.1.2, I get the message below. I did low-level format the card with the new Canon 1.1.2 firmware first, still the camera replies:
Firmware update program
Update file
cannot be found.
Please check the momory
card and reload the
battery and try again.
If I add the official 1.1.1 firmware file on the drive (as suggested in the troubleshooting guide) the update program does load, but only the official Canon update file is offered for update....
Sorry to be pain in the a*, but that's what I find ;)
Best
Panca/Rainer
PS: I still observe that the ML-UPDATE.FIR file is pretty small (34kb) compared to the 1.1.1 version (66kb). Thanks for the consideration.
With version 1.1.1 set the camera bootflag. Then update the camera to 1.1.2. and you can use ML for version 1.1.2. Unfortunately, for the moment there is no ML-SETUP.FIR for version 1.1.2.
Hi Citrix,
Oh I see! Thanks, it is working now!
Not knowing this might have been my problem in the first place. Anyways, all is good that ends well... ;)
Thanks again
.r.
I restored the archive with ML-SETUP.FIR correctly, for version 1.1.2
New version with dual-ISO, ETTR and DOFI script:
https://www.magiclantern.fm/forum/index.php?topic=4529.msg224862#msg224862 (https://www.magiclantern.fm/forum/index.php?topic=4529.msg224862#msg224862)
How can I test if a button has been pressed? I do not want to check this with lua script...
Thanks a lot
;)Can 500D digital4's processor be used for sd card overclocking?
At the moment - and for the foreseeable future - there is nobody working on it. Reddeercity is working on D4 cams hosting CF-cards.
You might be better off purchasing an EOS M if you want faster storage bandwidth. In Germany EOS M + EF adapter pricing is around 140€.
I'll try ... I won't promise anything ...
After doing so many laps on the net I finally got a place that would give me the error of my 500D / T1i thanks to the friend critix, as the saying goes, "He who does not know is like the one who does not see."
Hope can have 10 bit / 12 bit raw plug-in
I tried to compile using https://bitbucket.org/hudson/magic-lantern/branch/raw_video_10bit_12bit_LVState (https://bitbucket.org/hudson/magic-lantern/branch/raw_video_10bit_12bit_LVState) on my 500D with 1.1.1firmware, but it's not working.
(https://i.loli.net/2020/05/30/x4eyXcqEGWBfMah.png)
(https://i.loli.net/2020/05/30/UNwB4Ts6kSPpdYb.png)
(https://i.loli.net/2020/05/30/wcNBaJ8EskRvhmW.png)
10/12-bit RAW video compiled on 500D 1.1.1.Experimental raw video recording at lower bit depths.
Download >>> https://github.com/wanghurui/hello_world/releases/download/ML/magiclantern-Nightly.2020May25.500D111.zip (https://github.com/wanghurui/hello_world/releases/download/ML/magiclantern-Nightly.2020May25.500D111.zip)
I haven't tested for a long period of time.
Tested (Using a Lexar 2000x 32G Card)
- record 1584x404 10bit 23.976 FPS video continuously
- Record 4 seconds 2000x838 10bit 20FPS video mode in LV x5
I don't know why mlv_play can't play 10bit RAW video and show nothing.
I apologize for taking a long ass time to get back to this. I had a few things blow up on me. I'm going to reflash the camera but I pulled the crash log and thought it might have some value.
When recording video the camera would crash with
ASSERT: FALSE
at SoundDevice\SoundDevice_CODEC.c:1080, task ASIF
lv:1 mode:20
ASIF stack: 151f80 [151ff8-150ff8]
0xUNKNOWN @ ff053318:151fd8
0xFF014D3C @ ff054ef8:151fb8
0x0004D378 @ 4d64c:151f80
Magic Lantern version : Nightly.2018Jul03.500D111
Mercurial changeset : 7a3b5fa3f4c6 (unified) tip
Built on 2018-07-02 23:19:27 UTC by jenkins@nightly.
Free Memory : 238K + 2929K
Have a try
https://github.com/wanghurui/magic-lantern/releases/download/Nightly.2020May16/magiclantern-Nightly.2020May16.500D111.zip (https://github.com/wanghurui/magic-lantern/releases/download/Nightly.2020May16/magiclantern-Nightly.2020May16.500D111.zip)
Hi guys. Old thread, old camera but hey... :)
My friend has one of these and I was curious. How would one of these work with ML installed and using HDMI capture card for a live stream camera?
Would it do clean HDMI at 1080P with ML?
No, it won't. I don't own a 500D but you can easily test available resolution by connecting cam's HDMI output to a monitor/TV with HDMI input.
ML will enable "clean" HDMI output = without overlays. Not so much (or anything) ML can do about increasing resolution.
Hello everyone, I just discovered this forum because the current firmware on my Canon 500D is v1.1.0, and cannot find v1.1.1 anywhere to download.
My question is: Could someone email me v1.1.1 or assist me into finding it?
Thank you in advance and greetings from Spain!
Top of page -> Downloads -> Download Nightly Builds -> Installation (follow link there)
or
Top of page -> Downloads -> Download Nightly Builds -> Useful Links (follow link there)
Crash specifically when opening magic lantern interface while recording video
Does not happen when disabling sound by enabling custom FPS (even if I leave the FPS unchanged)
I'd like to be able to use magic lantern interface while video recording to change things like setting manual digital iso boost and also having sound at the same time.
but for some reason I get a crash if I dont enable custom FPS to disable sound.
here is crash logs.
https://paste.gg/p/anonymous/99405b27e5fb4b3190304d4c4ae2486c (https://paste.gg/p/anonymous/99405b27e5fb4b3190304d4c4ae2486c)
Has anyone got a working link for Firmware 1.1.1 for Mac, I am running 1.1.2 but need the older version to install Magic Lantern.
Top of page -> Downloads -> Download Nightly Builds -> 500D / Rebel T1i -> Installation.
It is a self-extracting file and you are able to expand it with macOS. Search engine helps.
No joy there.
Unfortunately I cant find the 1.1.1 firmware installation for MACINTOSH.
Does anyone out there know of a link to MACINTOSH firmwire?
http://i.ibb.co/XY1qywL/Pointer.png (http://i.ibb.co/XY1qywL/Pointer.png)
How to handle self-extracting archives in macOS (https://en.lmgtfy.app/?q=open+self-extracting+archives+mac)