I hope someone can help me. I've been tearing my hair out for the past couple of weeks trying to make a simple DC-DC boost circuit.

It puts out a nice 12-ish volts when not loaded, but as soon as I draw even 3mA, it drops down to around 6.7 volts. It's just too weak to supply any current whatsoever.

I initially tried a microcontroller, but then switched to a 555-based design, thinking that maybe the firmware was the cause of the problem. Turns out it wasn't.

My current design looks like this (and can be simulated here):


I laid it out on a breadboard using Photoshop. The red dot is the output, and it's missing the second zener (because I added it later).

breadboard layout

Here are some pictures of my breadboard:

photo 1 photo 2

Without any zeners, and without any load, the output naturally floats up to around the 20V mark. With only the first (13V) zener, I get around 14V at the output. With the second zener, I get about 12.2V. Until I try to draw a couple mA, that is.

I need it to supply around 15mA at 12V, from a 5V source, with no more than about half a volt of ripple. That is all I require. And I simply cannot achieve this.

I have tried changing to a 1mH inductor; I have tried putting out a nice clean square wave from a microcontroller; I have tried frequencies between 8kHz and 40kHz; I have tried duty cycles from 40% to 80%; I have tried changing the resistance of R2; and I have assembled the circuit on actual PCB instead of breadboard. All to no avail.

Can anyone explain to me why I'm having so much trouble?

EDIT: The inductor is known to be suitable for the task, because I used one successfully in another project:

picture of other project schematic of other project

Granted, this one had a schottky diode, rather than a normal signal diode, but that wasn't the problem either.


Here is the other project happily supplying 9.2mA at 11.5V:


EDIT: There has been some debate as to the 555 being unsuitable for the task. In response to this, here are some pictures of my first design. As you can see, it was microcontroller-based, and located on a PCB. Frequencies of 8kHz to 40kHz were tried, and duty cycles of 40% to 80%.



EDIT: Oscilloscope readings for the output pin of the 555:


Oscilloscope readings for the transistor emitter (before a 2Ω resistor):


  • \$\begingroup\$ Comments are not for extended discussion; this conversation has been moved to chat. \$\endgroup\$
    – clabacchio
    Jul 10, 2019 at 8:40

6 Answers 6


Design Requirements restated from the question:

- Vin = 5V nominal (I assume 4.75V minimum)
- Vout = 12V nominal, +/- 0.5V ripple
- Iout = 15mA peak

Since I'm an applications engineer at Maxim Integrated, I did a quick check for parts we make that can meet those requirements. Regardless of whether you buy from Maxim or not, it's worth looking at the MAX1771 evaluation kit: https://datasheets.maximintegrated.com/en/ds/MAX1771EVKIT.pdf

Just to be fair, there are other companies that make competing SMPS controllers; search for "Simple Switcher". If your goal isn't so much learning how to build an SMPS and you just want something that works, take a look. The 555 circuit doesn't even try to regulate the output. Maxim and competitors have been making SMPS controllers since the dawn of surface-mount technology in the early 1990s, and we worked closely with a lot of inductor, capacitor, diode, and MOSFET manufacturers to develop components optimized for small DC-DC converters.

Since your Iout is only 15mA peak, it's also worth considering a "modern" regulated charge pump such as MAX662A regulated 12V, 30mA Flash Memory Programming Supply (ok, ok, by "modern" I mean newer than the ICL7660. MAX662A dates back to 1994.)

A lot of the single-phase switching products you will find date back to that era, most of the design effort now is on Power Management Integrated Circuits (PMIC) that handle battery management and multiple power rails.

Is it the Henries or the resistance I should be concerned with here?

Energy storage \$L \times i^2\$ (or rather \$\left(1 \over 2\right) \times L \times i^2\$) is how many microJoules of energy the inductor can hold before saturation. Two factors cause saturation, magnetization and heat. Both factors cause L to reduce, so what matters is that \$\left(1 \over 2\right) \times L \times i^2\$ is the maximum amount of energy the inductor can store. Many inductor manufacturers ignore the 1/2 and just rate saturation by \$L \times i^2\$, which is simpler to write.

The boost converter is an energy pump. Picture a water pump using a bucket to lift water from a lower reservoir to a higher reservoir, this is analogous to using an inductor to boost output voltage. A smaller bucket needs to be cycled faster to replace what is drawn by the load. If the bucket is way too small, it's not possible to provide enough to the load (due to switching losses). If the bucket is larger, the cycle time can be longer, which is better for avoiding switching losses. But a bigger bucket is inconvenient because it's physically larger (higher L value inductors, especially the ones with good saturation characteristics, are larger and heavier). Also switching at a slower frequency requires a larger output capacitor to deal with load transient response.

