Justering av repeater med MMDVM-Modem På det senaste har det varit många frågor kring hur man justerar en repeater med ett MMDVM- Modem. Da det inte finns mycket dokumentation kring hur man justerar ett MMDVM-Modem på rätt sätt, men utvecklingen ständig kör på, finns denna tråd för att kunna hjälpa. 1. Justering av sändaren (TX) Varför först sändaren? I motsättning till analog FM kommunicerar DMR handapparaten med repeateren. Så det är inte lönsamt att man börjar med mottagaren (RX) om handapparaten senare inte kan förstå vad det är som kommer från sändarens TX. En riktigt justerad sändare TX är förutsättning för att kunna justera mottagarens RX på rätt sätt. För att justera TX finns det ett tool med namnet MMDVMCal. For att justera starter vi MMDVMCal med t.ex. /home/pi/applications/mmdvmcal/mmdvmcal /dev/ttyacm0 Har programmet startats upp trycker vi på D för att använda DMR Deviation Mode Nu skickar programmet ut en ganska vanlig sinuston (1200Hz). Om inte man har en analyzer kan man också använda en RTL-SDR-Stick. För att underlätta, tryck T tills vi har en TX-Level på 84% Nu aktiverar vi PTT genom att trycka Space på tangentbordet och justerar TX-potentiometern på MMDVM kretskortet tills vi har Bessel-Null.
https://en.wikipedia.org/wiki/bessel_function När vi har lyckats med att justera Bessel-Null som syns på bilden kan vi deaktivera PTT n igenom att använda Space på tangentbordet igen. Därnäst kan vi stänga programmet. Nu öppnar vi för MMDVM.ini filen och skriver vid TX-Level värdet 80. Men varför 80? Igenom att använda Bessel-Null tar man bort bärvågen, då blir våran Modulations-Index exakt 2.40 1,2kHz Modulation * 2.40 = 2.88kHz Om jag istället för 84 tar värdet 80 (ca. 5% mindre), då ligger jag nästan precis på 2,75kHz. TX justeringen på sändaren är nu färdig.
Det går också bra att använda en RTL-SDR stick tillsammans med t.ex. SDRSharp. Denna metod är inte helt 100% men en absolut användbar alternativ. Här börjar vi med ett TX-värde på 80 och gör samma som vi redan har läst om. Vi justerar TX på kretskortet tills vi har en osynlig bärvåg. Nu höjer vi TX-värdet med T tills vi har en bärvåg igen, t.ex 94. Därnäst minimerar vi med t tills vi ser den igen, t.ex 78. Nu tar vi mellanvärden mellan 94 och 78 vilket är 86, minus 5% då får vi ca. 82 vilket vi skriver i MMDVM.ini filen TX Level. Eftersom att denna metod inte er 100% finns senare möjligheten att förändra värdet Med +/-1 tills man har en BER% på 0.
2. Justering mottagning RX Kika om du har samma värda i din MMDVM.ini som är uppförd här. [Log] DisplayLevel=2 [Modem] RXLevel=80 Debug=1 DisplayLevel=2 för att vi får alla data tydligt. RXLevel=80 förhindrar ADC-Overflow Nu starter vi MMDVMHost och sänder på TG9 med min. uteffekt. Här syns bra värde. slot Timeslot pos The pos number is an indication of the detected sync word position. Ideally it should remain constant. If it increments or decrements it is a sign of timing drift between the Arduino and the radio. The faster it changes the worse the timing error. That is what the external high precision oscillator fixes. With a precision oscillator the pos number only changes very slowly, maybe one or two over a three minute transmission. BER will rise slightly around pos changes because the sampling point of the data is not in an ideal position at these times. A steady sample position gives more consistent decodes.
centre The centre and threshold are the amplitude decision points used by the decoder when deciding the symbol values of an incoming transmission. They are calculated automatically from the max and min values of the received signal. Altering the receive level pot will change these. I don't think there is an optimum setting. My threshold tends to sit around 750. Higher values will make more use of the full range of the ADC so in theory they should provide better decoding. Ideally the center value will be close to zero. If you are seeing a large value then it may be your receiving radio is off frequency or the discriminator tuning is not centered around the signal. A mis-tuned radio will cause a jump in the DC level between the un-squelched noise and the received signal, this can lead to decoding errors because the center level will vary during the received burst as the capacitors in the signal path charge or discharge. A good way to tell if this is the problem is to transmit with 2 radios at the same time, one on each timeslot. This eliminates the unsquelched noise in the unused timeslot. If the BER improves when you do this then it is a good indication that the discriminator is unbalanced. A low RX level in MMDVM.ini brings low ADC overflow point regardless of the pot setting, so keep it high. Thereshold Denna värde kan göra en väldigt stor skillnad mellan att ha en bra mottagning eller att vara döv på mottageren. Här skulle värden ligge på ca. max 750 I mina första forsök hade jag ett värde mellan 1200-1300. Efter att jag fick sätta rätt värde ökade jag räckvidden. Lycka till Org. doc: MMDVM_Abgleich_V0.02.pdf Tack till DL4OCH för att jag fick använda lite av dokumentationen.