Buying camera for ML development, advice needed

Started by heder, May 27, 2022, 09:00:17 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

heder

Hi all.

I have'nt been programming for a while, progres on the 40D is equal to none. The open beta ML version is 70% done, the reason being the camera is old, different from the newer camera, and last but not least, the camera model is really old. I have learned alot about ML firmware, and I think it's time to utilize this and move on to a newer unsupported camera.

I would like to hear from other people which camera would be interessing to get into the ML "program". I'm not in a rush, as I need to sell some old HAM gear inorder to get additional cash, but I would estimate I can spend around 800€ on a camera body. Timeline for getting a new body is approx 31th of December 2022.

Which camera's are interessing for this budget, and why ?
... some text here ..

Walter Schulz

Digic IV: 2000D, 4000D. No clean HDMI without ML.
Digic 6: 750D, 760D, 80D. ARM architecture is quite unique and seems to be not covered by current devs.
Digic 8: M200. I think the cheapest D8 cam with EOS firmware. Maybe 250D, but I'm biased here.

names_are_hard

Join usssss, join usssss.  On D678X work.  I am baised, I'm the most active dev there at present.  Walter's list seems reasonable.  I might add the M50, similar prices to M200, you may find one cheaper.  200D is D7 and in your price range.  More details follow :)

What cam to play with depends on what kind and level of challenge you would enjoy.  The newer D4 cams should be easiest to port, and I think they'll benefit from ML a lot, so it's not a bad choice.  Maybe they're faster than old D4, maybe have better SD interface?

