Open Source Camera Project

mattmills

madman (w/ camera)
Local time
3:07 PM
Joined
Aug 14, 2005
Messages
52
So, I'm going to go out on a limb here. I've long wondered how hard it would be to put together a camera from scratch. There are plenty of people doing parts of it (see this thread, for example) but nobody has bothered to do a new camera from the ground up in the public domain. Code, designs, everything will be available freely under creative commons and gpl.

So, what's there to do right now? Basically everything. I've registered the domain opensourcecameraproject.org and put up some basic things I'd like to see in the camera. Please, comment here, or send me emails at mail@opensourcecamera.org.
 
forgot to include this:
The broad outlines of the camera are:

Rangefinder focusing, M-mount
overall size less than 33x75x140mm (dhw)
Sensor: 36x24mm +/-.2mm
12+mp
Black and White or Color
Socketed sensor (user removable/replacable)
16 bit
Shutter: In-sensor electronic
frame rate: 3+fps
Wifi+bluetooth connectivity
20gb built in memory
 
20gb built in memory

Why? Wouldn't it be easier, lighter, simpler and more "ready for the future" to have an SD card slot or such? 20GB sounds like a lot, but with a 12MP 3+fps camera that fills up rather quickly. And then? A new card would help out here. I don't see myself field replacing chunks of 20GB memory on the fly.
 
Hmm..isn´t the M mount patented or at least copy protected in some way? If so, you will need a deal with the owner...just one hurdle I come to think of. Hw about memory card technology...protected? And the sensor bit?

In any case, I don´t want to be a stinker - so best of luck with it!

cheers /Richard
 
I don't think the M mount patent still applies.

A 16 bit sensor would be difficult, since even high-end DSLRs still only use 14-bit A/D conversion. It would also need to deal with light falloff due to the close proximity of RF lenses to the focal plane.

Either way, the sensor itself would probably not be open sourced. Ideally, there'd be competing companies just selling sensors with a particular sensor-mount (like film in a particular cartridge type 135, 120, etc.). Of course this idea is basically a pipe dream since the companies with the resources to do this have no interest in doing it, and there is almost no pressure from the market to make them do this. I hate to sound like a downer because I'd actually love the ability to customize my own camera.

It seems like what you really want is for someone to make a full frame affordable digital RF, which is what almost all of us want.
 
RML: I just hate dealing with cards, and the SD spec isn't an open arcitecture (it's partially open, I believe, but not all the features are implemented). It'd be possible to design it either way. 20gb is just an arbitrary number that would be about twice what I would ever need in a very long day of shooting. If someone wanted to build in more, then it'd be pretty trivial to just use bigger flash chips. But building it in also means it'll be faster and it's one less design aspect to deal with. I'm shooting for simplicity above all else.

Bluesman: I don't think that's true; there have been a ton of competitors to Leica that use their mount.

The sensor is a sticky bit at this point. I'm pretty sure that by using a sensor that's available in both b/w and color versions, we can use identical architecture and just do the colorizing in post. Which means, if a user were so inclined, they could change their sensor. No reason not to build this in to the design.

To clarify a little, I'm going to build one or two of these for myself, and put the designs out there for anyone else to copy and build one either exactly like mine or modified to their own liking. If someone wants to contribute to the work (I currently know nothing about programmable logic, which is an essential step in getting the data off the sensor and into the memory), they can also change the design I'm doing. They can then say "I'd like feature X" and I'll add it to the goals. If they go ahead and do the work for feature X, that's even better.

@sam n
No, the sensor itself wouldn't be open; unless I'm mistaken, it would be impossible for a hobbyist to fabricate them anyway. But what we can control is what ADC we use to convert the individual voltages from the photosites into digital data. And, if it turns out that it's too much computationally to have that much data moving that fast, we can scale back to 14 or 12 bits.

Speaking of sensors, nobody makes one that's exactly 12mp, it turns out. Anything 10-20 would do, since this is ground up. Everything is subject to change based on what will work and what won't. The Dalsa ftf4027 or ftf5033, the Kodak KAF-16000, and 10500, and the cypress ibis4-1400 are the ones I'm eyeing, and leaning towards the kodak, because I know I can get in single units. They all are roughly within my guidelines and I'm waiting to hear back from the sales units of all three.

No, I don't want someone else to make it. By taking control of the entire image pipeline, we're becoming more in control of the image. I also don't care about affordable. If it costs me 10k to build this, then that's what it costs. I want the camera that I want, that no one will build. And I'm sure that there are other people out there like me who'd benefit. Who think that if they could do feature x with their whatsiflex, it'd be just perfect. And like you said, there's no profit in it, so I might as well give away what I can for free. Thats all.
 
