There are a number of different PLL synthesiser chips available from different vendors that are useful in the design of beacon transmitters. FSK modulation is conveniently generated by continuously re-programming the frequency registers with data from a micro-controller. There are downsides to this apparent simplicity. Firstly phase noise (PN) and secondly key-clicks can be at unacceptably high levels.

PN can be minimised by careful decoupling and filtering of power supplies [1] and choice of suitably high reference frequency. A more tricky issue can be the key-clicks arising from the FSK keying process. These arise from various auto-calibration and initialisation processes that are triggered within the chips when the frequency is changed by register updates. The data sheets give few details of these as they are probably proprietary. An exception to this the ADF5355/6 and ADF4355/6 series for chips from Analog Devices which allow a designer some control of the over the auto-cal process which is largely responsible for the key-clicks.

In the AD5355 [2] the auto-calibration is controlled by bit 21 in Register 0. When bit 21 is set to 1 the auto-calibration is on and when 0 it is off. As auto-calibration is required for the correct operation of the chip it needs to be activated periodically. Also Reg 0 is used to do frequency updates by latching loaded data in from registers 1 and 2, so it must be loaded for every frequency shift. A solution to this is that, at the start of every keying cycle, a full initialisation is performed by loading every register as described in the datasheet and then frequency updates are performed by only loading Registers 2, 1 and 0 and twiddling bit 21 of Reg 0 to 0 during the keying cycle. If periodic full initialisations are not done loss of lock will eventually occur due to either temperature drift or transient disturbances. On page 22 of Rev.D of the datasheet it is stated that is is possible to "Disable the automatic calibration only for fixed frequency applications, phase adjust applications, or very small (<10 kHz) frequency jumps". As the present application involves small frequency excursions for FSK keying this is feasible.

This keying scheme has been implemented in the code for the GB3RMK 50 MHz synchronous beacon near Inverness, which uses Bo, OZ2M’s PI4ino code [3], modified to do the timed frequency hopping running on an Arduino pro-mini. Figure 1 shows the effect of key-clicks and figure 2 shows the same plot with the Register 0, 1 and 2 being loaded with bit 21 of register 0 set to 0. The same keying scheme has been found effective at 10 GHz.

The modified ADF5355.cpp file for the PI4ino code is available on Github [4].

Finally before anybody else comments the ADF5355 does operate below 54 MHz, I was prepared to add a divide by two stage on its output for 50 MHz operation but did not find in necessary. Maybe I was lucky!

auto cal on 

Figure 1 keying cycle showing the effect of key-clicks

auto cal off

Figure 2 Keying cycle with only registers 2,1 and 0 loaded with bit 21 of register 0 set to 0.

References

  1. https://gm8bjf.joomla.com/past-talks/15-reducing-phase-noise-pn-on-chinese-adf5355-boards
  2. https://www.analog.com/media/en/technical-documentation/data-sheets/ADF5355.pdf
  3. Bo, OZ2M PI4ino
  4. https://github.com/gm8bjf/ADF5355.cpp/blob/main/ADF5355.cpp

 

Over the course of the last year I have building up a remote station primarily for VHF and have arranged that a 2m Yagi can be rotated remotely. For this I used the excellent K3NG arduino rotator control software as described here.  To point the Yagi I used the CDE AR40 rotator which was already installed. This has two windings, one to turn clockwise and one for anti-clockwise. To make the rotator rotate one or other winding is energised by a pair of relays.

rotor interface2

 

For this I used one of the two-relay modules which are widely available on Ebay and similar sites which is shown below. These are nicely constructed on a glass fibre PCB and include an opto-isolator to protect and isolate the Anduino from the load circuit. The rotator draws about 4 A when turning and the rating on the relay casing suggests it can handle 15A when switching 125 VAC so the module seemed to be conservatively rated for this application.

relay module 

This module worked fine for around 3 months but started to show problems after the proper CDE motor start/run capacitor was fitted.  The issue was that the contacts started to stick (weld!) together in the "on" position when the relays were operated. Eventually both contacts welded in the "on" position keeping both forward and reverse windings simultaneously energised. Initially I did not realise this had happened and the result was that the toroidal mains transformer I was using to supply around 20 Vac to the rotator failed when its primary went open circuit. Needless to say this happened when I was at the remote end of the link. On the next visit to the remote site I was able to diagnose the fault when I found that both sets of contact were stuck closed which was alarming.

