Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
pos centre threshold
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.
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.
Problems with idle wakeup in general are due to RX centre offset. You could try the new "RX DC Offset" parameter in MMDVM.ini, try to update to the latest MMDVMHost and MMDVM firmware.