During each switching cycle, the inductor takes some energy from the input, ramping up its current to a peak value. This charging current flows in a loop through the input reservoir capacitor, the inductor, and the switch. For best results, this "charging" loop needs to be physically small, tight, and fat conductors. Check out the PCB layout of the MAX1771EVKIT for example.

Then, during the discharge part of the cycle, the switch is "off" (the Schottky diode completes the discharge current loop) and the inductor current ramps down to a minimal value, as the inductor's energy discharges into the output capacitor. For best results, this "discharge" loop needs to be physically small, tight, and fat conductors -- same requirements as the "charge" loop, and the challenge of a good boost converter layout is keeping both charge and discharge loops happy.

I didn't see an input capacitor on your circuit diagram; maybe I missed it but that's an important part of the circuit. Aluminum electrolytic is fine for boost converter input. Bulk capacitance with low ripple current loss is appropriate here.

Some designs ramp the current all the way down to 0, some desings don't. Minimal R reduces the \$i^2 \times R\$ heat losses, tradeoff is fat wire gives fewer Turns and therefore less L.

The basic problem is, without knowing the \$L \times i^2\$ saturation limit of the inductor, there's no way to determine the design limits for min/max switching frequency.

Of all the things you've tried, the thing with the best possibility of being adjusted is that "fat toroid" inductor you mentioned, because it's straightforward to re-wind it with suitable wire. If you can determine its inductance and the number of turns, a toroid core's \$A_L\$ value (microHenries per Turn) is pretty near constant.

For further reading, some Coilcraft applications notes:



  • \$\begingroup\$ This is a very helpful and detailed answer, and the MAX662 looks very interesting here. The MAX1771 seems a bit pricey, but the 662 might well be the solution. I shall need more time to read through your answer in detail, so please bear with me. Thanks. \$\endgroup\$ Jul 10, 2019 at 14:51
  • \$\begingroup\$ This is an awesome answer, and I thank you for the time you spent on it and the amount of detail you put in. I absolutely have to accept this answer. I shall try adding an input cap; and will experiment with the MAX662. \$\endgroup\$ Jul 10, 2019 at 17:35

It looks like you're using the CV pin as feedback, but varying the CV pin voltage just varies the output frequency at the Q output. The duty cycle will remain constant. I would have thought you need to increase the duty cycle (mark to space ratio) of the driving signal when current is drawn from the output using pulse width modulation. - just an opinion.


Three points:-

1) Your 330R load resistor is actually trying to draw 30mA at 12V output.

2) Do away with the CV feedback and connect D2 straight to ground.

3) Increase the duty cycle from 50% to 66% by using this 555 configuration.

555 Oscillator

If the output is still drooping then increase the value of R2 to increase the duty cycle further, but I suspect these changes will fix the problem.


I would suggest that you could remove C2,D2,R3,R4 and Q2 from the circuit as they are superfluous to requirements.

Increase C3 to 470uF to reduce ripple.

If you were to increase the duty cycle by a large amount by increasing R2 to say 8k (giving a 90% duty cycle), then you'll probably find that you need to reduce the size of the transistor's base resistor in order to provide more base current to sink the required collector current (raised inductor current).

If you need more current out of the 555's output then it's probably worth sticking with your TTL timer as its output "holds up" better than the CMOS version under load.


I built and tested these last night.

Both work well.

Boost switching regulators


Boost Switching Regulator

This circuit is based on the internal workings of the LM78S40 switching regulator IC manufactured by National Semiconductor.

Shown Switching regulator operates at about 40kHz. Instead of using a D-Type flip-flop (IC3a) I could have used an RS flip-flop constructed from two cross-coupled Nor gates.

The circuit uses negative feedback to adjust the duty cycle of the driving waveform in order to keep the feedback voltage equal to the reference voltage thereby regulating the output voltage when the load current changes.

Works very well.

  • \$\begingroup\$ Ideally, yes. You make a good point. But altering the duty is a pain with the 555. It's a secondary issue, to be dealt with after I manage to get the thing actually working. The current duty cycle should - I thought - be sufficient to supply 15mA at the output. \$\endgroup\$ Jul 9, 2019 at 17:09
  • 1
    \$\begingroup\$ @SodAlmighty Why is it a pain to alter the duty cycle of the 555? It is only a matter of changing some resistor values. \$\endgroup\$
    – HandyHowie
    Jul 10, 2019 at 7:57
  • \$\begingroup\$ I mean at run time. \$\endgroup\$ Jul 10, 2019 at 14:43
  • \$\begingroup\$ The 330Ω resistor is drawing less than that, because there's an LED in line with it. I measured the current draw with a meter. I have since gone back to a microcontroller, and given up on the 555, but thanks for the advice. \$\endgroup\$ Jul 11, 2019 at 20:15
  • \$\begingroup\$ Even assuming the LED drops 3.5V, that's still 26mA at 12V. \$\endgroup\$ Jul 11, 2019 at 21:35

I simulated your circuit in LTspice, and also built it on a breadboard. Several issues were revealed:-

  1. The 555 was running at ~7kHz with a duty cycle of ~75%, and PWM on time was ~100us (103us simulated, 114us measured). My inductor started to saturate at 40us as the current ramped up. Current continued to ramp up more steeply until Q1 came out of saturation and limited peak current at ~350mA.

  2. Q2 is supposed to reduce the PWM on time when the output voltage at junction of R3 and R4 rises above ~13.6V, to regulate or limit output voltage. However you also have a shunt regulator with a 10Ω resistor and 12V Zener after this point. Therefore Q2 won't turn on and reduce PWM until the Zener+output current reaches ~(13.6V-12V)/10Ω = 160mA (assuming the Zener still drops 12V at this current). If the booster can't supply enough current to force the voltage at R4 above 13.6V then Q2 and D2 are useless.

  3. A shunt regulator alone can work well if the expected load current is relatively constant, but since it absorbs current not drawn by the load it is inefficient at lower output currents.

In an attempt to solve some of these problems I changed the value of C1 to 22nf, and connected a 15k resistor from pin 5 of the 555 to ground. This raised the frequency to ~50kHz and lowered the PWM on time to 14uS. I removed Q2, D2, R3, R4, D3 and C3, and connected an 820Ω resistor as load. I used an SS34A Schottky diode For D1. This minimalist circuit drew 52.3mA at 5V and produced 12.5V across the 820Ω load, which proves that the basic booster circuit is quite capable of delivering 15mA at 12V.

I then put the 12V Zener and 10Ω series resistor back into the circuit. To get 12V output I now had to increase the PWM on time to 16us by increasing the resistance on pin 5 to 24k. The input current increased to 76mA. The Zener drew 6.5mA, so it was wasting 30% of the output current. In this configuration the total efficiency was (12V*14.6mA)/(5V*76mA) = 46%.

Finally I removed the shunt regulator and put back in the PWM feedback components Q2, D2, and R3, but with a 12V Zener instead of 13V (which should regulate the voltage at 12.6V). On test with the 820Ω load this drew 54.3mA from the 5V supply, and produced 14.6mA at 12.0V. This corresponds to a total efficiency of (12.0V*14.6mA)/(5V*54.3mA) = 64.5%. With the load disconnected the voltage rose to 12.58V, and supply current dropped to 8mA.

There was only one down side - a random low frequency ripple of about 40mVpp on the output, caused by the chaotic feedback mechanism. Do not use this circuit if you need a low noise supply!

ETA: the low frequency noise appears to be caused by the low Zener current and high impedance at Q2 Base. I added a 4.7kΩ resistor from there to ground and it got much quiter (<10mVpp ripple + noise).

enter image description here

  • \$\begingroup\$ Wow, thank you, you've really put some effort in here. I shall give your modifications a try. Was your test inductor similar to mine - i.e. small and green? The type that everyone is saying won't work? \$\endgroup\$ Jul 15, 2019 at 18:04
  • \$\begingroup\$ "Was your test inductor similar to mine - i.e. small and green?" - yes.Dimensions of the body are 7mm long x 3.6mm diameter. \$\endgroup\$ Jul 15, 2019 at 22:50
  • \$\begingroup\$ Excellent. I shall try your modifications and let you know how it goes. Thanks! \$\endgroup\$ Jul 16, 2019 at 20:44
  • \$\begingroup\$ I assembled the circuit on matrix board, and I'm afraid I'm not getting the same results as you. It outputs about 12.7V unloaded, but when I connect a 1KΩ load, I get around 7mA at about 8V; and it fluctuates up and down considerably. I'm using an NE555P and 2N3904 transistors. \$\endgroup\$ Jul 17, 2019 at 2:02
  • \$\begingroup\$ I suspected that might happen. Since we now have a design that is proved to work in practice, you have to consider that some of your components may not be up to the task. Perhaps your inductor saturates at lower current - what is its DC resistance? 2N3904 has lower gain at high current. You can see how well the inductor and transistor are doing by looking at the waveform at the Collector of Q1 - it should be triangular with a straight slope. BTW make sure your power supply is properly bypassed (my breadboard has 47uF and 0.1uF capacitors permanently wired across it). \$\endgroup\$ Jul 17, 2019 at 19:08

