Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use HiFive1: Examples, Pinouts, and Specs

Image of HiFive1
Cirkit Designer LogoDesign with HiFive1 in Cirkit Designer

Introduction

The HiFive1, manufactured by SiFive, is a RISC-V-based development board designed for prototyping and educational purposes. It features a 32-bit RISC-V processor, GPIO pins, and various interfaces for connecting sensors and peripherals. The HiFive1 is ideal for embedded systems projects, enabling developers to explore the capabilities of the open-source RISC-V architecture.

Explore Projects Built with HiFive1

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino Mega 2560 Biometric Security System with Wi-Fi Connectivity
Image of Health Monitoring Device (Collab): A project utilizing HiFive1 in a practical application
This is a multi-functional sensor system controlled by an Arduino Mega 2560, designed to read biometric data from a pulse oximeter and an infrared thermometer, authenticate using a fingerprint scanner, display information on an OLED screen, and transmit data wirelessly via an ESP8266 module. User inputs can be received through two pushbuttons, and the system's power distribution is managed through common ground and voltage supply nets.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Mega 2560 Based Security System with Fingerprint Authentication and SMS Alerts
Image of Door security system: A project utilizing HiFive1 in a practical application
This circuit features an Arduino Mega 2560 microcontroller interfaced with a SIM800L GSM module, two fingerprint scanners, an I2C LCD display, an IR sensor, and a piezo buzzer. Power management is handled by a PowerBoost 1000 Basic Pad USB, a TP4056 charging module, and a Li-ion 18650 battery, with an option to use a Mini AC-DC 110V-230V to 5V 700mA module for direct power supply. The primary functionality appears to be a security system with GSM communication capabilities, biometric access control, and visual/audible feedback.
Cirkit Designer LogoOpen Project in Cirkit Designer
Beelink Mini S12 N95 and Arduino UNO Based Fingerprint Authentication System with ESP32 CAM
Image of design 3: A project utilizing HiFive1 in a practical application
This circuit features a Beelink MINI S12 N95 computer connected to a 7-inch display via HDMI for video output and two USB connections for power and touch screen functionality. An Arduino UNO is interfaced with a fingerprint scanner for biometric input. The Beelink MINI S12 N95 is powered by a PC power supply, which in turn is connected to a 240V power source. Additionally, an ESP32 CAM module is powered and programmed via a USB plug and an FTDI programmer, respectively, for wireless camera capabilities.
Cirkit Designer LogoOpen Project in Cirkit Designer
Raspberry Pi 5-Based OCR and Weighing System with Wi-Fi Connectivity
Image of OCR Project: A project utilizing HiFive1 in a practical application
This circuit integrates a Raspberry Pi 5 with an OV2640 camera module, an ILI9488 TFT screen, an infrared proximity sensor, and a load cell with an HX711 sensor module. The system captures images and performs OCR to extract text from documents, displays the text and weight measurements on the TFT screen, and allows data export via WiFi.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with HiFive1

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Health Monitoring Device (Collab): A project utilizing HiFive1 in a practical application
Arduino Mega 2560 Biometric Security System with Wi-Fi Connectivity
This is a multi-functional sensor system controlled by an Arduino Mega 2560, designed to read biometric data from a pulse oximeter and an infrared thermometer, authenticate using a fingerprint scanner, display information on an OLED screen, and transmit data wirelessly via an ESP8266 module. User inputs can be received through two pushbuttons, and the system's power distribution is managed through common ground and voltage supply nets.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Door security system: A project utilizing HiFive1 in a practical application
Arduino Mega 2560 Based Security System with Fingerprint Authentication and SMS Alerts
This circuit features an Arduino Mega 2560 microcontroller interfaced with a SIM800L GSM module, two fingerprint scanners, an I2C LCD display, an IR sensor, and a piezo buzzer. Power management is handled by a PowerBoost 1000 Basic Pad USB, a TP4056 charging module, and a Li-ion 18650 battery, with an option to use a Mini AC-DC 110V-230V to 5V 700mA module for direct power supply. The primary functionality appears to be a security system with GSM communication capabilities, biometric access control, and visual/audible feedback.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of design 3: A project utilizing HiFive1 in a practical application
Beelink Mini S12 N95 and Arduino UNO Based Fingerprint Authentication System with ESP32 CAM
This circuit features a Beelink MINI S12 N95 computer connected to a 7-inch display via HDMI for video output and two USB connections for power and touch screen functionality. An Arduino UNO is interfaced with a fingerprint scanner for biometric input. The Beelink MINI S12 N95 is powered by a PC power supply, which in turn is connected to a 240V power source. Additionally, an ESP32 CAM module is powered and programmed via a USB plug and an FTDI programmer, respectively, for wireless camera capabilities.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of OCR Project: A project utilizing HiFive1 in a practical application
Raspberry Pi 5-Based OCR and Weighing System with Wi-Fi Connectivity
This circuit integrates a Raspberry Pi 5 with an OV2640 camera module, an ILI9488 TFT screen, an infrared proximity sensor, and a load cell with an HX711 sensor module. The system captures images and performs OCR to extract text from documents, displays the text and weight measurements on the TFT screen, and allows data export via WiFi.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Embedded systems development
  • Educational projects for learning RISC-V architecture
  • Prototyping IoT devices
  • Sensor interfacing and data acquisition
  • Robotics and automation projects

