Redesign your own camera! Samsung NX300, NX2000 source code released
posted Tuesday, May 28, 2013 at 8:37 PM EST
Custom firmware has been in the news quite a bit lately, with the folks behind the popular Magic Lantern line first providing access to raw video from the Canon 5D Mark III, and then following up with the same for the long-discontinued EOS 50D. It's not just Canon shooters who've had access to third-party firmware, either, as a recent article from DIY Photography showed. And as you'd expect, there are also hacks around for the recently-reviewed, Android-based Nikon S800c and Samsung Galaxy Camera.
By and large, though, these third-party firmware efforts have come without assistance from the camera manufacturers themselves. With the exception of the Android-based cameras, manufacturers typically provide only compiled firmware downloads, with the original source code staying safely under lock and key. Korean consumer electronics giant Samsung Electronics has just bucked the trend, releasing source code for two of its cameras -- and not mere compacts, either.
The Samsung NX300 and its even more affordable sibling, the Samsung NX2000, are both mirrorless, interchangeable-lens cameras that have only recently hit the market, and source code is now available for both. We're still pulling down copies of the source to take a look at it ourselves -- the compressed source archive for the NX2000 hit a whopping 2.5 gigabytes, and that for the NX300 is past 3.1GB and climbing -- but it's likely that neither is complete source code for all functionality. That's because like most camera manufacturers, Samsung will likely have licensed libraries for features like face detection, skin smoothing, and more from third parties, and won't be able to redistribute that code. It's likely there will also be omissions in Samsung's own code where it wants to protect its own intellectual property, and the terms of open source licenses don't require disclosure.
However, a look at the enclosed documentation suggests that binaries for this redacted source are provided, meaning that you'll be able to create and install your own customized firmware incorporating changes to the portions for which source is available. That's huge news, as far as we're concerned -- projects like Magic Lantern have done great things in the past, and that's despite effectively having both hands tied behind their back. We can't wait to see what can be done with a significant quantity of the actual source available, both in terms of implementing new features, and squashing the bugs that are a fact of life in firmware from every manufacturer.
For the tech heads amongst us, the source code releases are also interesting for another reason -- because they provide information on the physical design of both cameras. Courtesy of the build instructions, we now know that both cameras are based around a 32-bit ARM Cortex-A9 processor with 32KB of level one cache, 256KB of level two cache, and a NEON instruction set, running at a clock speed of 800MHz.
From the enclosed license information, we can also glean some of the open-source software used by Samsung in both cameras (the use of which likely compelled this source code release, at least in part.) Various license types cover the software Samsung used, including:
-
GPL
- Linux kernel
- LZO (Lempel–Ziv–Oberhumer real-time compression)
- DRIMe IV (Samsung's in-house image processing algorithms)
- SCIM-Tables and SCIM-Hangul (Smart Common Input Method)
- ConnMan (Connection manager)
-
LGPL
- ALSA-Lib (Advanced Linux Sound Architecture)
- Elementary (Widget toolkit)
- Libmm-sound (Audio server / library)
- SCIM (Smart Common Input Method)
- SunPinyin (Chinese input method)
- WebKit (Web browser)
- SSLeay (Cryptography)
- BigDigits (Arithmetic routines)
- MPEG-4 Audio VM Common Module
-
MIT license
- Unspecified software from Red Hat and Samsung Electronics
-
Apache license
- Unspecified software from Samsung Electronics
- LibUPnP (Universal Plug and Play)
- Enlightenment Foundation Libraries
- Liblinebreak (Line breaking algorithm)
-
Flora license
- Unspecified software
Of course, availability of the source code is no guarantee that developers will take advantage of it. The widespread adoption of certain cameras from the likes of Canon has made it attractive to developers to hack the firmware and share their efforts. With that said, by making the process of creating custom firmware simpler, Samsung has unquestionably just made its cameras more attractive to open-source fans, a fact it will be well aware of thanks to its involvement with open-source software in other product categories such as smartphones.
Does the open-source nature of the Samsung NX300 and Samsung NX2000 make them more attractive to you? Will you be modifying the firmware yourself, or are you likely to consider trying custom firmware from others? And what features would you like to see added? What do you think this means for the industry? Discuss in the comments below.
(via DPReview)