If you are seeing this message either you are a guru who has a custom browser setting, or your browser is out of date and cannot handle some of the more recent Web standards. In our opinion this site would look much better with the standard setup of a modern browser. However we intend it to be accessible to any browser or Internet device.

checkout

Fan - Android Open Source FPGA System

Click on any image to zoom.

Fan - Building On Android

The Fan hardware+software suite is a complete set of components for implementing a non-volatile FPGA solution linked to an On-The-Go (OTG) Android device such as a phone or a tablet. Or to a PC, but Android solutions are the focus.

Develop the Hardware

The FPGA software tools run on a PC. We provide a complete reference design for a logic analyzer as source code, plus several smaller designs. And Python tools to download a configuration to the non-volatile FPGA on a Fan board.

You can use the Fan board alone. For more options, the expansion holes are positioned for mounting on a breadboard or on a blank Arduino shield.

Prototype the Software on a PC

We provide a low level driver library, plus Python and Lua applications using the library. All this is supplied as source code.

Fan Software Architecture

The Android and PC software interfaces to a Fan board are identical. At a low level the Android interface is necessarily implemented in Java and the PC interface is implemented in C/C++, but the interface methods are the same.

Up one level, there are identical Lua interfaces to the popular Gideros library, now available as open source.

We provide a Python program to load and manipulate the registers in the FPGA. For Lua scripting, we provide a sample project that can be tried out and extended and debugged on a PC or on an Android device using the freely available ZeroBrane Studio IDE.

Running on a PC

Move to Android

A Lua design can be exported to Android with no changes required. If you want to implement a very customised application with your own launch icon, we provide a base Android Studio project into which you can export the Lua.

For the more adventurous we also provide a sample Android Studio project in Java.

And all as source code.

Running on an Android

For a really quick start, we provide a base project which will execute a main.lua file transferred to the Android file system.

For debugging, we also provide a Lua server that can be used from a PC via a interactive debugger such as ZeroBrane.

Description

The Fan system:

  • an FPGA development board, with a built-in configuration loader
  • low-level software source code to reload and control the board
  • complete VHDL firmware source code for a 125MHz Logic Analyzer
  • example Android and PC applications

FPGA Development Board

  • a complete FPGA development target - FPGA programming hardware is not needed
    • over 2000 on-chip 4-input LUTs
    • 8 on-chip 9-Kbit SRAM blocks
    • the FPGA is non-volatile, with on-chip flash memory for storing the configuration bit stream
    • up to 80Kbits user flash memory
    • hard coded PLL and timer/counter blocks. Also hard-coded I2C and SPI, but these are not pinned out
  • powered from the USB connector
  • 8 pins with extensive protection, as used in a Logic Analyzer application
  • 6 additional FPGA I/Os
  • a buffered connection, typically used as Trigger Out
  • red and green LEDs
  • example projects

Low Level Software

This software is supplied as C++ source code plus a compiled (DLL/SO) file and Python scripts.

  • control the USB interface
  • inject a new configuration into the FPGA's flash memory
  • read and write registers in the firmware

High Level Software

  • sample Android apps in Java and Lua
  • scripted loader app in Python
  • Gideros plugins in C++ and Java

Logic Analyzer Firmware

This firmware is supplied as VHDL source code plus a compiled (JEDEC) file.

  • sample clock selectable from 100Hz to 125MHz
  • sample memory 4096 entries deep, with sample compression of up to 1024 samples per entry
  • simple or complex triggering
  • full source code including USB interface, clock generation, control state machine, and sample storage and readback

Production Boards Are Black

Production Panel

Black, though most of the images in our documentation were taken with green pre-production boards. And the BX thing that crops up from time to time originates in the BX line of logic analyzers that inspired this product.

Requirements

On An Android System

  • the hardware requires a micro USB socket which can run in Host or OTG (On-The-Go) mode.
  • to debug an application, the Android device must also be WiFi capable.

OTG was first supported in Android 3.1, and cell phone chip sets have implemented OTG for a while. However relatively few Android devices built before 2013 have OTG turned on. Availability is now much better, even low cost phones implement OTG.

On A PC

  • the hardware requires a USB socket, either a USB socket on a PC or a socket on a USB Hub

Documents and Downloads

Download the software and firmware bundle from the Github repo here. This bundle includes these items:

  • example applications
  • example VHDL projects
  • low level driver software
  • FPGA upload scripts
  • logic analyzer firmware

Environmental Specification

Operating Temperature

5°C to 40°C

Storage Temperature

-40°C to 75°C

Size

75mm x 28mm (2.9" x 1.1")

Power Consumption

0.5W. Total power consumption depends on what is programmed into the FPGA and on what is plugged into the Fan board. The XO2 FPGA on the board is a low power component.

Power Source

Via USB cable. No external power supply

Computer Connection

USB connection to an Android device or a PC. A micro-USB cable is required.

Note

Please note that the Fan board is high-performance equipment. It is designed for users who are familiar with electronic design and debugging, and familiar with the usual safety precautions when working with electronic equipment.

General enquiries: info@bugblat.com

Sales: sales@bugblat.com

Technical support: support@bugblat.com

Frequently Asked Questions:

Copyright © 2007 to 2015 Bugblat Ltd. Last modified: 13 Oct 2015.