Magic Lantern Forum

Developing Magic Lantern => Camera-specific Development => Topic started by: names_are_hard on October 27, 2022, 12:06:48 AM

Title: Magic Lantern for 200D: Not Dead Yet edition
Post by: names_are_hard on October 27, 2022, 12:06:48 AM
Don't get too excited - very few features work.  But, it's ML, and it's on 200D.

Edit 2022-10-31: bugfix ROM dump function in Debug menu, offsets needed updating.  Build zip link updated.

Build: https://github.com/reticulatedpines/magiclantern_simplified/releases/download/release_200D_2022-10-31/magiclantern-Nightly.2022Oct31.200D101.zip
Firmware version: 1.0.1
Bootflag enabler: https://a1ex.magiclantern.fm/bleeding-edge/200D/BOOT200D.FIR
Repo: https://github.com/reticulatedpines/magiclantern_simplified

What works:
- ML menus
- 30 min LV timer disable; AKA webcam mode (NOT normal video recording, a 30 min limit remains here)
- Shutter count
- Screenshots
- ML overlays in LV
- various debugging features (crash logs, task mon, etc)

What doesn't work:
- everything else

To exit sub-menus, use Av, not Q.

I would describe current status as a framework for porting ML to new cams.  A lot of the work has been on internals to support the differences between old and new generations, as well as changes to the repo and build system to make it easier to use on more modern systems.  It's much easier now for new devs to join in and work on things without too much pain.

ML boot process, inputs and GUI work on a wider range of cams in test, including: 750D, 850D, M50, RP, R.  These are either not stable enough yet, too early to release a build for, or nobody with time and access to the cam is available to support it.

It is possible to use ML APIs to patch arbitrary RAM and ROM locations on Digic 7 and up.  This means all features that classic ML supports can be ported - if the hardware supports it.  This still leaves many unknowns, but does mean if you want to do dev work, you have a lot of power to investigate capabilities.

For cool features, the main thing we need are devs with time and ability to reverse engineer camera and OS internals, especially the DMA controller.  This is how raw video works, instructing the DMA controller to map devices together in a way Canon GUI doesn't expose.  New cams do this differently than old cams and so far this area isn't well understood.

Newer cams are very powerful, they just need work to free that power!

Large pieces that were required to get to this point:
- boot code for each new digic generation (A1ex, me)
- handling the new display / GPU (A1ex, kitor, me)
- fixing lens info for overlays (kitor)
- fixing task handling (turtius, me)
- MMU patching (srsa, me)
- module support (me)

Special thanks to Kitor for code reviews, design discussions and git help!

Special thanks to coon42 for PCB design for UART connector:
https://github.com/coon42/magic-lantern-dev-kit/tree/master/cable/gerber

Special thanks to Walter for many boring 200D tests on physical cam,
and answering thousands of ML questions in Discord.

https://i.imgur.com/yvZX1V1.mp4
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: names_are_hard on October 27, 2022, 12:07:01 AM
Reserving.
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: Walter Schulz on October 27, 2022, 01:27:09 AM
Announced on Reddit: https://www.reddit.com/r/MagicLantern/comments/yec400/newsroom_magic_lantern_for_200d_not_dead_yet/
https://www.reddit.com/r/canon/comments/yeczsy/magic_lantern_news_magic_lantern_for_200d_not/
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: kitor on October 27, 2022, 08:26:01 AM
I think with that news I can say that we planned a Xmas 2021 development build for multiple Digic 6/7/8 models.
In fact just to achieve it I spent 3 weeks of last December working full time on Magic Lantern.

Here we are, just shy 4 days of November 2022 with first public build for just a single model.
I think that shows well two things:
- how complicated development is, and
- how small the team is right now

Thank you @names_are_hard for your hard work! I mostly wasn't able to participate during last 6 months, but I hope to get back on track soon.
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: Dreamers2 on October 28, 2022, 06:50:54 PM
that insanly good
thanks from the deep of my hearth for this work
i own a canon 200d and i can't wait for a more "stable" relaase to start using it
meanwhile if i want to install it is there an "easy" method?
i'm running the 1.0.1 firmware

thanks
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: Walter Schulz on October 28, 2022, 07:32:54 PM
Current release is stable. Just lacking features.

Main use cases:
1) Webcam via HDMI. 30-minute timer can be disabled via ML menu
2) Cropmark overlays for liveview composition. Up to 9 can be stored on card and you can build your own customized cropmarks.
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: Dreamers2 on October 28, 2022, 08:12:27 PM
thanks
how to install?
regular method with Firmware Update?
is there any additional steps?
also how high is the risk of bricking?
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: names_are_hard on October 29, 2022, 02:08:10 PM
Yes, standard install using the FIR linked in the first post to enable bootflag on cam.

