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

sifive,e24

ADC

on-chip

Bouffalolab ADC1

bflb,adc

Bluetooth

on-chip

Bluetooth HCI for Bouffalo Lab on-chip BLE controllers1

bflb,bt-hci

Cache

on-chip

Bouffalo Lab L1C cache control1

bflb,l1c

Clock control

on-chip

Generic fixed-rate clock provider31

fixed-clock

on-chip

Bouffalolab F32K clock1

bflb,f32k

on-chip

The BL70x/L DLL1

bflb,bl70x_l-dll

on-chip

Bouffalolab Root Clock Represents both FCLK and HCLK depending on their presence, which should be kept the same1

bflb,root-clk

on-chip

The BCLK clock, or peripheral clock Source -> / divider -> This Clock1

bflb,bclk

on-chip

BFLB Flash Clock Source -> divider -> CLK Only has settings for Bank 1 on BL61x (boot flash) at the moment1

bflb,flash-clk

on-chip

Bouffalolab BL70x(L) Clock Controller1

bflb,bl70x_l-clock-controller

Counter

on-chip

Bouffalo Lab General Purpose Timer Block1

bflb,timer

on-chip

Bouffalo Lab Timer Channel (Counter)2

bflb,timer-channel

on-chip

Bouffalo Lab RTC Counter (HBN-based)1

bflb,rtc

Cryptographic accelerator

on-chip

Bouffalo Lab SEC Engine TRNG (True Random Number Generator)1

bflb,sec-eng-trng

on-chip

Bouffalo Lab SEC Engine SHA hardware accelerator1

bflb,sec-eng-sha

on-chip

Bouffalo Lab SEC Engine AES hardware accelerator1

bflb,sec-eng-aes

DMA

on-chip

Bouffalo Lab DMA1

bflb,dma

GPIO & Headers

on-chip

Bouffalo Lab BL60x and BL70x GPIO node1

bflb,bl60x_70x-gpio

I2C

on-chip

Bouffalolab I2C interface1

bflb,i2c

IEEE 802.15.4

on-chip

Bouffalo Lab IEEE 802.15.4 node1

bflb,ieee802154

Input

on-chip

Bouffalolab Infrared Receiver Peripheral Wire the output of a diode like VS1838B to the specified GPIO pin1

bflb,irx

on-board

Group of GPIO-bound input keys1

gpio-keys

Interrupt controller

on-chip

RISC-V CPU interrupt controller1

riscv,cpu-intc

on-chip

RISC-V Core Local Interrupt Controller CLIC Pre-Standard v0.91

sifive,clic-draft

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

on-board

Group of PWM-controlled LEDs1

pwm-leds

Memory controller

on-chip

Serial Flash controller1

bflb,sf-controller

on-chip

Serial Flash Controller Bank11

bflb,sf-bank

MTD

on-board

Bouffalolab Serial Flash controller Flash1

bflb,sf-flash

OTP memory

on-chip

BouffaloLab Efuse1

bflb,efuse

Pin control

on-chip

Bouffalo Lab Pinctrl node1

bflb,pinctrl

Power management

on-chip

Bouffalolab Power Controller1

bflb,power-controller

PWM

on-chip

Bouffalolab PWM 11

bflb,pwm-1

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

bflb,soc-regulator

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

bflb,rt-regulator

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

bflb,aon-regulator

Sensors

on-chip

Bouffalo Lab internal die temperature sensor (TSEN)1

bflb,tsen

Serial controller

on-chip

Bouffalo Lab UART11

bflb,uart

SPI

on-chip

Bouffalolab SPI1

bflb,spi

SRAM

on-chip

Generic on-chip SRAM3

mmio-sram

Timer

on-chip

RISC-V Machine Timer1

riscv,machine-timer

USB

on-chip

Bouffalo Lab USB 1.1 Full-Speed device controller (v1 block)1

bflb,udc-1

Watchdog

on-chip

Bouffalo Lab Watchdog Timer1

bflb,wdt

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.

References