CoMmanD – Computers, Microcontrollers and DSP for the Radio Amateur

| September 19, 2003

CMD_cvrThis book is for the radio amateur and home experimenter who wants to use modern digital and computer technology to make more use of his/her radio equipment.

It is aimed at those who want to add additional hardware and try new signalling and communications methods, and to build hardware and systems for controlling existing equipment.

Click cover picture to buy this online.


Corrections, updates and additional information


Contains various Basic language utilities that are called up in the text as examples. The associated compiled.EXE files are included which can be run directly from a DOS or Command Prompt window. Before running the .EXE file, read the source code listing to ensure you know what you are about to run! Full interfacing and operational details are given within the source code, and /or in the relevant section of the book.

LPTFLASH.BAS – A simple programme demonstrating high level programming technique and interfacing to a PC. Flashes a LED attached to the least significant bit of the parallel, or printer, port of a PC.

REC232.BAS – Receives data on the serial port COM1 at 9600 baud and prints it to the screen. Use the [esc] key to exit from the programme when running.

SEND232.BAS – Sends anything typed on the keyboard directly to the RS232 COM1 port. Again use the [esc] key to exit

KEYER.BAS – A comprehensive CW beacon keyer that sends a typed in message repeatedly using two of the handshake lines on a COM port to interface to the transmit hardware. Speed, repeat period and message contents can be changed ‘on the fly’ as the keyer is running.

BANDSCAN.BAS – Controls an IC746 transceiver via its CIV interface, monitoring a specified band of frequencies and showing the activity levels in graphical form.

BCNSCHED.BAS – Allows the PC’s internal clock to be finely adjusted to get it within a second of UTC, then indicates which of the IARU beacons in the international beacon chain is currently active.


Contains full source code (.ASM files) for the various listings in the Microcontrollers chapters. All will have to be compiled and blown into the microcontroller chip in order to work. Full details for doing this are described in Chapter 4

LEDFLASH – A simple LED flasher programme demonstrating how to interface to a PIC port and generate timing delays. Briefly flashes a LED for 20ms at approximately one second intervals.

SWRBR3 – Software for the automatic, power independent, SWR bridge display. Provides a Pulse Width Modulated output for driving a panel meter, and a logarithmic LED bargraph display of power.

SERAD05 and SERAD06 – Two generations of software for the PIC serial A/D interface. Both digitise a waveform at various rates and send it on a serial RS232 interface at 115200 baud.

DSPIF – A later version of SERADC06, with the option for I/Q sampling of signals centred on 1kHz

LOGGER – Software for the 16F710 PIC within the HF-08 data logger. As for DSPIF, plus various longer duration data logging functions, including an option for text output data format for direct capture to disc. Link or software selectable logging intervals.

KEYER2 – Software for the G0IAY programmable beacon keyer.

DTMFREM2 – A telephone line based remote controller interface. Auto answers, requests a PIN and controls up to three circuits using DTMF tones.

DTMFRAD4 – A DTMF controller that makes use of a bi-directional radio link for remote control. Three independent sets of rolling codes define continuously changing PINs for link security. Please note that the PRN sequence generator included within this listing is not that used on any operational version of this controller!

REMTLM – A remote telemetry interface that is used in conjunction, and works in conjunction with DTMFRAD. Contains a useful repository of many PIC routines

STABIL01 and STABIL02 – two generations of software for a GPS locked frequency source. The design is specifically aimed at long symbol length signalling on the LF bands

RELAYDRV – A simple programme demonstrating serial link interfacing with a PIC. Receives 8 bit data on an RS232 interface, outputs it to 8 data lines for driving relays, and sends the result back along the RS232 port for validity checking.

GPSCLOCK – Used in conjunction with a GPS receiver module such as the Garmin GPS25. Reads the NMEA output to automatically set data and time, then uses the one pulse per second to maintain timekeeping.

PRNGEN02 – Uses a PIC to generate a 1.6kHz BPSK modulated with a 400 baud PN sequence. Demonstrates how waveform generation is performed on a PIC by making use of a timer interrupt for accurate intervals, and waveform synthesis.

KEYBENC – Interfaces to a 12 digit keypad, implementing the PIC’s wake up on keypress facility, to allow a hand held remote controller to consume minimal power in standby.

LCD232 – A PIC programme that receives data on a serial RS232 links and displays this on a Hitachi type LCD module. Please note that this listing as given here is UNTESTED. It was compiled from routines used in several other projects, and should be treated more as a repository of routine for driving LCD modules.

FILTSW1A – Makes use of a PIC for measuring frequency, then setting appropriate output when this is within certain limits. Used for automatically selecting filters in an HF power amplifier.


Contains code from the DSP chapters, 8 and 9. For the Windows software given in Chapter 10, go to Alberto Di Bene’s website given in the reference.


Pseudocode listing of a DSP routine for generating I and Q signal from a soundcard output for quadrature upconversion to RF. Audio input is to the soundcard left or right input ports, depending on which sideband is wanted.


Software for the Motorola 56002EVM that downconverts a user selectable audio centre frequency to zero frequency I/Q samples, decimates to one of several lower sampling rates and sends the data over the serial port to a PC. Data formats and interfacing are given within the listing. Much of the code is extracted from EVMSPEC


Spectrum analysis programme written by G3PLX for the 56002EVM. Downconverts, decimates and performs an FFT on audio frequencies, sending the magnitudes of the 512 bit FFT results as logarithmic, dB, values over the serial port to a PC.

FLASH.ASM and PLXBOOT.ASM. Widely available utilities for fast boot up of programmes running on the 56002EVM, making use of a FLASH ROM for programme storage.

Category: Books Extra