Welcome to Ham Radio DX!

Amateur Radio Blog Posts

Want to learn more about Ham Radio?

SUBSCRIBE to the Ham Radio DX channel

youtube facebook new-instagram-logo-png-transparent-light twitter2

 


 

Building a Simulcasting & Voting Repeater System using VKLink

19 September, 2018 - Reading time: 16 minutes

Introduction

As any repeater builder would know, to make a good efficient working repeater requires a lot of time and energy.  Performance of a repeater is shown in its ability to provide proper coverage to the intended target audience.  Ideally, we want everyone in the target audience to be able to participate in the same conversation, but sometimes not everybody lives within the coverage area of the repeater.  To negate this issue we can link multiple repeaters together through various methods to expand that conversation out.  This however, usually requires that the users know the correct frequencies, tones and in the case of mobiles, knowing what repeater actually covers the area they are driving thru.  What about if we could create a single repeater system that provided coverage over a wider area than could ever be achieved through any one site? How can this even be possible?  A little thing called on FM called “the capture effect” helps us out.

The theory

Uh oh… that word.  Theory. I would not be at all surprised if you skip over this section of the write-up, but bear with me, it (hopefully) will make sense.  Adding multiple receivers on the same repeater input frequency and sending all their audio to a central spot to “vote” which one has the strongest is relatively simple, however having multiple transmitters on the one frequency is a bit more of a challenge.  Everyone has heard the classic “doubling” that happens when two stations on FM try to talk over one another. This sometimes can be a mixture of the two signals, usually being garbled and unintelligible. However if one user is stronger than the other, they win, and you can only just hear the other station in the background.  This is the “capture effect” at work.

Now, if we transmit the same information, in this case voice at the same amplitude and phase on two or more transmitters, then a station whose receiver is on the repeater channel will automatically “capture” the stronger of the two transmitters.  Sounds simple right?  Not quite, there is always a catch.  The problem lies in the overlap area – that is when you are in “range” of both transmitters and they are within 10 to 15 dB in signal strength of each other at the receiver.  If you are in an overlap area and you are hearing two transmitters equally, and if they are not simulcast properly you will get audio distortion, carrier nulling and so on that causes the audio to be unintelligible.

Figure 1. Propagation delay within overlap area

To simulcast on 70cm at least requires very precise frequency control, in order of less than 1 Hz of frequency error.  Both transmitters have to be tied to GPS for this level of accuracy.  The next problem is the speed of light – it does not go fast enough!  This affects the ability for the audio from each transmitter to reach the users receiver in phase.  For 10% phase error at 3000 Hz, modulation must arrive at each of the transmitter sites within 10 microseconds of each other.  Each one of the transmitters need identical audio response characteristics.  We also need the audio to arrive at the users receiver ideally at the same time.  Figure 1 demonstrates this.  Here we have two transmitters with X and Y distance in kilometres.  Ideally we want the received signal within the overlap area to be received at the same time, therefore usually requiring that both X and Y be the same distance.  Speed of light travels at 3.3km/microsecond. Anything approaching 100 microseconds of delay starts to get out of phase and distorts, so we need to keep this as low as possible using audio delays.

The biggest problem facing this venture was to build such a system, even just for two sites requires many radios, antennas, feedlines and the list goes on, before we even look at audio delay boards!  A commercially produced 2 site simulcast system can commonly cost as much a $200,000!  Enter the RTCM/VOTER board powered by the VKLink system.

VKLink and the RTCM/VOTER board

Whilst thinking about ways to expand our coverage on our local repeater system, we had already established a RF based linking system from several UHF 70cm repeaters in the South to the 2m repeater VK7RAA in the North.  This worked well, but did have its problems.  We needed a better way of linking. Enter the VKLink system.

