Wobbler & generator with PC controlled DDS
Dr. Peter Halický, OM3CPH, Peter Halický, Jr., OM2PH

Parallel port connector description and wiring
Component list
Professional solution by OK1UTS

New!!! (July 2014)
Roberto IW0RAQ pointed my attention to mistake in wobbler LPT pins assignment!


A few years ago, in 1998, we published the project of the universal DDS unit with Analog devices AD9850 (or 9851) chip. As an example of its use a simple program to control via PC was presented. After some time we created some more complex and hopefully more usefull application – PC controlled wobbler & sine wave broad band generator. The project now contains, except the universal DDS unit, detector, A/D converter with amplifier and broad band amplifier. The equipment is controlled by the originaly created program running at Microsoft Windows platform.


The device consists of the DDS unit based on well known Analog devices AD9850 or AD9581 chip, simple broad band amplifier, diode parallel detector, TL081 (or similar) based DC amplifier and Texas Instruments TLC549 8-bit A/D converter with serial data output.
The device is controlled by PC via parallel port. It can be powered by PC power source too. Control and display of results is provided by original program created for Microsoft Windows platform. The block diagram is on Fig. 1.

Fig. 1: Block diagram of the device.

The DDS unit was used with very small modifications – filtering condensers at 4081 input were omitted to speed up the device and ENABLE input was wired directly to +5V power source (as it is not used). 80 MHz clock oscillator was used and output filter was set accordingly (AD9851 seems to be more convenient, as it has built-in clock multiplication by 6 – low frequency clock is easier to obtain, it can be found for example on failed PC mother boards). The maximum frequency generated (at standard operation modus) is 1/2 of clock frequency. DDS unit outputs sine wave with amplitude approximately 100 mV. It can be sufficient for many applications. However, to get device more universal, it was equipped with broad band amplifier with +20 dB gain and -20 and -40 dB attenuators (Fig. 2). Who will need more attenuation can use more -20 dB attenuators in series.
The broad band amplifier (Fig. 2) should, if possible, cover the whole DDS unit generated band, e. g. with 10-times amplification cover frequencies from (approximately) 0 up to 40 MHz. Very satisfactory results were obtained with simple one BFR96 transistor amplifier known from TV signal amplification. However, to get it stable it was necessary to use attenuators on input and output. The transistor works with collector DC current in the range 30 – 35 mA (set by resistor between collector and the basis). The collector resistor (100 Ohm) is quite hot – it must be some larger type, but with negligible inductivity and wires.

Fig. 2: Broad band amplifier and one segment of attenuator.

DDS unit, amplifier and attenuators have impedance close to 50 Ohm. The connection to measured filter must usually contain appropriate transforming circuit. In the case of LC based filters it is usually coil offset or capacitive transformer. The situation is a bit more complicated in the case of crystal and monolithic filters requiring usually complex impedance on both sides – usually R in parallel with C. If this is the case it is possible to connect via resistive transformer (attenuator), but with remarkable attenuation.
The detector on the output of the measured device, with appropriate impedance load, is not an easy job. The simplest solution seems to be diode parallel detector (see detail on Fig.1). In the case high quality Germanium diode is used the result can be very acceptable. The disadvantage of nonlinearity at low input voltages seems the smallest for Germanium diodes. Shottky diodes were tested, but the results were not as encouraging as with Germanium ones. The best results were obtained with CB junction of (old) VHF germanium transistors (AF106, AF139, AF239).
The problem of the detector, except the nonlinearity, is response time (dependent mainly on resistors and filtering capacity of the detector), which strongly influences closeness of the measured curve. To get the best compromise between (non)linearity and response speed the input resistance of the preamplifier was decreased by 1 MOhm resistor.
The most sensitive range of the A/D converter TLC549 is 0 – 1 V. With the respect to DDS output voltage and signal damping in the measured circuit it can be expected detector input signal in the range of tenth milivolts and detector output in the range of milivolts. To get reasonable results it is necessary to amplify the signal before A/D conversion. It can be variable gain amplifier if qualitative results are acceptable. There are no special requirements for chip used. Even 741 can give acceptable results. TL081 FET operation amplifier has been used in our device. In our project (Fig. 3) it was used as noninverting amplifier with variable gain. The zeroing was found to be necessary. To calibrate A/D converter, 1.28 V value was selected, which serves 5 mV step of A/D conversion (256 x 5 mV = 1 280 mV). The reference voltage was taken from +5V power, as there is no need for very precise results. However, those wishing more accurate results should take more precise reference voltage source.

