Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
LoFive is a lightweight SiFive Freedom E310 open source SoC evaluation kit. The E310 leverages the Free and Open RISC-V Instruction Set Architecture originally developed by UC Berkeley and now has wide industry support via the RISC-V Foundation.
Table of Contents
- Installing LoFive Enabled Freedom-E SDK
- Configuring host for FT2232H-56Q FTDI UART breakout
- Programming using FT2232H-56Q FTDI UART breakout
- MCU – SiFive Freedom E310 (FE310) 32-bit RV32IMAC processor @ up to 320+ MHz (1.61 DMIPS/MHz)
- Storage - 128-Mbit SPI flash (ISSI IS25LP128)
- Expansion - 2x 14-pin headers with JTAG, GPIO, PWM, SPI, UART, 5V, 3.3V and GND
- Misc - 1x reset button, 16 MHz crystal
- Power Supply - 5V via pin 1 on header; Operating Voltage: 3.3 V and 1.8 V
- Dimensions - 35.56 x 17.78 mm / 1.4 x 0.7 in
- License - CERN Open Hardware Licence v1.2
Installing LoFive Enabled Freedom-E SDK
The Freedom-E SDK port for LoFive hosted here: LoFive Freedom-E SDK
Note: The instructions for installing and compiling the SDK are provided in the README of the repository.
Configuring host for FT2232H-56Q FTDI UART breakout
In order to use the FTDI breakout from a non-root user a few steps are required to enable access.
First the udev rules need to be installed:
cd freedom-e-sdk sudo cp openocd/contrib/60-openocd.rules /etc/udev/rules.d
Next add your user to the plugdev group:
sudo adduser $(whoami) plugdev
Next restart udev service and logout of the current session:
sudo service udev restart exit
Now the open the SDK in a new console and you should be ready to use the FTDI programmer.
Programming using FT2232H-56Q FTDI UART breakout
Connecting FT2232H-56Q to LoFive
The on-board flash is programmed via JTAG and a special RISC-V version of OpenOCD built into the Freedom-E SDK. LoFive currently supports using the FT2232H-56Q Mini MDL FTDI breakout adapter.
Wire the breakout adapter as follows:
|LoFive Pin||FTDI Breakout Pin|
This will power the board and allow you to program with the LoFive enabled Freedom-E SDK linked above.
Programming LoFive using Freedom-E SDK
Once the SDK is installed and compiled you can load the code via make commands.
For instance to compile and load the LED fade demo:
make software PROGRAM=led_fade BOARD=freedom-e300-lofive make upload PROGRAM=led_fade BOARD=freedom-e300-lofive
Note: This SDK only supports running on Linux.
Programming Bootloader using Freedom-E SDK
Some of the early units of the LoFive may have been deployed without the bootloader installed. If a previously loaded program does not load automatically on reset or power cycle the bootloader is likely not installed.
To program the bootloader to the LoFive run the following from the Freedom-E SDK:
make software upload PROGRAM=double_tap_dontboot BOARD=freedom-e300-lofive-blank