# DStarRepeater Configuration Reference > **Note:** The config parser treats any line beginning with `#` as a > comment, and blank lines are skipped. Use `dstarrepeater.example` as > your starting point for a clean config. **Config file location:** `/etc/dstarrepeater` (or `/etc/dstarrepeater_` when using the `-name` command line option) **Format:** `key=value` — one setting per line, no spaces around the `=`. Boolean values use `0` for off/false and `1` for on/true. --- ## Callsign Settings | Setting | Description | |---------|-------------| | `callsign=GB3IN C` | Repeater callsign, padded to 8 characters. 7-character base callsign + 1-character module suffix (A, B, C, D, or E). | | `gateway=` | Gateway callsign, padded to 8 characters (e.g. `GB3IN G`). Leave empty if not linked to a gateway. | | `mode=0` | Operating mode — see [Mode Values](#mode-values) below. | | `ack=1` | Acknowledgement type — see [Ack Values](#ack-values) below. Forced to `0` in Gateway, TX Only, RX Only, and TX and RX modes. | | `restriction=0` | `1` = only whitelisted callsigns accepted. | | `rpt1Validation=1` | `1` = only accept headers addressed to this repeater. Forced to `1` in Gateway mode. | | `dtmfBlanking=1` | `1` = mute DTMF tones from the audio stream. | | `errorReply=1` | `1` = reply with an error message for invalid commands. | ### Mode Values | Value | Mode | Description | |:-----:|------|-------------| | `0` | Duplex | Full duplex repeater (simultaneous TX and RX) | | `1` | Simplex | Simplex repeater | | `2` | Gateway | Gateway mode (ack forced off, RPT1 validation forced on) | | `3` | TX Only | Transmit only (ack forced off) | | `4` | RX Only | Receive only (ack forced off) | | `5` | TX and RX | Sequential transmit then receive | ### Ack Values | Value | Type | Description | |:-----:|------|-------------| | `0` | Off | No acknowledgement | | `1` | BER | Respond with Bit Error Rate | | `2` | Status | Respond with status message | --- ## Network Settings | Setting | Description | |---------|-------------| | `gatewayAddress=127.0.0.1` | IP address of the [ircDDBGateway](https://github.com/g4klx/ircDDBGateway) or [DStarGateway](https://github.com/g4klx/DStarGateway). | | `gatewayPort=20010` | UDP port the gateway is listening on. | | `localAddress=127.0.0.1` | Local IP address to bind for gateway communication. | | `localPort=20011` | Local UDP port for gateway communication. | | `networkName=` | Network name identifier for multi-repeater setups. Leave empty for a single repeater. | --- ## Modem Type | Setting | Description | |---------|-------------| | `modemType=DVAP` | The type of modem hardware connected to this repeater. | Must be one of the following strings (case-sensitive): - `DVAP` - `DVMEGA` - `DV-RPTR V1` - `DV-RPTR V2` - `DV-RPTR V3` - `GMSK Modem` - `MMDVM` - `Sound Card` - `Split` - `Icom Access Point/Terminal Mode` Only the settings for your selected modem type need to be configured — see [Modem-Specific Settings](#modem-specific-settings). --- ## Timing | Setting | Description | |---------|-------------| | `timeout=180` | Transmission timeout in seconds. `0` to disable. | | `ackTime=500` | Acknowledgement delay in milliseconds. | --- ## Beacon | Setting | Description | |---------|-------------| | `beaconTime=600` | Beacon interval in seconds. `0` to disable. | | `beaconText=D-Star Repeater` | Text transmitted in the beacon slow data field. | | `beaconVoice=0` | `1` = transmit a voice beacon in addition to data. | | `language=0` | Language for voice beacon text-to-speech — see [Language Values](#language-values) below. | ### Language Values | Value | Language | |:-----:|----------| | `0` | English (UK) | | `1` | Deutsch | | `2` | Dansk | | `3` | Francais | | `4` | Italiano | | `5` | Polski | | `6` | Espanol | | `7` | Svenska | | `8` | Nederlands | | `9` | English (US) | | `10` | Norsk | --- ## Announcement | Setting | Description | |---------|-------------| | `announcementEnabled=0` | `1` = enable the announcement/recording feature. | | `announcementTime=500` | Announcement playback interval in milliseconds. | | `announcementRecordRPT1=` | RPT1 callsign that triggers recording. | | `announcementRecordRPT2=` | RPT2 callsign that triggers recording. | | `announcementDeleteRPT1=` | RPT1 callsign that triggers deletion. | | `announcementDeleteRPT2=` | RPT2 callsign that triggers deletion. | --- ## DTMF Control | Setting | Description | |---------|-------------| | `controlEnabled=0` | `1` = enable DTMF remote control. | | `controlRPT1=` | RPT1 callsign required for control commands. | | `controlRPT2=` | RPT2 callsign required for control commands. | | `controlShutdown=` | DTMF sequence to remotely shut down the repeater. | | `controlStartup=` | DTMF sequence to remotely start up the repeater. | | `controlStatus1=` | DTMF sequence to trigger status message 1. | | `controlStatus2=` | DTMF sequence to trigger status message 2. | | `controlStatus3=` | DTMF sequence to trigger status message 3. | | `controlStatus4=` | DTMF sequence to trigger status message 4. | | `controlStatus5=` | DTMF sequence to trigger status message 5. | | `controlCommand1=` | DTMF sequence for custom command 1. | | `controlCommand1Line=` | Shell command executed when command 1 is received. | | `controlCommand2=` | DTMF sequence for custom command 2. | | `controlCommand2Line=` | Shell command executed when command 2 is received. | | `controlCommand3=` | DTMF sequence for custom command 3. | | `controlCommand3Line=` | Shell command executed when command 3 is received. | | `controlCommand4=` | DTMF sequence for custom command 4. | | `controlCommand4Line=` | Shell command executed when command 4 is received. | | `controlCommand5=` | DTMF sequence for custom command 5. | | `controlCommand5Line=` | Shell command executed when command 5 is received. | | `controlCommand6=` | DTMF sequence for custom command 6. | | `controlCommand6Line=` | Shell command executed when command 6 is received. | | `controlOutput1=` | DTMF sequence to toggle output relay 1. | | `controlOutput2=` | DTMF sequence to toggle output relay 2. | | `controlOutput3=` | DTMF sequence to toggle output relay 3. | | `controlOutput4=` | DTMF sequence to toggle output relay 4. | --- ## External Controller | Setting | Description | |---------|-------------| | `controllerType=` | Hardware controller type for PTT, LEDs, and relays — see [Controller Types](#controller-types) below. Leave empty for none. | | `serialConfig=1` | Hardware config selection (1–5). Selects pin/output mappings on the controller. | | `pttInvert=0` | `1` = invert PTT output (active low). | | `activeHangTime=0` | Seconds to hold active state after last transmission ends. `0` to disable. | ### Controller Types | Value | Description | |-------|-------------| | *(empty)* | No controller | | `GPIO` | Raspberry Pi GPIO pins | | `UDRC` | UDRC board (Raspberry Pi) | | `Velleman K8055 - 0` | Velleman K8055 USB board at address 0–3 | | `URI USB - 1` | URI USB relay card at address 1–6 | | `Serial - /dev/ttyUSB0` | Serial port controller | | `Arduino - /dev/ttyUSB0` | Arduino controller via serial | --- ## Output Relay Defaults | Setting | Description | |---------|-------------| | `output1=0` | Default state of output relay 1 at startup. `1` = on. | | `output2=0` | Default state of output relay 2 at startup. `1` = on. | | `output3=0` | Default state of output relay 3 at startup. `1` = on. | | `output4=0` | Default state of output relay 4 at startup. `1` = on. | --- ## Logging | Setting | Description | |---------|-------------| | `logging=0` | `1` = enable logging to file. | --- ## Window Position (GUI only) | Setting | Description | |---------|-------------| | `windowX=-1` | Window X position. `-1` for system default. | | `windowY=-1` | Window Y position. `-1` for system default. | --- ## Modem-Specific Settings Only configure the section that matches your `modemType`. ### DVAP | Setting | Description | |---------|-------------| | `dvapPort=` | Serial port (e.g. `/dev/ttyUSB0`). | | `dvapFrequency=145500000` | Operating frequency in Hz (e.g. `438500000` = 438.500 MHz). | | `dvapPower=10` | Transmit power in dBm. | | `dvapSquelch=-100` | Squelch level in dBm. Signals below this are ignored. | ### GMSK Modem | Setting | Description | |---------|-------------| | `gmskAddress=768` | USB address of the GMSK modem (decimal). Default 768 = 0x0300 hex. | ### DV-RPTR V1 | Setting | Description | |---------|-------------| | `dvrptr1Port=` | Serial port (e.g. `/dev/ttyUSB0`). | | `dvrptr1RXInvert=0` | `1` = invert received signal polarity. | | `dvrptr1TXInvert=0` | `1` = invert transmitted signal polarity. | | `dvrptr1Channel=0` | `0` = Channel A, `1` = Channel B. | | `dvrptr1ModLevel=20` | Modulation level (0–100%). | | `dvrptr1TXDelay=150` | Transmit delay in milliseconds. | ### DV-RPTR V2 | Setting | Description | |---------|-------------| | `dvrptr2Connection=0` | `0` = USB, `1` = Network. | | `dvrptr2USBPort=` | USB serial port (when connection = `0`). | | `dvrptr2Address=127.0.0.1` | Network address (when connection = `1`). | | `dvrptr2Port=0` | Network port (when connection = `1`). | | `dvrptr2TXInvert=0` | `1` = invert transmitted signal polarity. | | `dvrptr2ModLevel=20` | Modulation level (0–100%). | | `dvrptr2TXDelay=150` | Transmit delay in milliseconds. | ### DV-RPTR V3 | Setting | Description | |---------|-------------| | `dvrptr3Connection=0` | `0` = USB, `1` = Network. | | `dvrptr3USBPort=` | USB serial port (when connection = `0`). | | `dvrptr3Address=127.0.0.1` | Network address (when connection = `1`). | | `dvrptr3Port=0` | Network port (when connection = `1`). | | `dvrptr3TXInvert=0` | `1` = invert transmitted signal polarity. | | `dvrptr3ModLevel=20` | Modulation level (0–100%). | | `dvrptr3TXDelay=150` | Transmit delay in milliseconds. | ### DVMEGA | Setting | Description | |---------|-------------| | `dvmegaPort=` | Serial port (e.g. `/dev/ttyAMA0`). | | `dvmegaVariant=0` | `0` = Modem, `1` = Radio 2m, `2` = Radio 70cm, `3` = Radio 2m/70cm. | | `dvmegaRXInvert=0` | `1` = invert received signal polarity. | | `dvmegaTXInvert=0` | `1` = invert transmitted signal polarity. | | `dvmegaTXDelay=150` | Transmit delay in milliseconds. | | `dvmegaRXFrequency=145500000` | Receive frequency in Hz (radio variants only). | | `dvmegaTXFrequency=145500000` | Transmit frequency in Hz (radio variants only). | | `dvmegaPower=100` | Transmit power as a percentage (0–100%, radio variants only). | ### MMDVM | Setting | Description | |---------|-------------| | `mmdvmPort=` | Serial port (e.g. `/dev/ttyACM0`). | | `mmdvmRXInvert=0` | `1` = invert received signal polarity. | | `mmdvmTXInvert=0` | `1` = invert transmitted signal polarity. | | `mmdvmPTTInvert=0` | `1` = invert PTT signal. | | `mmdvmTXDelay=50` | Transmit delay in milliseconds. | | `mmdvmRXLevel=100` | Receive audio level (0–100%). | | `mmdvmTXLevel=100` | Transmit audio level (0–100%). | ### Sound Card | Setting | Description | |---------|-------------| | `soundCardRXDevice=` | Sound card device name for receiving audio. | | `soundCardTXDevice=` | Sound card device name for transmitting audio. | | `soundCardRXInvert=0` | `1` = invert received signal polarity. | | `soundCardTXInvert=0` | `1` = invert transmitted signal polarity. | | `soundCardRXLevel=1.0000` | Receive level multiplier (1.0 = unity gain). | | `soundCardTXLevel=1.0000` | Transmit level multiplier (1.0 = unity gain). | | `soundCardTXDelay=150` | Transmit delay in milliseconds. | | `soundCardTXTail=50` | Transmit tail in milliseconds (extra carrier after last frame). | ### Icom Access Point/Terminal Mode | Setting | Description | |---------|-------------| | `icomPort=` | Serial port (e.g. `/dev/ttyUSB0`). | ### Split | Setting | Description | |---------|-------------| | `splitLocalAddress=` | Local IP address for split RX/TX communication. | | `splitLocalPort=0` | Local UDP port for split communication. | | `splitTimeout=0` | Split timeout in seconds. `0` to disable. | Split TX/RX names are stored as indexed entries (`splitTXName0`, `splitRXName0`, etc.) — up to 5 transmitters and 25 receivers. --- ## MQTT Settings *Only used when built with `make MQTT=1`. See [MQTT.md](MQTT.md) for full details on topics, JSON format, and Display-Driver compatibility.* | Setting | Description | |---------|-------------| | `mqttHost=127.0.0.1` | MQTT broker hostname or IP address. Set to empty to disable MQTT at runtime even when compiled in. | | `mqttPort=1883` | MQTT broker port. | | `mqttAuth=0` | `1` = authenticate with the broker using `mqttUsername` and `mqttPassword`. | | `mqttUsername=` | Broker username (when `mqttAuth=1`). | | `mqttPassword=` | Broker password (when `mqttAuth=1`). | | `mqttKeepalive=60` | Keepalive interval in seconds. Minimum 5. | | `mqttName=dstar-repeater` | Client name and topic prefix for all published messages. | ### MQTT Topics With the default `mqttName` of `dstar-repeater`, the following topics are published: | Topic | Content | |-------|---------| | `dstar-repeater/log` | Timestamped log messages, filtered by severity. | | `dstar-repeater/status` | JSON repeater status, published once per second. | | `dstar-repeater/json` | Display-Driver-compatible events at state transitions. |