Fig. 3: A/D converter with amplifier.


DDS unit was taken with no change (except of 3 condensers) as mentioned above. Broad band amplifier (PCB is on Fig. 4, components placement is on Fig. 5) was mounted directly onto switch on panel, the same way attenuators. The setup consists in collector DC current setup via change of the resistor between collector and the basis value and overall gain setup via setup of input attenuator (both resistors are marked with *). The amplifier is not shielded.

Fig. 4: Broad band amplifier PCB (1,5 x 2,75 cm).

Fig. 5: Broad band components placement on PCB.

The output from DDS unit was conducted to switch by small piece of coaxial cable, the same way was used to bring signal from switches to output connector.
Diode detector was placed into plastic tube (from marker) and connected with the device by shielded cable. As diode CB junction of AF139 was used. The emitter was broked and collector was soldered with housing. As input condenser it was used small tube-like ceramic one.
A/D converter with amplifier (PCB is on Fig. 6, components placement is on Fig. 7) was not shielded.
The whole device was powered from PC power sources. +5 and +12 V is available easily (red and yellow wire, respectively), -12 V must be taken from wire (usually blue), which must be identified on mother board connector. This must be done very carefully! Any soldering inside the computer should be avoided!
All 3 power voltages were placed to a special connector at the back side of the PC close to parallel port connector. Those, who would like to avoid any change inside the PC, should construct some simple power source to feed the wobbler.

Fig. 6: PCB of A/D converter with amplifier (2,3 x 3,9 cm).

Fig. 7: Components placement on the A/D converter PCB.

To connect wobbler with PC, flat multi-wire cable was used. 10 wires are needed. Standard printer cable may be adapted, provided you find some with dismountable connector. The overall view of wobller prototype is on Fig. 8. A/D converter, preamplifier and broad-band amplifier are experimental design.

Fig. 8: The wobbler overall view (experimental design).

Parallel port connector description and wiring.

Pin No.descriptionused as Pin No.descriptionused as
1/STROBEA/D CLOCK (pin 7) 14/AUTOFEEDA/D /CS (pin 5)
2Data Bit 0DDS DATA 15/ERROR 
3Data Bit 1DDS W_CLK 16/INIT 
4Data Bit 2DDS FQ_UD 17/SELIN 
5Data Bit 3  18Signal GroundA/D GROUND
6Data Bit 4  19Signal GroundDDS GROUND
7Data Bit 5  20Signal Ground 
8Data Bit 6  21Signal Ground 
9Data Bit 7  22Signal Ground 
10/ACK  23Signal Ground 
11BUSY  24Signal Ground 
12Paper EndA/D DATA OUT (pin 6) 25Signal Ground 
Wires Data Bit 3, 4, 5 were disconnected from connector and used to conduct all 3 power voltages to wobbler.


The program to control DDS unit and to display results of A/D measurements was written for 32 bit Microsoft Windows platform. It was tested with Windows 98 SE, Windows 2000 Professional. There are no special requirements for PC, except it should have processor with 200 MHz clock or faster and it must have free parallel port, of course. The faster the computer the faster the program is running. With AMD/400 MHz and Windows 98 the maximum sweeping speed was 10 Hz. The same computer, but with Windows 2000 gave only 3 Hz maximum sweeping frequency.
The program consists of 4 windows: wobbler, generator with voltmeter, setup and about.


