Tune DMR with MMDVMCal
Tuning the DMR digital mode
The DMR mode is not the simplest mode to set. Logically, the other modes will also be then adjusted. We will see what method to reach this goal.
We present the technique allowing you to have an optimum result. You will need to equip yourself with:
Nous vous présentons la technique permettant d’avoir un résultat optimum. Vous devrez vous équiper avec :
- A spectrum analyzer and its attenuators
- an oscilloscope
First, we will set the transmission of the repeater, then in a second step, the reception of the repeater. For this, we will use the calibration software MMDVMCal. Let’s see how to install it.
Installing the Calibration Software
Change to the /opt directory
We are now downloading Jonathan’s MMDVMCal project and made available on https://github.com/G4KLX/, with this command:
sudo git clone https://github.com/G4KLX/MMDVMCal
Compile the MMDVMCal software
We change now to the /opt/MMDVMCal directory that contains the source code previously downloaded. We will launch the compilation of the software.
Tuning the DMR transmission
To make our adjustments, your transceivers must be connected to the MMDVM filter shield. Take a moment to check your wire-to-wire connections before you start the settings (Rx Audio, Squelch, Tx Audio, PTT and Ground).
In my case, I use two Motorola GM360 sets. They are connected to the filter shield with PS2 (6-pin) connectors, and on the GM360 accessory socket (Supplier eg Aliexpress). The Squelch (COR) signal level must be checked (active = high level), and if necessary be reversed by programming the GM360.
Start the tuning software, specifying the serial port on which the arduino is connected to the Raspberry Pi. Usually, the USB port is created under /dev/ttyACM0
sudo /opt/MMDVMCal/MMDVMCal /dev/ttyACM0
The help menu is displayed (h key).
The commands are:
H/h Display help
I Toggle transmit inversion
i Toggle receive inversion
P/p Toggle PTT inversion
R Increase receive level
r Decrease receive level
T Increase transmit level
t Decrease transmit level
D DMR Deviation Mode (Adjust for 2.75Khz Deviation)
d Return to Dstar Mode
V/v Display version of MMDVMCal
<space> Toggle transmit
Place the “D” command (shift key D) to enter the DMR mode setting. To switch to transmission, press the space bar. The PTT light on the MMDVM board must light up. Your transmitter must now emit. At this time, the MMDVMCal software sends a low-frequency signal of 1200 Hz to your transmitter. You can optionally listen the signal with an analog receiver set on the output frequency of your (future) relay.
Your spectrum analyzer must now be connected to the RF output of the transmitter. Be sure to set up a sufficiently powerful attenuator to protect your analyzer. Set your analyzer to see the transmit signal.
We will start by reducing the LF signal level generated by the MMDVM board, reducing the gain to 0%. To do this, press the “t” key (lower key t) several times. Check that the multi-turn TX potentiometer (R98 on my shield) is close to the middle of its range, and in any case, not at the end of the range.
Since the LF level is zero, you should only read the fundamental frequency on your analyzer (Bessel function J0).
We will now increase the level of the low frequency 1200 Hz signal, the “harmonics” will appear to the left and right of the line J0. To increase the level, press the “T” key (uppercase T).
Now, by continuing to increase the signal level with the “T” key (shift key T), you will see that the amplitude of the J0 line decreases. Beyond this point, by continuing to press “T”, the amplitude of the line J0 increases again. Note down the percentage you have reached, when the line is at minimum amplitude. We will save this TX level percentage later in the MMDVMHost configuration file.
This operating point can now be fine-tuned to the transmit potentiometer R98 of the filtering MMDVM shield, in order to always look for the amplitude of the lowest J0. This gives a spectrum like that there. Your shield is noww tune to transmit DMR.
The signal injected on the Motorola GM360 corresponding to this operating point has an amplitude of 0.6 V. Note that this level is dependent on your transceiver, and that may not be an universal reference.
In DMR, the frequency modulation deviation must be 2.75 kHz. MMDVMCal generates a signal of 1200 Hz. The Bessel J0 appears null when modulation index (x) is equal to 2.4. With this setting where the line J0 disappears, the operating point is set the deviation to 2.88 kHz (index = 2880/1200 = 2.4). We have than to minimize the TX Level (in mmdvm.ini file) by 5% to set the right deviation. For example, if we have find a TXLevel of 85% in MMDVMCal, we will set in mmdvm.ini (85*0.95 =) 81 (Read below).
Tuning with a SDR receiver (USB RTL key)
Tuning DMR reception
Let’s see how to set the reception. This second phase is simpler. Indeed, the goal is simply that the audio levels are not too strong and do not saturate the analog input of the arduino Due. We will use an oscilloscope for this operation.
First of all, I specify that your receiving station must output a low frequency signal without preemphasis or de-emphasis. The GM360 signal sent to the accessory jack is “Audio RX Flat”. If you can, configure your radio to send RX audio even if the squelch (COR) is not active.
Verification consists in checking the oscilloscope signal A0 which is sent to the arduino. Place your tip on pin 7 of IC2. You can take mass on JP5 or JP6 for example.
Even in the absence of an RF signal by the receiver, the filter amplifies the signals. If signal saturation exceeds 3V peak-to-peak, decrease the amplitude by turning potentiometer R99.
This is an example of signals you have on analog input A0 when a DMR signal is received by the receiver. We can clearly seen that the DMR is a digital mode with “switched frames”, with “no transmission” periods (largest amplitudes), where the noise signals evolve at a maximum of +/- 1 V. The DMR signals evolve at about +/- 400mV