Skip to content

Getting Started with the Helium reference platform

Michael Scott edited this page Nov 25, 2015 · 4 revisions

About the Helium Board

The 96Boards Helium platform is based on the 64-bit ARMADA® Mobile PXA1928 SoC by Marvell. On board is 2GB RAM, 8GB internal eMMC, a TI WLAN/BT connectivity chip, 1x OTG and 2x host USB ports and other standard 96Boards features such has high and low speed expansion headers for UART, DSI and HSIC. An external power supply will be provided along with the Helium boards.

Connectors

Helium boards come with the following connectors

HDMI Port

At present the HDMI port is only supported up to 720p display. We expect a future software update to support 1080p and more alternate video modes for the display.

USB Ports

There are multiple USB ports on the Helium board:

  • One micro USB OTG port on the front edge of the board
  • Two Type A USB 2.0 host ports on the front edge of the board
  • One USB 2.0 host port on the high-speed expansion bus

UART Ports

The 96Boards UARTs are mapped as follows. They are configured at 115200 baud by default. The kernel console defaults to /dev/ttyS3.

Board UART location			Linux tty device
-------------------			----------------
Debug 2x2 2mm header UART	/dev/ttyS0
Bluetooth UART				/dev/ttyS1
LS Expansion UART1			/dev/ttyS2
LS Expansion UART2			/dev/ttyS3
  • Note that the LS expansion port I/O pins on the 96-Boards 2mm header, including the UART signals, are at 1.8V levels.

Known Issues

The following are known software issues on the current Android 5.1 release.

  • Not Yet Supported
    • HDMI and Expansion bus audio.
    • WiFi & Bluetooth wireless interfaces.
    • Hardware accelerated codecs for playing media files are not supplied by Marvell. The default Google software codecs must be used.
  • Partially Supported
    • HDMI video is displayed up to 720p
    • Unique Serial ID
      • Support for a serial id is missing in u-boot. This causes the fastboot devices command to return "????????????".
    • Need better UMS support
      • Need to allow for setting fs-types for better UMS support. Can't mount with usb mass storage gadget.

Pre-Installation setup

Before you start installing the MDK release on your Helium Board, it is important have your host machine ready with all the necessary software required to work with Helium and SDB. To get started, you will need an external power supply and a USB keyboard.

Power Supply

The Helium board requires an external power supply providing 12V at 2A. (The board will also work with 9V or 15V power supplies). It is not possible to power the board from a USB power supply because the board can use more power than is available from a standard USB power supply. The Helium board uses a standard DC barrel jack with a 1.7mm barrel, center pin positive. An adapter cable is required to use power supplies with 2.1mm barrel jacks. If you didn’t get a power supply for helium with the development kit, suggested power solutions and adapters can be found here.

Required packages

Ensure that minicom, fastboot and adb are installed on your host system:

$ sudo apt-get install minicom
$ sudo apt-get install android-tools-fastboot
$ sudo apt-get install android-tools-adb

J15 Jumper Configurations

A standard user will want pins 1-2 connected and leave the others open unless needed.

Connected Pin Functions

PINS 1-2: Auto-power up when power the power connector is inserted into the barrel jack. If link 1-2 is not closed, it will be necessary to power press the power button on the long side of the board near the barrel jack to get the board to boot.

PINS 3-4: PXA1928 SoC internal ROM to start up in bootROM USB download mode which will allow installing a supplied bootloader over the microUSB OTG port into eMMC.

PINS 5-6: Force boot into fastboot mode (used for flashing partitions).

Powering up the Board

If Link 1-2 is not installed then the back edge push button switch near the power jack is used to power on the Helium board. Make sure a cable is NOT connected between the front side microUSB port (next to the HDMI port) and a PC as this will cause the board to start up in fastboot mode.

Connecting to a UART Console

The console comes up to UART1 on the Low Speed Expansion Connector. A small mezzanine UART-USB card is available to enable direct connection to a PC (Linaro’s “Sonic Screwdriver”). Alternatively you can use an FTDI cable configured for 1.8V operation terminated in wires and directly connect the UART Tx, Rx and GND wires to pins 1, 11 and 13 on the 96Boards low speed expansion header. Connect the UART-USB card microUSB port or FTDI cable to your PC and start up a terminal program (e.g. minicom). Configure the PC serial port to be 115200 baud, 8 data bits, 1 stop bit, and no parity bit, disable flow control.

Sonic Screwdriver (Console Debug Board) Installation

If you are using a Linaro “Sonic Screwdriver” debug board please make sure it is installed as pictured below. J1 pin selection should be set to UART1. Note that the back edge of the device (where DC is connected) should be flush with the back edge of the debug board (side with Micro USB connector).

You can cause damage to your device OR the debug board by installing backwards!

Example Console Output

U-Boot 2015.07-gaa0691b (Aug 28 2015 - 11:19:22 -0700)

I2C:   ready
DRAM:  2 GiB
MMC:   mv_sdh: 0, mv_sdh: 1
In:    eserial2
Out:   eserial2
Err:   eserial2
Net:   usb_ether
Error: usb_ether address not set.

Hit any key to stop autoboot:  0

Configuring fastboot

