Skip to content
Arduino ESP32 library to load bitstream from SDCard to FPGA.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Fix: spi2gpio.bit url missing Oct 31, 2019


a library for Spartan Edge Accelerator Board

The purpose of this library is to load bitstream(FPGA Logic) from SDCard to the on-board FPGA(xc7s15) by the on-board ESP32.

The software development environment is Arduino IDE with ESP32 Boards support.


Spartan Edge Accelerator Board

It can be used independently as an Arduino compatible board, or plugged into an Arduino Boards(Arduino UNO eg.) as an auxiliary accelerator board.

Arduino IDE with ESP32 Boards Support

using Arduino IDE Boards Manager
Starting with 1.6.4, Arduino allows installation of third-party platform packages using Boards Manager. We have packages available for Windows, Mac OS, and Linux (32 and 64 bit).

  • Install the current upstream Arduino IDE at the 1.8 level or later. The current version is at the Arduino website.
  • Start Arduino and open Preferences window.
  • Enter into Additional Board Manager URLs field. You can add multiple URLs, separating them with commas.
  • Open Boards Manager from Tools > Board menu and install esp32 platform (and don't forget to select your ESP32 board from Tools > Board menu after installation).
  • select tool->board->DOIT ESP32 DEVKIT

Stable release link:
Development release link:
If you want more details, you can click the link

Library Usage

  1. Library Installation
    see Installing Additional Arduino Libraries

  2. Prepare SDCard
    2.1 Format the SDCard with FAT16/FAT32 filesystem.
    2.2 Create a top level subfolder named overlay in the SDCard.
    2.3 Put your bitstream or sample bitstream files (must have a extend name .bit) into the folder overlay.
    2.4 If you run example 01LoadDefaultBitstream, rename the bitstream file in overlay to default.bit.
    2.5 If you run example 02LoadConfigBitstream, put board_config.ini into SDCard root folder.
    2.6 Insert the SDCard to the Spartan (Edge Accelerator) Board.

  3. Upload example
    3.1 Connect the Spartan Board through USB Type-C wire to the PC, and install USB232 driver (chip CP2102).
    3.2 Turn the power switch (near the USB Type-C slot) to USB side to power on the board.
    3.3 Open one of the library examples by Arduino IDE.
    3.4 Check Board & Port setting in Arduino IDE as described in last section.
    3.5 Press 'BOOT' Button on Sparton Board and last more than 1 seconds to force ESP32 enter Bootloader mode.
    3.6 Press 'Upload' button in Arduino IDE to upload the example ('s compiled binary) to ESP32.

  4. Run example
    4.1 Make sure the on-board DIP-switch K5 (last one) on Slave(ON) side, which enable FPGA programing by other device(MCU).
    4.2 Press 'RST' button on Spartan Board to startup the example.
    4.3 After the example bootup a few seconds, the FPGA_DONE(red color) LED on the board will light on.

Sample bitstreams

Some bitstream/FPGA_LOGIC files we compiled are provided here, you can download them directly.

Library examples

  • 01LoadDefaultBitstream
    This example will load SDCard file /overlay/default.bit to FPGA

  • 02LoadConfigBitstream
    This example will read a ini format file /board_config.ini in SDCard,
    then load the bitstream spcified by the value of key overlay_on_boot to FPGA.

You can’t perform that action at this time.