Technical Specifications

The HiFive1 development board is built around the SiFive FE310-G002 microcontroller, which is based on the RISC-V ISA. Below are the key technical details:

Key Technical Details

  • Processor: SiFive FE310-G002 (32-bit RISC-V core)
  • Clock Speed: Up to 320 MHz
  • Flash Memory: 16 MB (external QSPI flash)
  • SRAM: 16 KB
  • GPIO Pins: 19 digital I/O pins
  • Interfaces:
    • SPI
    • I2C
    • UART
  • Power Supply: 5V via USB or external power supply
  • Operating Voltage: 3.3V (logic level)
  • Debugging Interface: JTAG
  • Dimensions: 68.6 mm x 53.3 mm

Pin Configuration and Descriptions

The HiFive1 board features a 40-pin header with the following pin assignments:

Pin Number Pin Name Description
1 3.3V 3.3V power output
2 GND Ground
3 IO0 Digital I/O pin 0
4 IO1 Digital I/O pin 1
5 IO2 Digital I/O pin 2
6 IO3 Digital I/O pin 3
7 IO4 Digital I/O pin 4
8 IO5 Digital I/O pin 5
9 IO6 Digital I/O pin 6
10 IO7 Digital I/O pin 7
11 IO8 Digital I/O pin 8
12 IO9 Digital I/O pin 9
13 IO10 Digital I/O pin 10
14 IO11 Digital I/O pin 11
15 IO12 Digital I/O pin 12
16 IO13 Digital I/O pin 13
17 SPI_CS SPI Chip Select
18 SPI_MOSI SPI Master Out Slave In
19 SPI_MISO SPI Master In Slave Out
20 SPI_SCK SPI Clock

Usage Instructions

How to Use the HiFive1 in a Circuit

  1. Powering the Board: Connect the HiFive1 to your computer using a USB cable. The board can also be powered via an external 5V power supply.
  2. Programming the Board: Use the Arduino IDE or SiFive Freedom Studio to write and upload code to the HiFive1. Ensure the correct board and port are selected in the IDE.
  3. Connecting Peripherals: Use the GPIO pins to connect sensors, actuators, or other peripherals. Ensure that the voltage levels of the connected devices are compatible with the 3.3V logic level of the HiFive1.
  4. Debugging: Use the JTAG interface for advanced debugging and development.

Important Considerations and Best Practices

  • Voltage Levels: Avoid connecting devices that operate at 5V logic levels directly to the GPIO pins, as this may damage the board.
  • Pin Current Limits: Do not exceed the maximum current rating of the GPIO pins (typically 4-8 mA per pin).
  • Static Protection: Handle the board with care to avoid damage from electrostatic discharge (ESD).
  • Firmware Updates: Periodically check for firmware updates for the SiFive FE310-G002 to ensure optimal performance.

Example Code for Arduino IDE

Below is an example of how to blink an LED connected to GPIO pin 13:

// Blink an LED connected to GPIO pin 13 on the HiFive1 board

void setup() {
  pinMode(13, OUTPUT); // Set GPIO pin 13 as an output
}

void loop() {
  digitalWrite(13, HIGH); // Turn the LED on
  delay(1000);            // Wait for 1 second
  digitalWrite(13, LOW);  // Turn the LED off
  delay(1000);            // Wait for 1 second
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. The board is not detected by the computer:

    • Ensure the USB cable is properly connected and supports data transfer.
    • Check if the necessary drivers for the HiFive1 are installed on your computer.
    • Try using a different USB port or cable.
  2. Code upload fails:

    • Verify that the correct board and port are selected in the Arduino IDE or Freedom Studio.
    • Ensure no other application is using the serial port.
    • Reset the board by pressing the reset button before uploading the code.
  3. Peripherals are not working as expected:

    • Double-check the wiring and connections.
    • Ensure the voltage levels of the peripherals are compatible with the HiFive1.
    • Test the peripherals independently to confirm they are functioning correctly.
  4. LED does not blink in the example code:

    • Ensure the LED is connected to GPIO pin 13 and the ground pin.
    • Verify that the LED is not damaged and is oriented correctly (longer leg to GPIO pin 13).

FAQs

  • Can the HiFive1 run on battery power? Yes, the HiFive1 can be powered using an external 5V power supply, such as a battery pack.

  • Is the HiFive1 compatible with Arduino libraries? Many Arduino libraries are compatible with the HiFive1, but some may require modifications due to differences in architecture.

  • What is the maximum clock speed of the HiFive1? The HiFive1 can operate at a clock speed of up to 320 MHz.

  • Can I use the HiFive1 for commercial projects? Yes, the HiFive1 can be used for prototyping and commercial projects, but ensure compliance with any licensing requirements for the RISC-V architecture and associated software.

This concludes the documentation for the HiFive1 development board.