555 timer calculator
With 1000 Ω, 2200 Ω and 1 µF, a 555 astable repeats about every 3.7 ms and stays high just under 60 % of the time. Enter RA, RB and C to get frequency, period, high and low times and duty cycle. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Timing resistor R1
- 1,000
- Timing resistor R2
- 2,200
- C
- 0.000001
- Frequency hz
- 267.1657483128
- Frequency hz datasheet
- 266.6666666667
- Period s
- 0.0037429948
- T high s
- 0.002218071
The bipolar 555 timer in astable mode is still the default teaching and prototyping path for square-wave clocks, LED flashers, tone generators, and crude PWM drivers.
How RA, RB and C set the rhythm of a 555
In the classic astable circuit, RA runs from the supply to the discharge pin and RB from the discharge pin to the threshold and trigger pins. The output stays high for a time set by RA plus RB and goes low for a time set by RB alone. High time is ln 2 times RA plus RB times C, low time is ln 2 times RB times C, and the period is their sum. Frequency is one over the period, and the duty cycle is the high time divided by the period. With 1000 Ω, 2200 Ω and 1 µF the period is about 3.7 ms and the output is high just under 60 % of each cycle.
Mistakes that give a wrong 555 result
The most common one is a unit slip: resistors go in ohms and the capacitor in farads, so 1 µF is entered as 0.000001. A capacitance of zero is rejected with a clear message, because a 555 cannot oscillate without its timing capacitor; negative values and resistors of zero or less are refused the same way. The duty cycle always refers to the high part of the cycle. And if your figure differs slightly from a datasheet, check whether it used the rounded 1.44 constant, which the second frequency reproduces.
Reading frequency, duty cycle, datasheet 1.44, and input errors
Duty cycle percent is one hundred times the high-time fraction, never the low-time fraction, matching how most hobby notes define mark-space for a free-running 555. Zero capacitance is invalid input with an explicit message that a timing capacitor is required; negative capacitance and non-positive resistors fail the same way. Missing fields, non-finite values, and empty numeric strings also fail with invalid input and are not charged.
What you can do with it
Tone and crude PWM estimators
Firmware and audio hobby tools estimate square-wave frequency and high-time fraction for buzzers or MOSFET gates driven from a 555 astable stage.
FAQ
What happens if capacitance is zero?
A timing capacitor is required for NE555 astable oscillation; zero capacitance is rejected and not charged.
Is the 555 timer calculator free?
The browser tool runs free on your device.
Why is the duty cycle of a 555 astable always above 50 %?
Because the high time depends on RA plus RB while the low time depends on RB alone, so the high part is always longer. The duty cycle is RA plus RB divided by RA plus twice RB, which always stays above one half.
Why does it show two slightly different frequencies?
One uses ln 2 and matches the reported high and low times exactly. The other uses the rounded 1.44 constant printed in many datasheets and slides, so pick it when your figure has to match that source.
Is the duty cycle the high time or the low time?
It is the share of each cycle the output spends high, never the low share. That matches how most hobby notes define mark and space for a 555 that oscillates on its own, and it is given both as a fraction and as a percent.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/elec/ne555-astable \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"r1":1000,"r2":2200,"c":0.000001}'const res = await fetch("https://api.kit.forhosting.com/elec/ne555-astable", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"r1": 1000,
"r2": 2200,
"c": 0.000001
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/ne555-astable",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"r1": 1000,
"r2": 2200,
"c": 0.000001
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/ne555-astable", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"r1":1000,"r2":2200,"c":0.000001}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"r1":1000,"r2":2200,"c":0.000001}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/ne555-astable", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"r1": 1000,
"r2": 2200,
"c": 0.000001
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.ne555_astable",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
This capability applies those closed-form NE555 equations deterministically from a JSON body, returns frequency, period, mark and space intervals, and duty cycle as both a fraction and a percent, and rejects zero capacitance with a clear invalid input error so homework oracles and design tools never pretend a missing timing capacitor still oscillates.
Astable pin roles, R1, R2, C units, and classic formulas
One microfarad is zero point zero zero zero zero zero one farads; ten nanofarads is one times ten to the minus eight. Magnitudes must stay within published finite bounds so Worker isolates remain stable. Identical inputs always produce identical JSON because the path is pure arithmetic with no network, no random seed and no wall clock.
Reading frequency, duty cycle, datasheet 1.44, and input errors
Use frequency_hz when you need internal consistency with the reported mark and space times; use frequency_hz_datasheet when matching a slide or datasheet that prints the rounded one point four four constant.
API usage, pricing, labs, firmware clocks, and practical limits
Call the free in-browser 555 timer calculator for breadboard clocks, buzzer tones, blink rates and lab reports without opening a spreadsheet or SPICE deck. Use the prepaid API when an electronics homework oracle, parts configurator, firmware timing estimator or CAD plugin needs a stable contract under KIT balance at $0.002 per successful item; validation failures never consume balance after the engine rejects the request. Pair this endpoint with unit converters when catalogs list kilohms and microfarads, and with LED resistor tools when the astable output drives an indicator that still needs current limiting. Authors shipping SDKs can map frequency_hz and duty_cycle_percent directly into UI fields that match what students write from the datasheet formulas by hand.
Integration use cases
Breadboard clocks and LED flashers
Makers enter R1, R2 and C for a free-running 555 blinker, read frequency and duty cycle, and adjust resistor values before soldering a permanent board.
Classroom and homework oracles
Electronics courses pin deterministic JSON for f and duty from given R1, R2 and C, including intentional zero-capacitance cases that must fail with invalid_input.
Technical questions
How do I calculate 555 astable frequency and duty cycle?
Send JSON with r1 and r2 in ohms and c in farads (for example r1: 1000, r2: 2200, c: 0.000001). The response includes frequency_hz, period_s, t_high_s, t_low_s, and duty_cycle_percent.
Why is duty cycle always above 50%?
In the classic two-resistor astable without a discharge diode, high time uses R1+R2 while low time uses only R2, so the high fraction (R1+R2)/(R1+2·R2) is always greater than one half.
What units should I use for R1, R2, and C?
Use ohms for both resistors and farads for the capacitor. Convert microfarads yourself (1 µF = 1e-6 F) before calling the API or widget.