The ZL1BPU New Exciter replaces a less capable unit designed 10 years ago, for LF/MF use only. This new unit (see picture) is based on the Silicon Labs Si5351 synthesiser chip. It is highly flexible, and will operate from 2.5 kHz to 200MHz. It uses a small oven to stabilise the reference in the synthesiser module. The unit has three independent outputs (VFOs), 0.01Hz resolution, 2e-8 stability, and has controlled output power levels in four 3 and 6 dB steps.
As well as being capable of front-panel controlled static frequency generation, all three VFOs can be actively controlled via USB serial commands. You can send all available commands to any of the three VFOs in the Exciter.
The design is based on two popular items: the Arduino UNO micro-controller, and the Adafruit Si5351 synthesiser module. These devices are multi-sourced, and the combination make construction relatively simple. The power supply is 12 V DC, and the display can also be a standard Arduino Display Shield, for minimum wiring.
There are dozens of different VFOs or Signal Generators that use the Silicon Labs Si5351 chip. So this design doesn’t stand out in that respect. It uses an Arduino UNO and an LCD display, but again, that’s nothing new, nor is the availability of three independent outputs.Some years ago, the author designed an Exciter for LF/MF, which proved very useful because of its remote control capabilities – it could be controlled by a computer to generate a range of different modes. This unit is the modern equivalent, but it also covers HF and VHF.
So what makes this Exciter different from others is the ability to remote control it. There are commercial generators with similar capability, but few designs you can build yourself. There are three main applications for this unit: (1) you can write a program to operate the Exciter as a signal generator in a series of test applications, perhaps even using it as a sweep generator, and for the Radio Amateur (2) you can use it as a carrier source with ID for propagation experiments; and (3) you can use it as a highly versatile low powered transmitter, perhaps on three frequencies at once, using a range of modulation methods, the most obvious being WSPR, CW and Multi-tone Hell. Use as a QRSS Multi-tone transmitter is the main focus of the design. The example below consists of Multi-tone Hell, a small graphic and a CASTLE mode ID, sent to the QRSS3 standard, as received using ARGO.
![]()
Using a control program, you can change the frequency as rapidly as you can send commands, typically 50 steps per second or more, although this depends on the communication speed and the application. The Exciter uses a USB connection to the computer, and emulates a conventional PC serial communications port. Although the rate can be changed in the code, the default setting is 19200,N,8,1.
The code for this design, ZL1BPU_VFO_V6, was written by Con Wassilieff ZL2AFP. A PC program for controlling the unit, NEXC_001.exe has been written by Murray Greenman ZL1BPU.
A 'What You See Is What You Get' program capable of generating nicely rendered scripts such as the one above is also available from Con Wassilieff ZL2AFP:
ZL2AFP WYSIWYG MEPT Controller V1.09
Just save the pattern you create and rename it xxx.scp.
The unit has an LCD display which indicates the operating frequency to 10 digits (right down to 0.01 Hz!), the VFO that is ‘in focus’, and the tuning step Resolution. For each of the three VFOs, three parameters can be changed by three push-button switches. The controls are:
- SEL (Select)
- Changes the VFO (VFO 0, VFO 1 or VFO 2) that is ‘in focus’, i.e. the VFO that the other controls will affect. Button presses change the VFO in focus in order 0, 1, 2, 0, etc. The same applies to the equivalent serial control command, although it can change the VFO in focus directly to the target VFO. (This is the left red button in the above picture).
The SEL control does NOT change the frequency or switch frequencies between VFOs. It simply changes the VFO ‘in focus’ for the display, other controls and serial commands.
At switch-on, the frequencies used are:
These defaults can be changed by editing the Arduino script, recompiling and downloading the changed code.
- VFO 0 10,000,000.00 Hz (10 MHz)
- VFO 1 7,000,000.00 Hz (7 MHz)
- VFO 2 3,560,000.00 Hz (3.56 MHz)
- RES (Resolution)
- Changes the resolution of the frequency control, which is a rotary encoder. (RES does NOT alter the display resolution). The default is 1 Hz steps, and repeated presses of the RES button change the step size to 10 Hz, 100 Hz, 1 kHz, 10 kHz, 100 kHz, 1 MHz, 10 MHz, 0.01 Hz, and finally 0.1 Hz. (This is the second red button in the above picture).
The use of such fine steps is generally quite unnecessary, as the stability of the generator on HF and above will generally be poorer than the smallest step size.
- BAND (Select preset frequency)
- The third parameter which can be changed with a push-button is the operating frequency of each of the three VFOs. These are stored in a list in the code, which the user can alter as described above, or extend if necessary. The list provided in the code is:
The BAND control changes the VFO in focus to these frequencies in order, one button-press at a time. The operator can then tune about from this new frequency.
- 470,000.00 Hz (470 kHz)
- 1,800,000.00 Hz (1.8 MHz)
- 3,500,000.00 Hz (3.5 MHz)
- 5,000,000.00 Hz (5.0 MHz)
- 7,000,000.00 Hz (7.0 MHz)
- 10,000,000.00 Hz (10.0 MHz)
- 15,000,000.00 Hz (15 MHz)
- 20,000,000.00 Hz (20 MHz)
In the above photograph, the two red buttons are SEL and RES, while the BAND function is operated by pressing the tuning control button.
The following commands provide remote operation via the USB port on the Arduino UNO:All commands must be UPPER CASE. Some have numeric qualifiers. The commands can be used from a dumb terminal or a control program such as NEXC_001.exe. Performance is fast enough to follow 50 commands per second or more. Unless changed by the user, the serial commands operate at 19200 bps. Some commands elicit responses from the unit.* These commands affect all three VFOs.
- Ccccccccc Calibration *
- Fffffffff Frequency
- Pp Power level *
- Rr Resolution
- T Transmit
- Vv VFO select
- X VFO Off
Ccccccccc Calibration
Sets a value (which is stored in EEPROM) which corrects for errors in the reference clock. The default value is 0, and the decimal number nnnnnnn can be positive or negative. This correction is recalled at power-up, and applies to all three VFOs.Fffffffff Frequency
Sets the operating frequency in Hz. The value can take two decimal places, and be any value from a few kHz to 200 MHz. The F command operates on the VFO currently in focus.The special case F0 turns the VFO in focus off, and the display will show ‘VFO turned off’. Issuing another valid F command will restore the VFO to operation. Issue the T command to turn the VFO on, on the last used frequency.
Pp Power
Sets the output level for all three VFOs. The default level P3 is +10 dBm into 50 Ohm. The levels are as follows:
- P3 +10 dBm
- P2 +8 dBm
- P1 +4 dBm
- P0 -2 dBm
R Resolution
Sets the resolution for the rotary encoder used to manually set the frequency. It has no effect on the display resolution or frequency setting via the F command. The values for n are 0 to 9, providing these resolutions:i.e. the resolution provided is 10Res/100. The C command operates on the VFO currently in focus, and only affects manual frequency setting.
- 0.01 Hz
- 0.1 Hz
- 1 Hz
- 10 Hz
- 100 Hz
- 1 kHz
- 10 kHz
- 100 kHz
- 1 MHz
T Transmit
Causes the VFO in focus to turn on at the last used frequency. It has no effect if the VFO is already on. Using T and X alternately can be used to send CW.V VFO
Selects the VFO to be the focus of other commands. The value of n can be 0, 1 or 2.X OFF
Turns the VFO in focus off, but makes no change to the display. This is useful when sending multiple on/off commands one after the other, as it stops the display showing repeated distracting messages. Issuing another valid F command will restore the VFO to operation.In the picture below, VFO0 and VFO1 are operating just 2 Hz apart, on 10 MHz. VFO1 is at a fixed frequency of 10,000.000 kHz, while VFO0 is being remote controlled, using F and X commands to send a slow Morse code ID on 9,999.998 Hz.
![]()
Power Supply
The unit requires 10 to 12 V DC at about 300 mA. The temperature controlled chamber design is able to compensate for changes in supply voltage from 10 to 15 V, so provided an 8 V regulator is used for the Arduino, the unit could be operated from a 13.8 V Lead-Acid battery. The prototype unit runs off an AC supply providing 16 V DC to a 12 V 1A regulator (LM7812) with a small heatsink. This powers the chamber and the Arduino.5 V operated devices (the display and Si5351 module) are supplied by the regulator on the Arduino.
Micro Controller
An Arduino UNO R3 is used for convenience, although a Nano could be used if a suitable USB interface and connector is added. (Some versions include a USB port).The connections are as follows:
The sketch for the Arduino is available from the author: zl1bpu@nzart.org.nz.A0 D0 DATA LED (from 5V) A1 RES button (to 0V) D1 A2 VFO button (to 0V) D2 Rotary Encoder A3 BAND button (to 0V) D3 Rotary Encoder A4 SDA (Si5351) D4 LCD DB4 A5 SCL (Si5351) D5 LCD DB5 D6 LCD DB6 D7 LCD DB7 D8 LCD RS D9 LCD ESi5351 Module
Either the Adafruit or Etherkit Si5351 modules can be used. The former is preferred as it seems more stable and is smaller, easier to fit in a small temperature controlled chamber.The Si5351 connections are:
+5V UNO +5V SCL UNO SCL SDA UNO SDA GND UNO GND CLK0 BNC connector CLK1 BNC connector CLK2 BNC connectorIt is best to use a fine 5-way ribbon cable for the connections, especially if using a temperature controlled chamber. I suggest wrapping this cable several times through a 20 mm toroidal core, and to add a 10 uF 10 V 125 °C Tantalum electrolytic between +5V and GND directly across the terminals of the module, inside the chamber. These measures remove ground loops which can easily affect the phase noise of the device, given that the three VFO outputs need to be grounded at the panel connectors.
Display
The simplest solution is to use a standard 16x2 Display Keypad Shield, as most of the connections are made simply by plugging it into the UNO. However this isn't the most flexible approach, and makes housing the unit in a decent enclosure rather difficult. It is best to use a separate standard 16x2 display (I chose a large one, 100 mm long), and preferably use a back-lit type.
![]()
The display shows the operating frequency of the current VFO on the top line, to full resolution. The second line indicates which VFO is the current device, and the step size employed by the tuning control.
Temperature Controlled Chamber
While the design will work perfectly well without a Temperature Controlled Chamber, you should not expect lowest noise performance, and the frequency stability will hardly be better than 10 ppm, even if the module is shielded from draughts and sudden temperature changes. In some applications this may not matter.With a Temperature Controlled Chamber, however, you should expect about 20 ppb stability (500 times better!), and no influence at all from draughts, temperature variations or supply voltage changes. The chamber used in the prototype is separately documented (link below). It consists of a small die-cast box with a transistor heater and temperature controller mounted inside the box below the space where the Si5351 module fits. The die-cast box fits in a larger PVC box, surrounded by expanded polystyrene insulation. The heater power consumption is a maximum of about 1 W. The operating temperature can be externally trimmed.
The Denwood Matchbox Oven Mk III
All is explained in the above article. The heater controller is an integrating type with essentially infinite gain, and is used to set the temperature of the module at the crystal frequency minimum (typically 53 °C), the point of greatest stability and least crystal-related noise. The article explains how this is achieved.