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
- Is the TX repeater cable plugged into the TX radio? Similarly, is the RX cable plugged into the RX radio?
DVM-V1 Duplex Modem
- Is the end of the Ethernet cable being plugged into the DVM-V1 Duplex Modem wired to meet the T568-B (most common) standard?
- 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?
- 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
- TX Radio: Review the steps in Prepare & Program TX Radio.
- RX Radio: Review the steps in Prepare & Program RX Radio.
TX & RX Issues From The DVM-V1 Duplex Modem
- 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.
- Chan Name: Test
- Zone Name: Z1 (Or whatever your current zone is)
- TX: 469.000000
- RX: 464.000000
- TX PL: 0 CSQ
- RX PL: 0 CSQ
- TX DPL: #0 CSQ
- RX DPL: #0 CSQ
- TX NAC: $293
- RX NAC: $293
- RX Type: Digital
- TX Type: Digital
- Bandwidth: 12.5 kHz
Enable the "P25 1011 Hz Test Pattern" for TX on DVM-V1 Duplex Modem
- Press
Pin 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
- Press
Spacebarto 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.
- 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
- If no tone is heard, press
tin the console to turn the TX level down. If you get all the way to 0% and no turn is heard pressTto 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.
- Launch the "ASTRO25 Tuner" and read in your radio
- Feature > Performance Testing > Bit Error Rate
- Rx Frequency (MHz): 464
- Test Pattern: Framed 1011
- Modulation Type: C4FM
- Continuous Operation: Yes
- Audio: Mute
- BER Integration Time (sec): 0.36 (This was default for me)
- Number of Frames: 1 (this was default for me)
- Click "Start"
- Note: You may see "Test in Progress... Please Wait" change to "No Sync Detected." This is normal.
- Go back to the console controlling the DVM-V1 Duplex Modem and press
Spacebarto 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, presstto decrease the TX level orTto increase the TX level- repeat as needed.- 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
- Press
jin 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.
- Launch the "ASTRO25 Tuner" and read in your radio
- Feature > Performance Testing > Transmitter Test Pattern
- Tx Frequency (MHz): 469
- Channel Spacing: 469
- Test Pattern Type: Standard Tone Test pattern (1011)
- Click "PTT TOGGLE"
- 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.
- 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
rto decrease the RX level orRto 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.
- Press
sin 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
- DVMProject Homepage
- DVMProject GitHub
- DVMProject Discord
- Motorola CDM1250 Repeater Home Build (Radio Reference)
- The Motorola CDM Series Mobile Radio Index Page (Repeater-Builder)
- Interfacing Two CDM 1250s with RICK (Communications Support)
- Repeater with 2 CDM1250's (Repeater-Builder via Groups.io)