I cannot quantify the risk of bricking.  To my knowledge ML has never bricked any users cams (only some devs, when doing work to understand the cams).  This release for 200D has a small number of features and has been tested by about 2 and a half people.  I tried to code it in a cautious way to minimise risk, but it can never be risk free.
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: Dreamers2 on November 12, 2022, 01:41:59 PM
is this release for the canon 200d i or 200d ii?
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: names_are_hard on November 12, 2022, 02:01:55 PM
200D.  ML uses the EU naming scheme.  There is no 200D Mk II in EU naming (it would be 250D there).

https://wiki.magiclantern.fm/camera_models_map
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: iaburn on February 19, 2023, 10:02:53 AM
I'm new to the Magic Lantern world, but I'm surprised that this achievement didn't get more attention  :-\

Just the fact that after well over 10 years since this started, there are still devs with the motivation to keep researching and working to unleash all the raw power hidden inside the newer cameras, is astonishing...  :o

I read that the active team is smaller now, but even if it would stop now, I think the whole project was eye-opening for many people like me. I could speculate about what could be full potential of a camera like the Canon EOS M, but never in my mind I could imagine that inside this cheap camera there was potential to record RAW at speeds faster that what my CFast 1.0 cards can handle, with added unique features like Dual ISO, that all together make the Magic Lantern supported cameras something to be remembered.

I have a programming background and I tried to get an idea of how all this works to see if I could help somehow, but I could not even get the big picture. I don't understand the terms used, the hardware concepts, the tools needed... so I don't even understand enough to know the actual complexity. I would need something like the typical step by step tutorial, with examples an explanations, at least to know if I can handle it.
Does something like this exist already? Maybe a crash course from scratch?

In any case, my respect to those who went beyond what the Canon engineers thought was possible!
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: Walter Schulz on February 19, 2023, 10:07:00 AM
Join ML's Discord (https://discord.gg/uaY8akC) for some guidance and fun!
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: iaburn on February 19, 2023, 11:30:09 AM
Thanks, I already joined  :)
The problem is that I don't have a particular question, I need more like an in-depth overview plus a step by step guide, which is too much for Discord  ::)
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: Walter Schulz on February 19, 2023, 12:43:44 PM
Have a talk with names_are_hard on discord ...
We have an 101 section for aspiring devs there.
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: names_are_hard on February 19, 2023, 02:02:33 PM
Quote from: iaburn on February 19, 2023, 10:02:53 AM
I'm new to the Magic Lantern world, but I'm surprised that this achievement didn't get more attention  :-\

It doesn't have many features yet, so most people don't care :)  Thanks though!

Quote
I have a programming background and I tried to get an idea of how all this works to see if I could help somehow, but I could not even get the big picture. I don't understand the terms used, the hardware concepts, the tools needed... so I don't even understand enough to know the actual complexity. I would need something like the typical step by step tutorial, with examples an explanations, at least to know if I can handle it.
Does something like this exist already? Maybe a crash course from scratch?

The framework of ML is not complicated.  Canon have a mechanism designed to run code from a file on card (presumably for factory diagnostics or automated testing).  We enable that and use it to run our code.  That happens very early in boot, and we use that to modify the boot process, so our code remains running and control is given back to Canon's normal startup code.

To build ML you need a standard C toolchain, able to target ARM.  This probably means you want arm-none-eabi-gcc and friends.

Working out how to enable and debug features is the hard part.  This is harder to describe since it varies by feature.  I'm not even sure you're asking about this part so I'm not going to go into great detail.  Here you use a range of techniques depending on what you're doing, but likely to include Ghidra (or IDA Pro) for understanding the code in the camera rom, and serial port access to the cam to get better live debug output and maybe inspecting memory.  This is somewhat like debugging a binary where you don't have symbols, if you've done that before.  We also have a qemu fork with partial support for emulating roms.  Support is good for older cams, not good yet for newer models, but this is still useful for testing some code without risking a physical cam.
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: iaburn on February 19, 2023, 03:19:41 PM
Thanks a lot for the explanation  :) Never herd of Ghidra, but it looks like hacking a video game console, with no hardware documentation and trying to reverse-engineering everything with little to no help... I cannot imagine many people being able to do that, and I'm not one of them (yet... haha)
I will try to read more and see if this takes me somewhere  ::)
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: diddlypockets on September 15, 2023, 12:25:14 AM
I am new to Magic Lantern, trying to install it to my EOS 200d. Followed the instructions -
1) Camera in Manual Mode, firmware confirmed 1.0.1
2) tried with 64GB SD card as well as 32GB micro SD with adapter. Formatted the card
3) Extracted files/folders from the link from the first post in this thread to root of SD card on my laptop running windows 11 (also tried on windows 10 laptop)
4) Copied fir file to root of SD card using my laptop running windows 11  (also tried on windows 10 laptop)
5) inserted the card back into the camera, started camera, in camera mode went to the menu for firmware, Camera asked for updating firmware, proceeded with firmware update.

