I want to produce a symmetric square wave of about 3 kHz with a high of 5 V and a low of -5 V.

I've been trying to do this with a 555 timer (Mouser P/N: 474-COM-16473), which I wasn't sure was the way to go. My understanding is that the 555 timer can only oscillate between a high voltage and 0 V, so I've been using that as a compromise.

I've been getting confused, though. I can't get it to go to 0 V on the low. Instead, the low voltage is 400 mV and the high is 8.2 V.

Here is my circuit.


C    is 2200 pF
R_A  is 100R
R_B  is 4K
R_L  is 4K
V_CC is a 6 V battery

How do I make this circuit produce a low output of precisely 0 V or preferably below 0 V?

What am I doing wrong or this the best that a 555 timer can do?

  • 6
    \$\begingroup\$ I'm almost certain that if your VCC is 6V, then your obseved 8.2 V at the output is either a measurement artifact, or you've inadvertedly built something like a charge pump by attaching something with a diode characteristic and capacity at the output. \$\endgroup\$ Commented Apr 25, 2021 at 14:26
  • 3
    \$\begingroup\$ The 555 datasheet lists the output voltage range. It varies depending on the amount of output current. For the bipolar 555, the output never can get down to 0 V, even with no load on the output. \$\endgroup\$
    – AnalogKid
    Commented Apr 25, 2021 at 14:41
  • 1
    \$\begingroup\$ A very warm welcome to the site. The schematic shown is straight out of the datasheet or some other textbook, so I imagine you mean "here is the circuit I have tried to build". Are you certain that your built circuit matches the schematic? Build problems and faulty parts are the first place to look when a circuit doesn't work as intended. \$\endgroup\$
    – TonyM
    Commented Apr 25, 2021 at 16:08
  • \$\begingroup\$ It looks a TI drawing, but the tricks to setting up a 555 as a free running oscillator depends on the operation of the rc circuit formed between Rb and C. Ra is the current demand limiting the charge state of the capacitor. At 100 ohms, The capacitor's discharge on C would not have settling time, and would not reach the low threshold, because the current flowing. The time constant is (Ra+Rb) X C where R is in ohms and c is in Farads. Not even reaching for the calculator, the time constant is way shorter than what is needed for 3 Khz, looks closer to 113 Khz. \$\endgroup\$ Commented Apr 25, 2021 at 19:03
  • 1
    \$\begingroup\$ Ok, I will come up with his needs in an answer, and clean up these comments and consolidate it in that answer. @TonyM \$\endgroup\$ Commented Apr 25, 2021 at 19:50

2 Answers 2


The 555 circuit has BJTs driving the output pin. Every such circuit will have some minimum/maximum voltage that is not fully rail-to-rail.

One "easy" way to get to full rail/rail behavior is to re-buffer the circuit with a comparator that is defined as "rail to rail" in the datasheet (thus, using a different output topology than the 555.) A TLV370x is specified to allow up to 16V VCC and be "rail to rail" output. The data sheet suggests it uses CMOS push/pull for input/output, and because MOSFETs are resistive, at low currents, it will be approximately full swing.

Data sheet: https://www.ti.com/lit/ds/slcs137d/slcs137d.pdf It looks to also be available in DIP package in the x2 and x4 configurations, in case you're breadboarding this.

Note the 22 microsecond propagation time; if your frequency is very high then you will need a fancier part.

Also, your desire for "voltage" is somewhat under-specified, because voltage occurs when current flows through a resistance. You specify neither the output load (impedance) nor the current you intend to use.


Lets start from the beginning. Let say we can't change C, so our capacitor is 2200pf or 2.2 nf. And the request is a 3Khz oscillator running off of a 6V supply. The formula for the chip as a single supply is derived directly from the time constant. so my time constant, which is 1/3Khz =0.000333333 seconds So my R for the time constant, for a 2.2nF capacitor, at 0.000333333 seconds, would have to be calculated as: time/capacitance or 0.000333333/0.0000000022 = 151515.151515152 ohms. Since my target is 50% duty cycle, but don't care on precision, my Rb resistance value can be derived by charge current voltage drop between the threshold and discharge pin, which would be 2/3 of a voltage drop of e R in the RC time constant, or 151515.151515152 x 0.66666666 = 101010.090909091. The best close find would be a 101K resistor for Rb. The calculation of Ra in this shortcut formula is 1% of Rb or 1.01K. Which can be simulated here enter image description here

Now you say you want a +5/-5 square wave oscillator, with a positive and negative 5 volt supply. That is simple. Since our threshold trigger is 1/2 of the total wave compared to a single supply, you double the capacitance and the resistor simulated here. enter image description here

Just a reminder: This is a quick and sloppy way to set up a timer. If you need precision, always use the formulas on the datasheet.

Edit: more to come. Just need to dig for my 555 Timer schematic to show you why the output is not going exactly to 0V on its low state.

  • \$\begingroup\$ While this answer talks about the frequency, it doesn't answer the question of why the 555 output doesn't go to VCC / 0V! \$\endgroup\$
    – Jon Watte
    Commented Apr 27, 2021 at 1:18
  • \$\begingroup\$ Oh ok, well I will show them. I'll have to either figure out how to scan my schematic of the 555 timer IC, or draw a new one to explain this. @JonWatte \$\endgroup\$ Commented Apr 27, 2021 at 16:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.