Fortunately the good old CDE rotator seems to have survived.

I removed the module from the unit and in the process of moving it about the contacts freed themselves. As I had already had another of these relays fail in another project I opened one of them by carefully cutting off the case with a Dremel-type tool. On initial inspection the contacts look quite  substantial being about 4mm in diameter.

 

case off

Closer inspection of the contacts was carried out by bending the top one and the movable contact out of the way and the bottom contact was seen to be badly pitted and burnt looking as shown below.

contact

Clearly the ratings printed on the case are considerably over-stated and while the physical size of the contact looks adequate they are made of some inferior material. One can only assume that the relay designers have, whether for reasons of cost or ignorance, got the metallurgy of the contacts wrong! Good quality relays normally use some refractory metal for the contact which resists this kind of damage and failure.

The relays in my unit are not marked with a makers name or trademark but on further research on the internet I read that even ones that show a manufacturers markings such as Songle and Tong Ling exhibit the same failings as described here.

I found that Omron, a well established and respected maker of relays, have a product with a similar package size (only marginally larger) that can be fitted to the PCB without altering the board. The part number is G5LE-14-DC5. It is rated for 10A at 250VAC. The datasheet is here.

The Omron parts have the same pin footprint but the case dimensions were slightly larger.  They fit onto the board but the screw terminal block had to be removed. Connection was effected using some header pins, shown in the final photo, which allowed the terminal block to be reconnected.

board clear

omron on board

The moral of the story is that you get what you pay for !! Hopefully the will be no more welded contact issues

February 2023.

 

Introduction

Recently I have been living away from my main station in noisy, low lying urban location which unlike my main station is a poor location for operating radio. The obvious solution to this was to run my main station remotely. This article describes how I achieved this using open source, freely available software packages and an Icom IC706 Mk2 G.

I was already familiar with the Raspberry Pi (RPi) series of computers and their headless operation with the remote desktop package RealVNC. This package is made available for free home use on the Raspberry Pi by the vendor and allows the remote operation of a RPi running what ever software you wish. It comes installed as part of all recent RPi software distros and the server only has to be enabled in the interfaces tab of the RPi configuration tool. To control the RPi all that is required is a client computer, typically a Windows PC,  that is running the RealVNC client software, sometimes referred to as the viewer.

Transceiver control software

For the operation of the transceiver I chose to use FLRIG which is an open source cross-platform package. It is available as a precompiled binary on the  RPi software repository but if you want the very latest version it is available from W1HKJ 's website and supports a very wide range of different transceivers, including my IC706 Mk2 G. Jason, KM4ACK gives an excellent tutorial on Youtube on how to do this. It has a nice simple GUI which allows mouse control of a transceiver.

Transceiver control interface

For the control interface I chose to build my own but it is perfectly possible to use a commercial unit such as the Signalink or Rigblaster types. A block diagram of my homebrew unit is below. I found it was important to incorporate 1:1 audio isolating transformenrs to avoid noise on the transmit audio.

radio interface2
 

For the audio side I used a C-Media CM108 USB sound card. These are available on Ebay at low cost and work well in this application. the one I used is puctured below.

 

CM108a

I also added opto-isolators to the CI-V interface to break hum loops and minimise the opportunities for RF inductive pick-up especially on the HF bands. Details of the isolated control interface are below. The circuitry on the right of the 4N26 opto-isolators is powered from the +8V pin on the IC706 13 pin ACC DIN socket.

isolated CI V

I also built the whole of the control interface into a well shielded box with a good filtered IEC mains power connector. 

As another general point I strongly recommend that you use a powered USB hub to connect the USB peripherals to the RPi. I have found that in general if you draw too much current from the USB ports on the RPi it can result in unreliable behaviour. For remote operation the last thing you want is a crashed RPi at the remote end requiring a power cycle to reset it.

The audio link

