Specifications

What the firmware does and what the hardware needs: one page per subsystem, written before the code and kept true to it. Behavior specs are radio-independent. A radio's own facts (pins, chips, quirks, measurements) are on its pages, named by the board id: hardware-<id>.md, codec-<id>.md and, for some, <id>-migration.md. The radios and their chips are in radios.md; which radio has which feature is in feature-matrix.md. Past bugs, by subsystem: gotchas.md. Contributors read docs/dev for process.

Radio features and the user interface

Spec Covers
capabilities.md What a radio can do, by area, with the switch and spec behind each
radio-features.md Scan, the FM transmit extras (tones, burst, roger beep), beeps, battery and power management
airband-and-broadcast.md Air band AM receive and broadcast FM receive, chosen by the frequency
aprs.md APRS on FM and over DMR
ui.md The user interface as built: screens, keys, the drawing layer (docs/ux has the design)

DMR

Spec Covers
dmr-voice.md DMR voice calls
dmr-data.md DMR data services: text messages, ARS, LRRP, call alert, radio check
dmr-emergency.md DMR emergency
dmr-roaming.md DMR repeater roaming
sfr.md Single frequency repeater
split-duplex.md Two radios as one duplex MMDVM modem
dmr-tier3-plan.md DMR Tier III trunking: scope, architecture, work packages (planning only)

DMR modem chips

Spec Covers
dmr-modem.md What any modem driver must do; the hal_dmr_modem.h contract; the chips compared
modem-hrc6000.md HR_C6000 as a DMR modem (also the HR_C5000's base)
hrc6000-registers.md HR_C6000 register reference
modem-hrc7000.md HR_C7000 as a DMR modem
rx2-link.md The link to a second receiver on another SoC: frames, messages, timing
Spec Covers
debuglink.md The debug link: commands, the view, key injection
cps-protocol.md The host port's protocols and how they share it; the CPS protocol
cps-fast.md The fast codeplug protocol: block sums, LZ4, staged commit
mmdvm-protocol.md The MMDVM modem protocol (hotspot mode)
usb-network.md USB network personality, the IP gateway, control station mode
ppp.md PPP on the serial host link
tcp-services.md TCP, HTTP, rigctld, KISS over TCP, APRS-IS
tftp.md TFTP codeplug access
mdns.md mDNS and DNS-SD
snmp.md SNMP agent (RFOUNDRY-MIB.txt)
usb-audio.md Analog and DMR voice over USB: design

Codeplug and storage

Spec Covers
open-firmware-cps.md The open-firmware codeplug format qdmr writes
qdmr-yaml.md qdmr's YAML codeplug file and how the Codeplug Editor maps it
codeplug-native.md The editing model and the native codeplug (draft)
settings-store.md Settings store and safe flash writes
nand-sectors.md NOR-like 4 KB sectors over NAND, for the settings store on NAND radios

Codecs

DMR voice needs each radio's own codec; the process is in docs/dev.

Spec Covers
codec-placement.md Where RadioFoundry places the codec on each SoC family, descriptors, slots, codec maps
codec-<id>.md One radio's codec: the stock files accepted, their format, the code and table windows, entry points

Migrating from stock

Reading a vendor codeplug and moving a radio from the vendor firmware. User steps are in docs/user.

Spec Covers
codeplug-stock-tyt.md The vendor codeplug layout of the TYT-family radios in SPI flash: detection and conversion
codeplug-port.md Stock codeplug to RadioFoundry: the clean-up, contacts, CPS write shared by the migration tools
<id>-migration.md One radio's flashing and migration procedure, where a migration tool exists
<id>-stock-cps.md One radio's vendor programming protocol, for interoperability

Flashing and updates

Spec Covers
stub-entry.md The stub entry: loading the flashing tools' RAM monitor at run time, with or without the debug link
stub-stm32f4.md The STM32F4 flash stub: entry from RadioFoundry, USB, protocol, safety rules, update order

Reliability

Spec Covers
crash-log.md The crash log: fault capture on each platform, the record kept across the restart, the fault trace, the packed report
watchdog.md The hardware watchdog: the idle task's feed, timeouts, long operations, leaving the application, bench tests
gotchas.md Past bugs and traps, by subsystem

Radios

Spec Covers
radios.md The hardware survey: every radio's chips and the port order
hardware-<id>.md One radio: MCU and memory map, pins, chips, keys, display, power, bootloader and image format, calibration

The bring-up records for each radio are in docs/testing.

View the source of this page