I have been working on a DKRed project for the past couple weeks that involves a deep dive into how a 555 timer works in astable mode! I will be posting a few topics as I learned a lot about engineering nuances. This post covers a mistake that I made in my prototype development phase.
Parameters for the Intent of the Design
-
Make a 1 Hz to 60 Hz adjustable oscillator
I know from experience that an LED blinking at 60Hz is nearly impossible to determine if it’s flashing without a high speed camera. 1Hz is once every second. -
Utilize a NE556N Dual Timer
-
Add an LED for visual feedback
Related Material
Here is some related material for added context:
555 Timer Calculator
555 Timer Calculation Video
Simple Blinking LED Circuit
Something is Off
The datasheet for this timer has a slightly modified version of the astable period calculation:
![]()
Texas Instruments didn’t provide references for part selection, so I just went off an assumption that 50µF would be good to start with. This gave me a Ra of 250 and an Rb of 110 approximately (you have to adjust values until everything becomes positive; write equations for Ra and Rb!)
When I hooked everything up like the astable configuration said, I noticed that my LED was blinking noticeably slower than 60Hz. From experience, you can use an AC voltage to power LEDs but it will flash at 60Hz. This is practically invisible to the naked eye. It’s time to measure! Click the arrow below to see the o-scope data for my first prototype.
O-Scope Data Confirmation
I have a 2190E from B&K Precision on my desk. Here are some screenshots from the CSV data I compressed and compiled:
Let’s zoom in on one time period:
The datasheet for the 555 IC includes formulas for T_High (time high) and T_Low (time low). The calculated time for TH should be around 0.402s. The calculated time for TL should be around 0.392s. My TH is close, but my TL is a bit off. The effect is far more prominent at the “60Hz” end. My scope was actually only calculating about 30Hz.
In this instance, TH is calculated around 0.0139s. TL is calculated to be around 0.0043s. My TH is close, but my TL is way off! It’s about 318% off!
What’s Happening?
Initially, I thought “maybe my timer wasn’t functioning correctly?” It turns out there is a lot more to selecting parts than I thought! I could not figure out what was happening because I double-checked calculations and my hookup on my prototype board. I utilized an AI chatbot in this instance because this can be a good source for troubleshooting. Instead of asking it to solve the problem, I asked it what could be happening. It tries to theorize, but the info can be mixed. However, sometimes asking for resources is more beneficial. It managed to find an application note made by Philips called AN170. If you aren’t sure what an application note is, think of it as a collection of engineering resources that deep dive on a component and find design details that aren’t mentioned in the datasheets. They often list tons of resources where they got their info from. One particular note that is necessary can be found on page 6 under Selecting External Components regarding resistor Ra (let’s see if you can find it without clicking the spoiler below!)
In short, I was driving far too much current through the discharge NPN transistor Q14 on the internal design. As you reach the upper end of the current limits, you are driving up the Vce(sat) voltage; if you have a higher voltage drop, you will have more “resistance” added, this causes a timing error. If you’d like more details, see the explanation below by clicking the arrow:
Higher Vce (sat) Causing Longer Timing Detailed Explanation
According to the Application Note, under ideal conditions the timing capacitor CT essentially charges to a maximum of 2/3 * Vcc and discharges to 1/3 * Vcc. To know how much current will be going through Q14 (DISCH pin), you need the current through Ra and Rb. The current through Ra will be a constant value because it is tied to Vcc at all times.
![]()
When the capacitor is charging, the discharge pin transistor does not turn on yet. We can essentially “ignore” the current to charge the capacitor. Once the capacitor is charged to 2/3 * Vcc, the threshold and trigger pins activate and then turn on the discharge capacitor.
![]()
We need to include the current through both Ra and Rb on the discharge pin! In total, that will be 50.27mA! That is coming very close to the maximum for Q14. The problem is, we don’t know how much resistance this adds because we don’t know the characteristics of Q14. Don’t worry, we can find it by measuring!
How to Measure Vce
Since we know that this particular transistor only turns on when the capacitor is discharging, we can look for the falling edge of our output signal as a trigger for an oscilloscope (this is a 1:1 tie). Connect your scope to the output of the side you want to analyze, we will make this our “trigger.” The other scope probe needs to be connected between the discharge pin and ground to read the voltage at that pin:
Notice that during the transition to “0V” for our discharge pin is not fully going to zero, this is important to note! Here is a zoomed in picture:
I added a cursor and am measuring right where the voltage is at it’s peak for the discharge pin. This reads 2.34V. We can infer that this will be our new “Vce sat” voltage that we need.
Figuring Out the Ohms
We can take that 2.34V and divide it by the current running through Q14 to approximate how much “resistance” is added. This equals 44.40Ω.
New Floor Voltage
Under normal operation, the expected “floor” voltage that the oscillator drops to is practically 0V. If you wondered where 0.693 in the TL equation comes from, it is derived from how a capacitor charges, see this equation below:

However, in this condition, the floor voltage is no longer 0 volts! We need a way to calculate that. We can now treat Q14 like a voltage divider by taking that resistance and calculating the new voltage with respect to Rb (Rb is the discharge resistor, we don’t “care” about Ra right now):

This means our multiplier is no longer going to be 0.693, it changes:

Here is the new TL equation:
![]()
If you run this through, the new TL value is going to be closer to my results. That equals 0.0153s approximately.
Note: When I made my second prototype with the 5k minimum for Ra that I did not change the types of resistors and capacitors. The new resistor value does change the electrolytic down to 2.2µF.
Re-Design and Evaluate
Here is the new circuit diagram:
Here are the new results for the design on the scope (I’m only going to show the faster end for comparison as it is more prominent):
The frequency seen on the scope is 59.5 Hz. The calculated TH should be 0.0117s, the recorded value is 0.0112s. The calculated TL should be around 0.0041s, the recorded value is 0.004s. This is only 2% off! The results speak for themselves; the device is not faulty, my assumptions were!
As a final reference, for confirmation, here is what the discharge voltage should look like in comparison:
The output voltage minimum matches the discharge voltage minimum.
Want to Test Yourself?
I wrote a Maker.io | Powered by DigiKey blog entry that is similar to this post, click here. You can try to follow along by building it on a prototype board first. There will be more content about this as I have learned a lot about PCB development and part selection!