In order to use the radio it is necessary to pass the receive and transmit audio over the internet link. This in some respects was the toughest bit of the project to get working well and there are some observations later in this article about this process.  For this task I used a package called MUMBLE. This is a package intended for computer gamers to discuss game strategy while playing games.  It gives two way duplex audio transmission and can be made to work well in this application. It operates in a simal way to RealVNC in that the Mumble server (MURMER) runs on the RPi and the client on the remote computer. Again it is cross platform and can be downloaded from the RPi repositaries. There is a Windows MUMBLE clent which runs on the client PC.  MUMBLE provides a number of digtal signal processing (DSP) functions but I found they do not play well with white noise and are best switched off or minimised in this appication. A useful and detailed tutorial on setting up MUMBLE for a remote station by Jason, KM4ACK is here on Youtube.

I found the audio link was the most difficult part of the project to set up and get working in a satisfactory way. I strongly recommend that when doing the initial set up you have access to both ends of the link so that you can measure the audio levels at the different stages, This was caused in part by the fact that the line audio levels on most amateur transcievers are not well defined or specified and best measured initially by feeding an audio signal generator into the line input to determing how it behaves. once you know how much signal is required to operate the transmitter properly you are then 90% of the way there!

Remote antenna rotation

Once the basic radio remote functionality was established attention turned to pointing the 2m horiziontaly polarised Yagi remotely. The rotor in use is a venerable CDE AR40 which is turned either clockwise or anticlockwise by 24 volt capacitor start AC motor. The position is sensed by a 1 kOhm wirewound variable resistor.  To control the antenna position a hardware interface  to the RPi and suitable software were required. A search of the internet revealed the excellent K3NG Rotator Controller package on Github.This is a very versatile package that allows the position control of antennas by means of an Arduino microcontroller. To control the AR40 only azimuth control is needed and an Arduino Nano was quite adequate for the task. The package is setup by means of a configuration file for the particulat requirements of the rotor and the interfaces required. In this case the arduino was programmed to emulate a Yaesu GS-232A rotor controller.  This meant that by making the RPi send and receive GS-232A commands it could turn the antenna to a desired angle and read out the position from the 1k variable resistor in the rotor. Running a terminal emulator on the RPi allowed commands to be typed to rotate the rotor both clockwise and anticlockwise as well as reading its current position. Later a GUI programme Pyrotor was found which presents a compass rose azimuth display on the RPi. desktop.  Pyrotor was written in Python by David Fanin and is available here. It is a GUI for the rotctl/hamlib antenna rotor control program rotctl and is designed to work with the K3NG antenna rotor controller software.

rotor interface2

The configuration file,  rotator_features.h  , for compiling the software that I used for my setup is here..

 

 

Remote station desktop

The dsktop on the RPi is shown below. All of the functions that can be controolled over the CI-V interface are available on the FLRIG window. The Pyrotor interface can also be seen. The CW and CCW rotation can be selected and manuallys halted when the desired direction is displayed. An image of the front panel of the radio has proved useful for debugging problems and monitoring the transmit output which is not available from the IC706 over its CI-V interface.  A simple GUI also allows the selection of different antennas by means of a three way rotary coax switch.

screen shot 

 

An overall block diagram of the controller is shown below alonw with a picture of my installation.

Block diagram

I also felt that it was wise to have overall control of the station via the phone system and added a phone link so that the staion could be powered down remotely independent of internet access. This is described below.

Remote power switching.

It was considered that it was useful to be able turn power to the whole setup off and on remotely. This provides a means of software crashes and means the station can be turned off when not in use. Small GSM cell phone modules are a available at very reasonable cost on Ebay. These are either based on the SIM800L Ublox module or the Neoway M590E module. I chose to use the Neoway module. These come as a small kit consisting of a PCB an M590E, a SIM card holder and a few SMD parts. The M590E module had clearly been recovered from some scrapped equipment but were found to work well. Combined with an Arduino and a SIM card these make a useful teleswitch. I used an O2 pay as you go SIM card in the setup. This cost 2 pence per text message and so a £10 top-up goes a long way!! Provided the SIM is used regularly the credit does not expire. The code I used is based on code on Github . My modified code is here. Pictures of the Teleswitch unit are below.

 M590E KitM590E

 M590E kit.
