Appendix C - Construction Notes for an External Tone Generator

Operation of the Morse Academy designed external tone generator is controlled with parameters on the first line in the file PORT. It contains five numbers. The first value is the port used to control the Morse Academy tone generator. The default setting 888 (378 Hex) is for LPT1, the standard printer port. If your PC has additional printers, it can be set to other ports by editing the ASCII file PORT.

Printer Hex Decimal
LPT1 378 888
LPT2 278 632
LPT3 3BC 932

No testing has been done with communications ports, but logically keying those ports would seem to be possible with the coding provided in Morse Academy. Those hardware ports are:

Serial Hex Decimal
COM1 3F8 1016
COM2 2F8 0760

The program is written to support sending four different tones needed for the full support of Morse Academy sessions:

Frequency Purpose Hex Decimal
0 Hz Keyer off FF 255
300 Hz Low pitch long tone for error FE 254
730 Hz Keyer on FD 253
1800 Hz High pitch short tone for success FC 252

The choice of frequencies and function codes is arbitrary and can be changed to accommodate other hardware implementations. These four values are stored immediately after the port address in the element PORT in the Morse Academy directory. They can be modified to support other hardware designs.

The author would prefer that any hardware built for Morse Academy support all four frequencies so the full functionality of the program is preserved. There are however many approaches to providing the necessary keying, and many different possible uses. Although the author has not confirmed it, the simplest circuit may be to drive a Keyer or transceiver thru a diode directly from the parallel port, e.g. connect the anode of the diode to the positive side of the Keyer, the cathode to pin 2 of the parallel port, and pin 25 to the Keyer ground. This works only with Keyers that operate by closing a +5 volts to ground at less than 10 mA. To prevent excessive current flow a 100 ohm resistor in series with the diode is recommended.


To debug the program, a simple circuit was designed which fits onto a circuit card about one inch square. Power was taken from the parallel port. This is the reason that all function codes indicated above had the high bits set. The top six bits were set to have their power output in parallel to drive the circuit. Care must be taken in the design to not overload the PC's outputs. Drawing excessive current will damage the port driver chip. The pin assignments for the 25 pin parallel port are:

Pin Bit Output
25 - Ground
2 0 Function 0
3 1 Function 1
4 2 +5 volt power
5 3 +5 volt power
6 4 +5 volt power
7 5 +5 volt power
8 6 +5 volt power
9 7 +5 volt power

An alternative design could have used three master bits for tone selection using only five power supply pin outputs. A note of caution on use of the output pins as a power source. While the circuit can be designed to represent "Keyer off" as the absence of function bits, depending on the circuit you may still want to select all power bits to insure a constant voltage. Keying all bits may result in chirping.

The sample circuit uses a single sound manufactured by Radio Shack called a LED flasher that almost meets the three-tone requirement of Morse Academy. The part is an eight pin LM3909 - Radio Shack part number 276-1705. Only fourteen parts are required:

Part Qty Description
LM3909 1 LED Flasher Chip, Radio Shack P/N 276-1705
Socket 1 Eight pin IC socket
1N270 6 Germanium diode (or similar)
Resistor 1 1/4 watt 100 Ohm
Resistor 1 1/4 watt 12,000 Ohm
Capacitor 1 10 microfarad (electrolytic)
Capacitor 1 0.1 microfarad (mylar)
Connector 1 25 pin parallel port connector (male)
Connector 1 audio phone jack
Circuit board 1 about one inch square (length of 25 pin connector)

In testing this circuit on various computers if was found that the tone frequencies are very sensitive to the parallel port output voltage. This is especially true for battery powered laptops and notebooks, where in some cases the tone off function actually generated a low frequency tone. Adjustment of the circuit values R1 and or C1 may be necessary to generate the proper frequencies. As a suggestion you might consider use of a variable resistor to be able to adjust the circuit for your particular computer's parallel port design. A different circuit design may be more appropriate to the wide range of computers on the market.

By Joe Speroni