The RISC-V BL602 Book

📝 20 Feb 2021

PineCone BL602 RISC-V Board with Grove E-Ink Display

PineCone BL602 RISC-V Board with Grove E-Ink Display

Is there a book about the BL602 SoC (RISC-V, WiFi and Bluetooth LE) that...

  1. Explains in depth the features of BL602

  2. Has plenty of annotated sample code, with real use cases

  3. Is open source, free to browse and reproduce?

You're reading the book right now!

Use this book to navigate the numerous BL602 articles that have been published on this site. (17 articles and still growing!)

The programs in these articles have been tested on PineCone, but they should work on other BL602 Boards: Pinenut, DT-BL10, MagicHome BL602.

Many thanks to Pine64 for supporting my work on BL602 Open Source Education! Thanks also to Bouffalo Lab for the encouraging notes.

If you find this book useful... please sponsor me a coffee. Thank you! 🙏 😀

1 Introduction to BL602

Find out what's inside the BL602 System-on-a-Chip (SoC)... And why it's unique among the microcontrollers we've seen.

Flashing Firmware to BL602

2 Flashing Firmware to BL602

How we flash firmware to BL602 with command-line tools on Linux, macOS and Windows. Plus tips for developing and troubleshooting firmware.

GPIO on BL602

3 GPIO on BL602

Learn to call the BL602 GPIO Hardware Abstraction Layer (HAL) to blink an LED.

PWM on BL602

4 PWM on BL602

Duty Cycle, Frequency and everything else about the BL602 PWM HAL.

I2C on BL602

5 I2C on BL602

Read an I2C Sensor by calling the BL602 I2C HAL.

SPI on BL602

6 SPI on BL602

How we call the BL602 SPI HAL to access SPI Sensors, Displays and Network Transceivers.

DMA on BL602

7 DMA on BL602

How we accelerate data transfers with DMA on BL602.

UART on BL602

8 UART on BL602

UART is used by E-Ink Displays, GPS Receivers and LoRa Transceivers. To talk to these peripherals, we call the BL602 UART HAL.

ADC on BL602

9 ADC on BL602

Here's the sample code that reads BL602's onboard temperature sensor via ADC...

Graphics on BL602

10 Graphics on BL602

Render text and graphics with the open-source LVGL Library.

LoRa on BL602

11 LoRa on BL602

Let's turn BL602 into a real IoT gadget that transmits long range, low power LoRa packets...

OpenOCD on BL602

12 OpenOCD on BL602

Before debugging BL602, we install OpenOCD to connect a JTAG Debugger to BL602.

GDB and VSCode on BL602

13 GDB and VSCode on BL602

How we debug BL602 firmware with GDB and VSCode.

Rust on BL602

14 Rust on BL602

How we code BL602 firmware the safer, simpler way with Rust.

Mynewt on BL602

15 Mynewt on BL602

Will BL602 run without FreeRTOS? Study the ongoing port of Apache Mynewt operating system to BL602.

What's Next

16 What's Next

Check this book again for future updates...

  1. WiFi and Bluetooth LE

  2. More Mynewt and Rust

  3. IoT Education with BL602

About the Author

17 About the Author

Got a question, comment or suggestion? Create an Issue or submit a Pull Request here...

PineCone BL602 RISC-V Board with Grove E-Ink Display

PineCone BL602 RISC-V Board with Grove E-Ink Display