Novena Main Page

From Studio Kousagi Wiki
Jump to: navigation, search

Novena is an open hardware and F/OSS-friendly computing platform.

If you are interested in buying one, you may pre-order one at crowd supply.

Real-time updates and announcements can be tracked by following @novenakosagi on twitter.

Alpha evaluators: Please visit Using Novena PVT1 for more info.



More photos: Novena PVT Hardware Photos



Items marked with an asterisk (*) require a closed-source firmware blob, but the system is functional and bootable without the blob.

Keep an eye on bunnie's blog for updates and notes. You can also discuss at the forum.

Power characteristics

Novena ought to be able to enter a low-power suspend mode, and resume it quickly. Novena power characterization.

Battery board

More photos: Novena PVT Hardware Photos

Battery management functions are implemented in an optional daughtercard.


eDP Adapter

More photos: Novena PVT Hardware Photos

Novena natively supports a dual-channel LVDS interface for LCDs. However, today's LCD panels are migrating to an eDP-style interface. To bridge this gap, there is the eDP adapter board.


Note to viewers: total power is cell power + backlight power. Cell power is just the power required to flip the LCD elements, not inclusive of backlight.

In addition, there is a custom flex cable that goes between the Novena mainboard and the eDP adapter. It's designed to handle the power requirements of the LCD, as well as manage signal integrity at high data rates.

Hardware Design Source

Please see Novena PVT Design Source for electronic CAD.

Please see Novena Mechanical CAD for mechanical CAD.


The SD image that is installed on Novenas that ship is a disk image with a shrunken ext4 partition. To use the disk image, dd it onto an SD card, then resize the third partition to extend to the entire card. The factory imaging process performs these steps:

  1. dd the image to the card
  2. use fdisk to delete the third partition, then recreate it using defaults
  3. use fsck to check the partition
  4. use resize2fs to enlarge the partition

The disk image is available at It has the following sums:

SHA256: 26d368cb4b3aa43e411703f8c659d3e229deacfe75af38c1f82489dd9af80dbb
MD5: 6923a145cbdc75b420408fc2d09ba4f8
     Version: GnuPG v1
     -----END PGP SIGNATURE-----


U-boot is the current factory-default bootloader. Please see U-boot PVT Notes.

Most boot files, including the kernel and device tree, are located on the first partition. This partition is formatted VFAT, and is referred to as the "boot partition".

The loader is two-stage. The first stage is about 40k, and is responsible for initializing DDR3 RAM and loading the second stage from disk. The second stage is responsible for initializing the rest of the board, loading Linux, and jumping to it.

The first stage, called SPL (secondary program loader), lives outside of any partition at 1024 bytes from the start of the disk. A copy of the SPL is stored on the boot partition, and is called u-boot.spl. A script is provided to install a new SPL, called novena-install-spl(8).

The second stage is also located on the boot partition, and is called u-boot.img. This file is loaded by the SPL. It contains a baked-in script that loads the correct device tree file, parses the Novena/EEPROM, prunes the device tree as necessary, then jumps to the kernel. If the user button is held down, then the bootloader waits several seconds for the user to press Control-C on the serial console, and if nothing happens then it boots the recovery kernel.

The bootloader loads "zimage" from the boot partition, and pairs it with "novena.dtb". If booting into recovery, it will load "zimage.recovery" and "novena.recovery.dtb".

If the *rootfs_ssd* flag is set in the EEPROM, then the root parameter is set to **PARTUUID=4e6f7653-03**. If the *rootfs_ssd* flag is not set, or if booting into recovery mode, then the root parameter is set to **PARTUUID=4e6f764d-03**. This means that you should set your disk up such that the root partition is partition 3 (i.e. /dev/sda3), and set your disk ID correctly. To set the diskid, run fdisk on the disk, then go into Expert mode ('x'), then Change ID ('i').

Linux OS


Novena uses the stock Linux kernel with few patches. Any patches that might be useful to other projects (such as PCIe or ES8328 audio codec) are being submitted upstream.

The 2D/3D/Vector unit requires its own driver, which is available in source form on Github. Different userspace drivers require different kernel modules, so be sure to check out the branch that corresponds with your driver version.

The git repo for the cutting edge linux that we're working on is at:

Make sure you switch to the desired branch, e.g. 3.14-rc4 etc.

Those doing GPIO hacking with linux may be interested in the Definitive GPIO guide for the i.MX6.


Debian is the factory-default distribution, but of course anyone can put their favorite distro on the system.

Quickstart gide on building and initializing a bootable Debian image:

The following Debian packages are available:

For more in-depth discussions on Debian and other notes, along with historical methods, please refer to these pages:

Dual Core Variant

Novena's base design works with the i.MX6DL. However, it does require some firmware changes. Notably, the bootloader is significantly different because there is much less SRAM to run from for setting things up. Also, the pinmuxes are different, so that issue has to be addressed in the device tree. See Novena/Dual Core for notes on this configuration.


Once you get Novena running, there are a few tweaks that you might have to make to the software to get it to run. Not all software likes running on Linux on anything other than x86/x64. Others just require software fixes to work around kernel bugs that we haven't fixed yet.

Please see Novena Software for more information.

Software projects

While Novena tries to be standard, it nevertheless has some platform-specific software projects that are necessary to take advantage of its unique hardware.

novena-eeprom: Command-line editor for the onboard EEPROM

novena-usb-hub: Manage the power status of each of the onboard USB hub's ports

Future software projects

novena-eeprom-gui: Graphical viewer/editor to inspect the onboard EEPROM

senoko-manager: Graphical manager for Senoko battery board

senoko-programmer: Firmware updater for Senoko battery board

User Guides

Note: you probably want to install libi2c-dev if you're going to compile the novena configuration tools, we forgot to include it in the base image.

GPBB User Guide: The on-ramp to hardware hacking on Novena.

Mainboard User Guide (thanks to Bryan Newbold for starting that one!)

Desktop User Guide

Laptop User Guide

FPGA getting started: To get started on programming the FPGA

More Pages

Getting started

Hardware Tech notes

Because I can't remember all those damn command lines


Shuttleworth Flash Grant

bunnie is a recipient of a 2014 Shuttleworth Flash Grant!

He will be using the grant money to further development of the Novena open hardware platform and to help grow the community around it.


Personal tools