At the OSCON open source convention in Portland last week, Neuros CEO Joe Born explained how Linux-based embedded devices will bring open source to the set-top market and the consumer electronics space. He also demonstrated how to build applications for the Neuros OSD, his company’s programmable DVR product.
We looked at Neuros last year when the company teamed up with TI to build an open source reference platform for TI’s DaVinci DSP hardware. Neuros is building a community around the platform and has sponsored bounties to encourage third-party developers to participate in the process.
In our recent post-mortem of the HTPC concept, we noted that specialized set-top boxes are rapidly ascending to a position of dominance in the living room. HTPC systems can’t compete with media devices that are smaller, less costly, and more energy-efficient. Neuros aims to offer a product and platform that can fill the set-top niche in an open and extensible way.
“The conventional view of convergence has largely been surrounding PCs,” said Born. “But if you take a step back, you see a lot of things that PC isn’t the answer for. Embedded devices still remain cheaper.”
The growing ubiquity of Internet-enabled always-on consumer electronics products will change the way that people use technology, Born contends. He believes this trend will create new opportunities for building an ecosystem of services and applications that are accessible to such devices. He also notes that the high level of fragmentation that currently plagues this market has created a space where open source software can achieve some traction. Software freedom will come to the masses through embedded devices, he says, not desktop computers.
The software stack
There is a lot more to the project than ideology, however. The Neuros software platform is pretty darn cool. It’s built on version 2.6.26 of the Linux kernel and uses VLC for its multimedia capabilities (more details about the VLC port are available at the Neuros open source blog). Neuros has legally licensed the codecs, so it can handle a variety of common proprietary formats. The middleware stack developed by Neuros is distributed under the GPL.
Support for third-party application and service integration is extensive. The platform offers a D-Bus interface for controlling media playback and has a full API for managing scheduled recording. Neuros applications can be developed with Trolltech’s Qt toolkit, which means that there is a clean glide-path for porting software from the desktop. During the presentation, Born showed how to use the Qt graphical interface designer on a laptop running Ubuntu to build a program, which he then cross-compiled and ran directly on the Neuros. The Neuros SDK provides a set of scripts that hide much of the complexity of cross-compilation, so the whole process was impressively seamless.
For developers who prefer a higher-level development path (I personally prefer to avoid C++ whenever possible), the Neuros platform will support scripting in several different ways. The current model of the OSD supports scripting with Lua, and the next-generation model will add Python with full Qt bindings. For an even lighter development solution, the platform provides a framework for writing simple applications with web technologies. This runs on top of an integrated WebKit HTML renderer which is also used for the Neuros browser.
It will also be possible to replace the default Neuros software stack with something completely different. Developers can use the Neuros OSD boxes as testbeds for building new platforms. Born hopes that users can eventually choose from a wide range of third-party stacks that offer a multitude of different capabilities.
For instance, it could eventually be possible to port other preintegrated media center solutions such as MythTV or XBMC so that they can run on the device. Nokia’s recently-sponsored Ubuntu ARM port is another potential candidate for clever hackers who want to repurpose the OSD. We have seen a lot of awesome stuff ported to ARM devices by members of the great Internet Tablet community (such as Penguinbait), so it’s likely we will see lots of action around the OSD, too.
There is already a very real community forming around the device and it has some nice features, such as Last.fm integration and the Neuros web browser, that have been implemented by volunteer contributors and Google Summer of Code participants.
I’m enthusiastic about the whole Neuros concept. I own the current model of the OSD and I’m really looking forward to the release of the next-generation product, which supports 720p and is housed in a mini-itx case. Born says that the 2.0 prototype units will be available for LinuxWorld, which is coming up next month.