Musings in preparation for the 2025 Summer Platform for Undergraduate Research.
This repository contains the project files created during my Fall 2024 and Spring 2025 semesters.
The EDA schematic captures and prototype PC boards are maintained in separate KiCAD projects in the Hardware directory.
- Single-Cell PMIC and Switch-Mode PSU testbench
- NiceRF SA868 walkie-talkie module breakout board
The source code utilizing either the Espressif Systems ESP-IDF Arduino Core (using FreeRTOS) for experimentation or the Zephyr Standalone Application (using ZephyrRTOS) constituting the base radio platform firmware are both maintained in the Software directory.
The scope of this research project is to build a two-way radio communications platform that remains extensible in arbitrary 'all-mode' FM modulation in both firmware and hardware.
This means adopting modern real-time operating system ecosystems, particularly the two RTOS under consideration are:
- Zephyr Project ZephyrRTOS (a Linux Foundation Project)
- FreeRTOS (under Amazon AWS stewardship as of 2017)
For the hardware, the platform is to allow off-the-shelf (and few bespoke) integration of:
- Wireless communications modules
- GNSS/GPS receivers
- Sub-Ghz transceivers
- LoRa transceivers
- Peripheral Human-Machine Interface Devices (HIDs)
- Potentiometers (Volume, Frequency), Keypad (DTMF, Navigation), Display
- Mono CW Keyer, Keyboard, and USB devices
- External audio source/sink, external modem/vocoder
- Develop a working 'two-way' radio prototype.
- Phase out SA868 Demo Board by building a minimal breakout board
- Make prototype mobile through a rechargable cell and JEITA charger
- Amplify audio output of SA868 with anything other than an LM386 reference design
- Allow end-user to enter new RX and TX frequencies
- All settings available to the end-user
- Persistence of settings between power cycles
For the purposes of this project, the SA868 is limited to arbitrary FM modes:
- Analog FM Voice
- Amateur Packet Reporting System (APRS)
- Premodulated FM Waveforms
In Analog FM Voice, a parrot test or signal strength report (Readability-Strength-Tone) would be satisfactory.
A first-principles approach in designing this platform is to be taken on:
- inter-device communications interfacing
- sensor device register-level configuration
- factory firmware flashing (see DMO module)
- microcontroller (a)synchronous peripheral utilization
- utilizing vendor hardware abstractions
- device abstraction and tooling
- TI SimpleLink SDK >= v3.3
- SmartRF Studio == v7 (see TI CC1200)
- subsystem abstraction
- device abstraction and tooling
- utilizing operating system abstractions
- target hardware-application decoupling (see ZephyrRTOS)
- communications stack normalization (see USB, IEEE 802.15.4, Bluetooth SIG)
- tracing & debugging meta-tooling (see openocd)
After discovering a lack of ZephyrRTOS Charge API charge enable in the Cirrus Logic implementation of the ti,bq24190, this research project migrated to FreeRTOS. This migration allowed for the creation of bespoke 'device drivers' for the chips utilized in the radio platform. Print debugging was satisfactory in the making of the platform firmware and so the use of OpenOCD with ESP-Prog board was only researched. Zephyr abstractions listed in part 3 of approach were considered and not implemented after the migration to FreeRTOS.
The scope of this project during the one full academic semester resulted in a functional prototype of the radio platform on two breadboards capable of UHF operation of local Richardson city amateur radio infrastructure and two-way communications with a comparable handheld radio. Afterwards in the Spring 2025 semester a handheld radio form-factor two-layer PCB was designed under the Hardware/KiCAD/spur-demo directory.
This project now contains demonstrable embedded radio firmware and human-machine interface design efforts for handheld radio operation.