D78 are very similar internally and we have ML working to menus with some small features enabled.  D7 is quite stable on my 200D.  D8 on my 850D is stable, but other D8 cams seem to suffer from frequent unpredictable crashes, cause unknown (*possibly* EVF related, since 850D doesn't have one?).  These are dual-core cams, which is fun; interesting cache behaviour and you can schedule tasks on the different cores.  We have two active devs with a 200D so that could make sense, it's not an expensive cam and we understand it fairly well.  But all D78 cams seem fairly similar, you can likely port our code quickly (a few days, we've done this multiple times and can help).  These are ARMv7-A.

D6 are dual-cpu, not dual-core.  No shared memory, some form of inter-core IPC.  ARMv7-R.  We can run code on these but not as much work has been done, no active devs happen to have D6.  We try to keep our code functional on D6 but don't have good ways to test.  It would be helpful to the group effort to have an active dev with D6, but it's the cam we can give the least help with.  5D4 is D6 so that's a cool target that would be aided by a working port on any D6 cam.  750D is D6 and cheap.

tupp

As a somewhat experienced cinematographer and photographer, I would urge you to work on any one of the cameras with an EF-M mount, that also has viewfinder capability and dual pixel autofocus, and the potential for continuous, 4K, raw video.

There are plenty of ML cameras with EF and EF-S mounts that work great -- more of those are not needed.

On the other hand, EF-M mount cameras (the EOSM line) have a shallow mount that accepts almost all lenses via mount adapters, speedboosters, and tilt/swing and tilt-shift adapters.  Also, the EOSM cameras are relatively cheap (unlike the shallow mount, full frame, EOSR line, with some models already featuring raw video capability).

The EOS M50 is a good candidate that has a built-in viewfinder (allowing one to use radio slaves along with the viewfinder), but I am not sure if ML would work on it.

An EOSM with full-sensor, 4K, raw video capability and a viewfinder would be amazing!

ArcziPL

DSLR is dead.

M50 is an inexpensive, modern, very decent DSLM with some low-hanging fruits (functions existing in firmware, not exposed to a user like silent shutter enable/disable in any mode, 1- or 1/3 stop ISO selector) and some potential for tough work in very long-term perspective (it natively supports 4k video).

It's my first choice for using manual lenses (in-viewfinder focusing assistance), first choice-for using 35mm-FF lenses (short flange, speedbooster).

There are rumours the M-line is dead. If so, the second hand M-line-cams may become very inexpensive in the near future.

Yes, I'm biased.
M50.110 [main cam] | G7X III [pocket cam] | 70D.112 [gathers dust] | M.202 [gathers dust] | waiting for M5II

Skinny

(I'm also biased) so I'll say something full-frame :D because full frame camera with raw recording is awesome.

I know many people have dreamed about ML on 5D4 for years.
while 5D3 is very developed with latest achievements..
5D2 lack many features possible now for other cameras (doesn't have 1x3 modes working, no lossless compression, no 16x9 mode for 48 fps.. correct realtime preview, CF overclock.. all these things are possible but not implemented yet. for example there is an instruction how to activate 1x3 and it works, but it takes 20mins to do so with registers manipulation)
6D probably can also benefit from some further development
6D2 - people ask all the time.

In general, older cameras are very attractive to many people because of their low price. And stable and good builds for them can stimulate second-hand market which in turns leads to more users with fresh cameras and potentially new developers who can work on new and more expensive cameras also.
Strong support for legacy cameras means loyal community and more sales for new cameras, this is how it works. I think Canon should publish all source code for their products older than 10 years or so, it will bring them new loyal customers for sure. Over the time, of course. But big companies don't think like that obviously..

Bruno Italiano

Most likely there won't be any Magic Lantern for a lot of new cameras. 😇

heder

Hi all, lots of good advices so far, and it's ok to be bias'ed as long as theres a reason. I will not comment on each post, but I see mainly 3 requirements I need to address.

Community momentum.
In the recent years Canon have unleashed a high number of different cameras, making it harder for us all to keep momentum. I guess names_are_hard nail'ed it down to D678X. Since most of development is taking place around D7,D8, this is where we as a comminity will gain the most. Also since I only have limited time to spend on the project it will be difficult for me to carry the D6 development on by shoulders. There are a many nice entry level camera with D4,D5, but the future is changing.

Trends
The digital single lens reflex era is comming in an end. Canon has still to release is last flagship(?), while others like 5D and 7D seires will be discontinued. The future is mirrorless, so from that perspective, I think it would be wise to choose a mirror less unit.

Personal ideas
It would be fun to have a fullframe camera for astrophotography, but most of the time (99%) will be spend in video mode where APS-C is just fine, and purchasing a lesser expensive unit would make it possible for me to get some additional stuff.

Canon M50 (D8) - might be a solution ?
Like some have mentioned in this thread, M50 might be the right one. Just look a ZEEKs videos, were he's squeezing every last drop of blood out of the ML build for the EOS-M's, looks great and fun, what a pleasure to watch. The Next camera line missing a ML is the M50, with the "crippled" 4K video mode and many other stupidities. Reminds me about .. never buy a Camera what implements a "new feature" for the very first time, because it's going to suck. Never the less, the M50 it looks really interessing. Wikipedia also states differences between the M50 and M50 MKII :  "internal and external components are the same", which could make a future ML for M50 MKII a easy job. Also last but not least kitor did a speedrun on the M50, getting menu's up and running.
... some text here ..

Bruno Italiano

An easy job is said easily. Philip Bloom said the Canon 5D Mark III is a full frame beauty. I think it doesn't get better.

names_are_hard

I like the M50 a lot as a target cam.  One significant point I forgot to mention previously: the uart is harder to access:
https://www.magiclantern.fm/forum/index.php?topic=7531.msg235437#msg235437

Most D678X "non powershot" cams have easily accessible port, under one of the rubber grips.  Although the socket may not be soldered.  We know the typical parts needed to solder it if you want.

Skinny

M50 is very popular camera now, it is a good choice :)

Danne


kitor

Quote from: names_are_hard on May 27, 2022, 10:26:58 PM
We can run code on these but not as much work has been done, no active devs happen to have D6.

Turns out it is enough not to commit for 5 days to become inactive dev 8) My 750D is sad.

Yes, definitely something Digic 78X. I consider D6 lost generation due to hardware differences - but from effort PoV IMO it makes more sense to do 78X and backport things to D6 where applicable.

M50 yes, but again - UART hard to access, and since we don't have a proper emulation - it is in "very nice to have" category.

800 eur is definitely RP, and maybe even R territory. I think R is (obviously) the best understood so far in D8 generation, and almost everything up to now was easy backported to other D8 models + a lot to D7 and DX.

M50 from hardware PoV is very similar to R. While we don't understand the new EDMAC controller, channel configuration is almost 1:1. There's "just" half of the RAM available.

I also think that due to lack of IBIS but yet a very good sensor, R will drop in price quick and become a very popular 2nd hand model.
And being honest - IMO all three categories doesn't mean anything - the first body to get the features will become the popular one - just because we don't have anything for D6+ right now.

Thus the discussion point is if it makes sense to spend time trying to reverse engineer more similar models at the same time, or keep the effort more focused to have something concrete that is then relatively easy to port elsewhere. Of course that is up to you :)

Side note: it will be great to have someone on board with prior knowledge on EDMAC and so on. From people who contribute to D6+ world, we have no idea on how exactly it worked previously which makes it twice harder to reverse engineer for the "new world" models.
Too many Canon cameras.
If you have a dead R, RP, 250D mainboard (e.g. after camera repair) and want to donate for experiments, I'll cover shipping costs.

theBilalFakhouri

I will vote for mirrorless:

APS-C:           M50 or *M6 Mark ii (second hand) or wait for R10 :)
Full-Frame:     EOS RP/R (second hand) as Kitor suggested

*M6 Mark II has 32.5 MP sensor, 14 FPS, uncropped 4K (soft 4K but better than 1080p), 120 FPS in 1080p, UHS-II SD card interface, I think R10 would be better choice overall for image/video quality (please read its specs) than M6 Mark II, but keep in mind R10 has DIGIC X, you might want to ask Kitor about DIGIC X and if it harder to work on it than DIGIC 8.

kitor

Digic X models have no Resource Manager (it got replaced with a brand new solution - RscMgr2) and somehow maps memory into 32 bit address space + offloads a lot of memory transfer using some new interfaces (IBus)

