Skip to the content
PCBKitNew board
2 layers57.3 × 25.4 mmRdio, the printed circuit board in 3D

A VHF/UHF radio you control from your iPhone: ESP32 + DRA818/SA818 over Wi-Fi. Hardware design and screenshots.

Size
57.3 × 25.4 mm
Copper layers
2
Thickness
1.6 mm
Parts
14
Nets
16
Pads
78
Tracks, vias
183, 21
Pours
3
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
6 Nov 2026
Updated
7 Nov 2026

Overview

Rdio is an open-source printed circuit board by loopmasta, from the loopmasta/rdio repository on GitHub. It is a 2-layer board of 57.3 × 25.4 mm with 14 parts on 16 nets, routed with 183 tracks and 21 vias.

It is built around the CONSMA020.062-G. Its parts include 5 capacitors, 4 resistors, 3 connectors and 1 IC. It belongs with the radio and wireless boards and the ESP32 boards of this library.

Main components

1

README

README.md

rdio

A VHF/UHF radio you control from your iPhone. An ESP32 drives a DRA818 / SA818 transceiver module and streams the audio over Wi-Fi to a native iOS app: listen, push-to-talk, keep a list of channels and repeaters, and read APRS packets in a chat view.

Main screen: frequency, signal and audio meters, channel listChannel editor: frequency, simplex or duplex, tones, tone burstSettings sheet: APRS beacon and radioAPRS chat with heard stations
Main screenChannel editorSettingsAPRS chat

How it works

  • The ESP32 opens its own Wi-Fi network (or joins one you configure). The phone connects to it and talks to the radio over a WebSocket. Radios on a shared network are found automatically (Bonjour), so one app can control several of them.
  • Receive audio goes from the radio to the phone as 16 kHz mono PCM. Transmit audio goes the other way while you hold the push-to-talk button.
  • The module is tuned, squelched and keyed by the ESP32 through its UART, PTT and power-down lines.
  • Bluetooth is not used.

Features

  • Receive and transmit in the selected band (VHF 134–174 MHz or UHF 400–480 MHz).
  • Channel list with simplex and duplex (repeater) entries, shift direction and offset, CTCSS transmit and receive tones, and a 1750 Hz tone burst. Reorder by dragging, swipe to edit or delete.
  • APRS on 1200 baud AFSK: the app decodes received packets (positions, Mic-E, messages, status) on APRS channels, shows them as a chat with distance and a link to Maps, links call signs to QRZ.com. You can also send: type a message in the chat to a call sign or to CQ. Messages to a station are repeated until it acknowledges them, the app acknowledges messages addressed to you, and everything is sent only while the channel is clear. A periodic position beacon is available too.
  • Several radios: each radio announces itself on the network as a Bonjour service (_rdio._tcp, with its name, module type and firmware version). The app lists the radios it finds in Settings → Radio and switches between them with one tap. Give every radio its own name (Settings → Radio Name), because the name is also its Wi-Fi and host name.
  • Phone microphone chain with a compressor and a mic level setting, soft limiter on the radio side.
  • Native iOS design: system controls, Light and Dark Mode, Dynamic Type, VoiceOver, haptics, no navigation bar.
  • Transmit safety: the app only transmits inside the selected band, and the firmware releases the push-to-talk line when the connection drops, when no audio arrives, and after 120 seconds. Only one client can transmit.
  • Firmware updates over Wi-Fi.

Status

Working on a real radio: receive, transmit, channel handling, tones, tone burst, APRS decoding, and the APRS position beacon (tested over the air).