just an update- put up a blog at opensourcecameraproject.org to do updates and stuff. better than plain text that I had.
 
Wonderful initiative!

Reminds me of this article on Luminous Landscape I read 2 years ago. It inspired me to write Mr Johnston an email (see below.)

Nothing changed since then (except the birth of Leica M8 that is.)

In 1990, Linus Torvalds was the initiator of the computer operating system "Linux", by simply sending a message to the internet programming community. It has grown into a free system that is serving millions of happy users worldwide.

I still wonder if the open source concept could be used to design and create a highly technically complex physical object like a digital camera.


email to Mr Johnston, 6/17/2006:

I read your article about the "ideal digital streetcam". Very interesting stuff, and I must say that I fully agree with you: if I was to design a "perfect street digicam" I guess it would be identical to what you described in this article. Although I own dozens of cameras, I miss a 'DMD' badly.

Doing a lot of street photography myself, knowing that there is still no such thing as a digital P&S that suits our needs, I keep using analog gear on a regular basis (Konica Hexar, Olympus XA & Mju_II, Ricoh GR1V, plus a bunch of -heavily underrated- Agfa Optima 1535's) loaded with cheap Tsjech B&W film (Fomapan), Tri-X, or Kodachrome 64 (in the summer).

When I want to shoot digital on the street, I love to use my Nikon D70 in combination with a fast prime, either my Nikkor 24mm 2.8D, or my Nikkor 50mm 1.4D. They give me 36 and 75 mm respectively and the latter is great for low light photography without flash. But it is kinda bulky and sometimes attracts too much attention; it is not the ideal camera to use when you want to stay candid. Still, the results are great.

I just wondered, what (existing or upcoming) digital camera do you think comes closest to the 'DMD'? (Is it the Ricoh GR-digital? I guess not, with the small sensor and too much wide angle.) Do you think the soon to be released Leica digital M will be the answer? That might be a winner, but also an expensive one, imho.

In case digicam manufacturers will let us wait too long (already, if you ask me) don't you think this will be a major challenge for the open source community to pick up? There is so much going on in open source lately (http://en.wikipedia.org/wiki/Open_source), the open source concept doesn't restrict itself to software, but extends into the field of designing and creating physical objects (see "open design").
I am very much thrilled by the idea of having this 'DMD' concept worked out in the open source field and then having it manufactured where labor & resources are cheap, like India, China.

Final question, what do you think of a DMD as a body only, with like a Leica, Nikon, or Canon mount? It would reduce the complexity of the design significantly, plus it opens the possibility to use the best lenses in the world (Leica, Zeiss, Nikkor, just to mention a few).
 
hmm, perhaps a stupid question, but what kind of source code should be written to materialize a physical item, such as camera ?
 
Guess I'm getting old - I remember when the big thing was to make your own film camera. Most were sheet film/view camera styles, but a few people made 6X6 or 6X7 cameras from parts and fabrications. Lenses, of course, were purchased, as trying to make a lens in your basement would be difficult, and never be as good as Leitz, Schneider, etc. glass.
I guess making a digicam is equal today. The sensor, IC's, etc. must be purchased, as youre certainly not going to make those yourself. I would think your own software/firmware would be possible, and that seems to be what makes a digicam what it is.
I say it will be difficult, but, GO FOR IT! 😎
 
hmm, perhaps a stupid question, but what kind of source code should be written to materialize a physical item, such as camera ?
Since it's going to be a digital camera, there must be firmware built in that operates the electronic systems. This is where it will be necessary to have code.


I'm not an electronics expert, but based on what I remember from school, you might have some trouble with the 20GB of built-in memory. The limitations of storage devices are not just based on physical problems, but also on numerical problems. Depending on the type of processors/chips used in a camera or other digital device, they may be incapable of addressing memory positions beyond a certain value. For example, a 32-bit processor (such as a classic x86 like the Pentium IV) can address a maximum of 4294967295 bytes of memory, also know as 4GB.

Therefore, if you want a system built-in that can address more, you would need either need (a) a 64-bit device or (b) a hardware layer that abstracts storage from the processor. Smaller 32-bit processors are significantly more common (32 bits being somewhat of a default size in modern electronics) and should therefore be cheaper.

Option (b) is how our modern HDDs work in computers (the processor does not directly address each file on enormous modern drives; there is hardware inbetween that handles this) and it's probably the ideal system. You might even be able to find a pre-built storage system that fits the small confines of a RF camera, but it's not very likely. This would add cost and complexity. A complete SD connector assembly could be purchased from a supplier such as Digikey for about $1.16. I imagine that electronics for powering and communicating with SD cards are relatively easy to source as well.

I recommend that as a starting point you should target a 4GB or smaller commercially-available flash storage device.
 
In 1990, Linus Torvalds was the initiator of the computer operating system "Linux", by simply sending a message to the internet programming community. It has grown into a free system that is serving millions of happy users worldwide.

Hi,

Linux is a kernel. The operating system is called GNU/Linux or the GNU operating system. The project was started by Richard Stallman.Before 1991 the GNU project didn't have a usable kernel, this is around the time when Torvalds wrote the Linux kernel. There is a kernel written by the GNU project, it's called HURD, but apparently it's not usable and/or their prime concern.

http://www.gnu.org/gnu/thegnuproject.html
 
Last edited:
Since it's going to be a digital camera, there must be firmware built in that operates the electronic systems. This is where it will be necessary to have code.

If the question is to "what type of code" you need in a digital camera, that will depend on what devices you have in the camera and what you need them to do 😀

Microcontrollers/processors can often be programmed in C or some other high level language, but if you want speed and efficiency then being able to get things done in assembly is important. FPGAs have VHDL (or verilog) or other hardware description languages. DSPs are something I have little experience with, but last I checked they're all a little different. None of these languages are really hard to learn, but they're extremely difficult to implement well. The good development tools are rarely open source though, so that will be a considerable added expense.

If you're truly interested in making things modular, then the first thing we need is a block diagram and definitions of standard interfaces between the blocks.

The biggest problem I see will probably be size and power consumption. If we're limited to chips that are solderable by a hobbyist, then the larger BGA packages will be a royal pain. Asking "general purpose" devices to do a lot of the tasks required in a digital camera is going to draw more current than those Sony/Nikon/Canon/Leica designs that rely on proprietary & custom designed chipsets.

Is the project feasible? Sure. The tools are out there and have never been more affordable. Is an open source camera project worth the effort? Definitely. As an EE I work on a lot of projects in my own time that make absolutely no sense economically, because they're fun, and exercise my brain.
 
good responses all... yes, the code I'm talking about is firmware and vhdl for an fpga that's going to be the core of the thing. I'm going to get together that block diagram (it's funny how the people in this thread read my mind) and post it up here and on the blog simultaneously. thanks all.