VKLink was developed by Matt VK3VS and is a “cut down” version of Asterisk PBX, along with app_rpt – a repeater/linking software module that runs on the Raspberry Pi and allows the interfacing to radios via channel drivers.  For the purposes of this article we will refer to app_rpt/Asterisk as VKLink.  Matt realised this was a good a way of linking repeaters via VoIP with a Raspberry Pi, a radio and a genuine CM108/199 USB sound card FOB. In later developments, Matt included the ability to be able to use the Pi’s GPIO pins for signal switching and any USB sound card for audio. All “nodes” on the system are able to connect to one another, report to a central server and are completely remote controllable – see Figure 2. The whole system works very similar to IRLP and/or Echolink, only much better and more flexible. More information is available at the website – http://vklink.com.au

Figure 2. A list of VKLink nodes operating around Australia with real-time status

VKLink also comes with the chan_voter channel driver.  This interfaces with the VOTER (Voice Observing Time Extension for Radio) board or RTCM (Radio Thin Client Module).  This was developed by Jim Dixon (SK), WB6NIL in 2011 and is available as a user-assemblable (VOTER) or commercially built module (RTCM).  Both have the same functionality, but for the purposes of this article, we will refer to it as the VOTER board. Briefly, the purpose of this board is to interface to a repeater (receiver and/or transmitter), send as a data stream audio, and GPS time stamped data in 20mS increments to a central server repeater controller (VKLink).  The server analyzes all these data streams (there is potential for hundreds on any particular system) and “votes” which one has the best Signal to Noise ratio.  The server then sends the currently best-voted signal back to one (or more) of the specified transmitters.

Figure 3. Commercially available RTCM

As the RTCM was slightly out of my price range, I decided on building several of the VOTER boards.  I had some PCBs made commercially for a very reasonable price using the open source gerber files and parts ordered. Each board took around 5 hours to populate.  Out of the box, these units work fine for voting with no modification needed.  The PIC that runs everything is clocked by a 9.6MHz crystal, which is only 25ppm stable, meaning that at this frequency we could potentially see a variation of +/- 240 Hz.  This unfortunately is not stable enough for synchronization of the audio and generation of CTCSS tones (if required) so that they are all in phase among multiple transmitters.

Jim WB6NIL said it was impossible to get the PIC to clock to 10MHz through coding.  Another ham in the United States (Joe, KC2IRV) had been undertaking the same project, and he suggested using some 9.6MHz oven controlled crystal oscillators (OCXO) sourced from eBay.  I built a small board to allow small frequency adjustments (within 1Hz) using a voltage control pin on the OCXO and tested on the bench. In the meantime, KC2IRV had been field-testing these and had determined that even though they were a vast improvement over the standard crystal, CTCSS warble in particular was detectable in the overlap areas due to wandering of the OCXO in frequency.   He went about designing a PLL board, which was originally part of a Motorola MSF5000 station.  The result was a 10MHz (GPS) signal in, which divides down to lock the 9.6 MHz OCXO in the VOTER boards with the clock reference being tied to GPS and not wandering in frequency, providing a very stable solution.

Figure 4. PLL board on left with 9.6 MHz OCXO. My built VOTER board on right

This modification on the board is not required for simple voting operation.

Making it work using the KL series of radios

As I had a quantity of the Unilab/Stanillite series of radios, I went about modifying them for this purpose, starting with the standard mods. It is almost mandatory using the same model radio when voting, and especially so for simulcast.  The KL uses a 12MHz reference as standard. I wanted this to work using a 10 MHz reference from the GPSDO.  Luckily the KL uses a MC145146 PLL and it is trivial to modify some values in the data once generated by the UNIPROG software to divide down and work with 10 MHz.  There is more information on this on my blog website. 12MHz TCXO is removed and replaced with a short piece of RG174 in the PLL compartment of the receiver.  The coax runs to a connector of choice on the back of the receiver module just above the header. I used an old MCX connector from spares.

Figure 5. PLL compartment of the KL receiver

