MMDVM update - deluje tudi v FM načinu

Sodelovanje v akcijah, dogodki, ...

Moderator: S56CT

MMDVM update - deluje tudi v FM načinu

OdgovorNapisal/-a S56CT » 02 Jun 2020, 08:32

G4KLX je MMDVM pripravil do tega, da deluje tudi v FM načinu.

Hi Folks

As you may be aware an FM repeater controller has been added to the MMDVM. Most of the processing is done in the firmware with the host only providing the initialisation information, which is different from how the other modes operate. At some stage, we will be offering network access to the repeater and then it'll be more like the other modes.

Before I start explaining how to use the repeater I must point out that it takes a lot more configuration than the digital modes. Most of the digital modes are pretty flexible regarding their input levels, the FM repeater isn't. There are also tone levels to set up, and this can best be done with either proper test equipment or some for of SDR so that the spectrum and deviation can be compared.

With that out of the way, onto the details. Currently the repeater is available in the FM branches of the firmware and the host. They are dated 20200426 or later. We have had the repeater running Arduino Due's and STM32 M7 hardware, and it certainly loads onto an NXP M4 (Teensy 3.6), but not tested on that platform.

Ideally this controller should be run with a hardware COS line wired into the controller, but it will work without so existing systems should be able to go FM with relatively little work, especially since most of us can't easily leave our homes.

Once the firmware has been loaded, you will need to add some extra information to your MMDVM.ini, or use the one in GitHub as a basis for your system. In the Modem section the TXLevel and RXLevel values also apply to the FM repeater. Like the other modes, it is possible to override the TXLevel parameter for FM only with an optional FMTXLevel parameter. The Callsign and Timeout values in the General section also apply to the FM controller, but these may be overridden in the FM controller configuration.

Now to the FM repeater configuration. Here is the one in the example MMDVM.ini:



# Callsign=G4KLX










# NetAck=N






# Timeout=180










Firstly, Enable=1 switches on the FM controller. If you set this to 0 then you may as well stop reading this message!

The Callsign here, which is commented out in this example, is the callsign to be used for all CW Id's from the FM controller. In the UK it is common to include a letter after the callsign to indicate the CTCSS frequency in use so a suitable callsign value might be G4KLX B. If this is not set then the callsign from the General section will be used.

The CallsignSpeed is the speed of the CW callsign in Words per Minute. The CallsignFrequency is the tone frequency of the callsign in Hertz. The CallsignTime is the interval between callsign transmitted when the FM repeater is in operation, in minutes. Note that CW callsigns transmitted when the FM controller is not active are handled in the same way as before by the MMDVM. The CallsignHoldoff is the time interval, in minutes, that the callsign will be suppressed after the last callsign has been transmitted. A value of 0 means that no callsign suppression happens and all callsigns are transmitted.

The CallsignHighLevel is the percentage of the maximum output level that a full deviation callsign is sent at, this is typically when the repeater is shutting down. The CallsignLowLevel is the percentage of the maximum output level that a low deviation callsign is sent at which happens at all other times. The CallsignAtStart and CallsignAtEnd control whether a callsign is transmitted when the repeater is opened up, and when it closes down respectively.

RFAck is the normal acknowledgement signal sent between overs, usually indicating that the timeout timer has been reset. It is usually a K in morse, or an E for a short pip, or a T for a longer bleep. The NetAck value is not used yet, but will be used for incoming network audio. The settings for the AckSpeed, the AckFrequency and AckLevel are similar to their callsign equivalents. There is only one deviation setting for the ack, and any incoming transmission when the ack is being sent will cause the ack to stop being transmitted.

The AckMinTime is the minimum time in seconds for an incoming transmission to be received before an ack will be generated once it ends. This stops people kerchunking the repeater to generate a series of K's for example. A value of 0 for this parameter would allow an ack to be generated in all cases. The ack delay is the amount of time, in milliseconds, between the end of an incoming transmission and the ack being transmitted, or if suppressed by the AckMinTime setting, reset the timeout etc.

The Timeout value is in seconds and this overrides the value in the General section for the FM controller only. A value of 0 disables the timeout function. The TimeoutLevel is the audio level as a percentage, of the busy tone used by the repeater to indicate that a user has timed out, it takes the form of a telephone busy signal, European style.

The CTCSSFrequency is the frequency used to access the repeater in Hertz. Only the fifty docuemnted CTCSS tone values are allowed here. This tone is both used to detect incoming transmissions and is added to outgoing transmissions. The CTCSSThreshold is the way to control how sensitive the CTCSS decoder is, too low a vaue will cause it to trigger on noise, too high and no one will be able to access your repeater. This is a trial and error setting. The CTCSSLevel is the percentage of the full output level that the CTCSS tone is added to the transmission, this is usually a very low value.

The KerchunkTime controls how long the initial transmission must be to open the repeater fully, it is in seconds. The repeater will still relay during the kerchunk time, but will not stay open if the transmission ends before the full time has been reached.

The HangTime controls the amount of time, in seconds, between when the last ack occurs and the repeater closing down if no further activity takes place.

UseCOS is used to indicate that the COS line coming into the hardware is valid to use to indicate an incoming transmission. It is used in conjunction with the CTCSS decoder to determine a valid signal, working without means that there will be a squelch tail on incoming transmissions as it takes a finite time for the CTCSS decoder to determine that the incoming signal is no longer there.

RXBoost is used to increase the level of the received audio from the user into the repeater. This allows the system to be used with the correct settings for the digital modes, but then allowing for the FM audio to be increased to a more usable level without upsetting the other modes. This value is a multiplier, 1 means no change, 2 means double the amplitude, etc. A value of 0 would make your repeater very quiet indeed!

MaxDevLevel is the amplitude in percent above which an incoming signal is deemed to over deviating and the controller will take action. What is does is to blank the audio for 500ms and insert a 100ms 2kHz pip, this will hopefully avoid an overdeviating signal from causing your repeater to also overdeviate. This can be disabled by seting it to 0. The audio level of this pip is the same as set above for the timeout tone.

I am sure that there's more to say, but for now this should allow people to test it out. There will be further changes as bugs are found (or added) and additional features added.

Jonathan G4KLX
73 de S56CT-Tilen
S5 RPT Manager
Prispevkov: 1102
Pridružen: 20 Jan 2002, 01:00
Kraj: Sevnica


Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost