/VUHFRadio

AX5043 Based USB Radio, dual band UHF and VHF

Primary LanguageC

VUHFRadio Module

This is a firmware for a VUHFRadio Module based on the AX5043. To achieve both VHF and UHF on the same board it uses two AX5043 ICs.

Some characteristics of this firmware:

  • Custom AX5043 Library, Read/Write to it’s registers with a function to get or set each register
  • AX5043 Library Supports Multiple AX5043 Chips, multiple SPI Interfaces
  • The MCU used is an STM32F103 and this firmware uses mostly the LL Library, except the VCP (Virtual COM) Library is using HAL
  • Command interface is based on CAT commands, similar to what is used in popular HAM Radios from Yaesu or Kenwood
  • Packet/frame interface based on the KISS protocol

Current version is tested and works with:

  • AX.25 Frames with HDLC and CRC handled in the radio and sent to PC (USB) using the KISS protocol
  • AFSK-1200: RX and TX compatible with HAM Radios using a TNC. Tested with RTL.SDR and SDR# output to SoundModem.
  • FSK-9600 (G3RUH): RX and TX compatible with HAM Radios using a TNC. Tested with RTL.SDR and SDR# output to SoundModem HS.
  • (G)MSK/(G)FSK: Both RX and TX, tested @ 9600 bits/s MSK and GMSK (with BT of 0.5 and 0.3)
  • BPSK: Now working as well, both RX and TX
  • Morse decoding using the RSSI tracking
  • AM and FM Demodulation output by the DAC
  • FM Modulation from ADC input

Results like spectrums and input matching and other tests: www.notblackmagic.com/projects/vuhf-radio/

Detailed explanation on the configuration of the AX5043 transceiver: www.notblackmagic.com/bitsnpieces/ax5043/

Portability

Both the low level register abstraction library as well as the higher level configuration changes library for the AX5043 transceiver are portable. To port them to a different platform, both the AX5043 folder, and all it's files, as well as the radioCommands.c/.h and radioConfigs.c/.h files have to be included. The "RadioInterfacesInit()" function in the radioCommands.c has to be changed to use the platforms SPI interface and CS GPIO.

File Organization

src/HAL: MCU peripheral drivers, custom HALs

src/USB: MCU USB HAL with custom wrapper functions

src/AX5043: AX5043 register read/write wrappers and defines

src/AX5043/ax5043_interface.c: SPI interface wrapper

src/Commands/CATInterface.c: CAT Command Handler and interpreter functions (The other files are deprecated and will be phased out)

inc/Radio/radioConfigs.h: Radio configuration structs defines

src/radioCommands.c: Radio configuration functions/wrappers

src/memoryChannelConfigs.c: Tested and saved radio configurations, like AFSK-1200 and G3RUH