Technical User Guide
The BBC Doctor Who HiFive Inventor (“HiFive”) is a pocket-sized Internet of Things (IoT) computer, designed for makers, students, and educators who want to learn computer programming. The HiFive contains a processor that stores and executes user code, an interface chip to handle USB connections and debugging, several interactive components like an LED display, buttons, and various sensors.
SiFive RISC-V Processor
The SiFive RISC-V FE310-G003 processor handles the basic computing needs of the HiFive. This is the component on the HiFive that stores and runs your code, as well as powering its input and output devices. The FE310-G003 is a RV32IMAC processor meaning it has instructions for integer, multiplication, division, atomic operations and some compressed instructions. The CPU clock runs up to 150MHz and has plenty of on-chip memory. 8kB of one time programmable (OTP) memory, 16kB Instruction Cache, 64kB Data SRAM and the HiFive is populated with 512kB of QSPI flash memory. There are 3 independent pulse width modulation (PWM) controllers, a serial peripheral interface (SPI) controller, an inter-integrated circuit (I2C) controller, 2 universal asynchronous receiver / transmitter (UART) controllers and JTAG for debugging.
SEGGER J-Link OB Interface Chip
Alongside the processor is a separate interface chip that focuses on tasks that enable flashing and debugging the processor. This includes handling the USB communication between your HiFive and the computer. The interface chip creates a bridge between your computer and the processor. This enables the web browser based deploy programming, drag-and-drop HEX programming, 2 serial ports for terminal logging and a JTAG tunnel for debugging.
The HiFive has a “reset” button on the back of the board. When pressed, the SiFive RISC-V Processor will reset. This causes the previously running program to start again. A single LED will flash green when the bootloader has finished and transferred control to the program.
The HiFive display is an output device that has a 6x8 (6 rows by 8 columns) “widescreen” array of RGB LEDs (Light-Emitting Diodes). Each LED is a “neopixel” and can display 16 million colors, which you can use to program images, animations, and text directly on your HiFive Inventor!
Buttons are input devices. The HiFive has two fully-programmable push (A/B) buttons on the front of the board.
The HiFive board comes with a suite of sensors, which are input devices that measure your HiFive Inventor’s activity, providing data to the processor to use in your programs.
One sensor that you can use to measure acceleration is called an accelerometer, which gives the HiFive the ability to detect the following gestures:
- Up, down, left, and right
- Face up and face down
- Freefall and shake
The way your phone or tablet automatically switches to landscape (horizontal) or portrait (vertical) view when you tilt your device is because of the device’s accelerometer.
Your HiFive also contains a magnetometer, which detects the magnetic forces around you, meaning that you can turn your HiFive Inventor into a compass!
Another sensor on the HiFive is a built-in thermometer to measure the temperature in degrees Celsius. The thermometer can measure temperatures from -40°C to +85°C (-40°F to +185°F) and is accurate to 1°C (remember that ( _°C × 9/5) + 32 = _°F ).
Finally, the HiFive measures ambient light (how visibly dark or light it is) and infrared light (light that is not visible to humans) and converts the light intensity into a digital value. If you’ve ever noticed a screen or monitor getting lighter or darker depending on the light levels in the room, you’ve seen an ambient light sensor at work.
The HiFive can be powered by the micro USB port, the included battery pack (3 AA batteries) or the accessory edge connector 3V and GND pins. When powered by the accessory edge connector, the LED Display will not be operational, however, everything else on the board will.
Bluetooth and Wi-Fi Connectivity
The HiFive has a Bluetooth and Wi-Fi connectivity co-processor. The co-processor is responsible for running the software stacks that enable wireless connectivity and integrates with the processor over a command and response communication channel and is programmable by the Tynker Blocks or Micropython APIs. The hardware supports Bluetooth v4.2 BR/EDR (including Bluetooth Low Energy) and Wi-Fi 802.11b/g/n (up to 150Mbps).
A speaker is an accessory that’s included with your HiFive Inventor board package. The speaker is an 8ohm 1W speaker and has a built-in amplifier.
NOTE: In order to access the feature described in this section, you’ll need to remove the RED part of the plastic casing protecting your HiFive. Ask a guardian or teacher if you need help taking it off.
Once you remove the red plastic casing, you’ll gain access to the edge connector for accessories. The edge connector is made up of gold strips, called pins. These pins will enable you to add accessories to the HiFive, expanding what you can build or make with it.
There are 25 pins, including five rings for connecting alligator clips. Three rings (labeled 0-2) are used as general-purpose input-output pins (GPIO), or other features like pulse width modulation (PWM), analog to digital converters (ADC), and touch sensing. The remaining two rings, 3V and GND, are used to power accessories or allow accessories to power the HiFive. If the 3V and GND rings are supplying power to accessories, 200mA is available. When an accessory is powering the HiFive, everything is powered, excluding the LED Display. The HiFive can accept a maximum of 3.3V on the edge connector, so in order not to harm your HiFive board, choose your accessories carefully.