This section will attempt to provide some basic troubleshooting and tuning steps to help get your equipment operational. However, it is not a substitute for proper alignment and calibration of equipment performed by a qualified professional using a service monitor.

Physical Connections

TX & RX Radios
  1. Is the TX repeater cable plugged into the TX radio? Similarly, is the RX cable plugged into the RX radio?
DVM-V1 Duplex Modem
  1. Is the end of the Ethernet cable being plugged into the DVM-V1 Duplex Modem wired to meet the T568-B (most common) standard?
  2. Is the DVM-V1 Duplex modem receiving power from a USB-C power source?

Radio Programming/Tuning

Are your radios aligned and transmitting on the proper frequencies?
  1. If you do not have access to a proper service monitor give this video a watch. "Accomplish The Impossible" covers using an SDR as a makeshift reference oscillator to tune an ASTRO/ASTRO25 series radio.

CDM Programming/Tuning

  1. TX Radio: Review the steps in Prepare & Program TX Radio.
  2. RX Radio: Review the steps in Prepare & Program RX Radio.

TX & RX Issues From The DVM-V1 Duplex Modem

  1. Is your DVM-V1 Duplex Modem transmitting and receiving at the proper power levels?

Special thanks to community member @Ausk from the DVMProject Discord for all of his assistance and tutelage throughout this section.

Start dvmhost in calibration mode
./dvmhost -c /opt/dvm/config.yml -f --cal
Notate the TX and RX Levels called out in the output above. They may be different on your DVM-V1 Duplex Modem
I:
                                        .         .
