You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
urfd/docs/DMR_Mini_Mode.md

5.0 KiB

Flexible DMR Mode (Mini DMR) User Guide

URFD now supports a "Flexible DMR" mode (often called "Mini DMR"), which changes how DMR clients interact with the reflector. Unlike the legacy "XLX" mode where clients link to a specific module (A-Z) and traffic is bridged, Mini DMR mode allows clients to directly subscribe to Talkgroups (TG).

How it Works

In Mini DMR mode, the reflector acts like a Scanner.

  1. Subscriptions: You "subscribe" to one or more Talkgroups on a Timeslot (TS1 or TS2).
  2. Scanning: The reflector monitors all your subscribed Talkgroups.
  3. Hold Time: When a Talkgroup becomes active (someone speaks), the scanner "locks" onto that Talkgroup for the duration of the transmission plus a Hold Time (default 5 seconds). During this hold, traffic from other Talkgroups is blocked to prevent interruption.
graph TD
    Client[MMDVM Client] -->|Subscribe TG 3100 TS1| Reflector
    Client -->|Subscribe TG 4001 TS2| Reflector
    
    subgraph Reflector Logic
        TrafficA[Traffic on TG 3100] --> Scanner{Scanner Free?}
        TrafficB[Traffic on TG 4001] --> Scanner
        
        Scanner -->|Yes| Lock[Lock onto TG 3100]
        Lock --> Map["Route to Client (TS1)"]
        
        Scanner -->|"No (Held by 3100)"| Block[Block TG 4001]
    end
    
    Map --> Client

Strict Timeslot Routing

The reflector enforces strict routing based on your subscription:

  • If you subscribe to TG 3100 on TS1, traffic for TG 3100 will only be sent to your radio on Timeslot 1.
  • If you subscribe to TG 4001 on TS2, traffic for TG 4001 will only be sent to your radio on Timeslot 2.
  • This allows a single client to monitor different Talkgroups on different Timeslots simultaneously (if the Scanner is not held by one).

Configuration

To enable Mini DMR mode, update your urfd.ini (or configuration file) in the [DMR] section:

[DMR]
; Disable legacy XLX behavior (REQUIRED for Dashboard Subscription View)
XlxCompatibility=false

; Optional: enforce single subscription per timeslot (default false)
SingleMode=false

; Scanner Hold Time in seconds (default 5)
HoldTime=5

; Dynamic Subscription Timeout in seconds (default 600 / 10 mins)
; 0 = Infinite
DefaultTimeout=600

; Module to Talkgroup Mapping (Optional)
; Maps Module A to TG 4001, B to 4002, etc. automatically.
; You can override specific maps:
MapA=4001
MapB=4002

; IMPORTANT: Any module you map (e.g. A, B) MUST be enabled in the [Modules] section!
; If Module A is not enabled, traffic for TG 4001 will be dropped.

Usage

1. Subscribing via PTT (Push-To-Talk)

The easiest way to subscribe to a Talkgroup is to simply transmit on it from your radio.

  • Action: Key up (PTT) on TG 1234.
  • Result: The reflector detects your transmission and automatically subscribes you to TG 1234 for the configured timeout duration (e.g., 10 minutes).
  • Renewal: If you are already subscribed, keying up again will reset the timeout timer back to the full duration.
  • Note: The first transmission might be muted (Anti-Kerchunk) to prevent noise, but you will immediately be subscribed.

2. Subscribing via Options String

You can manage subscriptions sent from your MMDVM hotspot/repeater configuration (or Pi-Star Options field).

  • Format: TS1=TG_ID;TS2=TG_ID;AUTO=TIMEOUT
  • Example: TS2=3100,4001;AUTO=600
    • Subscribes Timeslot 2 to TG 3100 and TG 4001.
    • Sets timeout to 600 seconds.

3. Disconnecting / Unsubscribing

  • Disconnect All: Transmit a Group Call to TG 4000. This clears all dynamic subscriptions on that timeslot.
  • Single Mode: If SingleMode=true is set in config, transmitting on a new Talkgroup automatically unsubscribes you from the previous one.

4. Talkgroup 9 (Reflector)

  • Traffic on TG 9 is treated as local reflector traffic (linked functionality) if the client is essentially "linked" to a module, but in Mini DMR mode, TG 9 behavior depends on the specific map configuration or defaults. Typically, use specific Talkgroups for wide-area routing.

Dashboard

The URFD Dashboard includes a dedicated DMR page (/dmr) to monitor Flexible DMR Mode activity.

  • Active Subscriptions: Shows all Talkgroups a client is monitoring, along with the specific Timeslot.
  • Timers: Displays a real-time countdown for Dynamic Subscriptions. Static subscriptions are marked as Static.
  • DMR ID: Displays the client's DMR ID alongside their callsign (e.g., CALLSIGN (3100123)).
  • Requirements: The dashboard requires NO additional configuration. It automatically displays data once XlxCompatibility=false is set in the backend config.

Troubleshooting

"Recordings are blank" or "No Traffic on other modes"

If clients can connect and transmit but you see no traffic on other protocols (M17, YSF) or blank recordings:

  • Check Modules: Ensure the mapped Module (e.g. A for TG 4001) is defined and enabled in your [Modules] configuration.
  • Log Check: Look for Can't find module 'X' for Client ... errors in the reflector log.

Powered by TurnKey Linux.