A20-SOM-4GB NAND Flash Android image




We completed Android NAND Flash image for A20-SOM which features the camera and other features like Gigabit Ethernet, etc.

A10-OLinuXino-LIME-4GB Android preliminary image


We completed A10-OLinuXino-LIME-4GB preliminary Android image.

The DDR3 is clocked at 480Mhz, RTL8188 and Ralink RT5730 WIFI adapters are supported.

A10-OLinuXino-LIME Wiki page is updated with the new image too.

Android for LIME image is released


It took us a long time to release this image as CedarX was broken in the oficial SDK and all images we build with it had non working video. Finally we received patch from Allwinner and oh miracle CedarX start working correctly 🙂

The image can be downloaded from here

How to build description will follow next week when we return from Embedded World.

How To Build Android 4.2.2 for A20-OLinuXino-MICRO from scratch


First you have to download the Allwinner SDK 2.0 with Linux Kernel 3.4 from dl.linux-sunxi.org.

Here is the direct link

Then you need to setup your environment as explained here

Then Build the kernel, kernel modules and u-boot

   cd lichee
   ./build.sh -psun7i_android

When done, continue with Bulding the android image:

   cd ../android4.2
   cd device/softwinner/
   tar zxfv olinuxino-a20.tgz
   cd ../../
   source build/envsetup.sh
   lunch #select olinuxino-a20_eng
   make -j4

At this point you have the same Android 4.2.2 .img like the one which is on our wiki and you can program it to your board with Phoenix Suite!

How to correctly power off OLinuXino running Android


OLinuXino boards now are used at many different places and environments. Few days ago we got call from customer who is using A13-OLinuXino-WIFI in industrial applications and have installations all around the world including China 🙂 His industrial controller is running on Android and his problem is that randomly from time to time the Android NAND image gets corrupted. We also have noticed on our forum posts that some boards have NAND flash corrupted and need to be re-flashed. Usually we blame for the NAND corruption the cheap power supplies used, but this customer assured me that he is using very good, industrial power supply with all noise protections etc.

With our engineers we decided to do some extensively tests on this subject and here are the results:

1. It’s very important the power supply to stay ON uninterrupted while Android boots, for freshly programmed image this may take SEVERAL minutes as obviously when run for very first time Android creates lot of files and buffers.

After the first boot the Android usually starts faster for less than minute after you apply power supply (and it is not put in mode for start with POWER key).

What we found is that if the power supply is interrupted while Android boots it almost 100% sure that NAND will be corrupted. In 9 of 10 times when we power off board while boots NAND gets corrupted.

This is usually critical part for non-patient and non-experienced users I guess, they plug TV and power supply and wait few seconds – nothing happen on the TV and they power off the board – now already NAND is corrupted!

2. After Android boot is complete and power is switched off, there is rare but still chance to kill your NAND content. We try and out of 1 of 50 switch ON/OFF NAND will be corrupted, what we guess is that Android even after boot from time to time write files to NAND file system and if you hit such time slot to power off your board your NAND will be corrupted.

OK we start thinking how to avoid this, first we though it would be clever to add brown-out protection circuit which to disable NAND write (Write Protect) when glitch on power supply is detected.

Unfortunately (and logically) this made things even worse, now even when you plug USB device or when you enable/disable LCD backlight small glitch on the power supply disables the NAND write, but the processor is working and what happens when processor is running and try to write file while NAND is disabled – MESS!

Reading our forum we saw suggestion how correctly to power off Android device, using this command sequence:

$ sync
$ reboot -p

and cut power after these commands execution finish, we didn’t manage to corrupt the NAND flash even after hundreds of power on/off cycles this way.

The conclusion, the one and only correct way to power OFF OLinuxino running Android/Linux is by executing above commands and after them to cut power off, otherwise there is always chance processor to start write to file system and if power is cut at this point NAND Flash will be corrupted.

Experiments with SD cards show that they are much more reliable to such power interruptions. Probably because they have their own internal Flash write controller.

A10-OLinuXino-LIME GPIO description


A10-OLinuXino-LIME Wiki page is updated https://www.olimex.com/wiki/A10-OLinuXino-LIME

GPIO connectors description is made in PDF format.

Android 4.2.2 images for A20-OLinuXino running from SD-card is updated on wiki


