A13-OLinuXino

A13-OlinuXino-WIFI
A13-OlinuXino-MICRO


The A13 processor from Allwinner runs at 1GHz with a Mali400 GPU. It was designed for integration into tablets. Olimex has made several development board designs based around this chip. This wiki page contains information about hardware and software to help make use of these development boards.


The A13 based boards currently available are

  • A13-OLinuXino-WIFI - Recommended if your developing software for the A13 for the first time as its the only one with network connectivity.
  • A13-OLinuXino - This is the same as the WIFI version but without WIFI module and NAND flash. Note: Android requires NAND flash to run, so this board can't run Android.
  • A13-OLinuXino-MICRO - Similar to the A13-OlinuXino but with less extras

Contents

Official Images from OLIMEX

Linux

A13 Debian 4GB SD-card image release-9 with:

  • Linux Kernel 3.4.75+
  • LXDE desktop environment
  • GCC 4.6
  • dpkg
  • git
  • i2c-tools
  • perl
  • xorg
  • Python 2.7
  • vlc
  • mplayer
  • smplayer
  • iceweasel WEB browser
  • LCD and touchscreen support
  • GPIO
  • I2C
  • SPI
  • USB WIFI RTL8188CU, Ethernet AX88772B
  • Audio
  • PyA13 python module with GPIO,I2C,SPI support
  • Default Login: root/olimex


Note: the A13-OLinuXino-SD card which we have on our webshop contain same image on 4GB Class10 fast micro sd-card, if you want to use this image please use Class10 fast card or the performance of Linux will slow down

The file A13_debian_34_75_WIFI_GCC_GPIO_X_I2C_100KHz_UVC_TS_video_release_8.7z is an archive of A13_debian_34_75_WIFI_GCC_GPIO_X_I2C_100KHz_UVC_TS_video_release_8.img file.

So in order to write the image on SD card you have to unzip A13_debian_34_75_WIFI_GCC_GPIO_X_I2C_100KHz_UVC_TS_video_release_8.7z file:

For Windows use 7zip and then use Win32DiskImager.exe (http://sourceforge.net/projects/win32diskimager/) for image writing

For Linux use p7zip package. If you have no installed 7zip then type

   #apt-get install p7zip

Copy A13_debian_34_75_WIFI_GCC_GPIO_X_I2C_100KHz_UVC_TS_video_release_8.7z file in your directory and unzip it with

   #7za e A13_debian_34_75_WIFI_GCC_GPIO_X_I2C_100KHz_UVC_TS_video_release_8.7z

The output should be a new 4GB file named A13_debian_34_75_WIFI_GCC_GPIO_X_I2C_100KHz_UVC_TS_video_release_8.img Put 4GB SD card in your card reader and type

   # ls /dev/sd

Then press two times <TAB> you will see a list of your sd devices like sda sdb sdc note that some of these devices may be your hard disk so make sure you know which one is your sd card before you proceed as you can damage your HDD if you choose the wrong sd-device. You can do this by unplugging your sd card reader and identify which "sd" devices remove from the list. Once you know which device is your sdcard like sda use this text instead of the sdX name in the references below:

   #dd if=A13_debian_34_75_WIFI_GCC_GPIO_X_I2C_100KHz_UVC_TS_video_release_8.img of=/dev/sdX


The main tested onboard hardware modules are:

GPIO - they are located in /sys/class/gpio directory. Note that first you have to export GPIOs. For example: to add PB03

   root@A10:~# echo 1 > /sys/class/gpio/export

to make PB03 output

   root@A10:~# echo out > /sys/class/gpio/gpio1_pb3/direction

to make PB03 high level(3.3V)

   root@A10:~# echo 1 > /sys/class/gpio/gpio1_pb3/value

to make PB03 low level(0V)

   root@A10:~# echo 0 > /sys/class/gpio/gpio1_pb3/value

Full list with supported GPIOs is:

   gpio12_pg9  gpio1_pb3   gpio4_pe4  gpio7_pe7 
   gpio10_pe10  gpio13_pg10  gpio2_pb4   gpio5_pe5  gpio8_pe8 
   gpio11_pe11  gpio14_pg11  gpio3_pb10  gpio6_pe6  gpio9_pe9

note that:

gpio12_pg9(GPIO2/pin10) is connected to on board LED and it is multiplexed with UART3_TX and gpio13_pg10(GPIO2/pin8) is multiplexed with UART3_RX Therfore if you want to use these ports like GPIO then UART3_TX and UART3_RX will not be available.

LCD - 4.3"(480x272), 7"(800x480), 10"(1024x600)

VGA - 800x600, 1024x768

Touch_screen - you need calibrate LCD touch screen usi it. Note that by default the X environment does not start like root user. In our case the X starts with user named olimex

Therefore if you want to use the touch screen in X environment then you have to run calibrate procedure like olimex user. For example type:

   #su olimex

enter the olimex password:olimex

   #sudo ts_calibrate

calibrate the touch screen and reboot the board

   #sudo reboot

ASIX8877 USB-LAN - https://www.olimex.com/Products/OLinuXino/A13/USB-ETHERNET-AX88772B/

WEB camera A4TECH

WIFI_RTL8188 - https://www.olimex.com/Products/Modules/Ethernet/MOD-WIFI-RTL8188/

USB_OTG - low/full/high USB host

USB_HOST_up - low/full/high USB host

USB_HOST_down - low/full/high USB host

mico_SD_card

I2C2(100KHz) - /dev/i2c-2

I2C1(100KHz) - /dev/i2c-1

UART3 - /dev/ttyS1


Changing A13-OLinuxino LCD or VGA resolution :

The default SD card setup is made with settings for VGA 1024x768. If you want to change some other LCD, VGA resolution then you have to start change_display_a13.sh script file in /root directory. Type:

   ./change_display*

or

   ./change_display_A13.sh

and press "Enter".

Then you can choose the desired resolution of the desired interface(LCD or VGA). The supported resolution are:

About LCD:

  • 1. 4.3" (480x272)
  • 2. 7" (800x480)
  • 3. 10" (1024x600)

About VGA: note that the VGA signals are routed to custom 6 pin connector and you need from adapter to standart VGA connector

  • 1. 800x600
  • 2. 1024x768


A13 Debian 4GB SD-card image armel (softfloat) with: MONO complete

  • Linux Kernel 3.4.67+
  • XFCE4 desktop environment
  • Mplayer CLI
  • GCC 4.6
  • iceweasel WEB browser
  • LCD and touchscreen support
  • GPIO
  • I2C
  • SPI
  • USB WIFI RTL8188CU, Ethernet AX88772B
  • Audio
  • apache2
  • dpkg
  • git
  • i2c-tools
  • perl
  • vlc
  • xorg
  • Scratch
  • GCC
  • Python 2.7.3
  • PyA13 python module with GPIO,I2C,SPI support
  • OpenCV
  • mono-complete
  • Default Login: root/olimex


Note: Changing A13-OLinuxino VGA or LCD resolution in the above Debian image with kernel 3.4.67+

The default SD card setup is made with settings for LCD 7”(800×480). If you want to change some other LCD or VGA resolution then you have to start change_display_a13.sh script file in /root directory. Type: # ./change_display_a13.sh

and choose the desired resolution of desired interface(LCD or VGA) The supported resolution are:

LCD:

1. 4.3"(480×272)
2. 7"(800×480)
3. 10"(1024×600)

VGA:

0. 1024×768
1. 800×600

Android

A13 Android NAND image with LCD 4.3" 480x272 and touchscreen

  • Android_version - 4.0.3
  • Baseband version - 1.2
  • Kernel version 3.0.8+
  • LCD 4.3" 480x272 pixels with backlight
  • touchscreen support


A13 Android NAND image with LCD 7" 800x480 and touchscreen

  • Android_version - 4.0.3
  • Baseband version - 1.2
  • Kernel version 3.0.8+
  • LCD 7" 800x480 pixels with backlight
  • touchscreen support


A13 Android NAND image with VGA 800x600

  • Android_version - 4.0.3
  • Baseband version - 1.2
  • Kernel version 3.0.8+
  • VGA 800x600 pixels


Note: A13 Android is hardcoded with 800 pixels width maximal resolution, so VGA 1024x768 mode and LCD 10" 1024x600 pixels are not supported

A13-OLinuXino/A13-OLinuXino-WIFI Android SD-CARD image with VGA 800x600

You have to unrar the file and write the image on 4GB sd card. We recommend class 10 card. You can use dd (under linux) or Win32DiskImager.exe (under Windows) for image writing.

  • Android_version - 4.0.3
  • Baseband version - 1.2
  • Kernel version 3.0.8+
  • VGA 800x600 pixels


The default video resolution is VGA 800x600 but we offer settings for LCD_800x480 and LCD_480x272 resolution too. If you want to change the resulution then you have to find the script.bin file from sd card partitions (by default it is in partition named Volume) and replace it with script.bin file from the corresponding directory : script_a13_android_sd_VGA_800x600, script_a13_android_sd_LCD_800x480, script_a13_android_sd_LCD_480x272

HOWTOs

General

How to write image to micro SD-card? How to change LCD/VGA resolution? How to define GPIOs in FEX?

Hardware related

How to attach USB-Serial cable to console UART?

Debug with JTAG - Allwinner OpenOCD configuration files made by Henrik Nordstrom, he is using ARM-USB-TINY-H to debug u-boot.

Linux related

How to build latest official Debian release, at Olimex Wordpress

How to build Debian for A13-OLinuXino-WIFI by Marcin Twardak

Sunxi u-boot loader The linux-sunxi git page contains a lot of sources for all Olimex Allwinner boards.

How to edit my MAC address?

How to setup USB stick?

How to enable WIFI?

How to enable Ethernet?

Android related

How to compile new Android image?

How to make code to run on power up?

How to access GPIOs?

How to add PWM support? There is an article here: how to add pwm

Python

Accessing GPIOs with Python.

Working with I2C with Python.

Working with OpenCV with Python.

Scratch

Working with GPIOs with Scratch on A13-OLinuXino.

Working with I2C with Scratch on A13-OLinuXino.

Hardware

A13-OLinuXino schematic in PDF format and Eagle CAD files

A13 datasheet and user manual PDFs

A13 Registers Guide

GPIOs

UEXT

LCD

RTC

Serial connection to A13 description of how to connect a computer to the A13 board over serial cable.

Power supply

The A13-OLinuXino can be partially powered over Micro USB, but to power all peripherals, a 6+ watt DC power supply between 6 and 16 volts can be used. The connector is a positive-center 2.5mm barrel plug. There is also an on-board connector for a Li-PO battery. Important note: A13-OLinuXino-MICRO works with +5V only! If you apply more than 5V you will damage the board.

Software

Linux Commands

Linux-Commands Brief Linux Command reference


A generic wiki for the allwinner devices is here. It contains some great detailed info

Bare Metal programming - no OS

It is possible to program and debug code written directly on the chip without an OS such as linux or android.
The advantage is no kernel overhead and tighter control of the CPU operation.

Bare Metal programming A13

Using an operating system - Nand flash

The Wifi version of the A13 board comes preprogrammed with android, which is held in the Nand flash.

The image in the Nand flash can be updated using the tools found at the following links:

LiveSuit for Windows

LiveSuit for loading images

to the NAND flash; to activate A13 bootloader do as follows: run Livesuit, disconnect the power supply and USB cable, then press HOME button, apply power supply, attach USB cable and release the button, Livesuit will detect the bootloader and will ask which file to program to the NAND flash.

Prebuilt images that can be programmed into the Nand flash can be found here.

Using an operating system - SD card

The A13 board can boot from an SD card. Just plug it in an imaged uSD card and connect power.

Note: The SD card can easily be corrupted if power is removed while the system is booting or writing to system files. To avoid this do not remove power while it is booting and shut the system down properly before disconnecting power.

Prebuilt images

Some prebuilt images have been created, follow the link below for details.

Prebuilt SD card images running debian

Build your own kernel and image onto SD card

Some developers want more control over the kernel and modules that are included. The link below shows directions to build your own kernel and image it onto an SD card.

Build Bootable SD Card with Debian Step by step instructions how to make SD card image with above Kernel and U-boot

Setup and configure the installed debian image

There are several settings that can be made for a particular hardware configuration in the script file.

The following link explains the script file as well as wifi or ethernet setup and GPIO settings

Configuration of hardware in the debian image

Installing UsbVideoClass(UVC) on A13-OLinuXino board

To work with USB Video Cameras you have to enable the UVC support in the kernel. The link below explains how to do it.

UVC support

Setup VLC player for video streaming on A13-OLinuXino board

To setup video streaming you should first have installed UVC support so you can connect USB cameras to A13-OLinuXino.

VLC streaming

Creating a program to run on the A13-OlinuXino board

Programming for A13 in debian Step by step instructions to make your first hello world program run on the A13 board running debian.

Software links

Tools to hack A13-OLinuXino

Installing Xfce4 graphical interface on Debian How to install XFCE4 on A13-OLinuXino

A13-SDK Android 4.0.3 ICS

A13-SDK contain everything you need to build Android ACS 4.0.3 NAND image for A13-OLinuXino-WIFI. Both mirrors contain same image a13.tar.gz which you should unpack and follow the instructions inside. Builds on Debian 64bit as on Ubuntu have some problems with Java which we never managed to solve.

Mega upload mirror

Gdrive mirror

A13-SDK Android 4.1 JB

This is version 1.5 of A13-SDK which builds Android 4.1 Jelly Beans image. It works slower than 4.0.3 and we personally do not see any advantage to use 4.1 vs 4.0.3

Andreas Auer kindly offered to host this 4GB image

Projects

Projects people from the olinuxino community are working on or have finished and how they did it.

LINUX:
Build Bootable SD Card with Debian Run Debian and u-boot, Step by step instructions how to make SD card image.
Prebuilt SD card images running debian

Booting Linux for less than 1 second optimization made by Miroslav Bendik.

Change GPIOs using scripts in linux

A13 OLinuXino fast GPIO with /dev/mem now achieve up to 2 Mhz toggle

A13 kernel module for direct support of UEXT MOD-IO board, adding ADC, relays etc, cool project can be used as reference how to make your own kernel modules

Instructions how to run MOD-BT with A13-OLinuXino

Customer project of A13-OLinuXino communication via SPI with MOD-MRF89-868

A13-Olinuxino-WIFI and opencv face detection

Controlling Relays, Switching ON/OFF of 220V appliances and home automation

Door security logger, image capture

GPS logger with google maps viewer, MOD-GPS module on UEXT

Web server with MOD-RGB controlling RGB LED strip

ANDROID:
Interface MOD-IO board with I2C under Android

Run old games on android mame4droid

No OS
Bare Metal programming A13 Programming directly for the chip without an OS

FreedomBox:
FreedomBox/UniLeipzigPractical is the documentation of a freedom box related practical course at the AKSW Research Group at the University of Leipzig

List of Contributors

Henrik Nordstrom - a.k.a. hno, uboot for A13 development, A1X guru, Linux-Sunxi maintainer

Dimitar Gamishev - a.k.a. HEHOPMAJIEH, Linux kernel configuration for OLinuXino, Android images, LCD touchscreen

Alexandro Mery - a.k.a. mnemoc, Linux-Sunxi maintainer

Davide Fabbri - Linaro kernel and lubuntu image

Scott Anderson - A13 wiki maintainer

Jeffrey Wischkaemper - a.k.a. jwischka, A13-OLinuXino Debian image with X

Maxime Ripard - ARM Linux patches

Jason Plum - Arch Linux support

Main_Page