6) Instead of updating the firmware, it looks like only boot flag was attempted to be flipped and I got the Magic Lantern Rescue screen as attached. Restarting, removing battery/restarting nothing is working and the installation is not successful. logically it seems like the autoexec.bin is not getting executed.


(https://i.ibb.co/2KbYMX0/MLR.jpg)</a>



scratching my head on how to get this to work. Can anyone help please?
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: Walter Schulz on September 15, 2023, 06:54:21 AM
Download EOScard utility.
Insert card into cardreader.
Run EOScard as Admin.
Make sure to have card drive selected.
Enable checkboxes EOS_DEVELOP and BOOTDISK.
Press Save button and ignore error message.

Insert card into cam and startup.



ML doesn't alter cam's fimware. Bootflag enabler flips a setting telling the cam to look for a bootable card at startup.
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: diddlypockets on September 15, 2023, 12:03:11 PM
Thanks for replying Walter. This has however not worked.

I started EOScard as Admin user, checked the boxes for EOS_DEVELOP and BOOTDISK as in the picture below and Saved. Did not get any errors and the save was successful.
(https://i.ibb.co/GRfnx3y/1-EOScard.png) (https://imgbb.com/)

Attaching another picture showing the contents of the card before I inserted it into the camera. The contents are - ML folder, DCIM and MISC folder, autoexec.bin and BOOT200d.FIR.

(https://i.ibb.co/JyD1HmJ/2-SD-Contents.png) (https://ibb.co/SdFjB5C)

Inserted the card into the camera, went through firmware update and still got the same Magic Lantern Rescue screen. The before and after update of boot flags shows no change. The firmware update process ends with the line that says 'You may now remove the battery'. Magic Lantern does not get installed. :(

(https://i.ibb.co/CJMdLC2/3-ML-Rescue.jpg) (https://ibb.co/xmfvZ9H)

Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: Walter Schulz on September 15, 2023, 01:25:23 PM
Restart cam. Press trashcan/delete button.
Also top of page > Wiki > FAQ
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: diddlypockets on September 15, 2023, 06:03:15 PM
thanks for the reply again. Restarting cam and pressing trash can button does nothing.  the camera is not recognising autoexec.bin yet.
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: Walter Schulz on September 15, 2023, 06:17:03 PM
Remove battery and card. Rename autoexec.bin to autoexec.bin_
Insert card. Insert battery. Close compartment door. Try to startup cam.
If cam is stuck remove battery and card.
Report back.
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: diddlypockets on September 16, 2023, 10:51:20 AM
Followed the instructions fully expecting nothing different to happen... but!
Removed battery and card, renamed autoexec.bin to autoexec.bin_
inserted card, inserted battery, closed compartment door, tried to start up the cam - nothing happens, camera does not start, screen remains dark. Removed Battery and Card.

reporting back. (must say I am worried now that the camera is not starting!)

No difference to the files on the card btw, no logs, no additional files generated.
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: Walter Schulz on September 16, 2023, 11:01:31 AM
Actually this result is perfect!

It tells without doubt following requirements are met:
- Cam's bootflag is set
- card is bootable and accessed in the correct way

Now:
Rename autoexec.bin_ to autoexec.bin.
remove battery
make sure power switch is in off position.
insert battery and card
close compartment door
press SET button and keep it pressed
switch power on
after startup is complete release SET button.

press trashcan button to access ML menu
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: diddlypockets on September 16, 2023, 11:17:34 AM
Thanks for the help Walter. Followed instructions, pressing the Set button and switching on the camera did start the camera (phew!). however trashcan button did nothing, switched off and on again, now trash can button starts ML (yay!)

however the main reason why I wanted ML - record movies for more than 30 min - does not seem to be enabled. The Movie Menu of ML is empty (see picture).

Could you please help with -
How would I install ML on other cards? Do I follow the same renaming autoexec.bin to autoexec.bin_, let the camera get stuck, then start by pressing the set button?

How do I uninstall ML to go back - follow the process of updating the firmware and waiting for 60 sec to uninstall or format card? how do I reset the bootflag back?

Is the movie menu expected to remain blank? the posts above mentioned that this was a working feature.

(https://i.ibb.co/X7pkhyP/ML-Movie-menu-empty.jpg) (https://ibb.co/sKQJ054)
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: Walter Schulz on September 16, 2023, 11:57:12 AM
Quote from: diddlypockets on September 16, 2023, 11:17:34 AM
however the main reason why I wanted ML - record movies for more than 30 min - does not seem to be enabled. The Movie Menu of ML is empty (see picture).

There are 4 recording options:
1. H.264/MOV aka Canon's out-of-the-box internal recording.
2. ML's RAW/MLV
3. External via HDMI
4. External via USB
See
https://wiki.magiclantern.fm/faq#how_do_i_record_stream_for_more_than_30_minutes

Option 2 is not available in this build and don't ask for a release date.


Quote from: diddlypockets on September 16, 2023, 11:17:34 AMHow would I install ML on other cards?
Copy extracted build content to card and run EOSutility as described above.

[
Quote from: diddlypockets on September 16, 2023, 11:17:34 AM
How do I uninstall ML to go back - follow the process of updating the firmware and waiting for 60 sec to uninstall or format card?

ML requires three things to run:
- cam with bootflag set (done by firmware "update" hijacked through BOOT200D.FIR)
- if flag is set cam will look for a bootable card. For 200D it requires an  additional programm like EOScard.
- file autoexec.bin in card root

To make a card non-bootable you can use cam' format menu. Press Q to remove boot option but keeping ML files. Or format in cardreader. This will delete ML files, too.

If you just delete ML files from a bootable card cam will get stuck with black screen and you have to remove battry to proceed.

Now cam's bootflag. Well, ATM there is no 60 seconds timeout option during install!
There is an utility by petabyte using USB connection to alter the flag. I used it several times with Linux and without problems. Windows version had a troubled start and I haven't tested fixed version yet.

Quote from: diddlypockets on September 16, 2023, 11:17:34 AM
Is the movie menu expected to remain blank?
Yes.

Quote from: diddlypockets on September 16, 2023, 11:17:34 AM
the posts above mentioned that this was a working feature.
I wonder where you got this.
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: diddlypockets on September 16, 2023, 12:24:04 PM
Quote from: Walter Schulz on September 16, 2023, 11:57:12 AM

I wonder where you got this.



Quote from: Walter Schulz on October 28, 2022, 07:32:54 PM
Current release is stable. Just lacking features.

Main use cases:
1) Webcam via HDMI. 30-minute timer can be disabled via ML menu
2) Cropmark overlays for liveview composition. Up to 9 can be stored on card and you can build your own customized cropmarks.

I read that and thought I could disable 30 min timer via ML menu.


Quote from: Walter Schulz on September 16, 2023, 11:57:12 AM

Option 2 is not available in this build and don't ask for a release date.


ok, I wont :)

Quote from: Walter Schulz on September 16, 2023, 11:57:12 AM

Copy extracted build content to card and run EOSutility as described above.


This did not work until I followed your instructions to rename the autoexec.bin and then started camera while pressing the set button.

Thank you for all the help and no doubt the hard work behind the scenes!
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: Walter Schulz on September 16, 2023, 12:38:09 PM
Renaming was for debugging and won't solve any issue with black screen.
Don't create myths.
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: names_are_hard on September 16, 2023, 01:16:24 PM
Thank you for doing the debugging dance, Walter.  I'll edit the first post to make it clearer it's HDMI out 30 min timer only.
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: diddlypockets on September 16, 2023, 04:30:39 PM
Quote from: Walter Schulz on September 16, 2023, 12:38:09 PM
Renaming was for debugging and won't solve any issue with black screen.
Don't create myths.


ok boss! no intention of creating myths, just trying to figure out how to install ML.

I dont understand how would I create another ML card. I have tried the process with another card now -
1) Format card in the camera 2) change camera to M mode 3) remove card, extract ML to the root of the card, copy the BOOT200D FIR to the root of the card, use EOScard.exe to make the card Bootable 4) insert card into camera 5) get into menu, firmware update - results in Magic Lantern Rescue screen asking to remove battery 6) Remove battery, reinsert, restart, ML has not loaded, pressing trash can does nothing.


