g4klx / MMDVMHost

The host program for the MMDVM
GNU General Public License v2.0
373 stars 271 forks source link

A Random Noise signal trigger FM decode, generate a noice voice #807

Open bi7jta opened 5 months ago

bi7jta commented 5 months ago

Hello to ALL:

After enable FM Mode, I got a Random event recently, appear in some Motorola receivers, such as the CDM750/GM340 (Not ALL).

It never appear before , seem it come in MMDVM STM32F4 firmware V2

Version: 2, description: MMDVM RB_STM32_DVM(446) 20221121 12.0000 MHz GitID #bf23a94
CPU: ST-Micro ARM, UDID: 44002E001550305030343920Modes: D-Star DMR YSF P25 NXDN M17 FM POCSAG AX.25

image

The appearances :

1, It will trigger a local transmit(PTT) to TX side radio in FM repeater,

2, The COS/HB LED will light , means the repeater be opened.

3, Will trigger FM Network network data sent to Allstarlink node.

I recorded a short video and upload here , pay attend to the 3th second.

https://www.youtube.com/watch?v=mbbfl4YhuI8

image

The MMDVM.log show nothing , excluding the Net data sent to USRP, in debug log mode, sometime will have ADC/DAC overflow message, but not all the time when the noise appear.

In MMDVMCal debug mode, execute nothing, a logs being printed, I guess it is a Random Noise signal .

    g        POCSAG 600Hz Test Pattern
    e        M17 Preamble Test Pattern
    S/s      RSSI Mode
    V/v      Display version of MMDVMCal
    <space>  Toggle transmit
Levels: inverted: no, max: 298, min: -166, diff: 464, centre: 66
Levels: inverted: yes, max: 185, min: -315, diff: 500, centre: -65
Levels: inverted: no, max: 279, min: -388, diff: 667, centre: -54
Levels: inverted: no, max: 293, min: -389, diff: 682, centre: -48
Levels: inverted: yes, max: 306, min: -250, diff: 556, centre: 28
Levels: inverted: no, max: 387, min: -291, diff: 678, centre: 48
Levels: inverted: no, max: 221, min: -265, diff: 486, centre: -22
Levels: inverted: no, max: 338, min: -284, diff: 622, centre: 27
Levels: inverted: no, max: 284, min: -287, diff: 571, centre: -1
Levels: inverted: yes, max: 400, min: -252, diff: 652, centre: 74
Levels: inverted: no, max: 217, min: -274, diff: 491, centre: -28
Levels: inverted: yes, max: 360, min: -286, diff: 646, centre: 37
Levels: inverted: no, max: 250, min: -379, diff: 629, centre: -64
Levels: inverted: no, max: 216, min: -290, diff: 506, centre: -37
Levels: inverted: yes, max: 214, min: -343, diff: 557, centre: -64
Levels: inverted: yes, max: 351, min: -275, diff: 626, centre: 38
Levels: inverted: yes, max: 239, min: -258, diff: 497, centre: -9
Levels: inverted: no, max: 221, min: -201, diff: 422, centre: 10
Levels: inverted: no, max: 296, min: -194, diff: 490, centre: 51
Levels: inverted: yes, max: 337, min: -224, diff: 561, centre: 56
Levels: inverted: yes, max: 250, min: -295, diff: 545, centre: -22
Levels: inverted: yes, max: 252, min: -343, diff: 595, centre: -45

image

I find this code in MMDVMCal project : https://github.com/g4klx/MMDVMCal/blob/f530cc9fdce58381a374937b5b61d1ebad19f181/MMDVMCal.cpp#L1799

The condition is buffer[2U] == MMDVM_CAL_DATA , is it means the RXLevel too high? but the RXLevel is ADC

    } else if (buffer[2U] == MMDVM_CAL_DATA) {
        bool  inverted = (buffer[3U] == 0x80U);
        short high = buffer[4U] << 8 | buffer[5U];
        short low = buffer[6U] << 8 | buffer[7U];
        short diff = high - low;
        short centre = (high + low) / 2;
        ::fprintf(stdout, "Levels: inverted: %s, max: %d, min: %d, diff: %d, centre: %d" EOL, inverted ? "yes" : "no", high, low, diff, centre);
    }

My question is , which parameter is used to raise the threshold of the signal trigger, avoid this not expected noise voice? Or set in CDM750/GM340?

Need some tips, thank you very much!

[FM]
Enable=1
# Callsign=G4KLX
CallsignSpeed=20
CallsignFrequency=1000
CallsignTime=10
CallsignHoldoff=0
CallsignHighLevel=50
CallsignLowLevel=20
CallsignAtStart=1
CallsignAtEnd=1
CallsignAtLatch=0
RFAck=K
ExtAck=N
AckSpeed=20
AckFrequency=1750
AckMinTime=4
AckDelay=1000
AckLevel=50
# Timeout=180
TimeoutLevel=80
CTCSSFrequency=88.4
CTCSSThreshold=30
# CTCSSHighThreshold=30
# CTCSSLowThreshold=20
CTCSSLevel=20
KerchunkTime=0
HangTime=7
# AccessMode values are:
#   0 - Carrier access with COS
#   1 - CTCSS only access without COS
#   2 - CTCSS only access with COS
#   3 - CTCSS only access with COS to start, then carrier access with COS
AccessMode=1
# LinkMode=1 to remove almost all of the logic control
LinkMode=0
COSInvert=0
NoiseSquelch=0
SquelchThreshold=30
# SquelchHighThreshold=30
# SquelchLowThreshold=20
RFAudioBoost=1
MaxDevLevel=90
ExtAudioBoost=1
# ModeHang=10
https://github.com/g4klx/MMDVMHost/blob/master/MMDVM.ini

VY 73 DE BI7JTA