20221001 125708
 
Teleswitch inards
 
20221001 125155

front panel 

The overal installation.

rack1 

 

The entrails of the controller box in November 2022.

hardware2

 

 

The Controller box in May 2023. Recent additions include four relays to cpulse a three way rotary coax switch for selection of different antennas. This is effected by means of GUI produced with a Python script running on the Raspberry Pi. An interface for a webcam has also been added to connecdt a webcam directed at the front of the IC706 to monitor the transmited output signal. This overcomes the inability of the '706 to give an indication of output power on its CI-V interface.

20230517 123505

In 2022 gave a talk at our local radio club describing the development of my remote set-up. The slides are here.

Recently ( October 2023) I have been tidying up the wiring to some small extent and fitting some proper panel mount connectors to the back of the casing. This makes it easier to connect and disconnect the unit from the rack where it normally lives. These pictures are useful to me to keep a recond of the mods I have made to the unit as obviously I do not have normal access to the hardware! the latest picture for teh record is below.

 20231025 222049

Acknowledgements

  1. RealVNC for making remote desktop available.
  2. David Freese, W1HKJ for Flrig.
  3. Anthony Good, K3NG for Arduino Rotator Controller
  4. David Fanin, KK6DF for Pyrotor
  5. Jason A Oleham, KM4ACK, Various useful Youtube videos on setting up Mumble for radio applications. -Link

 

 

 

GaAs MESFET Bias PCB

 

 

 

gaas psu sch

 

 

 

 

 

 

 

gaas psu pcb

lmx2541 schm

Schematic diagram.

 

; Bill of Material=C:\Users\Brian\Desktop\LMX2541Support(1)\PCB_design\lmx2541.T3001           
; Date=10.May.2021  17:37           
; Variant=AllVars           
; PCB=<all component>           
; Author=           
;           
Pos    Name    Value    Package
1    C1    loop    0805
2    C2    loop    0805
3    C3    1uF    0805
4    C4    100nF    0805
5    C5    1nF    0805
6    C6    1nF    0805
7    C7    100nF    0805
8    C8    1nF    0805
9    C9    1uF    0805
10    C10    100nF    0805
11    C11    4u7    0805
12    C12    100nF    0805
13    C13    100nF    0805
14    C14    100nF    0805
15    C15    100nF    0805
16    C16    100nF    0805
17    C17    47µF    2412_ELKO
18    C18    1nF    0805
19    C19    47µF    2412_ELKO
20    C20    47µF    2412_ELKO
21    C21    100nF    0805
22    J1    4 way    Pin Header
23    J2    2 way    Pin Header
24    J3    2 way    Pin Header
25    J4    SMA    SMA_EDGE_CONNECTOR(#2)
26    J5    SMA     SMA_EDGE_CONNECTOR(#2)
27    J6    6 way    Pin Header
28    L1    1uH    0805
29    L2    1 uH    0805
30    L3    1 uH    0805
31    L4    1 uH    0805
32    L5    1 uH    0805
33    L6    1 uH    0805
34    L7    1 uH    0805
35    LED1    RED    0805
36    R1    loop    0805
37    R2    loop    0805
38    R3    50 Ohm    0805
39    R4    50 Ohm    0805
40    R5    4.7 O    0805
41    R6    4.7 O    0805
42    R7    4.7 O    0805
43    R8    4k7    0805
44    R9    4k7    0805
45    R10    1k5    0805
46    R11    1k5    0805
47    R12    1k5    0805
48    R13    3k3    0805
49    R14    3k3    0805
50    R15    3k3    0805
51    R16    47O    0805
52    U1    LMX2541    TI_NATIONAL_SEMICONDUCTOR_LMX2541SQ3030E-NOPB_0(#7)
53    U2    LM1117MPX-3.3/NOPB    SOT223
54    U3    L78M05CDT-TR    DPAK
55    U4    PIC12F629(DIL8)    DIL8

 BoM

 

lmx2541 layout

Parts placement.

 

 3 D PCB

3-D CAD view

lmx2541 CAD

CAD image

PCB TOP

Tiled array of six boards (Top)

 

PCB BOT

Tiled array of six boards (Bottom)