Your host may need to be configured for fastboot, if you have never installed it before. If you already have fastboot configured, please double check that you have the lines below in /etc/udev/rules.d/51-android.rules under “Add Marvell & Fastboot Vendor ID/Product ID information to udev rules”

Installing Fastboot on a Linux PC

Use the following commands to install fastboot on your Linux PC

$ sudo apt-get install android-tools-fastboot   # On Debian/Ubuntu
$ sudo yum install android-tools                # On Fedora
$ sudo pacman -S android-tools                  # On Arch

Add Marvell Vendor ID/Product ID information to udev rules

Either create the file: /etc/udev/rules.d/51-android.rules with the following content, or append the content to the file if it already exists. You will need to have superuser privileges to create and/or edit the file.

$ sudo vi /etc/udev/rules.d/51-android.rules
# or
$ sudo gedit /etc/udev/rules.d/51-android.rules

Add the following to the file:

# USB download gadget on Marvell PXA1928 Helium
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", GROUP="dialout"
# Ethernet gadget on Marvell PXA1928 Helium
SUBSYSTEM=="usb", ATTR{idVendor}=="0525", ATTR{idProduct}=="a4a1", MODE="0600", GROUP="dialout"
# TD2 on Marvell PXA1928 Helium
SUBSYSTEM=="usb", ATTR{idVendor}=="1286", ATTR{idProduct}=="8165", MODE="0600", GROUP="dialout"

How to place Helium board into fastboot mode

The Helium board can be placed into "fastboot" mode in several ways.

  1. connect J15 pin 5-6
  2. via serial console during boot
  3. via serial console after boot (Android OS)
  4. via Android Debug Bridge (adb) after boot (Android OS)

Each method is described below depending on the device's power state and ability to use a serial console.

*NOTE: Fastboot protocol will require a USB connection from your host to the micro USB port on Helium.

Fastboot Entry Method 1: connect J15 pin 5-6

  1. Find J15 on the “top” view of the Helium board. Connect pins 5 and 6 with a jumper.
  2. Power on the device normally
  3. After about 5 seconds the device will automatically enter fastboot mode

Fastboot Entry Method 2: via serial console during boot

  1. Confirm that you have serial console by following the instructions in the section “Connecting to a UART Console”

  2. Power on the device normally

  3. Interrupt the autoboot delay when “Hit any key to stop autoboot:” is displayed by pressing enter in your serial terminal.

  4. Once interrupted you should see a prompt

    =>

  5. Use the "fastboot" u-boot command to place the device into fastboot mode

    => fastboot

  6. Nothing is output on console when device enters fastboot mode. The cursor will drop down 1 line and stay there without re-printing “=>” prompt.

Fastboot Entry Method 3: via serial console after boot (Android OS)

  1. Confirm that you have serial console by following the instructions in the section “Connecting to a UART Console”

  2. When you hit enter in your serial terminal you should see a prompt

    shell@helium:/ $

  3. Use the “reboot bootloader” command to restart the device in fastboot mode

    shell@helium:/ $ reboot bootloader

Fastboot Entry Method 4: via Android Debug Bridge (adb) after boot (Android OS)

  1. Confirm that you have a Micro USB cord connected from the Helium device to your host machine and that the device is showing up in the “adb devices” list.

  2. Use the following command on your host in a command shell to reboot the device into fastboot mode

    $ adb reboot bootloader

Software Installation

Software installation for Helium boards is a four step process

  1. Release Software Download
  2. Boot Helium in “fastboot” mode
  3. Install Bootloader
  4. Install Android

Step 1 : Release Software Download

Download and save the release software images from here. The following table describes the images found in the release package

Image Name			Description
----------			-----------
u-boot.bin			Helium Bootloader
pxa19280-helium.dtb	Helium Device Tree Blob
boot.img			Helium Kernel and RAM Disk
system.img			Helium Android /system Filesystem
userdata.img		Helium Android /data Filesystem
cache.img			Helium Android /cache Filesystem
vendor.img			Helium Android /vendor Filesystem

Step 2 : Boot Helium in “fastboot” mode

See “How to place Helium board into fastboot mode” section and use any one of the 4 listed methods to place your helium board in fastboot mode.

Step 3 : Install Bootloader

  1. Locate the u-boot.bin file downloaded with the release

  2. Confirm that fastboot has been installed / configured on your host machine per the section: “Configuring fastboot”

  3. Confirm your host machine has detected Helium in fastboot mode

    $ sudo fastboot devices
    ???????????????? fastboot
    
  4. Use the following commands on your host from a command shell to update.

    $ cd <location where you saved uboot.bin>
    $ sudo fastboot flash bootloader u-boot.bin
    $ sudo fastboot reboot-bootloader
    
  5. Make sure that the method you are using to enter fastboot still works and that you re-enter fastboot mode. Then, reset the MMC partition table with the following commands:

    $ sudo fastboot oem format
    $ sudo fastboot reboot-bootloader
    

Step 4 : Install Android

Reboot Helium in fastboot mode (already done at the end of “Step 3”) and run following commands from your host machine connected to Helium.

$ sudo fastboot flash boot boot.img
$ sudo fastboot flash dtb pxa1928-helium.dtb
$ sudo fastboot flash cache cache.img
$ sudo fastboot flash system system.img
$ sudo fastboot flash userdata userdata.img
$ sudo fastboot flash vendor vendor.img