Radio driver evaluation

A project log for A Risc-V HC-12 433Mhz Serial Bridge

Updating the original HC-12 with a CH32V003

ozqubeOzQube 12/01/2023 at 11:470 Comments

The SI4463 is a little complicated to get working. There ARE some libraries out there in the Arduino world to connect to these chips, such as the Radiohead packet radio library, or the one from Zak Kemble.

Initially, I tried to use both of these, but each failed to compile for different reasons. 

The Si446x library from Zak Kemble fails to compile due to incompatibilities with how the Arduino port for the CH32V003 handles interrupts. 

The Radiohead library fails to compile as the "utils/atomic.h" file is missing.  This file seems to be part of the AVR GCC code. 

So this means I may have to write a driver from scratch :-(

The Silicon Labs WDS software generates some C code suitable for it's own RF devkits, but this seems quite bloated and hardware-specific - although it does separate out it all into a standalone radio hal.

Another source of pre-made code could be from other STM8-based radio modules. A Chinese company called Chengdu Ebyte Electronic Technology Co, or just Ebyte, make a SI4463 module with the part number E10-433MD-SMA. It's designed to connect to a small STM8-based dev board- E06-TB10. I managed to find some demo software for this board, which also included a basic driver. 

This might just be a good template to use for this project, considering the HC-12 uses an STM8.

Then there's the minimal driver option. The Pecan Femto 2 HAB balloon used this architecture to initialise the SI4464 and get it to beacon information. 

As I'm going to try an use the HAL for the CH32V, the last option seems to be the fastest way to verify the radio IC is indeed working on these boards.