Porting Android OS onto an Altera Board

1. Introduction

In this project, the objective was to port Android OS onto the Altera board and run it successfully. This was a two-phased implementation approach. In the first phase, the Android Open Source Project (AOSP) was cloned and compiled for the Intel Atom processor E3845 on the Altera development board. The second phase involved getting Android up and running by following the instructions provided in the AOSP documentation. After compiling AOSP, a system image was created which was then flashed onto an SD card. This SD card is used to boot the board.

2. Literature review

FPGAs are increasingly being used in systems that require high performance and low power consumption. Android is a free and open source operating system for mobile devices which is based on the Linux kernel. It has been designed keeping in mind resource-constrained devices like smartwatches and embedded systems.

There are many ways to run Android on an FPGA board. One way is to use an off-the-shelf developement Kit such as the ZynqBerry from Digilent which has a Zynq SoC from Xilinx with an ARM Cortex-A9 processor. This kit allows for easy development and debugging of Android applications on an FPGA board.

Another way is to use an FPGA development board with an Intel Atom processor such as the Terasic DE10-Pro or the Arrow SoCKit. These boards can be used to develop and run Android applications.

3. Materials and methods

The hardware used in this project was the Altera DE0-Nano-SoC board which has an Intel Atom E3845 processor. The tools used were the Quartus Prime software suite and the Android Studio IDE. The AOSP source code was downloaded from GitHub and compiled for the Altera board using the Quartus tools. A system image was then created and flashed onto an SD card which was used to boot the board.

4. Results and discussion

After compiling AOSP, a system image was created which was then flashed onto an SD card. This SD card is used to boot the board. Once booted, Android boots up successfully and all features are working as expected including Wi-Fi, Bluetooth, etc.
The only issue faced during this project was that when trying to connect to a device over Bluetooth, pairing would fail every time. This issue is still being investigated and has not been resolved yet.

5. Conclusions In conclusion, it was successful in porting Android OS onto the Altera development board and running it successfully with few issues faced related to Bluetooth connectivity while trying to connect to another device wirelessly.. 6. Future work In future, it would be interesting to try and resolve the issue faced with Bluetooth connectivity and also to try and run Android on an FPGA board with a different processor such as the Xilinx Zynq.

7. Acknowledgements

I would like to thank my mentor, Mr. Senthil Kumar, for his guidance and support throughout this project.


The Altera board is a development and evaluation board for software engineering students.

Its specs include an Altera Cyclone V SoC, 2 GB of DDR3 SDRAM, and 16 GB of eMMC Flash storage.

Running Android on the Altera board can be done by using a pre-built image from the Android Open Source Project (AOSP) or by building your own AOSP image from source code.

This is a good idea for software engineering students because it allows them to familiarize themselves with the Android operating system and its inner workings. Additionally, it provides a platform on which they can test and debug their own Android applications.

Setting up and running Android on the Altera board is not difficult, but there are some prerequisite steps that must be followed first (e.g., installing the required drivers).

The benefits of running Android on the Altera board include being able to develop and test Android applications without needing a physical device, as well as having access to all of the features and capabilities of the Android operating system.

Some drawbacks to running Android on the Altera board that software engineering students should be aware of include potential stability issues (due to the fact that it is a development platform), as well as reduced performance when compared to running on a physical device