Android 4.2.2 now is available on SD card for A20-OLinuXino.

Runnning Android from SD card is about 2-3 times slower than from NAND but for these who choose A20-OLinuXino without NAND this is the only way they can run Android on this board.

Two images are build one for 7″ LCD and one for 10″ LCD https://www.olimex.com/wiki/A20-OLinuXino-MICRO#Android

To write the images on the SD card you will need PhoenixSuit and to follow these steps:

  • Install and run PhoenixSuit.
  • Go to firmware tab of the program and point to a valid Android image (note that the images on Gdrive are compressed you have to uncompress them to .img files to may write them with PhoenixSuit
  • Disconnect the power supply and USB cable from the A20 board. Put a SD card in micro SD holder. We recommend 4GB class 10 card.
  • Press and hold RECOVERY button, apply power supply (6-16)V, release RECOVERY button.
  • Connect USB cable to the mini USB connector.
  • You will be asked for drivers for the boot-loader. Navigate to the folder where you extracted the PhoenixSuit and install the drivers from the respective executables (or manually point the installer to the drivers folder in the PhoenixSuit installation path).
  • PhoenixSuit will detect the board and would ask for the method of writing the image. Choose method of writing the image and confirm your wish to write the image.
  • Wait till upgrade succeeds

Note that it is not recommended to have your mini USB connected to an external USB hub. This might cause delays and might distort the signal levels. Always test with the USB connected straight to the USB ports of your computer.


Important: When Android runs for very first time it takes several minutes to initialize all files and buffers please do not cut power supply during this process! Also when fresh image is installed fast boot is disabled, this means that when you apply power supply after few seconds Android will go in sleep mode and you have to press POWER button to start it, you can change to fast boot when you power off there is dialog box asking you if you want next boot to be fast boot, you have to check this box before you power off. Also note that you must do touch screen calibration when you run Android for very first time.

Allwinner do not develop new SDKs for A10S


While their Android SDKs for A10/A20 and A13 are now updated to 4.2.2 Allwinner didn’t made new SDK for A10S since February stopping at Android 4.0.4 and Linux Kernel 3.0.8

Also the price of A10S now is risen above the price of their A10 (which have much more hardware features like SATA etc.).

This seems a good sign that Allwinner do not want to put more efforts on further Android development for A10S and want to move the customers to use A13/A10/A20 in their new designs.

They didn’t gave us any notice that they will stop A10S production, so A10S will be available for purchase, but they just do not release newer Android versions and Linux Kernels for this SoC, and with the price rise they will move all new project in the right for them direction.

Android, PIC32-PINGUINO-OTG and Pure Data project


Roberto Becerra submitted to our Project section his project with Android and PIC32-PINGUINO-OTG.

With the Android app he wrote he have access to all features PIC32-PINGUINO offers: Digital output, inputs, Analog inputs etc.

New A20 Android 4.2.2 image now supports all A20-OLinuXino-MICRO hardware features


We received A20-SDK2.0 from Allwinner few weeks ago and were working to generate image for A20-OLinuXino but our aim was to add support to all hardware features the board offers. The process was pretty slow as the compilation is very heavy and even small change requires hours of waiting the image generation to complete.

Now we are ready, the only two features left unsupported are the SATA and second SD-MMC card on the bottom but we think that we should give it a break for a while or our heads will explode 🙂

Two images are uploaded on Wiki: one for 7″LCD and one for 10″LCD, the good news is that the Android 4.2.2 with SDK2.0 now support higher resolution as previous SDK for ICS 4.0.3 had hardcoded 800×600 max resolution which made 10″LCD and HDMI useless.

The image have:

  • LCD and HDMI support at same time
  • Touchscreen support
  • GPIO support – we prepare Android application demo code which show how you can access and use GPIOs under Android
  • I2C1 and I2C2 support – we prepare Android application demo code which show how you can access and use I2C under Android
  • 100Mbit Ethernet
  • USB-Ethernet AX88772
  • USB WiFi RTL8188
  • microSD
  • Audio Out, Audio In
  • USB-OTG device and host with Low/Full/High speed
  • USB HOST upper and bottom with Low/Full/High speed
  • UART6 and UART7 support on UEXT connectors  – we prepare Android application demo code which show how you can access and use UART6,7 under Android
  • Buttons

Previous Older Entries Next Newer Entries