PSK31 Audio Beacon     

PSK31 Beacon

Project Description

App #1: Tone Gen


Source Code

PSK31 Beacon



PCB Layout

Source Code

Programming the SX

Useful SX Links

SX28 Overview

Beaconing Guide

Back to 
Digital Homebrewing Home Page


(Refer to the Schematic further down on this page for the following discussion.)

DC Power Input

The kit provides a standard battery clip with which the user can connect a 9V battery. Any DC voltage from about 9-12V may be used, as the 3-pin regulator VR1 drops the input voltage down to the required 5V for the microcontroller.

Current consumption of the Beacon circuitry is nominally about 80ma, so the regulator will naturally get a little warm

Note: If an SX-Key programmer is connected to the Beacon (allowing reprogrammability of the microcontroller) a TO220-packaged 1A voltage regulator such as the LM7805 should be used due to the overall higher current demands of the programmer.

Scenix SX28 microcontroller

The Scenix SX28 microcontroller used in the beacon operates at 50 MHz clock rate, providing an instruction cycle time of 20 nanoseconds. This fast operation enables precise control of signal generation and phase reversals to produce stable and accurate carrier modulation at the audio baseband frequencies. A 50 MHz ceramic resonator is used with the on-board oscillator to provide a fast and simple controller solution to the generation of PSK31 encoding.

Carrier Generation: "R-2R DAC"

There are numerous ways to generate a sine wave suitable for use in communications systems, and each has advantages and trade-offs. A discrete chip sine wave generator or a separate digital to analog converter (DAC) could have been used, but it was desired to keep both hardware complexity and cost to a minimum.

Another popular method used in generating a sine wave is to pulse width modulate (PWM) a square wave on an output bit of the microcontroller and then low pass filter the signal with an R/C network. This method requires too much use of precious interrupt time in the processor.

A simple technique was ultimately chosen to generate the carrier - the "R-2R DAC". This digital to analog converter incorporates a ladder network of 15 resistors whose nodes are fed by an 8-bit parallel output port of the microcontroller. The values of the resistors in the network are 10K- and 20K-ohms, hence the R-2R nomenclature. The cumulative weighting of these R-2R resistors in the ladder ultimately produces an output voltage at the top of the ladder corresponding to the desired analog voltage. Thus all the software needs to do is present the desired sine wave values in sequence to the output port at precise time intervals. When smoothed with a capacitor, the resultant waveform at the top of the resistive ladder is a clean sine wave.

Audio Amplifier

The output of the R-2R DAC is ac-coupled to the input of a common LM386 audio amplifier through a potentiometer to provide continuous adjustability of the audio volume.

This amplifier provides significant gain and quite nicely drives a small speaker.

Configuration Jumpers

Five user-installable configuration jumpers (X2-X6) instruct the software to produce one of 24 distinct carrier frequencies that will ultimately be phase-modulated at 31 baud. Input pins of the SX microcontroller are used to read the status of these configuration jumpers. These input pins have weak internal pull-up resistors and float "high" when unconnected. However, when grounded by putting a jumper in place, the pin reads "low" and signals the software to take specific action in configuring the Beaconís frequency.

Another jumper (X1) instructs the software to set a specific interrupt timing that permits the software UART in the SX chip to communicate over the RS232 serial line with an external computer. This mode is used for custom beacon string entry or character-by-character sending of data.

Carrier Frequency Selection

a) Base Carrier Selection Jumpers - Two jumpers allow user to configure beacon carrier signal to any of three frequencies: 500 Hz, 1 KHz, or 2 KHz.

b) Carrier Offset Jumpers - Three additional jumpers allow user to select one of 8 closely-spaced frequencies around the chosen base carrier

Transmission Mode: Continuous or One-Time

The Beacon may operate in either Continuous transmit mode, or in One-Time transmit mode.

a) Continuous transmit is selected by installing configuration jumper X7, thus instructing the beacon software to automatically restart the beacon transmit sequence (idle and pre-programmed data string),

b) One-Time transmit is selected by removing the configuration jumper from X7. The transmit sequence is initiated by manual actuation of the STARTpushbutton, upon which the idle stream and pre-programmed data string are sent. The beacon stops transmitting at the end of the data string and awaits either another STARTpushbutton actuation.

Serial Input Mode

Jumper X1 instructs the software to use a fixed-time interrupt loop, thus allowing the UART routine send and receive serial data with the external terminal/computer. It may be convenient to use a SPST toggle switch for this configuration line, as it would only be used when inputting a custom beacon string or when transmitting keyboard data character-by-character. The switch would be open other times during automatic Beacon transmission.

Custom String Entry Mode

The way to initiate entry of a custom text string is by having the X7 (CONTINUOUS) jumper in place and holding down the START pushbutton while applying power to the board. (You also must have the X0 jumper in place to signify use of the serial COM port, as described above). A convenient way to switch the Beacon into this serial-entry mode is to wire the X7 and START lines to a DPDT toggle switch that would ground the respective input lines when this mode is desired.

PSK31 Audio Beacon Schematic v2.2


Page last modified: November 28, 2001

Copyright 2001 G. Heron, N2APB