General coverage receiver 0-50Mhz (ULF to HF/VHF)
based on AD9854 DDS direct digital synthesis chip


This is basically a direct conversion receiver. The LO frequency synthesis is based on the AD9854 DDS chip (I/Q quadrature direct digital synthesis, visit for the datasheet and sample orders).

There are two detectors: one is a conventional AD831 mixer based downconversion board, the other is a Tayloe detector i.e. an N-path (N=4) sampling filter aka quadrature sampling detector (, see SDR Articles section). An upwards sampling system as in the 4th SDR paper could be used for the transmitter section.

The DDS is programmed and controlled by a MSP430F149 microcontroller (MSP430 series, 60kB flash, 256B ram, 48 I/O pins). Peripherals of the DC-RX system include: a 2-line LCD, a standard PC keyboard, a PC RS-232 cable for remote control, and an inexpensive DIY tuning wheel.

The mainboard contains all user interface and DDS related parts and may be used for other purposes too, t.ex. as a LO for another rx/tx or for phase modulation, chirping, keying, and using other features of AD9854.

Dev tools

All software tools are freeware or GPL.

Schematics and PCB layout: Eagle (english and german, Linux + Windows)

MSP430 firmware upload and debug: NoICE remote debugger

JTAG programming adapter: Olimex MSP430-jtag for schematics. I built it without the TPS77030 and MCP601, as the uC & DDS boards draw way too much current (500mA..1A) to be supplied by just the PC parallel port.

C/C++ compiler: msp430-gcc gnu c toolchain for MSP430 (best compiler for this purpose, but no graphic IDE), IAR MSP430 tools from Texas Instruments (4kB limit!). The firmware sources should compile on both.


analog-devices-dds.lbr : AD9854 library file for Eagle. Additionally contains the classic AD831 low distortion high IP3 doubly-balanced mixer

texas-msp.lbr : MSP430F149 library file for Eagle (same pin-out for MSP430F147/148/149). Additionally contains the MAX3221 ultra low standby current RS-232 driver/receiver, INA163 low noise low distortion instrumental amplifier, TL714 open drain fast 50MHz analog comparator, and TPS75833 3.3V 3A lo-drop fast transient response regulator.


  • mainboard with uC and DDS
    fully working final design, LCD and PC keyboard optional, main control via RS232 and the tuning wheel. Sections not needed can be omitted, like the LCD or DDS output low-pass filter, depending on the application. JTAG connector has non-standard pin order. 50.000MHz 3.3V xtal osc external to board (note: 5V xto's can run from 3.3V, too).

    up-to-date Eagle files [sch] [brd] and changelog [text]
    GIF reference of above version
    [schematic] [PCB] [top parts] [bot parts]
    and 1st prototype photo 1, photo 2 (heatsink solution)

    update: 11/2005, LVDS non-50% duty cycle problem fixed, existing boards see above changelog.txt for simple mods

  • AD831-based analog mixer
    non-optimal prototype, mixer appears to be overdriven somehow, reception quality reminds of rain barrel sound...

    Eagle [sch] [brd]

  • "digital" downsampling Tayloe mixer v1.5
    Works nicely. The sch and PCB have been updated and cleaned. The center-tapped 1:1:1 transformer ('isolated balun') requires a proper RF ferrite, small Amidon balun cores will do just fine. The board output needs about +40dB AF (e.g. PC soundcard microphone input). Features alternative inputs: I/Q LVDS >200mV, I/Q LVTTL 3.3V, single TTL 5V (2xfRX). Unused input components can be omitted.
    Note: there's a problem with the INA163's. Sometimes they switch to massively attenuate the input difference signal, though signals and voltages on all pins would suggest it should still be giving x50.000 gain - working to debug the problem... (July 17 / 04)

    Eagle [sch] [brd]

Other files


All semiconductor parts used in the mainboard are available as free samples, or can be bought from DigiKey and others.

Free samples:
Analog Devices: AD9854 AD831
Fairchild: FIN1028 FSAV331
Texas Instruments: MSP430F149 MAX3221 TPS75833 CD74HC573M

The RS232 serial port on the uC/9851 board is set to 9600 baud, 8 data, 1 stop, no parity, no flow control. Also, the MAX3221 has an autoshutdown feature, meaning that if it doesn't find a valid RS232 voltage level on the DB9 connector RX/TX lines for some time, it will shut down. So, before trying to debug serial comm, connect the cable to a PC - otherwise you might be surprised to find no output.

Because many people have asked, I've now added a page with some infos on how to make etched SMD PCB boards with standard equipment.

(C) 2005 Jan Florian Wagner, OH2GHR
jwagner at cc hut fi