No magic
Stanislav Dombrovsky
Mobile Developer in the past. Former product manager in AppCode. Engineer.
· 1 min read

RF-001 Prototype: Wireless Audio Transmission for Musicians

This post details my main embedded side project: a wireless audio transmission system for musicians.

Overview

The RF-001 is a musical pedal that transmits real-time audio over the air. The goal is to provide a flexible monitoring solution for professional musicians who need to selectively monitor specific band members during rehearsals without dealing with cumbersome wired connections.

Key Features

  • Modular Design: Universal transceiver module with a 3D-printed case. Modules can be combined into a “supermodule” by stacking them side-to-side using 9-pin D-sub connectors.

    Case prototype

  • High-Quality Audio: Real-time, low-latency audio transmission with 32-bit depth at 44.1 kHz sample rate (mono, with stereo support planned for future versions).

  • Software Control: Full digital control over codec functions with analog mixing capabilities for connected modules:
    • Equalizer (EQ)
    • Volume control
    • Balance adjustment
    • Additional audio processing functions
  • Device Management:
    • DFU (Device Firmware Update) over USB
    • Desktop software for comprehensive device management

    Desktop software

  • User Interface: Intuitive control via a single encoder with push-button functionality, displayed on an OLED screen.

  • Connectivity Options:
    • Line/Mic input
    • Headphones output (single)
    • Line output (single)
  • Inter-Module Communication: The first module can connect to a laptop as a master controller to manage settings for all connected modules.

Hardware Specifications

  • Microcontroller: STM32F103RCT6 (ARM Cortex-M3 core)
  • Audio Codec: AK4954AEN - Custom module board based on reference schematics

    AK4954AEN module

  • Display: SSD1306 OLED screen module
  • RF Transceiver: Amicom A7190 module for audio transmission
  • Storage: 8 Kbit EEPROM (STMicroelectronics)

Development Progress

Early Testing

First successful full-speed audio transfer demonstration:

Complete Prototype

The fully assembled single module prototype:

Prototype board

Project Architecture

Firmware Structure

  • Bootloader: DFU-capable (standard implementation)
  • HAL Layer: Generated via STM32Cube for rapid prototyping
  • RTOS: FreeRTOS for structured code organization and queue management
  • Language: Mixed C/C++ (generated sources in C, custom code in C++)
  • Debugging: RTT (Real-Time Transfer) for logging and debugging
  • Peripheral Drivers: Abstracted drivers for simplified DMA/non-DMA transfers
  • Performance: All peripherals configured with DMA for maximum throughput
  • UI Framework: Custom lightweight framework (based on Adafruit GFX library, with plans for future improvements)
  • Testing: Catch2 unit tests with peripheral/interface mocks

    Unit tests

Development Tools

  • UI Simulator:
  • Build System: CMake with granular run configurations

    Run configurations