When Bunnie Huang first announced the Novena laptop back in December 2012 it was like an early Christmas present to hackers the world over. This was true even though there was only a suggestion that, given sufficient demand, a limited number maybe made available.
The idea of a laptop that is as open as practically possible and which packs sufficient compute power and capabilities to be used as a primary machine, has long been the dream of many an open source advocate. However, while an open source-friendly processor and peripheral silicon (that has documentation available without NDA) exists, integrating it – designing complex boards that carry high-speed signals and writing firmware, etc. – is not for the faint hearted. It may be business-as-usual for vendors, but they don’t tend to publish all the hardware design files and firmware source code.
Earlier this month the dream of a fully open source laptop took one step closer to becoming a reality with the launch of the Novena crowd-funding campaign. In the Myriad-RF project we’d been keenly following Novena developments for some time, and the campaign is all it took to convince us that we should adapt one of our SDR transceiver designs to enable use with the platform. And I’m happy to report that we were able to! But first, let’s take a closer look at Novena.
A hackable open hardware computing platform
The key specifications for the Novena’s main PCB assembly are:
-
Quad-core ARM Cortex A9 CPU with NEON FPU @ 1.2 GHZ
-
64-bit, DDR3-1066 SO-DIMM slot
-
SATA-II (3Gbps)
-
Mini PCI-express slot, and UIM slot to enable mobile data card support
-
Dual-channel LVDS LCD connector with USB 2.0 side-channel for a display camera, plus resistive touchscreen controller
-
Stereo 1.1W 8 ohm speaker connectors and optional digital microphone
-
3-axis accelerometer
-
3x internal UART ports
-
1x Gbit Ethernet port plus 1x 100Mbit Ethernet
-
2x USB 2.0 plus USB OTG
-
Spartan-6 FPGA and high-speed I/O expansion header.
Novena is more than just an open hardware laptop; it’s designed from the outset to be a flexible compute platform that can be configured for a variety of uses and which is easily expandable.
Backers of the campaign can pledge for the main board alone and use it to build a network appliance, as the basis for a computing device of their own design, or embed it in some other project. The All-in-One Desktop pledge level adds a hacker-friendly case and LCD, while the Laptop level builds on this to add a battery controller board and SSD. Finally, the top tier Heirloom Laptop is packaged in a hand-crafted wood and aluminium case.
Of course, the real fun to be had is in extending the platform and this is where Novena comes into its own. In use the laptop case is opened via a slide latch and gas spring, simultaneously positioning the screen for viewing while providing clear access to the internals. One of the first things you notice is that there is plenty of space and an array of mounting holes inside the case, which is to accommodate optional, third party and user designed peripherals and components. Where these require external ports this can be accommodated by a replaceable side panel called the “port farm.”
For simple expansion USB can be overkill, while for certain more advanced applications it may introduce a bottleneck or present certain challenges. This is where the high-speed expansion header comes in, which provides plenty of general purpose I/O (GPIO), alongside an FPGA which has interfaces to the CPU that run at up to 2 Gbit/s. Within the Myriad-RF project this in particular piqued our interest, as it meant that it should be trivial to interface a software-defined radio (SDR) transceiver which is attached to the header and with “glue logic” implemented in the FPGA.
Before I get on to the Novena RF module, a quick introduction to Myriad-RF.
Democratising wireless innovation
Founded in 2013, the aim of Myriad-RFis to make wireless innovation accessible to as many people as possible, by providing a family of complementary open source hardware designs that can be used to develop new wireless applications and prototype new hardware platforms.
Our first design, the Myriad-RF 1, is an RF module that can be used on any frequency between 300 MHz and 3.8 GHz, with bandwidths of 0.75 to 14 MHz, which has one transmit and one receive port and with a digital interface for configuration and transferring data. This is neither an end user product or a standalone design. Instead it is intended to be embedded in other designs. The benefit being that this takes care of the trickier or more specialist RF design and manufacture aspects, leaving implementers to focus on digital design and developing software.
The Myriad-RF 1 is complemented by an interface which enables use with a DE0-Nano FPGA development system, and a new board which allows use with any system that has an FMC or HSMC header, such as the ZedBoard. Other projects include the A2300 MIMO platform which is designed for communications, position and timing applications, and the currently incubating RASDR project which is building a high performance, low cost radio astronomy receiver.
An RF module for Novena
Since the design files for Novena were freely available we were able to quickly ascertain the effort involved in creating a compatible version of the Myriad-RF 1 module. By pure coincidence and much to our delight, it turned out that Novena and the module use precisely the same Hirose FX10-80P/8 connector; although not pin-compatible, achieving this was simply a matter of re-routing traces. We also added an on-board crystal oscillator and swapped the TX and RX SMA connectors for more compact U.FL ones, which can then be cabled to panel mounted SMA connectors.
The RF module uses a field-programmable RF (FPRF) IC, the LMS6002D, which has extensive configuration options for things such as PLLs, filters and amplifiers. Programming and calibration of this is carried out via the SPI bus, and there is a wxWidgets-based utility that provides a user-friendly interface for configuring the transceiver during calibration and debugging etc.
Further development work remains to be done, but this is mostly a matter of writing the HDL for the “glue logic” to be implemented in the Novena’s FPGA, along with a Linux device driver.
Applications
Typical SDR applications which could be supported by Novena plus the RF module include:
-
GSM base station
-
Amateur radio transceiver
-
Spectrum analyser
-
Global navigation system
-
Aircraft transponder receiver.
Open source implementations of all the above exist now, along with many other applications and the ability to rapidly develop new ones thanks to GNU Radio. There are even numerous efforts underway to develop open source implementation of LTE (4G mobile), such as libLTE.
Stretch target
At present the Novena/Myriad-RF module is little more than a design, the bill of materials, CAD and manufacturing files for which can be found on GitHub. However, when we showed this to Bunnie he was just as excited as we were and the module has now been added to the crowdfunding campaign as a stretch target: if $500,000 is raised or there more than 200 backers in total pledge for the Desktop, Laptop and Heirloom versions, each of those backers will also receive an RF module.
Due to the nature of the board and setup costs for assembly and testing, 200 is the minimum volume at which it’s viable to produce — and this is also after pulling some strings and favourable pricing from suppliers.
We’ve now got our fingers (and toes!) crossed that one of the stretch targets is met, we’re able to put the RF module into manufacture and they’re included in the rewards for the top 3 tiers. However, all is not lost if that does not turn out to be the case, since the hardware design is done and we can reassess demand later in the year once the rewards ship and Novena goes into general availability.
Andrew Back is the Myriad-RF Community Manager.