This is the main function. The window (Fig. 9a) is very simple and its use is very intuitive.

Fig. 9a: Wobbler window - linear display.

The most important part of the window is black window with green grid. The horizontal axis is axis of frequencies, the vertical one is axis of A/D input voltages. The dimensions of the window are 257 x 400 pixels.
The whole sweeping range of the generator is divided into 400 step frequencies of the DDS unit. This wobbler type doesn’t use continuous sweep. The step count is set constant. One can set only lower and upper limit (the first and the last step frequency). To make tuning easy it is possible to set multiplier – units, thousands and millions of Hz.
At the vertical axis it is possible to display 256 distinct values (8-bit A/D converter is used). For convenience it is possible to set maximum value number (with no influence on A/D conversion, of course). The feature to use logarithmic display (Fig. 9b) is very useful. The maximum input voltage was used as maximum value for logarithmation. The approach is exact, but very convenient one.

Fig. 9b: Wobbler window - logaritmic display.

Very important is actual frequency display window under mouse cursor when in display window. It allows to get frequency values of important points of the transmission curve easily.
In the wobbler window there is possibility to set sweeping speed. It is a bit rough, but still convenient. For steep curves it allows to slow down sweeping to get more accurate curve view. The default value is fastest (“normal”). “Slow” and “Very slow” are achieved by repeated measurements at each distinct frequency and averaging. The side effect of slowing down is digital filtering of the data. It is important in the cases where input signal is very noisy.


This window (Fig. 10) gives basic DDS unit function – accurate frequency sine wave signal generation. Above and below the window there are buttons to tune up, and down respectively, in 1 Hz, 1 kHz and 1 MHz step. The buttons “+A” and “-A” serve for user defined tuning step. It's value is set in “A=” window.

Fig. 10: Generator.

Lower part of generator window contains larger buttons for tuning via keyboard. Keys Q, W, E, R tune up, keys A, S, D, F tune down with the same function as previous buttons. To activate keyboard tuning it is needed to click on “Click on this button…”. The voltmeter window has both numeric and analog display. The last one can be useful as indicator when maximum or minimum tuning is performed.


Setup window (Fig. 11) allows to set address of parallel port which serves for wobbler control. The value is set in hexadecimal notation, as usual.
The optional internal clock multiplication by 6 for AD9851 chip can be set in this window. The clock value is to be set in resulting value (multiplication by 6 must be included in case of AD9851).
There is no need to save set values as they are automatically saved to Windows registry.

Fig. 11: Setup window.

About window

This window contains basic information about copyrights and Help button containing main part of this article.

Fig. 12: About window.


Wobbler control program can be downloaded and used for personal use free of charge provided copyright will be retained. Any commercial exploatation is possible only with agreement of authors.

The authors don’t deliver or provide PCBs, nor the components used.

Component list

Integrated circuits:AD9850 (AD9851), 4081, 2 pcs LM78L05, TL081, TCL549CP
Transistors: BFR96, AF139 (AF239)
Diode: Zener diode 5V1
Resistors: 5 x 10, 22, 3 x 27, 47, 5 x 51, 100, 150, 2 x 220, 6 x 1k, 1k5, 3k9, 6k8, 4 x 10k, 22k, 33k, 2 x 100k, 2 x 1M
Resistor trimmer: 1k, 10k
Potentiometer: 22k lin.
Ceramic condensers: 1n, 4 x 33n, 4 x 100n + 3 small condensers according the DDS filter values
Electrolytic condensers (take Tantal one, if possible): 6 x 10M/15V
Other: DDS output filter coil, 4 x choke (100 turns 0,1 mm Cu on small low frequency ferrite bar or 33 Ohm resistor), flat multi wire cable with 10 wires in minimum and 2 m maximum length, 3 ISOSTAT like switches 2x2, 5-pin complete connector (+5, +12 and -12V power), clock oscillator, appropriate tin platted box, 25-pin connector, tuning button