Based on the pictures you posted of your breadboard the top and bottom bus strips where your grounds and powers are plugged into are not connected to each other. try wiring your two ground bus strips and your two power bus strips together.

  • \$\begingroup\$ Ah. I see where you're coming from, but they in fact are; because I have a power supply plugged into them. After all, where would the power be coming from otherwise? \$\endgroup\$ Jul 9, 2019 at 14:09
  • \$\begingroup\$ I can't see that, try turning the power off and checking that resistance between the two bus strips is 0 \$\endgroup\$
    – Hatman
    Jul 9, 2019 at 14:10
  • \$\begingroup\$ The resistance between the two sets of power rails is around 0.5 ohms. \$\endgroup\$ Jul 9, 2019 at 14:15

Why not use an LED boost controller made for this purpose? They’re cheap and they include the drive transistor, you just need the inductor and a simple feedback.

A charge pump type might even work if 10V is enough.

  • \$\begingroup\$ Because they tend, on the whole, to be surface mount. 10V is not enough, as I am using this to provide a 12V programming signal for a microcontroller. \$\endgroup\$ Jul 11, 2019 at 20:16
  • \$\begingroup\$ I tried a homemade charge pump that worked perfectly in simulation, and that didn't work in practice either. I have no idea why. \$\endgroup\$ Jul 11, 2019 at 20:20
  • \$\begingroup\$ A couple of ideas... adapt SOT-23 to DIP with a converter like this one: digikey.com/catalog/en/partgroup/sot23-to-dip-smt-adapters/… And.. a suitable chip: diodes.com/assets/Datasheets/AP3015_A.pdf. Mount the needed passives (inductor, diode, caps, voltage divider) on that board as well. \$\endgroup\$ Jul 11, 2019 at 20:30
  • \$\begingroup\$ @SodAlmighty look at the zener diode in your simulation, it's consuming 1W, is that a reasonable design to you? If you want to make more realistic simulations, start making things 2-10 times better than you actually need and put resistors at the outputs and inputs of things. - Good luck. \$\endgroup\$ Jul 11, 2019 at 20:32
  • \$\begingroup\$ @HarrySvensson True, but it's only consuming 1W because I added an extra stage on top of what should have been required. And I did this because it was incapable of providing, in the real world, the output it claimed to be capable of in simulation. With only two stages, the zener would be consuming about 1mW, which is perfectly acceptable. \$\endgroup\$ Jul 11, 2019 at 20:43

Please concentrate on following things.

*Change your 555 to CMOS version(7555 or similar).

If this diagram is taken from any trusted publication or extracted from a large circuit that should work. Otherwise you have to do all calculations to obtain component values according to your requirements.

In designing this type of power supplies you should use the exactly same components described in the diagram and/or circuit description. Variation of values and connections between components are greatly affect.

  • Take all wires short as possible.
  • Make sure whether there is a pulse at the pin number 3 of 555 timer chip and the collector of Q1.
  • Pulse width also an important factor. When the pulse width is not sufficient to energize the coil the out put power from the coil will be poor.
  • Check whether the transistors and diodes are connected correctly.
  • \$\begingroup\$ The circuit is not taken from a publication, I designed it myself. I had exactly the same issue when using a microcontroller instead of a 555, so I don't think it's the 555 at fault. Sure, a CMOS one would be better, but I suspect it's a red herring in this case. Also, the wires were very short when I laid it out on a PCB, and it still did not work. \$\endgroup\$ Jul 9, 2019 at 15:07
  • \$\begingroup\$ Ok. If this is your own circuit, increase C2 to a larger value. \$\endgroup\$ Jul 9, 2019 at 15:22
  • \$\begingroup\$ That would improve the ripple, but I don't see it improving the current capability. \$\endgroup\$ Jul 9, 2019 at 15:23
  • 1
    \$\begingroup\$ I replaced the capacitor with a 470µF one, and indeed it did appear to help a little. The 2mA can now be sustained at about 11.9V. Unfortunately, drawing 9mA drops the voltage down to 5.35. \$\endgroup\$ Jul 9, 2019 at 17:04
  • 1
    \$\begingroup\$ I suggest you to change the circuit. There are many other easy ways to do that suing 555. Remember.. simulation is not always good. You always need to consider practical situations with calculations. \$\endgroup\$ Jul 11, 2019 at 17:15

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.