It is too early to tell anything about those, except that effort will be significantly higher than for D78.
We may also hit some more important roadblocks, but I can't/won't tell more unless someone have R7/R10 in hand.
Too many Canon cameras.
If you have a dead R, RP, 250D mainboard (e.g. after camera repair) and want to donate for experiments, I'll cover shipping costs.

names_are_hard

Quote from: kitor on May 30, 2022, 10:41:54 AM
Turns out it is enough not to commit for 5 days to become inactive dev 8) My 750D is sad.

I'd forgotten you had that one :P  In my defence, last commit to platform dir for that one was Dec, and you have too many cams :P  I keep meaning to pick up a 760D but haven't found a good 2nd hand one.

flostro

I was hoping for 5DIV and 1DX  :)
But this will never happen.


heder

Hi all.

Quote from: magiclantern
Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.

501 days ;D

Took me forever to get my HAM gear sold and getting started to look for a new camera. "M" series M50 I+II, M6 MKII,... : nice camers's but I didn't want to have a additional lens adapter, I like heavy gear, and "M" series is not future proof, "R" is coming. "R" series : really nice camera, but they're still in production, and I won't touch them. It's an ethical decision, I'm and embedded programmer. I'll go "R" in 5-7 years or so. Finally I asked by self a couple of simple questions:

Bang for the buck ?
Biggest challenge ?
I camera that can fulfill my needs for the next 5 years ?


Canon EOS 7D Mark II, with the infamious dual digit 6

Its a powerhorse that is still to be tamed, and even in 2023 it's still a powerhorse with both a CF and a SD(UHS-1) card interface. names_are_hard showed a barebone port, which is a really interesting, so I'll join the fight for the 7D2.  I promise you all nothing, except I'll work a few hours per week, I hope i'm not going to "drown", yet the 40D was a freak too.


... some text here ..

names_are_hard

Hey nice!  I still have mine.  Build quality is high, cam feels good to use, I really like this one.  ML wise it seems to behave better than 5D4 (but these were both fast ports by me, a day or two, not much testing).

The task creation bug that I mention is quite strange.  I wasn't able to create two tasks "at once".  If I create task A, wait for it to exit, create B, all is fine.  If I create A, create B, cam locks up.  I can't imagine they really moved to a serial model for tasks!  So I guess I either have some stub(s) wrong, or they changed the API for task creation (seems unlikely!  Later cams work as expected).

Repo should build easily on Debian (or similar) with arm-gcc tested at versions 8, 9 and 12.

heder

Quote from: names_are_hard on October 09, 2023, 06:14:39 PM
Hey nice!  I still have mine.  Build quality is high, cam feels good to use, I really like this one.  ML wise it seems to behave better than 5D4 (but these were both fast ports by me, a day or two, not much testing).

The task creation bug that I mention is quite strange.  I wasn't able to create two tasks "at once".  If I create task A, wait for it to exit, create B, all is fine.  If I create A, create B, cam locks up.  I can't imagine they really moved to a serial model for tasks!  So I guess I either have some stub(s) wrong, or they changed the API for task creation (seems unlikely!  Later cams work as expected).

Repo should build easily on Debian (or similar) with arm-gcc tested at versions 8, 9 and 12.

As far as I recall, Alex never found a way todo cache tricks on DIGIC6 making it near impossible to make a ML port. I even found him (or a person with similar name) asking really naughty question regarding "hacks" on arm homepage, but without any luck. I also recall that ML changes some memory  to reserve stack for track creation. Without cache-patch hacks it's lucky we can even create a single task. If you can create a task, exit it, and then create another task, but not two task at once, it sounds the we're low on heap memory. If this is in fact the problem, I guess the debug-monitor/breakpoint-handler is the only way to continue.

Yes it's really a nice build, much better than I thought.

I'm currently on a Nobara distro (redhat off-brand) and I'll be spending the next week on planning how to proceed, reading up on various thread and reading the current boot code.



... some text here ..

names_are_hard

Task creation doesn't use cache hacks, it works fine on Digic 6 (on 750D), 7, 8 and X.  It's just an OS API you can call.  I'm fairly sure I've just made some mistake for 7D2.

You're right that we have no proven way to "edit" ROM code though, and that does impose limitations.  I'm not aware of that affecting task creation.  I believe it should be possible via PMU and an exception handler, but haven't tried to get this working.  MMU patching works on D7 and up, but you like a challenge :D

I don't recall if anyone has tried rpm based distro before, probably it's fine.  The weirdest requirement is you need python2 and python3 installed (assuming you are working from https://github.com/reticulatedpines/magiclantern_simplified ).

Maybe consider joining discord, most dev chat happens there (and when we have useful results, gets written up on forum).

essbe

Sounds great! You have already made your choice, and I am sure it's a good one. Personally though I think the Canon m6ii has the potential of being the ultimate hybrid camera, if it hade ML-video. As a photo camera it is really excellent, best colors I've had from a digital camera, good af etc., and for its size without competition. The ef-m lenses are also very compact and it is a nice lineup. So, when you're done with your current project, in a couple of years maybe, think a bit about the m6ii.