OH2NLT Cheap DSP 19.09.2005

clr A, [w8], w5, [w10], w6
repeat w1
mac w5*w6, A, [w8]+=2, w5, [w10]-=2, w6
sac.r a,#1,w0


Updated 02.01.2009

Transceiver is finally boxed. 50W PA also build and installed. See story bellow.


I have made simple and inexpensive DSP board for radio and audio experiments. Board contains following key components:

–dsPIC30F6014 DSP
TLV320AIC23B codec
AD9850 DDS chip
– RX & TX mixers with amplifiers
– LCD interface, some LEDs and switches
– general I/O &
Rotary Encoder interface
– RS232 PC interface
– connectors, power supplies and other stuff


Click block diagram for full image.


Picture of Cheap DSP card

Schematics Page1(codec) | Page 2(dsp) | Page 3(psu) | Page 4(dds&mixers)

TLV320AIC23B codec is very versatile part. It contains also variable gain stages for inputs, Microphone amplifier and headphone amplifiers with gain adjust. For test transceiver codec internal adjustments and numerical gain control are enough. For better dynamic range external adjustable RF attenuator is also needed.

I am still tuning the board and writing basic software but first test QSO is held with the board 9.9.2005. External 10W RF power amplifier was used to boost TX signal. TX mixer delivers about 25mW power this means 1-2W to antenna.

19.09.2005 RF driver stage was added to boost TX power up to 10W. Transceiver filters, RX/TX logic and rudimentary ALC are working. DSP test station is ready to use.


27.10.2005 TX mixer driver RF filters improved. Driving high speed switching multiplexer is difficult task for an op amp. Here is improved version of TX mixer driver.

Scope picture of driver problem. Yellow beam = RF out, Green = audio, Blue and Purple = LT1364 driver amplifier outputs with RF noice.
Detail picture of Driver outputs. Yellow = one mux drive signal, Blue and Purple = LT1364 outputs.

Schematic Rev B Page 4 (dds&mixers)

Picture of piggy bag installed filter components.


Very first version of Test software for Cheap DSP board. This code contains all sorts of board and functional test routines. It is not a nice and clean piece of code but it also contains fully functional SSB Transceiver! This is for historical reference only. Latest version can be found below.

Test software for Cheap DSP card with DsPIC30F6014A codec driver. In 6014A chip DCI (codec interface) bugs are removed. This version of test code supports 6014A different (correct) DCI operation. RF attenuator user interface added.

Simple Excel calculator for I/Q (sin/cos) Hilbert filter pair With this calculator you can transform low pass FIR filter to 2 x cutoff frequency all pass sin / cos FIR filter pair.

Gain distribution of experimental CheapDSP board receiver chain. Overall system gain is modest 71dB. For test purposes in 80m and 40m bands this gain is however enough. More challenging part is AGC and dynamic range and how very high level RF signals are handled. I am planning to add adjustable RF diode attenuator before mixer. Headphone amplifiers (inside codec chip) are good for general volume control. Range is from -73dB(mute) to +6dB. AGC is currently done with adjustable amplifier (inside codec chip) before codec A/D converter. Amplifier adjustment range is 46dB, which is reasonably good. The real problem is input range, which is about 3V p-p. This value comes from coded VCC. 3V p-p and 50dB gain before it mean only 3mV or –40dBM antenna signal before clipping occurs in this stage.

TX chain is very much easier because signal dynamic range from microphone onwards is more in control.

There is not yet real AGC in the test code. There is however piece of driver code and some tests for RF diode attenuator board.

Schematics of the RF attenuator board

Test fixture | Attenuator board in use

Gerber files for the RF attenuator board


AM demodulator experiment. AM envelope can be detected from I/Q with simple equation AM = sqr( I^2 + Q^2 ). In real life fast SQR calculation is however challenging. Here is piece of very efficient code. This function calculates square root of 32bit number in about 10us 30F6014 operating with 58,8924MHz clock or 14,7456MHz cycle speed.

Sample AM demodulator code


CheapDSP v0.02 source code for Microchip C30 compiler. Some building instructions included in the doc folder.


Enclosure is made from old modem mechanical parts. Modem’s LCD could be used but I installed bigger one instead.
New box:
Front view | Front/side | Back view | Back/side This is better than most commercial ones.


Some detail pictures of CheapDSP transceiver
Face plate with large LCD. Two control buttons, RF & AF gain controls and VFO
Transceiver module layout
PA board
Right side | Left side
Back plate. Back plate was little difficult to modify. It is 2mm steel plate. However connectors and fan is now installed.


Self made high resolution I/Q rotary encoder was taken in use. Some small modifications was neded to adapt 5V encoder to 3,3V DSP system. Simple resistor divider is used to convert encoder signals. BS170 FET is used for encoder push button function 3,3V conversion. 5V operating voltage is taken fron CheapDSP boards 5V regulator.
Link to original encoder project


50W PA for Cheap DSP is documented here.




Early tests with PCM3002 Codec & dsPICDEM board. 21.06.2005

Just for curiosity I made small add on board populated with Texas Instruments PCM3002 codec for dsPICDEM starter board. DsPIC30F6012 and PCM3002 together form simple, nice and cheap DSP test environment. Current test program is just feed through & sine oscillator test. I am going to try SSB exciter and/or receiver with this combination.

PCM3002 Codec card

Test setup


Very first test program


After some difficulties first filter test is running. Simple 32 tap 1000Hz LP & HP filters for both channels. Filters are calculated at every new sample. This is not most efficient way to implement FIR filter, but simple to use. Filters are designed so that coefficients can be changed on the fly.

First stereo FIR-filter.


Test bench for filter code starts to get some features. I have still unsolved problem with Hilbert transformer. Following project is not near publication quality. I put it here to help discussion with other people. It is easier to discuss about what you can also see.

Filter test bench 07.06.2005


First QSO with DSP setup held with OH7SV at 21.06.2005. Test setup was build around our direct conversion transceiver prototype. Receiver part, DDS and RF mixer for TX was used from DCTRCVR board. PCM3002 codec with differential buffer amplifiers provided I and Q audio signals to mixer. Audio was generated with sin/cos Hilbert filter pair from microphone signal connected to PCM3002 input. TX signal chain in this test represents basic phasing method.

DSP TX test setup 21.06.2005


73 de OH2NLT