Electronics with passion: amplifiers and power supplies, FET's and vacuum tubes..

Simple high-quality saw-tooth test signal generator

[Читать на русском]

Honestly, I would not claim that a saw-tooth signal is crucial for tuning audio amplifiers and similar stuff. It's rather a matter of convenience and helps to spot several non-linearities easier than a sine-wave. I've assembled this generator in order to top off the Wien bridge based sine wave generator. Since then I use it regularly because it helps to reveal subtle oscillation issues in amplifiers way better that any sine or square wave can do.

In this article:

  • High quality saw-tooth generator using CMOS 555 timer chip
  • Buffer amplifier stage with nearly infinite input impedance
  • Variable gain buffer with gain from -1 to +1
  • Linearity of professional equipment using budget OpAmp

555 timer

Important: in this design only a quality CMOS variants of 555 timer can be utilized. For example: TLC555 datasheet by TI.
Older bipolar 555 timers give horribly dirty results and literally stink into the power rails. The current spikes that 555 oldies produce are nearly impossible to suppress.

To my mind here is one of the most clear representations of what ticks inside 555:

Block-diagram of CMOS 555 timer
  1. GND - Ground
  2. TRIG - Trigger
  3. OUT - Output
  4. RESET
  5. CONT - Control voltage
  6. THRES - Threshold
  7. DISCH - Discharge
  8. VDD - Positive supply voltage

The saw-tooth signal generator

Here we use the 555 timer almost in its standard application.

Saw-tooth signal generator
  • R1, R3 = 36 kOhm
  • R2, R4 = 100 kOhm
  • VT1 = MPS2907A
  • C4 = 10 nF
  • C1, C3 = 0.1 uF
  • C2 = 10 uF

The VT1 forms the constant current source (CCS). This CCS is responsible for charging C4. The constant charging current forms the voltage that raises linearly on that capacitor.

The value of the current generated by this CCS is almost proportional to the power supply voltage. Threshold voltages in 555 are also proportional to the VDD. That in turn provides nearly constant generator's frequency regardless the power supply voltage variations.

In this circuit the threshold voltages of the 555 timer (input 5 "CONT") slightly lowered by adding R4. That trick adds more room for the CCS, assuring generator's exemplary linearity at low supply voltages of around 6V.

Discharging of the time and signal shape setting capacitor C4 happens via the pin 7 "DISCH". It is worth mentioning that the output MOSFET in the 555 provides quite constant discharging current. Therefore the falling side of the generated signal is very linear too.

High impedance buffer

Unfortunately the nearly ideal saw-tooth signal on C4 can not be fed directly to the load. Because any additional current will distort its shape and change the oscillation frequency. Therefore we need a buffer with infinite input impedance. In the proposed solution even a budget BJT-inputs OpAmp LM324 (datasheets: National/TI, Fairchild, OnSemi) can do the job extremely well. Provided it was loaded by the external CCS (I'll explain it shortly).

The buffer amplifier with almost infinite input impedance
  • R5, R6 = 330 kOhm
  • C5, C6 = 0.1 uF

Probably one can do without these complications and simply utilize a conventional non-inverting buffer using some top-quality OpAmp with FET inputs.

Variable gain from -1 to +1

The saw-tooth signal is slow one way and fast another way. I wanted to be able to test my creations both ways. This attenuated buffer solves the puzzle quite elegantly without the use of a switch and allows to invert and tune the output signal amplitude.

Variable gain (-1...+1) buffer OpAmp stage
  • R7, R8, PR1 = 10 kOhm

Operating in a real single-ended class "A"

In order to obtain exemplary linearity here we use the same trick as in the Wien bridge generator: loading OpAmp outputs using external CCS. By doing that the mediocre output stages of LM324 that normally operate in class "B" get shifted into the real single-ended class "A" operation mode.

The magic CCS load for a single-ended class "A" OpAmp
  • R9 = 6.2kOhm
  • VT2-VT4 = 2n2222

In fact in my design I used 5 BJT transistors in order to load every output of the quad LM324.

Single power supply

How and why to form a virtual ground for using the single power supply or batteries was described in details here. I used this one circuit for both sine-wave and saw-tooth generators.

Virtual ground for single power supply operation
  • VD2 = red LED 1.7V
  • R10, R11 = 2kOhm
  • C10, C11 = 0.1 uF (ceramic or film)
  • C12, C13 >= 10 uF

Let's test it!

The saw-tooth signal at the generator's output:

Nearly ideal saw-tooth form already at 6V power supply

The oscillogram above was obtained while feeding the generator from 4 alkaline batteries. Shall you raise the supply voltage a tad - the linearity becomes indistinguishable from ideal by a naked eye.

I have to note that the output signal amplitude of this generator is proportional to the power supply voltage. It was not the case for the Wien bridge oscillator because there we had AGC circuitry.

Test assembly

TLС555CP + LM324 = two generators

Note: in case one also decides to assemble two generators described in this blog on a single board (same way as I did) - it is strongly suggested to supply a separate power switch for the 555 timer. A simple "jumper" would do - check the blue square left from the 555 on the picture above.


  1. aswinkumar

    dear sir i would like to use your simple high quality sawtooth test signal gen for a freq of 40khz. how t calculate the resistor and cap value for this freq? it would be nice if you coud give some formula or calculate the values and reply

  2. Pingback: Простой генератор пилообразного сигнала на 555 таймере | MyElectrons.ru

  3. wieland

    Hi, great circuit! Very elegant. Tried to built it with adjustable frequency. For adjusting frequency I replaced R2 with a potentiometer (to adjust current flow through VT1)
    ; however it oscillates way too fast (~200 kHz approx.).
    VT1 (substitutet with a BC 328, should be equivalent) delivers about 100 µA current to C4 (50 nF) in my setup. Making C4 larger should lower the frequency, shouldn’t it?

  4. reoprpti

    I really like your blog.. very nice colors &amp theme. Did you make this website yourself or did you hire someone to do it for you? Plz respond as I’m looking to construct my own blog and would like to know where u got this from. thank you eckedfgaedab

    • serge

      Hi Eckedfgaedab,
      Thanks for stopping by!
      This blog runs on WordPress, using a theme I found few years ago… It’s not difficult to build similar layout, or even much better than that.
      Should you chose this route – beware of tons of malicious WP themes out there in the Internet. The best practice would be to find a theme that suits your taste on wordpress.org and start from that, you can always improve or change it later.
      – Sergey.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.