PineDio USB-C Zigbee Dongle
Overview
The PineDio USB-C Zigbee Dongle [1] is a small USB-C stick from Pine64 built around the Bouffalo Lab BL706 (QFN48, BL706C-22 with 2 MB SiP flash and 2MB SiP PSRAM) RISC-V wireless SoC. It is intended as a Zigbee 3.0 coordinator/router for home-automation hubs.
Note
This board is the same hardware as the ThirdReality Zigbee 3.0 USB
Dongle. Use pinedio_zigbee_dongle for either product.
Hardware
Bouffalo Lab BL706C22
32 MHz and 32.768 kHz crystals
WCH CH340E USB-to-UART bridge on USB-C connected to GPIO14 and GPIO15
RGB status LED (GPIO10, 16, and 12)
Boot select button (GPIO31, also readable inverted via GPIO17) accessible via pin hole
Test points for GPIO18 and 19
Supported Features
The pinedio_zigbee_dongle board supports the hardware features listed below.
- on-chip / on-board
- Feature integrated in the SoC / present on the board.
- 2 / 2
-
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files. -
vnd,foo -
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.
pinedio_zigbee_dongle/bl706c22q2i target
On-target memory for this board target: 96 KiB of RAM, 2 MiB of Flash.
Type |
Location |
Description |
Compatible |
|---|---|---|---|
CPU |
on-chip |
SiFive E24 Standard Core CPU1 |
|
ADC |
on-chip |
Bouffalolab ADC1 |
|
Bluetooth |
on-chip |
Bluetooth HCI for Bouffalo Lab on-chip BLE controllers1 |
|
Cache |
on-chip |
Bouffalo Lab L1C cache control1 |
|
Clock control |
on-chip |
||
on-chip |
Bouffalolab F32K clock1 |
||
on-chip |
The BL70x/L DLL1 |
||
on-chip |
Bouffalolab Root Clock Represents both FCLK and HCLK depending on their presence, which should be kept the same1 |
||
on-chip |
The BCLK clock, or peripheral clock Source -> / divider -> This Clock1 |
||
on-chip |
BFLB Flash Clock Source -> divider -> CLK Only has settings for Bank 1 on BL61x (boot flash) at the moment1 |
||
on-chip |
Bouffalolab BL70x(L) Clock Controller1 |
||
Counter |
on-chip |
Bouffalo Lab General Purpose Timer Block1 |
|
on-chip |
Bouffalo Lab Timer Channel (Counter)2 |
||
on-chip |
Bouffalo Lab RTC Counter (HBN-based)1 |
||
Cryptographic accelerator |
on-chip |
Bouffalo Lab SEC Engine TRNG (True Random Number Generator)1 |
|
on-chip |
Bouffalo Lab SEC Engine SHA hardware accelerator1 |
||
on-chip |
Bouffalo Lab SEC Engine AES hardware accelerator1 |
||
DMA |
on-chip |
Bouffalo Lab DMA1 |
|
GPIO & Headers |
on-chip |
Bouffalo Lab BL60x and BL70x GPIO node1 |
|
I2C |
on-chip |
Bouffalolab I2C interface1 |
|
IEEE 802.15.4 |
on-chip |
Bouffalo Lab IEEE 802.15.4 node1 |
|
Input |
on-chip |
Bouffalolab Infrared Receiver Peripheral Wire the output of a diode like VS1838B to the specified GPIO pin1 |
|
on-board |
Group of GPIO-bound input keys1 |
||
Interrupt controller |
on-chip |
RISC-V CPU interrupt controller1 |
|
on-chip |
RISC-V Core Local Interrupt Controller CLIC Pre-Standard v0.91 |
||
LED |
on-board |
Group of GPIO-controlled LEDs1 |
|
on-board |
Group of PWM-controlled LEDs1 |
||
Memory controller |
on-chip |
Serial Flash controller1 |
|
on-chip |
|||
MTD |
on-board |
Bouffalolab Serial Flash controller Flash1 |
|
OTP memory |
on-chip |
BouffaloLab Efuse1 |
|
Pin control |
on-chip |
Bouffalo Lab Pinctrl node1 |
|
Power management |
on-chip |
Bouffalolab Power Controller1 |
|
PWM |
on-chip |
Bouffalolab PWM 11 |
|
Regulator |
on-chip |
Bouffalolab HBN SoC (CPU, Memory, etc) voltage regulator It is a LDO with a canonical voltage of 1.10v It has two modes, but they are only switched between when going into sleep mode and do not share settings areas1 |
|
on-chip |
Bouffalolab HBN RT (RTC) voltage regulator It is a LDO with a canonical voltage of 1.10v It has two modes, but they are only switched between when going into sleep mode and do not share settings areas1 |
||
on-chip |
Bouffalolab HBN AON (Always ON section) voltage regulator It is a LDO with a canonical voltage of 1.10v It has two modes, but they are only switched between when going into sleep mode and do not share settings areas1 |
||
Sensors |
on-chip |
Bouffalo Lab internal die temperature sensor (TSEN)1 |
|
Serial controller |
on-chip |
||
SPI |
on-chip |
Bouffalolab SPI1 |
|
SRAM |
on-chip |
Generic on-chip SRAM3 |
|
Timer |
on-chip |
RISC-V Machine Timer1 |
|
USB |
on-chip |
Bouffalo Lab USB 1.1 Full-Speed device controller (v1 block)1 |
|
Watchdog |
on-chip |
Bouffalo Lab Watchdog Timer1 |
The PSRAM is not yet supported.
Programming and Debugging
The pinedio_zigbee_dongle board supports the runners and associated west commands listed below.
| flash | debug | |
|---|---|---|
| bflb_mcu_tool | ✅ (default) |
Building
# From the root of the zephyr repository
west build -b pinedio_zigbee_dongle samples/hello_world
Flashing
Press the pin-hole boot button while plugging the dongle in to enter the ROM bootloader, then run:
west flash
Console
The Zephyr console is on UART0, available through the CH340E USB-serial port at 115200 baud.