DIY AD9833 signal generator – first steps (part 2)

In this post I am going to continue with the DIY signal generator based on the AD9833 IC where I have left in the previous part. Earlier, I have talked how I had built my first analog signal generator’s stage – variable gain amplification circuit. Usually, a generator needs to have an ability to change not only the signal’s amplitude, but also its offset. So, today I will walk you through a circuit which adds an offset to the DIY generator’s output signal.

Let’s remember full circuit which was shown in the first part:

Diy waveform generator initial schematic V0
Full schematic

Links to project’s all posts

  1. VCA822 Gain Amplifier Circuit
  2. LM7171 Offset Circuit (this post)
  3. Gain and Offset Control Filter Circuit
  4. Dual 5V Power Supply
  5. Dual 12V TPS65131 Power Supply
  6. Battery Charging Circuit with BQ24295
  7. Basic WEB Interface
  8. IPS Capacitive LCD on an ESP32
  9. IPS LCD, ESP32 with eSPI library and Touch screen
  10. Final PCB Design for the DIY Waveform Generator
  11. Custom Design PCBs and How To Get Them Manufactured
  12. Soldering the PCB
  13. AD9833 Library and Further Output Noise Reduction
  14. Arduino BQ24295 Battery Charger Library
  15. LCD GUI with LVGL on ESP-32
  16. 3D Printed Enclosure
  17. Finished DIY generator

The LM7171 Circuit

Today we will look into a LM7171 op-amp’s circuit:

Offset circuit for Diy VCA822 LM7171 waveform generator
LM7171 as a summing amplifier

Capacitors C12 and C15 were chosen to be 1uF each, capacitors C13 and C14 – 100nF each. R15 was chosen to be 100 Ohms as with such load manufacturer made most of the specification measurements. R15 value might be changed in the final design, because in the end, this generator needs to be battery powered and such load increases total power consumption. Although higher resistance could (or not) induce additional problems in higher frequencies as the line between op-amp’s will be with unmatched load. Unfortunately, I don’t have a good oscilloscope to test it at this moment, so let’s just make this circuit to operate in lower frequencies (sub 100 kHz) and then we will se what to do about high frequencies.

R16 value is 0 Ohm, it was also tested with 100 Ohm resistance. Its main purpose to counterbalance the resistance on the second input and also to minimize output offset. Because LM7171 circuit is used for adding and controlling the offset – R16 becomes not so important.

Values for R17 and R18 were chosen respectively 100- and 390-Ohms giving gain of 3.9 (although I wanted to have gain of 4, but it is good enough for initial testing). Also, C11 was omitted (might be used for limiting the output bandwidth in the future).

The New PSU Circuit

I also have made some changes to the power supply circuit because I needed several supply voltages: +- 5V for VCA822 and +-12 V for LM7171. So, let’s look into a newer PSU schematic:

ALternative LM7171 Connection for AD9833

Here, the resistors R1, R2, R3 and R4 are used to make virtual ground point. Additionally, to make +- 5V power supply for the VCA822 chip, 7805 and 7905 voltage regulators were used. Also, R6, R5 and potentiometer RV1 makes a circuit to control the offset on the LM7171 output. RV1 outputs around +- 1V into 100 Ohm load.

The Result

Diy VCA822 LM7171 waveform generator second real connection
Everything connected together

After connecting everything together and powering it up, to my surprise, I’ve got the result that I wanted to get. By turning one potentiometer – output signal’s amplitude changes and when I turn the second potentiometer – signal’s offset changes.

Everything works except for minor one thing – when turn up the gain somewhere more than 50%, the output signal gets distorted. When I put my hand on the oscilloscope’s cable, the distortion disappears. It seems that it is not circuit’s problem, but the problem lies either in the scope itself or in its probe cable…

VCA822 LM7171 output distorted and not
Distorted (left) and undistorted (right) output signal

Lastly, I have measured several signal generator’s output parameters (note: measured with the DSO150 scope):

  • Output voltage saturation is + 10.6V and -10.4V when powered from a +-12V power supply
  • Maximum offset value: +4.5V
  • Minimum offset value: -4.7V
  • Signal’s (sine wave) peak voltage with maximum gain: 18.4Vpp (with 0V offset, no voltage saturation)


To sum up, everything went perfectly with the second DIY signal generator analog stage. Output values are almost those that I personally want to get (I would like to get 20Vpp max output amplitude which is easily achievable). The only thing to investigate in the future – the signal distortion and its disappearance when probe cable is held in the hand.

So, in the next part I am going to build filter circuit which should convert PWM signals from an MCU to DC voltages that are needed to control offset and gain (and get rid of both potentiometers).

Subscribe to a newsletter!

Was this page helpful?