8 888888888o.   `8.`888b           ,8' ,8.       ,8.
8 8888    `^888. `8.`888b         ,8' ,888.     ,888.
8 8888        `88.`8.`888b       ,8' .`8888.   .`8888.
8 8888         `88 `8.`888b     ,8' ,8.`8888. ,8.`8888.
8 8888          88  `8.`888b   ,8' ,8'8.`8888,8^8.`8888.
8 8888          88   `8.`888b ,8' ,8' `8.`8888' `8.`8888.
8 8888         ,88    `8.`888b8' ,8'   `8.`88'   `8.`8888.
8 8888        ,88'     `8.`888' ,8'     `8.`'     `8.`8888.
8 8888    ,o88P'        `8.`8' ,8'       `8        `8.`8888.
8 888888888P'            `8.` ,8'         `         `8.`8888.

Digital Voice Modem (DVM) Host 04.32J (R04J32 7c2bfb39) (built Sep  3 2025 02:22:09 DEBUG_FACTORY_LABTOOL)
Copyright (c) 2017-2025 Bryan Biedenkapp, N2PLL and DVMProject (https://github.com/dvmproject) Authors.
Portions Copyright (c) 2015-2021 by Jonathan Naylor, G4KLX and others
>> Modem Calibration

I: Iden Table Lookups
I:     File: /opt/dvm/rules/iden_table.dat <-- PATH TO YOUR IDEN_TABLE.DAT
I:     Reload: 30 mins
M: (HOST) Channel Id 0: BaseFrequency = 851006250Hz, TXOffsetMhz = -45.000000MHz, BandwidthKhz = 12.500000KHz, SpaceKhz = 6.250000KHz
M: (HOST) Channel Id 1: BaseFrequency = 762006250Hz, TXOffsetMhz = 30.000000MHz, BandwidthKhz = 12.500000KHz, SpaceKhz = 6.250000KHz
M: (HOST) Channel Id 15: BaseFrequency = 935001250Hz, TXOffsetMhz = -39.000000MHz, BandwidthKhz = 12.500000KHz, SpaceKhz = 6.250000KHz
M: (HOST) Channel Id 2: BaseFrequency = 450000000Hz, TXOffsetMhz = 5.000000MHz, BandwidthKhz = 12.500000KHz, SpaceKhz = 6.250000KHz
M: (HOST) Channel Id 3: BaseFrequency = 146000000Hz, TXOffsetMhz = 1.000000MHz, BandwidthKhz = 12.500000KHz, SpaceKhz = 6.250000KHz
I: (HOST) Loaded 5 entries into lookup table
I: General Parameters
I:     Identity: [YOUR-REPEATER-NAME]
I: System Config Parameters
I:     RX Frequency: 469000000Hz <-- SHOULD MATCH YOUR RX RADIO FREQUENCY
I:     TX Frequency: 464000000Hz <-- SHOULD MATCH YOUR TX RADIO FREQUENCY
I:     Base Frequency: 450000000Hz
I:     TX Offset: 5.000000MHz
I: Modem Parameters
I:     Port Type: uart
I:     UART Port: /dev/ttyUSB0 <-- LOCATION OF DVM-V1 DUPLEX MODEM
I:     UART Speed: 115200
I:     RX Invert: no
I:     TX Invert: no
I:     PTT Invert: no
I:     DC Blocker: yes
I:     FDMA Preambles: 80 (16.7ms)
I:     DMR RX Delay: 7 (0.3ms)
I:     P25 Corr. Count: 8 (5.3ms)
I:     RX DC Offset: 0
I:     TX DC Offset: 0
I:     RX Tuning Offset: 0hz
I:     TX Tuning Offset: 0hz
I:     RX Effective Frequency: 469000000hz <-- SHOULD MATCH YOUR RX RADIO FREQUENCY
I:     TX Effective Frequency: 464000000hz <-- SHOULD MATCH YOUR TX RADIO FREQUENCY
I:     RX Coarse: 127, Fine: 127
I:     TX Coarse: 127, Fine: 127
I:     RSSI Coarse: 127, Fine: 127
I:     RX Level: 50.0% <-- CURRENT RX LEVEL, THIS MAY NEED ADJUSTING
I:     TX Level: 18.0% <-- CURRENT TX LEVEL, THIS MAY NEED ADJUSTING
I:     DMR FIFO Size: 560 bytes
I:     P25 FIFO Size: 522 bytes
I:     NXDN FIFO Size: 538 bytes
Program a P25 "test" frequency

Note: A Motorola XTS2500 with FPP enabled is what I used for my testing.

  1. Chan Name: Test
  2. Zone Name: Z1 (Or whatever your current zone is)
  3. TX: 469.000000
  4. RX: 464.000000
  5. TX PL: 0 CSQ
  6. RX PL: 0 CSQ
  7. TX DPL: #0 CSQ
  8. RX DPL: #0 CSQ
  9. TX NAC: $293
  10. RX NAC: $293
  11. RX Type: Digital
  12. TX Type: Digital
  13. Bandwidth: 12.5 kHz
Enable the "P25 1011 Hz Test Pattern" for TX on DVM-V1 Duplex Modem
  1. Press P in the console to enable the proper test pattern.
P (Case sensitive)
M: (CAL)  - [Tx] P25 1011 Hz Test Pattern (NAC293 ID1 TG1)
Start transmitting from the DVM-V1 Duplex Modem
  1. Press Spacebar to start and stop transmitting. Be careful not to TX for an extended period of time as the CDM series of radios can get quite hot.
<Spacebar>
M: (CAL)  - Modem start transmitting
<Spacebar>
M: (CAL)  - Modem stop transmitting
Listen for the audible tone. And tune up, or down as necessary.
  1. If you hear a clear continuously audible tone, then your TX levels should appropriate. My DVM-V1 Duplex Modem shipped at a 40% TX level and I had to bring it down to 18%. A sample of this should sound like can be found here.
If you do not hear the tone
  1. If no tone is heard, press t in the console to turn the TX level down. If you get all the way to 0% and no turn is heard press T to increase the level. You can press and hold the keys adjust more quickly and then fine tune as needed.
<t>
M: (CAL)  - TX Level: 17.8%
<t>
M: (CAL)  - TX Level: 17.5%
<t>
M: (CAL)  - TX Level: 17.2%
<T>
M: (CAL)  - TX Level: 17.5%
<T>
M: (CAL)  - TX Level: 17.8%
<T>
M: (CAL)  - TX Level: 18.0%
Tune the TX level to get your your Bit Error Rate (BER) as close to 0% as possible.

Note: I am using a Motorola XTS2500 hooked up to a Dell Latitude 5414 via RKN4105.

  1. Launch the "ASTRO25 Tuner" and read in your radio
  2. Feature > Performance Testing > Bit Error Rate
    1. Rx Frequency (MHz): 464
    2. Test Pattern: Framed 1011
    3. Modulation Type: C4FM
    4. Continuous Operation: Yes
    5. Audio: Mute
    6. BER Integration Time (sec): 0.36 (This was default for me)
    7. Number of Frames: 1 (this was default for me)
    8. Click "Start"
      1. Note: You may see "Test in Progress... Please Wait" change to "No Sync Detected." This is normal.
  3. Go back to the console controlling the DVM-V1 Duplex Modem and press Spacebar to start transmitting again. You should see some data start populating in the "Results" section of the "Bit Error Rate" test window. You want the BER% to be as close to 0% as possible continuously, press t to decrease the TX level or Tto increase the TX level- repeat as needed.
    1. Once completed, move to RX tuning below.
Bit Error Rate TX Levels
M: (CAL) - TX Level: 34.8%
M: (CAL) - TX Level: 35.0%
M: (CAL) - TX Level: 35.2%
M: (CAL) - TX Level: 35.5%
M: (CAL) - TX Level: 35.8%
M: (CAL) - TX Level: 36.0%
M: (CAL) - TX Level: 36.2%
M: (CAL) - TX Level: 36.5%

Note: This ultimately went to 000 with a BER% of 0.000.
M: (CAL) - TX Level: 17.0%
M: (CAL) - TX Level: 17.2%
M: (CAL) - TX Level: 17.5%
M: (CAL) - TX Level: 17.8%
M: (CAL) - TX Level: 18.0%
M: (CAL) - TX Level: 18.2%
M: (CAL) - TX Level: 18.5%
M: (CAL) - TX Level: 18.2%
M: (CAL) - TX Level: 18.0%

 

Enable the "P25 1011 Hz Test Pattern" for RX on DVM-V1 Duplex Modem
  1. Press j in the console to enable the proper test pattern.
j (Case sensitive)
M: (CAL)  - [Rx] P25 1011 Hz Test Pattern (NAC293 ID1 TG1)
Tune the RX level to get your your Bit Error Rate (BER) as close to 0% as possible.

Note: I am using a Motorola XTS2500 hooked up to a Dell Latitude 5414 via RKN4105.

  1. Launch the "ASTRO25 Tuner" and read in your radio
  2. Feature > Performance Testing > Transmitter Test Pattern
    1. Tx Frequency (MHz): 469
    2. Channel Spacing: 469
    3. Test Pattern Type: Standard Tone Test pattern (1011)
    4. Click "PTT TOGGLE"
      1. Note: You will see "TRANSMITTING AT - 469.000000 MHz" when the transmission is active from then radio. You may here raw P25 audio coming through the RX radio while this is being performed.
  3. Go back to the console controlling the DVM-V1 Duplex Modem and you should see some output start to scroll. You want the BER% to be as close to 0% as possible continuously, press r to decrease the RX level or Rto increase the RX level- repeat as needed.
Reference Photo
Output RX Level
M: (CAL) P25, sync word, errs = 2, sync word = 55 34 F5 FF 77 FF
M: (CAL) P25, LDU1 (Logical Link Data Unit 1) LC, mfId = $00, lco = $00, emerg = 0, encrypt = 0, prio = 4, group = 1, srcId = 0, dstId = 0
M: (CAL) P25, LDU1 (Logical Link Data Unit 1), audio FEC BER (errs): 7.543% (93/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU2 (Logical Link Data Unit 2) LC, mfId = $00, algo = 80, kid = 0
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), MI 00 00 00 00 00 00 00 00 00
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), audio FEC BER (errs): 6.164% (76/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU1 (Logical Link Data Unit 1) LC, mfId = $00, lco = $00, emerg = 0, encrypt = 0, prio = 4, group = 1, srcId = 0, dstId = 0
M: (CAL) P25, LDU1 (Logical Link Data Unit 1), audio FEC BER (errs): 8.354% (103/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU2 (Logical Link Data Unit 2) LC, mfId = $00, algo = 80, kid = 0
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), MI 00 00 00 00 00 00 00 00 00
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), audio FEC BER (errs): 6.245% (77/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU1 (Logical Link Data Unit 1) LC, mfId = $00, lco = $00, emerg = 0, encrypt = 0, prio = 4, group = 1, srcId = 0, dstId = 0
M: (CAL) P25, LDU1 (Logical Link Data Unit 1), audio FEC BER (errs): 8.597% (106/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) Transmission lost, total frames: 6, bits: 7398, uncorrectable frames: 0, undecodable LC: 0, errors: 520, BER: 7.0289%
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU1 (Logical Link Data Unit 1) LC, mfId = $00, lco = $00, emerg = 0, encrypt = 0, prio = 4, group = 1, srcId = 0, dstId = 0
M: (CAL) P25, LDU1 (Logical Link Data Unit 1), audio FEC BER (errs): 8.435% (104/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) Transmission lost, total frames: 1, bits: 1233, uncorrectable frames: 0, undecodable LC: 0, errors: 104, BER: 8.4347%
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU1 (Logical Link Data Unit 1) LC, mfId = $00, lco = $00, emerg = 0, encrypt = 0, prio = 4, group = 1, srcId = 0, dstId = 0
M: (CAL) P25, LDU1 (Logical Link Data Unit 1), audio FEC BER (errs): 8.597% (106/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU2 (Logical Link Data Unit 2) LC, mfId = $00, algo = 80, kid = 0
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), MI 00 00 00 00 00 00 00 00 00
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), audio FEC BER (errs): 6.650% (82/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU1 (Logical Link Data Unit 1) LC, mfId = $00, lco = $00, emerg = 0, encrypt = 0, prio = 4, group = 1, srcId = 0, dstId = 0
M: (CAL) P25, LDU1 (Logical Link Data Unit 1), audio FEC BER (errs): 8.678% (107/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU2 (Logical Link Data Unit 2) LC, mfId = $00, algo = 80, kid = 0
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), MI 00 00 00 00 00 00 00 00 00
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), audio FEC BER (errs): 6.488% (80/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU1 (Logical Link Data Unit 1) LC, mfId = $00, lco = $00, emerg = 0, encrypt = 0, prio = 4, group = 1, srcId = 0, dstId = 0
M: (CAL) P25, LDU1 (Logical Link Data Unit 1), audio FEC BER (errs): 8.759% (108/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU2 (Logical Link Data Unit 2) LC, mfId = $00, algo = 80, kid = 0
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), MI 00 00 00 00 00 00 00 00 00
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), audio FEC BER (errs): 7.218% (89/1233)
M: (CAL) - RX Level: 0.0%
M: (CAL) - RX Level: 0.2%
M: (CAL) - RX Level: 0.5%
M: (CAL) - RX Level: 0.8%
M: (CAL) - RX Level: 1.0%
M: (CAL) P25, LDU1 (Logical Link Data Unit 1) LC, mfId = $00, lco = $00, emerg = 0, encrypt = 0, prio = 4, group = 1, srcId = 0, dstId = 0
M: (CAL) P25, LDU1 (Logical Link Data Unit 1), audio FEC BER (errs): 0.000% (0/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU2 (Logical Link Data Unit 2) LC, mfId = $00, algo = 80, kid = 0
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), MI 00 00 00 00 00 00 00 00 00
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), audio FEC BER (errs): 0.000% (0/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU1 (Logical Link Data Unit 1) LC, mfId = $00, lco = $00, emerg = 0, encrypt = 0, prio = 4, group = 1, srcId = 0, dstId = 0
M: (CAL) P25, LDU1 (Logical Link Data Unit 1), audio FEC BER (errs): 0.000% (0/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU2 (Logical Link Data Unit 2) LC, mfId = $00, algo = 80, kid = 0
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), MI 00 00 00 00 00 00 00 00 00
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), audio FEC BER (errs): 0.000% (0/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU1 (Logical Link Data Unit 1) LC, mfId = $00, lco = $00, emerg = 0, encrypt = 0, prio = 4, group = 1, srcId = 0, dstId = 0
M: (CAL) P25, LDU1 (Logical Link Data Unit 1), audio FEC BER (errs): 0.000% (0/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU2 (Logical Link Data Unit 2) LC, mfId = $00, algo = 80, kid = 0
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), MI 00 00 00 00 00 00 00 00 00
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), audio FEC BER (errs): 0.000% (0/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU1 (Logical Link Data Unit 1) LC, mfId = $00, lco = $00, emerg = 0, encrypt = 0, prio = 4, group = 1, srcId = 0, dstId = 0
M: (CAL) P25, LDU1 (Logical Link Data Unit 1), audio FEC BER (errs): 0.000% (0/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU2 (Logical Link Data Unit 2) LC, mfId = $00, algo = 80, kid = 0
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), MI 00 00 00 00 00 00 00 00 00
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), audio FEC BER (errs): 0.000% (0/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU1 (Logical Link Data Unit 1) LC, mfId = $00, lco = $00, emerg = 0, encrypt = 0, prio = 4, group = 1, srcId = 0, dstId = 0
M: (CAL) P25, LDU1 (Logical Link Data Unit 1), audio FEC BER (errs): 0.000% (0/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU2 (Logical Link Data Unit 2) LC, mfId = $00, algo = 80, kid = 0
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), MI 00 00 00 00 00 00 00 00 00
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), audio FEC BER (errs): 0.000% (0/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU1 (Logical Link Data Unit 1) LC, mfId = $00, lco = $00, emerg = 0, encrypt = 0, prio = 4, group = 1, srcId = 0, dstId = 0
M: (CAL) P25, LDU1 (Logical Link Data Unit 1), audio FEC BER (errs): 0.000% (0/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU2 (Logical Link Data Unit 2) LC, mfId = $00, algo = 80, kid = 0
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), MI 00 00 00 00 00 00 00 00 00
M: (CAL) P25, LDU2 (Logical Link Data Unit 2), audio FEC BER (errs): 0.000% (0/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) P25, LDU1 (Logical Link Data Unit 1) LC, mfId = $00, lco = $00, emerg = 0, encrypt = 0, prio = 4, group = 1, srcId = 0, dstId = 0
M: (CAL) P25, LDU1 (Logical Link Data Unit 1), audio FEC BER (errs): 0.000% (0/1233)
M: (CAL) P25, sync word, errs = 0, sync word = 55 75 F5 FF 77 FF
M: (CAL) - RX Level: 49.0%
M: (CAL) - RX Level: 49.2%
M: (CAL) - RX Level: 49.5%
M: (CAL) - RX Level: 49.8%
M: (CAL) - RX Level: 50.0

 

Save your changes to the DVM-V1 Duplex Modem when you are satisfied with your TX and RX levels.
  1. Press s in the console to write the changes out to the modem.
M: (CAL)  - Saved configuration to /opt/dvm/config.yml
M: (CAL)  - Wrote configuration area on modem

Additional Resources

Forums, Communities, Repositories
  1. DVMProject Homepage
  2. DVMProject GitHub
  3. DVMProject Discord
  4. Motorola CDM1250 Repeater Home Build (Radio Reference)
  5. The Motorola CDM Series Mobile Radio Index Page (Repeater-Builder)
  6. Interfacing Two CDM 1250s with RICK (Communications Support)
  7. Repeater with 2 CDM1250's (Repeater-Builder via Groups.io)
Manuals
  1. CDM Series User Guide (All Guides)
  2. CDM Series Service & Installation Manual (All Guides)
  3. CDM Series Basic Service Manual (All Guides)
  4. CDM Series Detailed Service Manual (All Guides)