edit: "open design" is probably a better term for all this... too bad the domain's registered already.
 
Last edited:
Microcontrollers/processors can often be programmed in C or some other high level language, but if you want speed and efficiency then being able to get things done in assembly is important. FPGAs have VHDL (or verilog) or other hardware description languages. DSPs are something I have little experience with, but last I checked they're all a little different. None of these languages are really hard to learn, but they're extremely difficult to implement well. The good development tools are rarely open source though, so that will be a considerable added expense.
A good middle-ground could be to write very very tight code in something high-level like C, compile it, and then perform manual optimizations of the byte code. It might not be as good as writing it from scratch in assembly, but it'd probably be quicker.

The biggest problem I see will probably be size and power consumption. If we're limited to chips that are solderable by a hobbyist, then the larger BGA packages will be a royal pain. Asking "general purpose" devices to do a lot of the tasks required in a digital camera is going to draw more current than those Sony/Nikon/Canon/Leica designs that rely on proprietary & custom designed chipsets.
Just because this is "open source", doesn't mean that everything will need to be assembled from scratch. Creating a camera and open-sourcing the plans does not need to be equivalent to designing complicated imaging circuitry from scratch and then open-sourcing the logic.

As we've already figured out, the sensor will of course be a finished product. There's no reason that a pre-built DSP block which is compatible with the sensor couldn't be used, except of course for the reason that it reduces the amount of control one has over every aspect of the design. The advantage of using such a compenent is that as the supplier of such a component improves the design it is relatively simply to just swap out the existing module for the new one.

I'm a decent programmer, but this is the type of project that makes me wish I had kept up on my hardware and assembly language skills. I have a very clever little project board in the closet based around an older Motorola 68HC11 processor, but I don't think that it (or I) would be up to the task!
 
Matt: If you're serious about this, I hope you've studied up on what Huw Finney did over at photo.net with an M2. You might even want to try to contact him to see if he has any interest in participating, or at least some rough knowledge that he could contribute.
 
"a ton of competitors to Leica that use their mount"

- yes, but we don´t know the deals that went down to make that possible. Or the amount of theft involved - some countries simply don´t (or didn´t) have copyright infringement laws.

In any case - good luck!

/Richard
 
Back
Top Bottom