Tone Modes in CHIRP

(None)

An empty Memory.tmode means that no tone is transmitted or received

Tone

A Memory.tmode of "Tone" means that the radio will transmit a single sub-audible tone, according to the Memory.rtone value. In this mode, the receiver is carrier squelch.

TSQL

A Memory.tmode of "TSQL" means that the radio will transmit a sub-audible tone, according to either the Memory.rtone or Memory.ctone value. In this mode, the receiver uses tone squelch with the same value as the transmitter. If the radio's feature set includes "has_ctone" (most Icom and Kenwood radios) then the value used in this case is Memory.ctone. Otherwise, use Memory.rtone.

DTCS

A Memory.tmode of "DTCS" means that the radio will transmit a DCS code, according to either the Memory.dtcs or Memory.rx_dtcs value. In this mode, the receiver uses DTCS squelch with the same value of the transmitter. If the radio's feature set includes "has_rx_dtcs" then the value used in this case is Memory.rx_dtcs. Otherwise, use Memory.dtcs.

Cross

A Memory.tmode of "Cross" means that the radio will use an asymmetric squelch configuration according to the value of Memory.cross_mode:

Tone->Tone

A cross_mode of "Tone->Tone" means the radio will use sub-audible tones for transmit and receive, the values of which are Memory.rtone and Memory.ctone respectively.

Tone->DTCS

A cross mode of "Tone->DTCS" means that the radio will use a sub-audible tone for transmit, according to Memory.rtone, and a DCS code for receiver squelch. If the radio's feature set includes "has_rx_dtcs" then the value used in this case is Memory.rx_dtcs. Otherwise, use Memory.dtcs

DTCS->Tone

A cross mode of "DTCS->Tone" means that the radio will use a DCS code for transmit, according to Memory.dtcs, and a sub-audible tone for receiver squelch. If the radio's feature set includes "has_ctone" then the value used in this case is Memory.ctone. Otherwise, use Memory.rtone.

->Tone

A cross mode of "->Tone" means that the radio will not transmit a sub-audible tone, but will enable tone squelch on the receiver. If the radio's feature set includes "has_ctone" then the value used in this case is Memory.ctone. Otherwise, use Memory.rtone.

->DTCS

A cross mode of "->DTCS" means that the radio will not transmit a sub-audible tone, but will enable DCS squelch on the receiver. If the radio's feature set includes "has_rx_dtcs" then the value used in this case is Memory.rx_dtcs. Otherwise, use Memory.dtcs.

DTCS->

A cross mode of "DTCS->" means that the radio will use a DCS code for transmit, according to Memory.dtcs. In this mode, the receiver is carrier squelch.

DTCS->DTCS

A cross mode of "DTCS->DTCS" means that the radio will use a DCS code for transmit and receive, the values of which are Memory.dtcs and Memory.rx_dtcs respectively.

Radio Behavior

Icom/Kenwood style

Most (maybe all?) Icoms and Kenwoods behave in a specific way. They store two tone values, one of which gets used in Tone mode, and the other which gets used in TSQL (CTCSS) mode. No Icom (that I'm aware of) can use the two values for separate TX and RX tones, nor can most Kenwoods. However, at least the Kenwood D72 can operate this way.

Yaesu style

Most Yaesu radios store just a single tone value, which gets used regardless of whether or not the radio is in Tone or TSQL mode.

Commercial style (Wouxun, Baofeng, etc)

These radios store separate TX and RX tones all the time (and often overload the same field for DTCS and tone values, storing a flag if the value is not to be used). These are effectively in "Cross" mode all the time, but CHIRP detects the common modes and provides the appearance of the other radios (emulating Tone, TSQL, and DTCS where possible).

Memory tone fields usage matrix

This table summarize which memory fields are used in each tone mode.

           |   rtone  |  ctone  |   dtcs  | rx_dtcs
           +----------+---------+---------+--------
Tone       |    X     |         |         |
ToneSQL    | !has_ct  | has_ct  |         |
DTCS       |          |         | !has_rd | has_rd
->Tone     | !has_ct  | has_ct  |         |
->DTCS     |          |         | !has_rd | has_rd
Tone->     |    X     |         |         |
Tone->Tone |    X     |   X     |         |
Tone->DTCS |    X     |         | !has_rd | has_rd
DTCS->     |          |         |    X    |
DTCS->Tone | !has_ct  | has_ct  |    X    |
DTCS->DTCS |          |         |    X    |   X

Legend
X       field used
has_ct  used if has_ctone is set
!has_ct used if has_ctone is not set
has_rd  used if has_rx_dtcs is set
!has_rd used if has_rx_dtcs is not set