Andrew Fletcher - Hand-knitted Software

Here are some programs I have written which you may find interesting.

Rigol Capture

I found out that my Rigol DS1104Z scope can be easily controlled over the LAN from a program. I had thought that the interface to the scope was complex, hence the clunky Ultra Scope software provided by Rigol. But it is simply a telnet interface. So I wrote some stuff to do Rigol Capture. This also has a program to capture the scope screen as a bitmap.

AD9851 VFO

The code for my UART-driven VFO is in this ZIP file.

I also made a simple demo of the AD9851 as a VFO driven by a PIC16F887 using C which might be easier to undestand. Here is the make file. I decided not to use the AD9851 as the DDS for my Aerial Analyser as my electronics skills couldn’t cope with matching that DDS to the input aerial analyser detector circuit. However the AD9851 itself works well. If you get a board with an output filter on the sine output I would recommend you consider using the square wave output and your own filter. I got varying results from the board I had.

Si5351A VFO

As part of the work for the Aerial Analyser, I wrote a simple demo of the Si5351A as a VFO driven by a PIC16F887 using C. Here is the make file, and associated header files: I2C driver – slightly altered from the HobbyTronics version, and an Si5351A driver. The chips are connected as in this scribbled drawing from my lab book. The references to ‘PK2’ are connections to the PICkit2 which I use for programming the PIC.

The Si5351A driver is a port from Hans Summer’s Arduino-based driver which you can find on Hans’ site and the QRP Labs site. Hans’ site is a wonderful resource for radio and electronics experimenters and I can’t recommend it too highly. QRP Labs make a Si5351A Synthesizer kit which contains a pre-soldered Si5351A chip, 3.3V regulator, and I2C level converters.


The CPSARC hold activity days each month, and the founder, Bob Glasgow, collects the results. He likes them in spreadsheet format and my logging software RUMlogNG exports to ADIF. So I wrote a converter program which is imaginatively called ADIF2CSV. The program is written in Racket so I can run it on Mac OS X, Linux or MS Windows as long as Racket is installed.

The GUI is a bit rough and ready as I wrote this for my own use, but it does the job. The idea is that the relevant QSOs in the logger are exported to an ADIF file and then ADIF2CSV is run. The GUI asks for the ADIF file and also for where to put the output CSV file. It then parses the ADIF and writes to the output CSV file. This output CSV file can then be imported into a spreadsheet program.

The source is in four parts, the GUI, the ADIF parser and some utilities to do the distance calculations: Great Circle Distance and Maidenhead to Latitude and Longitude Conversion.

Note: 24 Nov 2017: now reports the submode if it exists and is not the same as the mode.

Waveform Generator Module

See Ramp Generator for details.

WWV Report

This terminal-based program just prints the WWV report. For example:

Date        Hour   SFI   A   K Forecast                Logger
16-Nov-2015   21   106  14   3 No Storms -> No Storms  <W0MU>
16-Nov-2015   18   106   9   3 No Storms -> No Storms  <AE5E>
16-Nov-2015   15   106   9   3 No Storms -> No Storms  <AE5E>
16-Nov-2015   12   106   9   3 No Storms -> No Storms  <AE5E>
16-Nov-2015   09   106   9   3 No Storms -> No Storms  <AE5E>

The code has a configuration section to define the DX cluster address, port and call-sign. The DX cluster must run DxSpider. The program is written in Racket so I can run it on Mac OS X, Linux or MS Windows as long as Racket is installed. Here is the source code.