Hotspot Offset Calibration

Most of the boards I've been getting lately have required adjusting the offset to function properly on DMR. Many boards are shipped with a sticker on the bottom with the required offset. These are usually pretty close. There is however a way to get this more exact and specific to your radio.


Luckily there is a utility built in to Pi Star that enables you to tune your offset. All it requires is pen and paper, a calculator and a little time.

Step one is to gain ssh access to your Pi. The easiest way to do this is go to "Configuration" then click "Expert" then "SSH Access" and log in with pi-star and your password.

Next set your radio to VFO Digital mode at 433.000mHz TS1 TG9

Then go back to SSH and type "sudo pistar-mmdvmcal" this will start the calibration program. Type "m" this sets a 1031 Hz test tone. Next press the "space bar" to start transmitting. You should hear the test tone on your radio at this point. Next press the "f" key repeatedly until the radio goes silent. After that press the "F" key multiple times until the tone comes back. Write down the frequency at which the tone comes back. Now you have to go the opposite way. Press "F" until the tone stops followed by "f" and write down the frequency where the tone comes back again. Next subtract the lower frequency from the higher frequency of the two you just wrote down. Divide that number by 2 and add the result to the lower frequency. Now the difference you get from 433mHz is your offset.  
To sum up
  • sudo pistar-mmdvmcal
  • m
  • space bar
  • f (repeatedly until you lose the tone)
  • F (repeatedly until the tone comes back)
  • F (repeatedly until you lose the tone)
  • f (repeatedly until the tone comes back)
  • subtract lower frequency from higher frequency
  • divide that number by 2
  • add the result to lower frequency
  • find difference between result and 433mHz

Once you have your offset you have to set it in Pi Star.

You'll need to go to your pi-star dashboard, then "Configure" and "Expert" Now click on "MMDVMHost" Scroll down to "Modem" and enter your offset in RXOffset and TXOffset. Don't forget to click "Apply Changes"

Still having trouble talking to your hotspot?

The above method will usually get you close enough but if it doesn't there is a method to tune your hotspot for a minimal BER.

First, set your radio to 433.000mHz Talk Group 1 and Color Code 1.

Next, use the same command in SSH to start mmdvmcal "sudo pistar-mmdvmcal" then press "b" to start the BER tuning program. While pressing the PTT on your radio press the "f" key or "F" key to adjust the frequency until you get the smallest BER you can achieve. However far off you are from the starting frequency of 433mHz is what your RXOffset should be set to.

Tip: These are the instructions for DMR. When you start the mmdvmcal program it displays a list of codes for other tests and other modes you can test.


  1. My copy of pistar-mmdvmcal does seem to have a "b" command to start the BER tuning program. Am I missing something or has it been removed from the pi-star software?

    Bishop Ellison

    1. I haven't done it in a while but it should show a list of commands as soon as you launch mmdvmcal and the "b" command should be listed.

  2. Thanks for posting this guide.

    Please could you just clarify what you mean by "until the tone comes back"? I am finding around 500Hz difference between the point where the tone is first audible (with some digital noise) and the point where it becomes a clean signal. Interestingly, this only happens at the bottom end. The top end goes from silence to a clean tone in the space of 50Hz.

    1. "Until the tone comes back" just means when you start hearing the tone again.

  3. Interesting - I had an offset of 700 that would yield a reasonable BER range of 0.3 to 0.8% on DMR. This was done by simple trial and error with some heavy parrot usage. I used this calibration method and tool which came up with an offset of 175. When trying to use that, I was unable to even access the hotspot. Any thoughts on why the suggested offset was so far from the value that worked?

    1. Hi Dustin, did you have a negative offset? My offset was 400 lower than the set frequency, so I set my RX/TX Offsets to -400.

  4. This comment has been removed by the author.

  5. This comment has been removed by the author.

  6. Um, what is 'TG9'? MMDVM-CAL indicates CC1 (got that) but ID1? TG9?

    How/where are those to be set in my radio - TYT MD-380?

    When I select M and toggle transmit on - no RF out of my hotspot, no PTT LED.

    1. TS1 is Time Slot 1
      TG9 is Talk Group 9
      For running MMDVMCAL

      TG1 is Talk Group 1
      CC1 is Color Code 1
      for running Ber, which I needed to do in order to get my TYT MD9600 to "talk to" the Repeater Builder STM32_DVM, and the RXOFFSET was very high in my estimation or opinion...and for best results, and lowest BER, I needed to use an offset of about 950 which seemed high to me, but with the GD-77 HT, I needed to use an offset of 0, so I needed to decide which offset to use, 950 or 0...unless I could go into the MD9600 and change the transmit a bit, so it could use a 0 offset, or unless I could change the transmit in the GD77 HT, so it could use an offset of 950...but with the IC-4100, and the id-51, both of them worked on D-Star with an offset of either 0 or 950.

  7. This comment has been removed by the author.

  8. This worked fine for me, as I couldn't get my MD-9600 to work on DMR, and running MMDVMCAL, the "difference" showed as 300, but DMR still didn't work for me, using an offset of300 for both RX and TXOFFSET, but after running, "BER," that resulted in a high, well, I felt that it was high anyway, RXOFFSET of about 950, and now my MD-9600 works just fine on DMR.

  9. When I access the ssh panel it and try and login i can input pi-star no problem but cannot input the password no characters or anything show on the screen. It is has if my keyboard has failed there is no input at all.

    1. Forget the above because I am already logged in I just needed to push enter at the pw prompt. Oh the joys of getting old!!

  10. However I am now getting this error " unable to read the firmware version after six attempts"
    it then returns to the command line.

  11. YES, thanks 🙏 finally got my mmvdm woking now!

  12. After a long time, I read a very beautiful and very important article that I enjoyed reading. I have found that this article has many important points, I sincerely thank the admin of this website for sharing it. Best Instruments supply in UAE Services Provider

  13. I can't even hear the tone on my radio

    1. Hmm...don't know what to say...are you following the steps correctly and not missing or skipping any of them?
      Configuration, Expert, SSH Access, logging in with pi-star and your password, setting the transceiver to 433.000 MHz simplex, TS1, TG9, typing sudo pistar-mmdvmcal and pressing Enter, then pressing m and enter, then pressing the space bar to start transmitting? Then going through the rest of the procedure?


Post a Comment