Not done yet: a scan function and a TX power switch (the carrier board wires the module's high/low power pin, but the firmware does not use it yet).

The carrier board and the harmonic filters below are designed but not built or measured yet. The filters are simulated only; check them with a NanoVNA before relying on them.

Hardware

Everything is KiCad 10 and is generated by scripts, so the boards can be rebuilt and changed in code.

Carrier board

A 57.3 × 25.4 mm two-layer board for an ESP32 38-pin DevKit (NodeMCU-32S style) and a DRA818 / SA818 module. The DevKit's own pins are soldered into the board from below, the radio module sits on the top side, and an SMA jack on the end opposite the DevKit's USB port carries the antenna signal on a short track.

Top side of the carrier board with the radio module, the DevKit below and the SMA jackBottom side of the carrier board with the audio and supply parts and the DevKit pin rows
Top: radio module, DevKit below, SMA jackBottom: audio and supply parts, DevKit pin rows
FunctionESP32 pin
Module UART (RX / TX)GPIO16 / GPIO17
Power down (high = on)GPIO19
PTT (low = transmit)GPIO18
Squelch inGPIO32
RX audio in (ADC)GPIO34, biased to 1.75 V by GPIO26
TX audio outGPIO25
High / low powerGPIO23 (floating = 1 W, low = 0.5 W; not used by the firmware yet)
  • The module's supply pin is fed straight from the DevKit's 5 V pin, with a 47 µF and a 100 nF capacitor next to the module. The module's datasheet allows 3.3 to 4.5 V, so check the voltage on your DevKit's 5 V pin (many boards drop it through a diode from USB) before the first power-up.
  • Pin numbers, the module name and the antenna end are printed on the top silkscreen inside the module outline, to help with placing it.
  • Test status: the module's footprint and the DevKit's pin spacing were checked against real parts; the audio values are first-pass.

Harmonic filters (2 m and 70 cm)

Two small all-SMD low-pass filters (7th-order Chebyshev, 0.1 dB ripple, 50 Ω) that go between the board's SMA jack and the antenna and cut the radio module's harmonics. Details, simulation and parts notes: hardware/filter/README.md.

2 m low-pass filter board70 cm low-pass filter board
2 m, 144–146 MHz70 cm, 430–440 MHz
2 m70 cm
Passband144–146 MHz430–440 MHz
Insertion loss (simulated)0.56 dB0.50 dB
2nd harmonic (simulated)52 dB down63 dB down
Board size38.0 × 12.4 mm34.4 × 12.4 mm

Ordering the boards

Gerber, drill, bill of materials and placement files for JLCPCB are in hardware/jlcpcb/: radio/ for the carrier board and filters/vhf, filters/uhf for the filters. Check the LCSC part numbers in the bills of materials against JLCPCB's parts library before you order. The SMA connectors, the DevKit headers and the radio module are soldered by hand.

Legal

Transmitting needs an amateur radio licence and must follow the rules that apply to you. The app limits the transmit frequency to the selected band, but you are responsible for staying within your licence and the local regulations.

Privacy: the app has no accounts, analytics or tracking. See the privacy policy.

Repository contents

This repository lets a small group of testers order the hardware, build it, flash the firmware and install the app, with no software knowledge or development tools. It holds the hardware design (hardware/), the screenshots (docs/) and this description.

The software is not included and does not need to be built:

  • iOS app: coming soon to the App Store.
  • Firmware: installed from your browser with the web flasher. Connect the ESP32 over USB, open the page in Chrome or Edge on a computer and press install.

The app will be linked here once it is available. The software might become open source at some point.

Parts

14
QtyValueFootprintReferences
2100nFC_0603_1608MetricC18, C21
210kR_0603_1608MetricR12, R15
1ESP32_DevKit_38pinDK1
11uFC_0603_1608MetricC15
1220RR_0603_1608MetricR19
1220nFC_0603_1608MetricC16
122kR_0603_1608MetricR16
147uFC_1206_3216MetricC20
1CONSMA020.062-GCONSMA020_062_GJ1
1DRA818V/U or SA818-V/UDRA818_SA818U6
1ESP32 DevKit, row J2PinHoles_1x19_P2.54mmJ2
1ESP32 DevKit, row J3PinHoles_1x19_P2.54mmJ3

Questions

How big is the Rdio PCB?

It measures 57.3 × 25.4 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Rdio use?

14 parts, built around the CONSMA020.062-G. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Rdio KiCad files?

From the loopmasta/rdio repository on GitHub, at the commit this page was made from: the board is hardware/rdio.kicad_pcb and its schematic hardware/filter/uhf/rdio-filter-uhf.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Rdio design in my own project?

Its repository states no licence, so its author keeps all rights: ask loopmasta before reusing the design.

More from loopmasta/rdio

2
  • 2 layers35 × 12.4 mmRdio filter uhf, the printed circuit board in 3D

    Rdio filter uhf

    loopmasta/rdio

    A VHF/UHF radio you control from your iPhone: ESP32 + DRA818/SA818 over Wi-Fi. Hardware design and screenshots.

    9 parts
  • 2 layers38.6 × 12.4 mmRdio filter vhf, the printed circuit board in 3D

    Rdio filter vhf

    loopmasta/rdio

    A VHF/UHF radio you control from your iPhone: ESP32 + DRA818/SA818 over Wi-Fi. Hardware design and screenshots.

    9 parts

Similar boards

  • 2 layers52 × 56.6 mmMuMo v2-Node, the printed circuit board in 3D

    MuMo v2-Node

    Strooom/MuMo-V2-Node-PCB

    PCB design for the Museum Monitor V2

    79 parts17
  • 4 layers66 × 62 mmUlx3s mixer, the printed circuit board in 3D

    Ulx3s mixer

    jamesrosssharp/ulx3s_mixer_pcb

    PCB for implementing a 100MHz PLL and mixer for ULX3s

    65 parts1
  • 4 layers114 × 114 mmNew fee, the printed circuit board in 3D

    New fee

    eegan/albatross_fee

    304 parts
  • 2 layers116.8 × 30 mmType d, the printed circuit board in 3D

    Type d

    google/mozc-devices

    Circuit diagrams and firmware source code for Gboard DIY keyboards

    14 parts3kApache-2.0
  • 2 layers32 × 22 mmDiff driver, the printed circuit board in 3D

    Diff driver

    rene-dev/stmbl

    AC Servo Driver for STM32F4

    14 parts990GPL-3.0
  • 2 layers34 × 45 mm2032Charger, the printed circuit board in 3D

    2032Charger

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    14 parts915
  • 2 layers34 × 109.9 mmTdisplay s3, the printed circuit board in 3D

    Tdisplay s3

    landonr/homeThing

    Wifi Smart Home Remotes that run on ESPHome

    14 parts551GPL-3.0