The VOTER board needs unfiltered discriminator audio from the receiver.  The radio provides a discriminator tap off point, but testing this proved flakey, my guess is there was high-end roll off. Instead, I took it directly from the detector output of the TK10420 discriminator IC.

If simulcasting, the audio need to go to the exact same point on each transmitter.  I found it a good idea to sweep the audios and plot them on a graph to make sure they are the same, as any differences in response will be audible in the overlap areas.

Results

The system is currently a two-site simulcast and voted repeater.  Performance has been rather impressive with coverage now extending out on one frequency. Through changing the audio timing within each individual transmitters VOTER board, antenna patterns or differing power levels allows experimentation and improvement in overlap areas. So far, I have observed some level of distortion in overlap areas; however, the audio is still completely intelligible.  One thing to note with simulcast is you will never get it perfect in overlap.  You might fix one area, but then the problem pops up elsewhere.

Repeaters voting is available in real time through the VKLInk AllMon page as shown in Figure 6. As far as I am aware, this is the only simulcast amateur repeater in VK.

Figure 6. Live RSSI data is viewable from each site

Conclusion

Plans for the future involve expanding the coverage of the 70cm UHF repeater system to include even more sites, moving a 6 metre repeater to simulcast using frequency offsetting due to the longer wavelength involved and add multiple voting sites to a 10 metre repeater.

A follow up article will be published shortly on the VKLink system. For more information on VKLink go to: http://www.vklink.com.au.


PCBWay - PLL circuit voter project

17 May, 2017 - Reading time: 2 minutes

A PLL was needed to lock the 9.6MHz OCXO reference that the voter board uses to GPS. KC2IRV came up with a circuit, and sent me the gerber files. Once again I used PCBWay to manufacturer the boards. 

To summarise - They offer express board construction and shipping, and are based in China. I sent them the files for fabrication. The whole process from submitting to arriving on my doorstep again took about 5 days! I would highly recommend anyone use PCBWay and the quality of the boards are shown in the photos below. 

 Below are the boards after population with components - 

Once again - thank you PCBWay for a easy trouble free service.


KL70 Audio Response

22 March, 2017 - Reading time: 2 minutes

Further to my simulcasting post. Initial testing indicated some distortion, especially with CTCSS tones in overlap. Voice was reasonable, but did "tear" in some areas and was distorted. To eliminate a few things I decided to bring back the transmitter on the mountain to compare with the bench unit to make sure that they were in phase and deviating the same/had the same audio characteristics. 

Here are the results of comparing the two units. Again, I set the HPF to 50Hz to get an identical comparison. 

 

Ignore values below about 800Hz for now. As you can see, the audios were not matched. At 1800Hz the main TX was deviating almost 300Hz more than the bench unit. I then decided to adjust the LPF in the audio lines on both transmitters to see if I could get them matched a bit closer - as you can see I also changed the HPF in the 8920 test set to 300Hz for a more accurate measurement.

 

That's more like it. The audios are more equally matched. Both transmitters could be run in this fashion. Notice a slight drop above 2000Hz. This is the LPF rolling off the higher frequencies in the splatter filter to eliminate harmonics passing through over deviating the transmitter. As the RTCM/VOTER board does all the limiting, this isn't really too much of a problem.

 

Above is a completely flat audio input on lifted R403 on the VCO. Again they match. The audio is flat up to about 6.5KHz. Now that we know the audios are matched, we can move onto other things.


KL 29MHz noise mute

25 December, 2016 - Reading time: 3 minutes

Since installing the 10m repeater VK7RHF, the receiver has at times suffered during sporadic E openings noise, and what seems like AM modulated signals. The assumption is that this is from north of Australia from pirate stations using AM CB radios.

Doing some further reading led me to VK6TQ's circuit for a Sawtron he had on 29MHz (similar to the KL). In a accompanying text document, he goes on to say that a lot of the noise he has seen comes from these pirate stations running odd CB channel splits. In most cases, they are 5KHz or so off most of the repeater inputs.

