Surface-mount 555 PWM circuit

Surface-mount 555 PWM circuit


I wanted to dim my room LED lighting with a potentiometer, and decided on creating a solution from scratch to make it more fun and educative. I decided to go with the fairly well-known 555 PWM circuit. To decrease size and for learning purposes I decided on using surface-mount components for the first time. The reason I wanted to make this 555 PWM circuit is actually just to see if I could solder SMD components on home-etched PCB’s, and to see how hard it actually is.

Working with breadboards is really great, and you can very easily prototype your circuit and swap out components. However, after a while you might want something more permanent, so you grab the good old perfboard, and things get a lot more nasty, with wires sticking out everywhere. After having some experience with PCB milling, I wanted to give etching a shot. And having plenty of soldering experience, I decided on using surface-mount components.

To make soldering easier, I decided on using 1206 resistors and capacitors, except for the 22µF tantalum capacitor used for the Vcc line. Also not having a solder mask will make things a bit more messy, I had to use some external flux to make sure the solder flowed nicely.


  • Operates at roughly 1Khz
  • Voltage range 5v – 30v
  • 100mV ripple @ 1A
  • At least 2A continuous current without heat sink on MOSFET
  • Duty cycle from ~10% – ~90%

As you can see, the duty cycle is not that good. It doesn’t go fully off or on, I already saw this on the breadboard, but decided it didn’t matter because I wanted a simple circuit with average performance.

Here are some snapshots of the schematic, circuit, and soldered PCB:



smd pcb-1

smd pcb-2



This was very fun for a first etching and SMD-soldering project, but there are plenty of improvements to be made. First of all, the duty cycle is really bad. It doesn’t fully switch on or off. I’ll probably go for an Op-amp circuit next time, because I had good results with that in the past. The voltage ripple is decent, but could be better. Another cap wouldn’t hurt. Also you can see some dirty, white stains on the PCB, this is because of my overpriced SMD soldering flux I got from Conrad. Fortunately I got some premium no-clean flux for my next project!


I used the Sparkfun eagle library, so make sure to get that. Also the potentiometer is a custom designed part which is included in this Benkyo library. (right click and save)

Eagle files:

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.




  1. ratza · January 17, 2014 Reply

    Hi. In order to have a steep edge for toggling between on and off, you can either lower the gate resistor or (the best way) use a dedicated MOSFET driver, such as ZXGD3003. A MOSFET with a lower gate capacitance should also do the job.

    • Nick Leijenhorst · January 17, 2014 Reply

      Thanks for the comment! I checked the gate voltage with my oscilloscope and can assure you the rising edge is extremely fast ;) I will upload a screenshot when I get home today. – Nick

      • ratza · January 17, 2014 Reply

        Then it might happen that the gate opening threshold is bigger than the voltage supplied by the 555. Beware that the voltage drop on 555′s output isn’t negligible at all. If you underpower the poor beast, it is likely to fail opening the MOSEFET completely.

        • Nick Leijenhorst · January 17, 2014 Reply

          I’m using a logic level mosfet, so the problem isn’t the gate voltage, its only the duty-cycle of the 555 timer, that’s what I meant with “It doesn’t fully switch on or off” :)

      • ratza · January 17, 2014 Reply

        BTW: I had a look on the IRLR024 you use. While gate threshold and parasitic capacitance seems low enough to do the job, in the Gate-to-Source voltage graph it looks like you have to supply it with more than 4V to ensure a good opening time.

        • Nick Leijenhorst · January 17, 2014 Reply

          Drain-to-Source On-Resistance is 0.080Ω at 5V, but my LED strips are 12 volts so voltage is not a problem here ;) It’s just the 555 timer circuit that has its limitations, I will make a better version in the future :)

  2. Maurício Tomé · January 27, 2014 Reply

    Nice build!

    For your issue with the dimming range,

    In some part of the text the guy says that using two germanium diodes instead of silicon ones you can extend the range to 1-99%. Maybe it’s worth a shot.

    • Nick Leijenhorst · January 27, 2014 Reply

      I was thinking the same thing, I tried working this solution out in the Falstad circuit simulator, but it had no effect. Perhaps a real world breadboard test will have to be executed. :)
      Thanks for the feedback!

      • Maurício Tomé · January 27, 2014 Reply

        No need for thanks!

        I’ve tried this layout once (but using BJT’s and normal diodes instead of MOSFETS and germanium diotes), and, at that time, I was pretty happy with the results. But later on I started using µC’s to do the dimming, mainly because of flickering (since I make some dimmers for theatrical plays, 1kHz is not enough – by my tests with a 30Hz HD camera, I need to use frequencies greater than 4kHz to prevent flickering). Just to be on the safe side, I ended using the maximum PWM frequency of the µC, which is around 30kHz :)

  3. · January 31, 2014 Reply

    Hurrah! In the ennd I got a weblog from where I be able to really take valuable data concerning my study and knowledge.

Leave a reply