How to Hack an Expensive Camera
alexhude.github.io
alexhude.github.io
As a former chdk user on canon and a Fuji x20 owner I hope somebody carries on your amazing work!
Looks like he's worked on a lot of really cool, low level, stuff.
Somewhat unrelated but I wonder if we will make the move to open hardware like we have done with software. Having access to schematics and firmware source does wonders for the reparability and upgradability of hardware.
This is orders of magnitude of geekiness beyond anything I could possibly accomplish, and I mean that in the best possible way. Kudos to the author and thank god for the real nerds.
Immediate gratification culture (a generational problem?) teaches us that the very short term is the meaningful range in which to work and expect results. But anyone who has become a master at their art or craft knows that 10+ year projects are normal and that the long-term is where mastery resides. In the medium term, one is often on a plateau, barely seeing significant progress. (Just ask the best cellists or figurative fine art painters or marble sculptors.)
Calling it a generational problem is like blaming Millennials for the participation prizes that they got as kids which the adults invented, created, and awarded.
https://www.makerfol.io/project/Z5XFwxh-lighttracer-a-photog...
Might be AXIOM from the Apertus project: https://www.apertus.org/axiom
Levoy called the academic exercise he pursued the Frankencamera. (Look it up, a big thing at Stanford). Nokia took him up on it and produced an OTC "smartphone" ... before the iPhone.
i still have a N900 and it works: replaceable batteries do wonders!-) Runs unix etc. Open source camera software.
I think it would actually make sense to build an open source camera on Android. The android camera HAL and camera2 APIs are pretty good (though limited). You get all the UI stuff for free, and a large dev ecosystem. Halide is great for very fast processing. We used them both for the Ubuntu Touch camera app. Though if you really want to push what's possible, access the more low level features would need to be open source too.
Nokia (or HMD Global) are back in the camera phone game again btw - 5 lens android camera coming out this year according to rumours. I think this type of multi-sensor camera really is the way forward on mobile phones. You can keep the lenses thin with much larger sensor size when combined. I really wish they would open source at least some parts of it, but unlikely
Open source cameras exist. They use chemical processing and have manual controls. The documentation is good and it is even practical to build one's own gear...indeed there is a long tradition. Hacking a Leica film camera just wouldn't be as newsworthy.
In some sense, the low returns smell like an XY problem. To a first approximation, reprogramming a Leica is not going to improve it as a photographic tool. The limitation is the going to be the photographer not the software. For software, there's always post.
Making up developer from base chemicals (metol, phenidone, hydroquinone, and so on) isn't impossible and some people do it so they can "tweak" the process a little bit.
The one thing I've never heard of anyone doing is making up a photographic emulsion from scratch at hobbyist level and coating a film base with it.
There are also well documented photo-chemical substrates that are relatively easy for a radically open source photographer to hack on, e.g. wet plate collodian and the more film like dry plate silver gelatin processes. Not all that practical adapt to a 35mm film camera. But analogously open source jumps through hoops to run on an iPhone.
Make dry plate: http://www.alternativephotography.com/silver-gelatin-dry-pla...
There were some initial promising efforts to build the equivalent of Magic Lantern for sony alpha cameras, but it seems to have quietly died.
Oh and while one can get a full service manual including block diagrams and wiring specs for it on the Internet, if someone knows how to access its bootloader (probably uboot, it runs Linux in any way, with an Android layer on top for the "apps") so that one can experiment without risking a $2000 brick, that would be really really nice ;)
Is this the mindset of "better buy the expensive thing before we can't afford it"? I've seen this expressed before and it's not sound reasoning. If you wouldn't be able to keep that money in a savings account because you know you'd later find other uses of the money to provide better value then you shouldn't be comfortable spending it on a depreciating asset immediately. The only way it makes sense is if you trust your future self's reasoning less than you trust your present self's.
An interesting thought, in my opinion.
More the idea it's easier to justify spending the money when there aren't other priorities.
If it's going to be irresponsible then, it's probably just as irresponsible now, perhaps not as obviously. ("Better hurry up and make that mistake...")
Leica equipment gets constant price hikes. The cameras and lenses are great but at this point they are mainly for rich amateurs rather than working professionals.
I also bought my house in 2002 because I had looked at houses in 2000 and 2001 and decided to continue renting. I bought in 2002 because I thought that if I didn't buy now that I would get less value for my money later.
There is a tool to binary patching Pansonic GH4 and GH2 firmware called Ptool. https://www.personal-view.com/faqs/ptool/ptool-faq It decrypts encrypted firmware, patch binary and then encrypt again. So you can update firmware via default process.
Genuinely curious - seemed missing from the blog post.
On vocational school we could elect to do long term project instead of practical graduation exam. In my case this involved reverse engineering management protovol used by Merlin Legend PBX in order to port its DOS-based configuration utility (which was in fact emulator of MLX-20L operator phone) to something more modern (and multi-user). One of first things we did was running the binary through strings and ndisasm (I probably still have the hackedup tool to convert MZ EXE to pseudo-COM that could then be read by ndisasm, which was motivated by fact that for various reasons we could not use IDA). What we found out was that it used some weird Unix on DOS emulation layer from AT&T which included Unix-style ncurses and terminal emulation layer.
We tried both to analyze the binary and sniff the communication. At first we thought that disassembling the code would be faster as we had only limited access to the PBX itself and were somehow afraid of bricking the thing. Oneday I just gave up and spent few hours hacking up a way to actually look at the UART data (there were two issues with that: the PBX was somewhat picky about accepted RS232 levels and then slight logistical issue of having preferrably a laptop with two serial ports in early 00's). After we had this ugly mess of wires with four DE9 connectors and active RS232 buffer (powered from adjustable bench supply, needless to say that our advisor was not too thrilled that we decided to connect this thing between somewhat irreplacable PC and still considerably expensive PBX) we found out quite quickly that the actual configuration protocol consisted of XModem for backup/restore, straight ANSI terminal emulation for initial session establishment (and in theory for weird "use PBX as outgoing modem" feature), essentially binary block oriented terminal protocol (think contents of PC text mode framebuffer with one attribute byte for not every character, but block of 8, always sent as whole line) wrapped in weird HDLC subset for the actual interactive configuration and weird handshake reminiscent of OBDII serial protocol to switch between these modes (which probably took the majority of time to reverse engineer).
Interesting aside is that the above mentioned binary block protocol was also used for the UI of almost-ISDN phones that went with the PBX in question. We had access to ISDN protocol analyzer which worked perfectly for normal call flows, but reliably crashed (and not with any kind of meaningful error message, it just overwrote half of its display with random pixels, started ignoring its keypad or otherwise started behaving weirdly in somewhat random manner) any time we did anything more complex. Somehow I think that finding signal that reliably crashes firmware on test equipment which is explicitly designed to debug problems on such interface is achievement in itself :)
Wikipedia's recent reference links are a great of example of how to do reference right.
Would be interesting to know which browser was the first to keep track of scroll position for history entries.
Mosaic was before my time but I wouldn’t be completely surprised to learn that even it would store scroll position.