I will reiterate my appreciation to everyone who created the build and to Walter for helping me debug.
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: Walter Schulz on September 16, 2023, 04:38:51 PM
Start EOScard again .
Without other action but your card.selected:.Are both checkboxes activated? Is autoexec.bin still present on card root?
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: diddlypockets on September 16, 2023, 05:38:15 PM
Yes and yes.

(https://i.ibb.co/Xzg36GG/EOScard32gb.jpg) (https://imgbb.com/)
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: Walter Schulz on September 16, 2023, 05:50:00 PM
Funny! Are you able to run a checksum program for autoexec.bin? MD5, CRC32 or else?
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: diddlypockets on September 18, 2023, 08:27:44 PM
Sorry late reply. Priority to Work that pays the bills :)

C:\somepath.where.ML.is.extracted>certutil -hashfile autoexec.bin MD5
MD5 hash of autoexec.bin:
c62ebcd2e8281610e1e53fa64ecb4e4a
CertUtil: -hashfile command completed successfully.
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: Walter Schulz on September 18, 2023, 08:33:36 PM
May I ask for checksum of card's autoexec.bin?
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: kitor on September 18, 2023, 09:16:04 PM
Thing is: if that was a checksum problem, camera wouldn't work (either black screen or a crash) as it would still load the (broken) binary.