In short he made a circuit using a NE555 timer to use the DC voltage from the discriminator to detect when there is a negative voltage swing to switch an active high signal which could be used to disable the mute in the radio. In other words, if a signal comes in on the receiver and is more than 3KHz off frequency, the mute would not open. On frequency signals were fine. His original circuit is below -

I built this circuit up on some veroboard and it works quite well. There was only one drawback. In the KL receiver, -5KHz produces a negative voltage swing to about 2.5V. +5KHz produces a positive voltage swing. VK6TQ's circuit would only work with negative voltage swings.

I therefore thought of adapting VK6TQ's circuit to allow a positive voltage swing. I used a LM339 as a window comparator. Below is there circuit. Unfortunately it's hand drawn, but should be understandable. 

+VCC is taken from the decoder IC, which in the KL is IC107 pin 4. Pin 9 of the same IC has our AF DC volts. The LM339 produces an active low output. I found it easiest to AND this with the existing NHRC-Squelch I use in the RX module with a simple NPN transistor. The dashed box has the other end of the circuit (in the squelch board) to show what it's doing. Inject a signal 3KHz lower (or whatever you choose) than what it should be. Adjust the VRef Low pot until the green LED just turns on. Now go up 3KHz above on frequency and repeat, only this time adjust VRef High. Now go to on frequency. The green LED should be off. Make sure it stays off over the +-3KHz range and the RED LED should now be lit. This indicates the mute is open. I've yet to test this on air, but hopefully it improves any slightly off channel interference during band openings.

 **EDIT** I also added a 0.1uF cap between VCC and GND for power supply decoupling. 


VK7RHF low power mod

23 October, 2016 - Reading time: 5 minutes

Having removed VK7RHF's transmitter to test at a solar powered site, it was necessary to test standby current consumption. Basic current measurements were made. 750mA was measured as standby. 13A while transmitting (including three fans that run while transmitting and for 5 minutes after PTT finishes).

All repeaters are running 24/7, therefore standby current can be a problem if excessive, more so then if compared with current consumption while transmitting. For example, one hour of transmit time a day at 14 amps means we need to put those 14 amps back into the battery. In addition we have a standby current of 0.75A x 23 hours = 17.25 amps. So regardless of transmit activity, every single day we are going to take at least 17 amps out of our battery. Reducing transmitter power usually does not save a lot of current as the PA will be more inefficient. Therefore we want to reduce standby current.

A good way to do this is to switch off the power to all unnecessary bits of the repeater until needed. We need the receiver and repeater controller to be active all the time for a start, but we can turn off the exciter, PA and microcontroller from the converted MLS low band radio. I used an idea that Dion VK7DB had come up with. He used a SUP75P05-08 P channel FET as a high side switch on the power line to the PA board. These particular FETs allow 20A of continuous current without a heatsink, but were discontinued some time ago. More readily available were SUP53P06-20 from Jaycar. We want the resistance between the drain and source to be as low as possible. RDS according to the datasheet was 0.0195 ohms at VGS = - 10 V. Maximum Power Dissipation at an ambient temperature of 25 degrees is 3.1W. We know I = √P/R. 3.1/0.0195 = 158.974. The square root of that is 12.6. Therefore at 25 degrees and not on a heatsink, this device can handle 12.6 amps as an absolute maximum. With a TC=25 degrees (case temp - heatsink) it can dissipate 104.2W, or handle 73 amps. Plenty.

Here is the circuit. It's fairly self explanatory. We use the fan control in the NHRC controller as this pulls low to GND when the transmitter keys up and for 5 minutes afterward. We put a pull up resistor from +12V to the gate to make sure the FET is in a known state until triggered from our fan control. When the fan control goes low, our FET turns on and switches power on to our PA/exciter stage of the repeater. 

Orange wire is our logic from the fan controller. Resistor is 10K I think. It works. 

Current consumption when running the receiver only is now 140mA. A saving of 610mA or 14.64 amps over 24 hours!