Qué funciones tiene cada radio y cuáles omite cada compilación.
Versiones de compilación
Full
Every feature the radio supports.
Omite: Nada
Amateur
For amateur radio. Leaves out business features.
Omite: Basic privacy (Motorola / Anytone BP), Motorola TMS text format, ARS registration, LRRP location, Control station mode (boot as network, PC answers data, fixed link), SNMP v2c agent and traps (USB and over the air)
Commercial
For business and public service radios. Leaves out amateur-only features.
Includes every DMR feature and everything on IP over DMR
Requiere: — · Flash: DM-1701 175,856 B · MD-380 134,308 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Basic privacy (Motorola / Anytone BP)DMR_PRIVACYno está en Amateur
basic privacy (Motorola / Anytone BP) on the voice path (needs DMR)
Requiere: DMR · Flash: DM-1701 1,936 B · MD-380 1,992 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Talker alias receive and sendDMR_TALKER_ALIAS
talker alias decode and TX of our radio name (needs DMR)
Requiere: DMR · Flash: DM-1701 984 B · MD-380 1,300 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
ETSI GPS Info in the embedded LCDMR_GPS
ETSI GPS Info in the embedded LC (FLCO 8): the caller's position decoded and shown, ours sent from the APRS position source when the radio-wide setting is on (needs DMR)
Requiere: DMR · Flash: DM-1701 2,208 B · MD-380 2,152 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
CSBK signaling: call alert, radio checkDMR_SIGNALING
CSBK signaling: call alert, radio check (needs DMR)
Requiere: DMR · Flash: DM-1701 592 B · MD-380 752 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
DMR emergency (alarm, emergency call, hot mic)DMR_EMERGENCY
DMR emergency: the emergency alarm CSBK sent and heard, emergency calls (the LC's emergency service option, hot mic), the receive alert (needs DMR; core/dmr/dmr_emergency.c, docs/spec/dmr-emergency.md)
Requiere: DMR · Flash: DM-1701 3,296 B · MD-380 3,188 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Repeater roamingDMR_ROAMING
DMR repeater roaming: move between the repeater sites of a roaming zone by signal strength (needs DMR; core/radio/roam.c, docs/spec/dmr-roaming.md)
Requiere: DMR · Flash: DM-1701 11,952 B · MD-380 12,380 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
VFO (hand-tuned frequency)VFO
VFO: tune a frequency by hand (off: programmed channels only)
Includes the DMR VFO; VFO and VFO_DMR re-measured 2026-10-17 (DM-1701 plain build, MD-380 with LTO). Copy to VFO (dmr-voice.md 2.2) is on top of that figure, behind the same switch: about 630 B on the DM-1701 and 730 B on the MD-380 (default builds, LTO as each has it), 750 B on the C-SKY radios
Requiere: — · Flash: DM-1701 656 B · MD-380 516 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
FM VFOVFO_FM
analog FM VFO (needs VFO and FM)
Requiere: VFO, FM · Flash: DM-1701 504 B · MD-380 452 B
digital DMR VFO: color code, timeslot and talk target typed in, the Mode tile switches it FM / DMR (needs VFO and DMR)
The VFO's mode, color code, slot and talk target are settings of the VFO, kept across power cycles (dmr-voice.md 2.1)
Requiere: VFO, DMR · Flash: DM-1701 144 B · MD-380 104 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Scan, band scan, dual watch, nuisance deleteSCAN
channel / zone scan, VFO band scan, dual watch, nuisance delete (docs/spec/radio-features.md)
Requiere: — · Flash: DM-1701 2,576 B · MD-380 3,032 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Dual watch: A and B in any zone or the VFO, PTT on the selected one, its screens, talk backDUAL_WATCH
the dual watch screens: two channels on Home, which one PTT uses and which one a call came in on; the radio core's dual watch across zones and with the VFO, PTT on the selected channel (needs SCAN; docs/ux/dual-watch.md)
Needs SCAN. Without it, only the debug link's dual watch (two channels of one zone). Measured 2026-10-21 on the dual watch branch, default builds
Requiere: SCAN · Flash: DM-1701 10,864 B · MD-380 11,456 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Beeps and alert tonesBEEP
beeps and alert tones as PCM through the speaker (needs the board's PCM audio, which some radios have only with DMR)
Requiere: — · Flash: DM-1701 1,552 B · MD-380 1,800 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
FM TX tones: roger beep, 1750 Hz burstFM_TX_TONES
FM transmit tones: roger beep and the 1750 Hz repeater access burst (needs FM)
MD-380: TX tone path not written
Requiere: FM · Flash: DM-1701 568 B
●incluida
●incluida
●incluida
●incluida
…aún no escrita para esta radio
●incluida
●incluida
DTMF transmit from the keysDTMF
DTMF transmit: keypad digits send touch tones while PTT is held on FM (needs FM; docs/spec/radio-features.md 3.7)
MD-380: TX tone path not written
Requiere: FM · Flash: DM-1701 920 B
●incluida
●incluida
●incluida
●incluida
…aún no escrita para esta radio
●incluida
●incluida
FM VOXVOX
FM VOX: voice-operated transmit from the microphone level (needs FM; unverified on the bench)
Requiere: FM · Flash: DM-1701 496 B · MD-380 1,064 B
…aún no escrita para esta radio
●incluida
●incluida
…aún no escrita para esta radio
●incluida
●incluida
●incluida
Frequency trim, Settings > AdvancedREF_TRIM
reference oscillator trim: Settings > Advanced > Freq trim moves receive and transmit together (needs the board's hal_radio_t.ref_trim; docs/spec/radio-features.md 6.1)
Figures from tools/ci.sh (2026-10-30); the hook on each radio, the page and the setting
Requiere: — · Flash: DM-1701 2,156 B · MD-380 2,232 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Receiver battery saverBATTERY_SAVE
receiver battery saving: FM receiver duty cycling while idle (needs FM)
Requiere: FM · Flash: DM-1701 296 B · MD-380 740 B
vibration alerts on the board's motor (hal_power_t.vibrate) for messages, call alerts, private calls and emergencies, Settings > Sound > Vibrate (core/radio/vibe.c, docs/spec/radio-features.md 4.1). On for radios with a motor (their config.mk); a board without one shows the setting dimmed
Needs a vibration motor (hal_power_t.vibrate): none of these radios has one RadioFoundry drives. On for the DM-1801 Pro. Measured 2026-10-16 with CONFIG_SNMP=n; 236 B with LTO
Requiere: — · Flash: DM-1701 520* B
○omitida
✕no disponible en esta radio
●incluida
✕no disponible en esta radio
✕no disponible en esta radio
✕no disponible en esta radio
✕no disponible en esta radio
GPS receiver: the module driver and its NMEA input (Settings > Location > GPS)GPS
the GPS receiver: the board's module driver and its NMEA parsing (drivers/gps, platform/*/gps*, CAP_GPS). Off, the radio has no GPS: DMR_GPS, LRRP and APRS keep a fixed position and answer "no fix". Off where the radio has none
Needs a GPS receiver. Off, DMR GPS, LRRP and APRS keep the fixed position and report no fix. MD-380 measured 2026-10-22 (LTO, 58f2cebe). The DM-1701 has none from the factory but listens for an owner-fitted one (1,308 B, LTO)
Requiere: — · Flash: MD-380 1,196 B
●incluida
●incluida
✕no disponible en esta radio
●incluida
●incluida
●incluida
●incluida
Air band AM receive (108-137 MHz)AM_RX
air band AM receive: FM channels and the VFO in 108-137 MHz are received in AM, receive only, on radios whose receiver does AM (CAP_AM_RX; needs FM; docs/spec/airband-and-broadcast.md). Off where the receiver can't
Needs a receiver that does AM; DM-32 board glue not written yet, so nothing runs
Requiere: FM · Flash: DM-1701 408* B
●incluida
✕no disponible en esta radio
●incluida
✕no disponible en esta radio
✕no disponible en esta radio
✕no disponible en esta radio
✕no disponible en esta radio
Broadcast FM receiverBCAST_FM
broadcast FM receive: FM channels and the VFO in the broadcast receiver's range play on that second receiver chip, receive only (board.bcast, CAP_BCAST_FM; docs/spec/airband-and-broadcast.md). Off where there is none
Needs a second receiver chip (DM-32's RDA5807M); glue not written yet
key assignment: Settings > Keys and the codeplug's quick-key slots say what the board's programmable keys do (core/input/keyassign.c, docs/spec/ui.md 3.1)
Up to 9 keys. Measured 2026-10-24
Requiere: — · Flash: DM-1701 2,120 B · MD-380 2,188 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Channels list: every channel by number, a channel's settings (hub 5)CHANNEL_LIST
the hub's Channels list: every codeplug channel by number, and a channel's settings (read only; core/ui/ui_menus.c, docs/spec/ui.md 2)
Requiere: — · Flash: DM-1701 1,536 B · MD-380 2,140 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Channel editor: edit a channel, New channel from current settings, text entryCHANNEL_EDIT
editing a channel on the radio, New channel from current settings, keypad text entry (docs/spec/ui.md 2.1): with the Channels list
Needs CHANNEL_LIST. Without it a channel's settings are read only. Measured 2026-10-17
Requiere: CHANNEL_LIST · Flash: DM-1701 4,656 B · MD-380 4,252 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Zone editor: move, add, copy and remove channels in a zone; rename, copy and delete a zoneZONE_EDIT
the zone editor in a zone's list: add, move, copy here, remove channels; rename, copy, delete zones (docs/spec/ui.md 2.2): with the channel editor
Needs CHANNEL_EDIT. Measured 2026-10-24 on the default builds, LTO as each has it; also about 1.3 KB of RAM
Requiere: CHANNEL_EDIT · Flash: DM-1701 6,580 B · MD-380 6,928 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Contact editor: a new contact from Find or a call's actions (name, ID, type, timeslot)CONTACT_EDIT
the contact editor: a new contact from Find, a call's actions or a typed number, its name, ID, type and timeslot (docs/spec/ui.md 2.4): with the channel editor (its text entry) and DMR
Needs CHANNEL_EDIT and DMR. Measured 2026-10-30 on the default builds
Requiere: CHANNEL_EDIT, DMR · Flash: DM-1701 1,580 B · MD-380 1,580 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Volume bar when a knob the MCU reads turns (#354)VOLUME_BAR
the volume bar over the screen when a knob the MCU reads turns (docs/spec/radio-features.md 4.2)
Measured 2026-11-08 on the default builds; shows only on a radio with such a knob. Off, the volume screen keeps the segment drawing it now shares (about 90 bytes)
Requiere: — · Flash: DM-1701 496 B · MD-380 428 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
DMR data
Text messages (ETSI IP text by default)DMR_SMS
DMR text messages (SMS; needs DMR): ETSI IP text and ETSI defined short data, sent and received (docs/spec/dmr-data.md 5)
Includes the TMS format. Individual ETSI IP texts go confirmed ("Delivered to")
Requiere: DMR · Flash: DM-1701 2,640 B · MD-380 5,072 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Motorola TMS text formatDMR_TMSno está en Amateur
Motorola TMS format support for text messages: send, receive, the TMS ACK (needs DMR_SMS; docs/spec/dmr-data.md 5.1)
Optional format next to ETSI IP text
Requiere: DMR_SMS · Flash: DM-1701 784 B · MD-380 740 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
ARS registrationDMR_ARSno está en Amateur
ARS registration with a presence server (needs DMR; docs/spec/dmr-data.md)
Requiere: DMR · Flash: DM-1701 1,112 B · MD-380 1,324 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
LRRP locationDMR_LRRPno está en Amateur
LRRP location request / response (needs DMR; uses GPS where the board has it, else answers "no fix")
Requiere: DMR · Flash: DM-1701 8,548 B · MD-380 2,048 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Zone and channel sharing: send a zone or a channel, import an offered oneZONE_SHARE
zone and channel sharing over DMR data: "Share zone to..." and offers of zones from other radios, imported only when the user accepts (needs DMR; core/dmr/zoneShare*.c, docs/spec/zone-share.md)
Includes its screens and the import; about 4 KB of RAM. Received shares are offered by default, imported only when the user says so (zone-share.md). Measured 2026-10-24 with LTO, on the zone share branch
Requiere: DMR · Flash: DM-1701 12,240 B · MD-380 12,388 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Compressed UDP/IP headers on transmit (SAP 3)DMR_UDP_COMPRESS
compressed UDP/IPv4 headers on transmit (SAP 3, ETSI TS 102 361-3 5.6 / 7.2): UDP packets whose header fits the compression rules go with a 5 to 9 octet header instead of 28 (needs DMR; docs/spec/dmr-data.md 11)
Auto: not for ports 4000-4099 or ETSI IP text
Requiere: DMR · Flash: DM-1701 408 B · MD-380 356 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Single frequency repeater: MMDVM SFR, and the standalone SFR (experimental)SFR
single frequency repeater (needs DMR): the MMDVM hotspot's SFR mode (core/hotspot/hotspotSfr.c, core/dmr/sfrRunner.c) and the standalone repeater and user roles of a channel (core/radio/radio_sfr.c, docs/spec/sfr.md 4)
MD-380: HR_C5000 lacks what the SFR glue uses
Requiere: DMR · Flash: DM-1701 6,884 B
●incluida
●incluida
●incluida
●incluida
✕no disponible en esta radio
●incluida
●incluida
Experimental: SFR user receive "dual-path RX": a voice frame whose FEC failed comes from the other copySFR_DUALPATH_RX
SFR user receive mode "dual-path RX": a voice frame whose FEC failed is taken from the other copy (needs SFR)
Needs SFR. DM-1701 figure with LTO (2026-10-22)
Requiere: SFR · Flash: DM-1701 696 B
●incluida
●incluida
●incluida
●incluida
✕no disponible en esta radio
●incluida
●incluida
Experimental: standalone SFR repeater's periodic CW ID (callsign in Morse, FM)SFR_CWID
the standalone SFR repeater's periodic CW ID: its callsign in Morse, in FM on the channel (needs SFR)
Needs SFR. DM-1701 figure with LTO (2026-10-22)
Requiere: SFR · Flash: DM-1701 900 B
●incluida
●incluida
●incluida
●incluida
✕no disponible en esta radio
●incluida
●incluida
APRS: AFSK positions, status, messages; DMR positions; KISS TNCAPRSno está en Commercial
APRS (core/aprs, docs/spec/aprs.md): position, status and message packets as AX.25 / 1200 baud AFSK on FM, positions over DMR (LRRP / UDT), a KISS TNC on the host port. Transmit stays off until the user turns it on (needs FM)
Includes APRS receive, KISS over TCP and APRS-IS where built. MD-380: AFSK TX needs the tone path (not written), DMR positions work
Requiere: FM · Flash: DM-1701 26,568 B · MD-380 26,628 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
APRS receive: demodulator, station list, digipeaterAPRS_RXno está en Commercial
APRS receive: the AFSK demodulator, station list, messages to us, digipeater (needs APRS; useful only on boards whose board.afsk can sample received audio)
DM-1701: FM receive audio on the I2S stream, squelch gated (aprs 5.3). MD-380: not written
Requiere: APRS · Flash: DM-1701 8,892 B
●incluida
●incluida
●incluida
…aún no escrita para esta radio
…aún no escrita para esta radio
●incluida
●incluida
APRS iGate rules (with tools/aprs_gate.py)APRS_IGATEno está en Commercial
APRS iGate rules, RF <-> APRS-IS through the host helper tools/aprs_gate.py (needs APRS_RX and HOSTLINK)
Needs APRS receive. DM-1701: off by default
Requiere: APRS_RX, HOSTLINK · Flash: DM-1701 1,820* B
●incluida
○omitida
●incluida
…aún no escrita para esta radio
…aún no escrita para esta radio
●incluida
○omitida
GPS screen: sky plot, signal bars, grid locator (Tools > Position)GPS_SKYno está en Commercial
the GPS status screen: satellites on a sky plot and signal bars, fix quality, grid locator (core/aprs/nmea_sky.c, core/ui/ui_gps.c, docs/spec/aprs.md 7.1). Needs GPS and APRS; off, Tools > Position is a page of text
Needs GPS and APRS. 176 B of RAM. MD-380 measured 2026-10-29 (LTO)
Requiere: GPS, APRS · Flash: MD-380 5,244 B
●incluida
●incluida
✕no disponible en esta radio
●incluida
●incluida
●incluida
●incluida
Network (USB network adapter and IP over DMR)
IP over DMR gatewayDMR_IP_GATEWAY
IP over DMR packet data through a network link to the host: the USB network adapter or PPP on the serial host port (needs DMR and USB_NETWORK or NET_PPP; core/hostlink/hostlink_net.c)
Includes the radio's own services below
Requiere: DMR, (USB_NETWORK | NET_PPP) · Flash: DM-1701 44,128 B · MD-380 43,220 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Minimal TCPNET_TCP
a minimal TCP for the radio's own services on the USB network link, never over RF (needs DMR_IP_GATEWAY, whose IPv4 layer it uses; core/net, docs/spec/tcp-services.md)
Includes KISS, HTTP, rigctld, APRS-IS. About 4.5 KB RAM
Requiere: DMR, DMR_IP_GATEWAY · Flash: DM-1701 16,240 B · MD-380 15,656 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
KISS over TCP, port 8001NET_KISSno está en Commercial
KISS over TCP on port 8001, bridged to the APRS KISS TNC (needs NET_TCP and APRS; core/net/kiss_tcp.c)
Requiere: DMR, NET_TCP, APRS · Flash: DM-1701 700 B · MD-380 752 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
HTTP status page and JSON, port 80NET_HTTP
the HTTP status server on port 80: a page, JSON status and view sections, the screen (needs NET_TCP; core/net/http.c)
Requiere: DMR, NET_TCP · Flash: DM-1701 4,796 B · MD-380 4,860 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
HTTP static files stored and served gzip compressedNET_HTTP_GZIP
the status server's static files (core/net/http_assets) stored gzip compressed at build time and served with Content-Encoding: gzip; off: stored and served as they are (needs NET_HTTP; tools/gen_http_assets.py)
Negative: saves flash, nearly all of it on web control's files. MD-380: web control follows this switch (hardware-md380.md 19)
Requiere: DMR, NET_HTTP · Flash: DM-1701 -19,456 B · MD-380 -18,572 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Web control: the front panel page, keys, status and receive audio over /wsNET_WEBCTL
web control on the status server: /ws (WebSocket) for the radio's front panel page, keys, status and receive audio (needs NET_HTTP; core/net/ws.c, docs/spec/tcp-services.md 5)
The page and the radio's drawing included (about 6 KB gzip compressed); 1 KB RAM (tcp-services.md 5.1)
Requiere: NET_HTTP · Flash: DM-1701 9,620 B · MD-380 9,332 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
rigctld, port 4532NET_RIGCTL
Hamlib rigctld on port 4532: frequency, mode, PTT, S meter for loggers and SDR programs (needs NET_TCP; core/net/rigctld.c)
Requiere: DMR, NET_TCP · Flash: DM-1701 3,852 B · MD-380 3,728 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
APRS-IS clientNET_APRSISno está en Commercial
the radio's own APRS-IS client through the host: our beacons and the iGate's lines, off until a server is set (needs NET_TCP and APRS; core/net/aprsis.c)
Needs NAT on the host
Requiere: DMR, NET_TCP, APRS · Flash: DM-1701 2,856 B · MD-380 2,720 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Audio linking (USRP over UDP, port 34001)NET_USRP
audio linking for AllStarLink, DVSwitch and bridges (USRP voice over UDP, port 34001): the radio sends what it receives, with the squelch as keyup, and transmits what the computer sends. DMR works both ways on every radio; FM needs the radio's audio paths to the processor, which radios have both ways, DMR only or FM one way (docs/feature-matrix.md) (needs DMR_IP_GATEWAY; core/usbaudio, docs/spec/usb-audio.md)
DM-1701: DMR and FM both ways. MD-380: DMR only (FM audio doesn't reach the processor yet). DM-32UV: DMR only until its board code has the FM audio paths
Requiere: DMR, DMR_IP_GATEWAY · Flash: DM-1701 4,552 B · MD-380 4,888 B
●incluida
●incluida
●incluida
…aún no escrita para esta radio
●incluida
●incluida
●incluida
mDNS / DNS-SD (rfoundry-<id>.local)MDNS
mDNS / DNS-SD responder on the USB network link: <host>.local and the radio's services (needs DMR_IP_GATEWAY, the IP stack it runs on; core/net/mdns.c, docs/spec/mdns.md)
Requiere: DMR, DMR_IP_GATEWAY · Flash: DM-1701 6,744 B · MD-380 6,504 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
TFTP codeplug read / writeTFTP
TFTP server on the USB network link: codeplug.bin read and (staged, checked) written, info.txt (needs DMR_IP_GATEWAY; core/net/tftp.c, docs/spec/tftp.md)
Without the ID database below
Requiere: DMR, DMR_IP_GATEWAY · Flash: DM-1701 6,356 B · MD-380 6,412 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
DMR ID database over TFTP (iddb.bin, combined codeplug.bin)TFTP_IDDB
DMR ID database over TFTP: iddb.bin read and written in place, and the database part of a combined codeplug.bin (needs TFTP; core/net/tftp_iddb.c, docs/spec/tftp.md 5)
Follows TFTP
Requiere: TFTP · Flash: DM-1701 2,184 B · MD-380 2,264 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Compact DMR ID database (format C) read beside format NIDDB_COMPACT
the compact DMR ID database (format C): dictionary-coded names, IDs as gaps, pages with room to grow, read beside format N (needs DMR; core/codeplug/dmr_iddb.c, docs/spec/iddb-compact.md)
Follows DMR (iddb-compact.md)
Requiere: DMR · Flash: DM-1701 988 B · MD-380 992 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Control station mode (boot as network, PC answers data, fixed link)DMR_CONTROL_STATIONno está en Amateur
control station mode for PC dispatch software on the USB network link: the PC as the endpoint of the radio's own data ports (passthrough) and a fixed private link address pair (needs DMR_IP_GATEWAY; docs/spec/usb-network.md 5)
Requiere: DMR_IP_GATEWAY · Flash: DM-1701 288 B · MD-380 484 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
SNMP v2c agent and traps (USB and over the air)SNMPno está en Amateur
SNMP agent (SNMPv2c) on UDP 161 of the radio's address, over the USB network and over the air, with notifications (needs DMR_IP_GATEWAY; core/snmp, docs/spec/snmp.md)
Requiere: DMR_IP_GATEWAY · Flash: DM-1701 8,460 B · MD-380 8,036 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
USB network adapter (CDC-NCM)USB_NETWORK
USB network adapter personality (CDC-NCM, switched with the serial one at run time; needs USB)
Includes everything below
Requiere: USB, HOSTLINK · Flash: DM-1701 48,344 B · MD-380 47,468 B
✕no disponible en esta radio
●incluida
✕no disponible en esta radio
✕no disponible en esta radio
●incluida
●incluida
●incluida
PPP on the serial host port (IPv4 into the gateway)NET_PPP
IPv4 over PPP on the serial host port, into the IP gateway and its services: for radios whose only host link is a USB-serial cable, and a fallback on the USB serial port (needs HOSTLINK and DMR_IP_GATEWAY, which it turns on by default; core/net/ppp.c, core/hostlink/hostlink_ppp.c, docs/spec/ppp.md). On in the config.mk of a radio whose only IP link it is; off on the USB radios (docs/feature-matrix.md)
Interop tested with pppd; checked on the DB25-D PRO and the DM-1801 Pro (docs/spec/ppp.md 8). Fits neither default image as it is when measured (DM-1701 688 B short, MD-380 1,588 B short of its 275 KB then; DM-1701 with LTO: +3,948, fits). DM-32: its only IP link, on by default with the gateway and every service (Whole images, DM-32UV)
Requiere: HOSTLINK, DMR_IP_GATEWAY · Flash: DM-1701 4,368* B · MD-380 3,816* B
●incluida
○omitida
●incluida
●incluida
○omitida
○omitida
○omitida
Host link and USB
Task stacks in the debug link viewTASK_STACKS
every task's least free stack in the debug link's tasks view: the kernel's task create / delete trace hooks keep a table of the tasks (core/app/task_stack.c, docs/spec/debuglink.md 3.7; needs DEBUGLINK). About 0.6 KB
Each task's least free stack, the tasks view section (debuglink 3.7)
Requiere: DEBUGLINK · Flash: DM-1701 536 B · MD-380 560 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
USB deviceUSB
USB device (CDC serial)
DM-32 has no USB (host link on the programming cable's UART). Includes everything on USB
Requiere: — · Flash: DM-1701 127,300 B · MD-380 87,848 B
✕no disponible en esta radio
●incluida
✕no disponible en esta radio
✕no disponible en esta radio
●incluida
●incluida
●incluida
Host link: hotspot, CPS, debug link on the host portHOSTLINK
the host link (core/hostlink): MMDVM hotspot, CPS and debug link over the board's host port (USB CDC, or the programming cable's UART on radios without USB)
Includes its children
Requiere: — · Flash: DM-1701 115,640 B · MD-380 77,644 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
MMDVM hotspotHOTSPOTno está en Commercial
MMDVM modem / hotspot mode over the host port (needs DMR and HOSTLINK)
Includes split duplex and MMDVM SFR where built. MD-380: size estimated
Requiere: DMR, HOSTLINK · Flash: DM-1701 34,196 B · MD-380 ~12,400 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Split duplex repeater (two radios, one duplex modem)HOTSPOT_SPLITno está en Commercial
split duplex repeater: two radios as one duplex MMDVM modem through the hotspot's vendor command 0xD6 (needs HOTSPOT; core/hotspot/hotspotSplit.c, core/dmr/bsOutbound.c, core/dmr/slotEpoch.c, docs/spec/split-duplex.md)
MD-380: HR_C6000-only glue. DM-1701, DM-32UV, DM-1801 Pro: each half checked alone on the SDR bench; one pair (DM-1801 Pro TX, DM-32UV RX) with a subscriber: 29 of 31 calls on the right slot
Requiere: HOTSPOT · Flash: DM-1701 12,584 B
●incluida
●incluida
●incluida
…aún no escrita para esta radio
…aún no escrita para esta radio
●incluida
●incluida
Debug linkDEBUGLINK
the debug link: framed commands on the host port for bench automation (docs/spec/debuglink.md; needs HOSTLINK)
Requiere: HOSTLINK · Flash: DM-1701 32,376 B · MD-380 29,084 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Open-firmware CPS protocol (qdmr)CPS_OPENFW
the open-firmware CPS protocol shim on the host port, so qdmr and the open-firmware CPS can read and write the codeplug (docs/spec/open-firmware-cps.md; needs HOSTLINK)
Requiere: HOSTLINK · Flash: DM-1701 3,064 B · MD-380 3,008 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Fast codeplug protocol (debug link CODEPLUG)CPS_FAST
the fast codeplug protocol on the debug link's framing: blank blocks skipped, CRC-32 compare so only changed blocks move, LZ4 both ways, staged writes with a power-cut safe commit (docs/spec/cps-fast.md; needs CPS_OPENFW, and DEBUGLINK or STUB_ENTRY, whose own listener carries it without the debug link)
Changed 4 KB blocks only, LZ4 both ways, staged commit (cps-fast.md). DM-1701 figure with LTO (2026-10-18)
Requiere: CPS_OPENFW, (DEBUGLINK | STUB_ENTRY) · Flash: DM-1701 3,732 B · MD-380 3,948* B
runtime RAM-monitor entry: command 0x1A on the host port loads the host's flash-access stub into free RAM and jumps to it without a power cycle, so updates need no key combo at power-on (the web flasher, stub/stubtool.py, rfoundry; core/stubentry, docs/spec/stub-entry.md). Its own feature: with the debug link off it answers on its own small listener (PING, VERSION, STUB). Needs HOSTLINK (the task that owns the port) and a platform with hal_system_t.enter_stub: the HR_C7000, and the STM32F4 with an 8 KB staging buffer (docs/spec/stub-stm32f4.md). On wherever the host link is; a board leaves it off in its config.mk only for a stated reason
Updates and backups over the radio's own link without the bootloader key press: the web flasher and stub/stubtool.py. On by default on every radio, with or without the debug link (stub-entry.md); on the STM32 radios a RAM flash stub that also takes 8 KB of RAM (stub-stm32f4.md) (the DM-1701's RAM is 95 % used with it on)
Requiere: HOSTLINK · Flash: DM-1701 768* B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Crash logCRASH_LOG
the crash log: a CPU fault, a task stack overflow, running out of heap or a failed assertion keeps a record (registers, fault status, task, stack words) where a reset doesn't clear it and restarts the radio; the next start shows it (core/crash, docs/spec/crash-log.md). Off: a crash stops the radio until a power cycle, as before. Needs nothing else
A fault, stack overflow, heap exhaustion or failed assertion keeps a record across the restart; the debug link shows it (crash-log.md)
Requiere: — · Flash: DM-1701 1,572 B · MD-380 1,756 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Crash log screenCRASH_SCREEN
the crash log's screen: Settings > Advanced > Crash log, the record's summary and Clear (needs CRASH_LOG). Off, the debug link still shows the record
Settings > Advanced > Crash log: the record's summary and Clear
Requiere: CRASH_LOG · Flash: DM-1701 1,024 B · MD-380 1,408* B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Crash report over DMRCRASH_REPORT
the crash report: the crash log's record, packed (76-124 bytes), as one UDP datagram over DMR packet data to a codeplug contact, from the Crash log screen or after the restart (off / ask / automatic; docs/spec/crash-log.md 5) (needs CRASH_SCREEN and DMR)
Sends the crash record as one UDP datagram to a codeplug contact, from the menu or after the restart (Off, Ask, Auto) (crash-log.md 5). Needs the screen
Requiere: CRASH_SCREEN, DMR · Flash: DM-1701 1,440 B · MD-380 1,712* B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Hardware watchdogWATCHDOG
the hardware watchdog: started in main(), fed by the idle task, so a hang or a starved system of a few seconds resets the chip (the IWDG on the STM32F4, the SoC's watchdog on the HR_C7000; docs/spec/watchdog.md). With the debug link it also has a bench test (command 0x1D). Off: no watchdog runs, as before. Needs nothing else
Fed by the idle task; a hang or a starved system resets the radio. Timeout about 5 s on the STM32 radios, 4 s on the HR_C7000 radios (watchdog.md)
Requiere: — · Flash: DM-1701 932 B · MD-380 856 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Fault trace on the host UARTFAULT_TRACE
the fault trace: a CPU fault prints its registers on the host UART, three framed lines a second apart, before the restart (core/crash/crash_trace.c, tools/rfoundry_fault_trace.py; docs/spec/crash-log.md 2.3). Only where the host port is a UART the fault handler can drive polled: the HR_C7000 radios (the STM32 radios' config.mk turn it off: USB only). Off: straight to the record and the restart. Needs nothing else
A CPU fault's registers in three framed lines before the restart, about 600 B (crash-log.md 2.3). The STM32 radios' host port is USB
Requiere: — · Flash: —
●incluida
✕no disponible en esta radio
●incluida
●incluida
✕no disponible en esta radio
✕no disponible en esta radio
✕no disponible en esta radio
User interface
Diagnostics pageDIAG
the diagnostics page
Requiere: — · Flash: DM-1701 3,752 B · MD-380 3,532 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
16x32 fontFONT_XL
16x32 font, only useful on 240 px and wider displays
Only useful at 240 px and wider (MD-380 is 160 px). Anti-aliased on the DM-32 (7.4 KB of glyphs)
Requiere: — · Flash: DM-1701 6,352* B
●incluida
✕no disponible en esta radio
✕no disponible en esta radio
✕no disponible en esta radio
✕no disponible en esta radio
✕no disponible en esta radio
✕no disponible en esta radio
Anti-aliased fontsFONT_AA
anti-aliased fonts from 6x12 up (JetBrains Mono Bold, 2 bits a pixel) instead of the bitmap ones: smooth text on color panels. About 5 KB more flash, 12 KB more with FONT_XL; a mono panel draws them as plain ink and gains nothing. On a 4 bpp color panel the edge grays share the 16 palette entries with the screen's colors: some font sizes or colors can be slightly harder to read (docs/spec/ui.md 5)
Smooth text on color panels (measured 2026-10-17); the DM-32's image grew 9.5 KB with it and FONT_XL
Requiere: — · Flash: DM-1701 3,004* B
●incluida
○omitida
○omitida
○omitida
○omitida
✕no disponible en esta radio
○omitida
Larger textFONT_BIG
larger text on 240 px and wider color panels: lists, labels and the status strip in a 9x18 font instead of 8x16 (12% larger, 24 characters a line on a 240 px panel instead of 27). About 3 KB more flash (needs FONT_AA)
9x18 lists and labels on 240 px color panels (needs FONT_AA); 3,588 B on the DM-32 (measured 2026-10-17)
Requiere: FONT_AA · Flash: —
●incluida
○omitida
○omitida
○omitida
○omitida
✕no disponible en esta radio
○omitida
Spanish on the radioLANG_ES
Spanish on the radio (Settings > Display > Language; core/ui/lang/es.po, docs/dev/translating.md). About 28 KB with the lookup and the accented letters of every font (7.5 KB), which the first language brings; each further one adds its text only (about 17 KB)
The first language brings the lookup and the accented letters of every font (about 7.5 KB); the rest is its text. Measured 2026-10-31
Requiere: — · Flash: DM-1701 28,456 B · MD-380 28,348 B
●incluida
●incluida
●incluida
●incluida
●incluida
○omitida
●incluida
Italian on the radioLANG_IT
Italian on the radio (core/ui/lang/it.po): off by default, listed dimmed; the web flasher offers it to Italian browsers. About 17 KB with Spanish on
Off by default; measured with Spanish on (its text, and the hashes of strings Spanish leaves untranslated). Alone it costs about as much as Spanish
Requiere: — · Flash: DM-1701 17,304 B · MD-380 17,304 B
○omitida
○omitida
○omitida
○omitida
○omitida
○omitida
○omitida
Start in SpanishLANG_DEFAULT_ES
the language the radio starts in, until the user picks one in Settings > Display > Language: one switch per language, at most one on (with more, the first listed wins), off = English. Needs that language's switch. No flash cost
The language the radio starts in until the user picks one (needs LANG_ES); the web flasher sets it from its Radio language choice
Requiere: LANG_ES · Flash: DM-1701 0 B · MD-380 0 B
○omitida
○omitida
○omitida
○omitida
○omitida
○omitida
○omitida
Start in ItalianLANG_DEFAULT_IT
As LANG_DEFAULT_ES (needs LANG_IT)
Requiere: LANG_IT · Flash: DM-1701 0 B · MD-380 0 B
○omitida
○omitida
○omitida
○omitida
○omitida
○omitida
○omitida
Color screen settings (theme, highlight color, filled status bar)UI_COLOR
color screen settings: theme, highlight color, filled status bar (off: the dark theme only; for radios whose only screen is monochrome)
Off on the DM-1801 Pro (monochrome screen; 628 B there). Measured 2026-10-17; DM-1701 with LTO 612 B
Requiere: — · Flash: DM-1701 672 B · MD-380 608 B
●incluida
●incluida
✕no disponible en esta radio
●incluida
●incluida
✕no disponible en esta radio
●incluida
Settings menu on the radioUI_SETTINGS
the Settings menu on the radio (off: settings keep their stored values and are set with qdmr; docs/spec/ui.md)
Requiere: — · Flash: DM-1701 5,304 B · MD-380 5,640 B
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
●incluida
Storage
Settings and codeplug storage on SPI NANDNAND_STORAGE
the core's storage (settings, codeplug) on SPI NAND: the NOR-like 4 KB sector layer over the board's own block range (drivers/flash/nand_sectors, docs/spec/nand-sectors.md). On in the config.mk of radios whose data flash is SPI NAND (docs/feature-matrix.md); off, such a radio runs on the default settings and stores nothing. Radios with SPI NOR don't use it
For radios whose data flash is SPI NAND: on for the DB25-D (about 6.6 KB flash, 1.5 KB RAM), not in these columns. These radios have SPI NOR and don't use it (nand-sectors)
Requiere: — · Flash: —
✕no disponible en esta radio
✕no disponible en esta radio
✕no disponible en esta radio
●incluida
✕no disponible en esta radio
✕no disponible en esta radio
✕no disponible en esta radio
● incluida · ○ omitida · … aún no escrita para esta radio · ✕ no disponible en esta radio