With that problematic card (after preparation, and with ML files on it) - do you see any activity from card access LED immediately after turning the camera on?
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: diddlypockets on September 18, 2023, 09:31:32 PM
First card, which worked after renaming autoexec to debug
D:\>certutil -hashfile autoexec.bin MD5
MD5 hash of autoexec.bin:
c62ebcd2e8281610e1e53fa64ecb4e4a
CertUtil: -hashfile command completed successfully.

second card
D:\>certutil -hashfile autoexec.bin MD5
MD5 hash of autoexec.bin:
c62ebcd2e8281610e1e53fa64ecb4e4a
CertUtil: -hashfile command completed successfully.
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: diddlypockets on September 18, 2023, 09:41:57 PM
Quote from: kitor on September 18, 2023, 09:16:04 PM
Thing is: if that was a checksum problem, camera wouldn't work (either black screen or a crash) as it would still load the (broken) binary.

With that problematic card (after preparation, and with ML files on it) - do you see any activity from card access LED immediately after turning the camera on?

The behaviour I saw with the current problematic card is how it was with the other card too. for sake of clarity in discussing lets call the previous card 64gb (which worked after renaming autoexec) and the second card as 32gb (because that is the capacity of the cards).

So 64gb card-
Format card, Camera in M mode, remove card, extract ML to the card, copy BOOT FIR, EOScard updates card to bootable, insert card into camera, run firmware update, ML Rescue screen asking to remove battery, battery removed, card removed, on computer - update autoexec file name on the card, insert card back to camera, camera does not appear to start, press SET and start, camera starts, rename autoexec on computer, reinsert card, start camera, ML loads on pressing trash can button.

32gb card -
Format card, camera in M mode, remove card, extract ML to the card, copy BOOT FIR, EOS card updates card to bootable, insert card into camera, run firmware updaate, ML Rescue screen asking to remove battery, battery removed and reinserted, camera started, ML did not load.

I removed 32gb card, inserted 64gb card, used camera on the weekend.

After Kitor's message just now, inserted 32gb card, LED shows long blink and one bleep after closing compartment. Started camera, LED showed one long blink and then rapid blinks more than 4 (couldnt count, probably 5 or 6). however this time, pressing trash can button loads ML.

wonder if Camera has a cache or something that is taking time to clear.

Trying the whole process again with 32gb card.
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: diddlypockets on September 18, 2023, 10:51:16 PM
Now this might have been obvious to folks, it was not to me and I found it when I was retrying the whole process again.

With 32gd card -
1) Formatted the card in the camera
2) Not sure if this formats the boot flag so Quick Format it with the computer.
3) Extract ML and copy the extract + Boot fir file to the card
4) EOScard to update EOS Dev and boot flag on the card
5) insert card in the camera, start the camera
6) Try to update firmware, the camera says battery is too low to update (Previously at this step, after firmware update, I would get message about Magic Lantern Rescue and to remove the battery)
7) Exit Menu... groaning that I need to charge the battery before I try this again, I press the trash can button
8 ) and ML Loads!!

Ofcourse thinking about it it makes sense. The BOOT fir file only flips the boot flag on the camera, this has already happened. so from the second card onwards, I dont need the BOOT fir file or the firmware update process. I only need the card as bootable and ML on the card.
Title: Re: Magic Lantern for 200D: Not Dead Yet edition
Post by: names_are_hard on September 19, 2023, 12:02:40 AM
Quote from: diddlypockets on September 18, 2023, 09:41:57 PM
wonder if Camera has a cache or something that is taking time to clear.

No, it doesn't.  And yes, you only need to run the FIR once to enable the bootflag on cam.