MADPSU - the design

Door mux op donderdag 3 maart 2011 23:45 - Reacties (32)
Categorie: MADPSU, Views: 23.757

This is the second blog post in the series on MADPSU, a PicoPSU-derivative with UPS, measurement and adjustment features. Today I'll go into the design phase. If you're wondering what MADPSU is, you can browse through related blog posts via the category links in the column to the right of this article.

Designing MADPSU

In this blog post I'm going to take you through the steps that encompass what is called design for manufacturing. I won't go into great detail here, but in short DFM is a strategy in designing electronics that aims to make a product that is easy and cheap to build. In contrast, prototype design aims to maximize room for tinkering and speeds up the PCB design phase by allowing expensive but arguably more practical design decisions. For instance, I'm designing DFM for small quantities. In small quantities, PCBs with more than two copper layers are costly: making 5 MADPSU 2-layer PCBs will only cost €5 a piece (excluding components), but making the same amount in 4-layer technology will cost upwards of €25 just for the board without components.

Also, DFM has to account for availability. If I build prototypes, I often choose Farnell's electronic components that are lower priced because they will go out of stock soon. That's no good if you're designing something that somebody might want to build one or two years from now. As you will see, I'm not always taking this one too seriously for convenience sake, but I'm planning on future designs to fix that.

Anyway, there are a few steps integral to designing electronics for manufacturing. First off, we start with the concept and try to find the best components to do the job. Then we cook up a first schematic and do some preliminary costing. After a few adjustments here and there we go off to PCB design which inevitably needs some going back and forth between the schematic and PCB to make it all fit. In the end we have a sort-of final PCB and schematic, we can do final costing, send the design off to the manufacturing house and we're done.
Planning phase

Alright, so what we want to do is:
  • Take 12V from a battery or power adapter
  • Make 5 and 3.3V out of that
  • Be able to switch pretty much everything on and off at will
  • Measure current going through all power lines
  • Adjust the 5 and 3.3V voltage (ideally 12V as well)
  • Control and measure via USB
DC/DC conversion

This is done by an integrated dc/dc converter module made by V-module and sold on dealextreme for about €5 a pop. Expensive, but worth the hassle. These modules are completely closed off and have a fixed output voltage. Or do they?

What I've done here is take a small lighter torch and heated up the plastic in which the converter is encased. As you heat it up it becomes very soft and a bit brittle, and it's very easy to pick all the plastic off to reveal the innards of the device. For good measure, I desoldered the Richtek RT8xxx 1.2MHz switching controller and 3A schottky diode. The 7.3uH 3.5A inductor is still intact. The Richtek converter has a feedback voltage of 0.9V, whereas the output is actually 3.3 or 5V - this means there must be a resistive divider and thus a way to adjust the output voltage. That resistive divider is here:

By placing a resistor between halfway the divider and the output, the output can be adjusted between 0.9V and the output voltage (be it 3.3 or 5V). The microcontroller that will do this, however, cannot solder resistors. I need another trick: I need either a microcontroller that has a DAC output able to source enough current, or a PWM output and low-pass filter to generate an analog voltage on the resistive divider that biases the resistive divider. I'll go into that later on.

Current measurement

Measuring current can be done in quite a few ways, but when on a tight budget there is only one way: shunt resistors. These are resistors with a high current rating and low value that cause, by Ohm's law, a voltage to drop over its terminals proportional to the current. This resistor is placed in series with a load and as such it will reduce the voltage over the load. It is thus important for the voltage drop (and associated power dissipation in the shunt resistor) to be insignificant, which means shunt resistors need to have very low values. For the 8 amp and 3 amp lines I would need resistors in the order of tens of mOhm. For the lower current areas, I'm choosing 0.18 ohm resistors. However, even shunt resistors have a price (about €0.25-0.30 a piece) and there is a way to even economize on those: using very narrow copper tracks on the PCB as resistors. For the high-current shunts I'm doing exactly that, whereas I use discrete resistors for the low-current lines.

These small-valued resistors cause a bit of a problem when you want to measure them: the voltage drop over the resistor is so small that a run-of-the-mill ADC as you'll find in an MCU doesn't have a lot of measurement resolution. For instance, the measurement resolution for a 10-bit Atmel ADC on a 10mohm sense resistor would be 0.5A. Additionally, I'm measuring what is called high-side: the measurement resistor is placed in the positive voltage line. So if I'm measuring current in 12V lines, both terminals of the measurement resistor are at about 12V (called the common-mode voltage). This is too high for the MCU's ADC to handle. I'd like better resolution and to be able to measure at high common-mode voltages. For this, we use differential amplifiers with very low offset voltages: current sense amplifiers. Popular choices here are INA13x and INA19x current sense amplifiers; they have variable and fixed gain respectively, and you can get models from 1 to 200V/V gain. I'm planning on measuring a wide array of currents, so I'll go with the programmable gain version: INA139.

But there's another catch. Even INA139, besides being the best choice also the cheapest, is way too expensive (€1.30 a piece) to use on every sense resistor. I've got the dc/dc converters already eating away 10 euros of my budget, the PCB another 5, and I want to measure current in 10 places. That would put me way over budget. The solution? Lots of me! Muxes. Better known as (de)multiplexers. These devices can switch one output to many inputs. That one output can be connected to just one INA139, and via switching the multiplexers I can still (not simultaneously) sense the current through all shunts. Muxes are very cheap devices, so this fits together real nice.

Me! (that is, an analog multiplexer)


Choosing a microcontroller is always a hard task. For many beginners, the major obstacle to overcome is which brand to choose. Young players - as David Jones likes to call them - often think switching brands and toolchains is something that is hard to do. Well, it's not. First of all, we're talking about the low-end of SoCs here. It might be true for more high-end things like quad-core Hummingbird SoCs, but these fully integrated DIP/SOIC/QFP devices are all surprisingly simple to use and more often than not work very well with the simplest of toolchains. NXP has a free toolchain and a few pretty cheap devboards (LPCXpresso), TI has their Launchpad and other reasonably priced toolchains to work with MSP430 and other products like TMS320. Atmel has their free AVR Studio which even uses GCC whereas Microchip has a wide array of free or cheap microcontroller toolchains. Even more niche MCUs like Infineon, Freescale and Motorola products can often be used in conjunction with free or even open source toolchains, especially the cheaper series.

That's great, because it means I can choose an MCU based on merit instead of having to know whether I can actually use it with my tools. The requirements are:
  • Plenty of ADCs (Current just takes one input because of external multiplexing, but I want to measure voltages as well)
  • At least two PWM outputs or DACs for voltage adjustment (not necessarily on different timers)
  • USB support (an extra FT232RL or V-USB is no option under my budget constraints, it *needs* to be integrated)
  • Reasonable package (not too small or big, hand solderable)
  • plenty of I/O to go around
  • * other features that reduce BOM cost
A few remarks about this list: first of all, the USB support. If you're still reading this with interest you probably know something about designing electronics. If you want USB it needs to come either integrated in the MCU or you have to use one of the very few external serial-to-USB options available. The most popular choice is FT232RL which is a fully buffered and transparent RS-232 to USB bridge chip. Using the driver it creates a virtual COM port on your computer and that's all the setup you need - very simple. The catch is that it's 4 euros just for the USB chip in medium quantities. That is as much as a whole MCU! And if you're still following the math: 2x5 euros for the dc/dc converters, 5 euros for the PCB, 4 euros for the MCU... That's 19 euros. The FT232RL would increase the BOM to 23 euros which leaves just 2 euros for connectors, current sensing, MOSFETs and miscellaneous compoments. It just won't fit, and I cannot economize on those last few euros. Another option for USB you'll see frequently is the USB protocol implemented in software. This takes up a lot of processing time and generally renders these cheap 8-bit or 16-bit microcontrollers useless to do anything else. You need a seperate microcontroller just for USB, which is often a tad bit cheaper than an FT232RL (because you can for instance use an 8-bit PIC costing €1.50) but it is 1) still more expensive than integrated USB 2) takes up more board space and 3) requires an additional programming header.

The second point in the list that I'd like to elaborate on is the 'other features that reduce BOM cost'. At this point you should know I've chosen the Atmel Atmega16U4 for the microcontroller, and it's among others these features that made it a winner. First of all, it has integrated USB, but unlike other MCUs with integrated USB it does not require a crystal to function. It has an internal calibrated oscillator that has tolerances within the USB specs. Also unlike other MCUs it only needs one supply voltage and it runs off anything between 3.3 and 5V. It also has multiple internal bandgap voltage references for the ADC - this means I don't need an external reference, even if I start tinkering with the 5V dc/dc converter that feeds the micro as well. Also, this microcontroller has selectable gain on one of its ADC channels. Together with the selectable gain opamp and multiple bandgap reference voltages this creates a huge dynamic range of currents that I can measure with good accuracy. Lastly, this microcontroller has four hardware timers which, together with the precision clock, allow me to use a timer for PWM, one for actual time, an interval timing clock and still have one timer to spare. There are enough usable I/O left to turn stuff on and off and it seems like I don't have to reuse pins for multiple uses just yet. On top of this all it's just €3 in small quantities. The only downside to it is that it only has 16K of flash and 2K of RAM which is not enough to store a sizable amount of measurement samples during a reboot. To fix that I'd probably need the NXP LPC1343 with its 8kB of SRAM. Flash memory would be a solution for this in a pinch, but I'd rather not because of the cell wear. Oh, I almost forgot: this MCU has a built-in temperature sensor. Great fun, and handy for calibrating the current sense stuff.

Now, this MCU is one of the places on this board where I slightly deviated from the DFM mantra. Atmel is absolutely notorious for having 1) low stock and in general problems obtaining their chips and 2) suddenly discontinuing products and generally not giving any hints on how long they will support a chip or a pin-compatible alternative. In the past, quite a few fellow designers have been struck with a sudden EOL notification on a part they were just about to design into a product that was supposed to have at least 5 years support. Many simply refuse to use Atmel parts. Still, they make a very compelling product with the mega16U4 and as far as I can see my next best option is an LPC1343 which is a bit more expensive and doesn't have quite the constellation of features in the mega16U4 (although being significantly faster).

Other remarks

Ideally this PicoPSU-ripoff would be mounted in much the same way as a real PicoPSU: on top of the ATX plug, with no excessive wiring. Unfortunately, I haven't been able to source that particular style of ATX plug for card edge mounting. It seems like it's a PicoPSU exclusive component, maybe patented. If you know more about this, please leave a comment. As it turns out, this wouldn't have been a viable option anyway because I really need the real estate. In the name of design for manufacturing, I wanted the components all to be loaded on one side. In my first design, this is not yet the case (although 99% of the board is single side loaded), but it should not be too much of a hassle to fix this in a next revision.

Another point is the amount of connectors and pinout. What I've done here is absolutely minimize everything: one socket for the adapter, one for the battery. USB and programming headers for data, and lastly a standard pinout 24-pin ATX connector. However, there's a catch to that last one: although it is a standard layout, it has been pinned such that you can stick in a standard 20-pin ATX connector, and plug in a custom connector next to it that runs to the processor and peripherals. This way whatever you do you can't blow up your electronics because of some custom pinout, but you can still measure everything independently. More connectors would have meant more real estate and BOM cost.

Last, there is the PWM-to-analog-trick I promised to elaborate on. A dc/dc controller chip uses a resistive divider over the output voltage to measure the actual output voltage it is creating and possibly to adjust it if it is in error. If you want to adjust this, you have to change the resistive divider. A DAC and an extra resistor is an obvious choice for doing this:

Here, the DAC generates a fixed voltage and feeds it into a separate branch on the resitive divider. This effectively causes the reference voltage to be 'pulled' in a certain direction by the DAC. A big advantage compared to the PWM method is that there is almost no switching noise. However, there is a catch: the MCU in my case runs off 5Vsb, which is *not* a fixed supply. On the contrary, the MCU itself can change the voltage on 5Vsb and as such the DAC voltage will also change. This can of course be fixed by adjusting the DAC voltage accordingly, but it's not quite ideal yet.

The PWM method fixes this. The PWM method rapidly switches a FET and series resistor on and off that together are connected in parallel to one of the resistors. The FET is on for a certain fraction of the time, the duty cycle. In between the switching part and the actual resistive divider is a smoothing filter. This arrangement causes the FET, resistor and filter together to act as sort of a variable resistor in parallel to one of the resistors in the divider. As an added bonus, it is not sensitive to the MCU voltage. It does cause switching noise, though.

The schematic

Well, at this point almost everything has already been said. The schematics don't really add much to the story. The first page shows the connectors, measurement resistors and switches:

Click on the picture for the actual schematic. This is just a detail

The second page shows the multiplexers and additional current sense circuitry.

Click on the picture for the actual schematic. This is just a detail

And then there's the MCU

Click on the picture for the actual schematic. This is just a detail

This schematic isn't quite final yet (I still have to go over quite a few details), but as soon as it is I'll probably throw them online for others to use.

We know what components we're using right now, so we can do some costing. Here in the Netherlands Farnell and RS Components are your main parts suppliers. Digikey is an option for larger quantities as well as Mouser, but Farnell is the only one delivering small quantities in a short amount of time along with RS. These prices (as well as availability) are based on Farnell's listings.

As you can see avoiding to pay for multiple current sense amplifiers, an external USB chip or shunt resistors has paid off. As a one-off board, it won't make it under 25 euros. It will barely make it under 40 euros! That is because the PCB manufacturer's startup cost is relatively high compared to the incremental cost of each board. At around 12 pieces it starts to break through the 25 euro mark, and if I'd sell 25 of them, I'd even make a small profit (assuming I can get it shipped and handled for less than the margin). Excellent.

Now, this is obviously excluding things like assembly and shipping; that's where a lot of the cost goes. If you wanted to have such a board automatically assembled, you're talking at least 500 euros startup cost and an incremental cost of about 1 euro per board. Shipping and handling will add at least 2 euros to the product. As such, I wouldn't expect this kind of a design - even in mass production - to retail at less than 35 euros, just the hardware. The custom cabling and software is then still to be added, of which I have no idea. But it's a nice exercise to see bottom-up what a product can or should cost.
The PCB layout

As I said before, I'm not making a PicoPSU as you know it: it won't sit on top of the ATX plug. It will be mounted probably next to the motherboard. For mounting, there are four mounting holes in a 117x30mm rectangular pattern. The ATX plug is placed along the top edge of the board in an orientation such that that particular edge should be on the motherboard side (for most motherboard layouts), on order for the cable connecting the PicoPSU and motherboard not to twist. In the future, as soon as I get my RepRap 3D printer, I will probably make a plastic housing. A custom heatsink for the MOSFETs will probably be a good idea as well. Anyway, to get an idea of the device, here is the layout:

The layout is, like the schematic, not quite ready for professional scrutiny. Being a 2-layer design, I've had to compromise with the ground plane (back side). It is connected, but has holes to allow for some horizontal routing of signals. The board is tightly loaded, both to reduce track length as much as possible and because I'm super-anal about making my boards as small and integrated as possible. Still, I'm a bit worried about the noise immunity of the current sense tracks. I've observed proper star point layout and isolated fast switching stuff as much as possible, but especially EMI emanating from the VMP320x dc/dc converters will be hard to fix. Hopefully the damping I've implemented and my layout is good enough. Maybe a next revision will see more aggressive passive termination to combat measurement noise at the cost of some nonlinearity.

I'm sorry for the briefness of this part. I'm saving a more in-depth treatise of PCB layout for power and measurement routing for another day.
So, what can it do?

This blog post has been a sort-of chronological treatment from problem statement to design. At first, it was not completely clear what the outcome would be. Now it is. Let's go through the functional description of this device:
  • Max power rating: 96+15+10=121W (12V, 5V, 3.3V)
  • Typical power rating: 30 to 50W
  • Current measurements:
    • Power adapter current: 10.24A max
    • Battery current: 10.24A max, bidirectional
    • Motherboard 12V current: 10.24A max
    • CPU 12V current: 10.24A max
    • Motherboard 3.3V current: 10.24A max
    • Motherboard 5V current: 10.24A max
    • Motherboard 5V standby current: 250mA max
    • Current going into 5V dc/dc converter: 2A max
    • Current going into 3.3V dc/dc converter: 2A max
    • 5V peripheral current (hdd, etc.): 2A max
  • battery discharge/charge current measurement
  • Current measurement resolution:
    • High-current (10.24A) shunts:
      • 0-100mA: 0.11mA
      • 100mA-1A: 1.1mA
      • 1A-10.24A: 11mA
    • Low-current shunts (2A/250mA)
      • 0-10mA: 11uA
      • 10-25mA: 24uA
      • 25-100mA: 0.11mA
      • 100-250mA: 0.24mA
      • 250mA-2A: 2.4mA
    • Peak current measurement: >25A
  • Switching on/off:
    • Switching adapter and battery on independently
    • 12V to CPU and motherboard
    • 5V to peripherals and motherboard
    • 3.3V to motherboard
  • USB measurement and control
  • On-board temperature measurement
  • Time resolution: better than 10x per second
There are a few 'but's on the current measurements. First of all, the AVR ADC is not known to be such a great performer on any account; uncalibrated the INL/DNL error is often 3-5LSB, with a gain error over temperature of at least another 2LSB. The error induced by the gain resistor on the INA139 and the current sense amplifier itself is probably a good 1-2% as well. Without calibration, measurements will be an indication at best. The software must include calibration routines.

Second, the PCB tracks that are used as high-current shunts are known to be quite inaccurate over temperature. At high currents (near 100W of output power) and consequently those tracks heating up a few tens of degrees, your measurements will be off by a lot; the thermal coefficient of copper is about 3% per 10 degrees. At currents under 5A heating effects will quickly become negligible. It might be that after some testing I will improve these current sense tracks.

The MCU on this board has built-in gain settings of x1, x10, x40 and x200. It also has three reference voltages: 1.1V (bandgap), 2.56V (bandgap) and Vref (5Vsb). Additionally, the INA139 has two gain settings: x10 and x100. This means that the minimum full-scale range is a ridiculous 55uV. On a 10mohm resistor that means it would theoretically be able to resolve a current of 5.37 microamps. Unfortunately the offset voltages in both the INA139 (1mV) and Atmega16U4 (40mV) don't allow for this kind of resolution. In practice, calibration is absolutely necessary to get correct information on the low end, and then still there will probably be missing codes between 0 and a few mA measured. After that, 1mA or better resolution should be a breeze to attain.
Conclusion and future plans
The function of MADPSU - for now

With my previous blog on the 8.5W (idle) core i3 system I opened up what feels to me like uncharted territory for computer enthusiasts. Sure, people know what efficiency is, but this notion is typically limited to just the AC-DC conversion, not beyond. Well, that's just a small part of your (in)efficiency, especially in low-power systems. Undervolting and in general improving power efficiency of your computer has been reserved for those willing to invest much more time and money into it than more popular computer mods like casemods and overclocking for which ready-made tools exist. Let's change that.

Awareness is the key to any kind of improvement. Being aware of the fact that your CPU can actually clock 50% higher without extra cost motivates a significant portion of computer enthusiasts at some point to overclock. Well, being aware that there are components, configurations and mods that can save 50% on your system power consumption, both idle and load, with negligible or no impact on performance will do the same. Lots of people with very different systems want their computer to be as silent as possible. You can do that by buying expensive gear like water cooling or expensive fans, or... you could try fixing the source of your problem. In any case, what we need to get this awareness is two things: data and tools.

The MADPSU is one of those tools. It allows you to measure a good portion of the main voltage lines in your computer. However, it's just on the DC side of things. Also, there are limitations.
The need for more measurements!

Obviously, we want to know more than just DC power. For the coming - at least - 10 years we won't have DC wall outlets except for custom electrical installations. Still, we want to measure ingoing AC power. Measuring AC reliably though is an expensive business and outside of expensive dedicated test gear there is no way to realtime measure the efficiency of your PSU. One of the first things to add to MADPSU must be an AC power measurement unit that hooks up to USB on your computer, or maybe to the MADPSU. How cool would it be to have realtime graphs saying what your total AC-to-DC power efficiency is? Alright, probably not that interesting from a normal person's point of view but I'd sure like to tap that.

MADPSU itself is limited as it stands. Especially the 5V line is an underperformer at 3A max continuous output. It's a convenient and quick design but the next iteration needs to have an on-board dc/dc converter for 5V and 3.3V. Furthermore, MADPSU right now accepts just 12V adapters and batteries. You have some play within the ATX spec (11.4-12.6V, nice range for Li-ion batteries) but beyond that it's at your own risk. It would be very nice to have a dc-dc converter that accepts a higher voltage from a power adapter, with possibly a regulated li-ion charging circuit. This has the added (big) bonus of enabling some tinkering with the 12V line on your computer. The downside here is that such a high-power dc/dc converter is way expensive and the MADPSU won't fit into a reasonable budget anymore.

Another area I could venture in is building an ac-dc converter myself with an integrated MADPSU. This would take away completely the problem of having to build a high-power dc/dc converter and would boost efficiency as well. Big downside here would be that such designs require a bit more research and verification before you can use them, and they can certainly not be put together by unsuspecting hackers in their basements. It would technically be the best solution, though.

On the measurement side of things MADPSU isn't done yet. One of the main missing features is a third 12V sense line for the peripheral 12V. Currently, there are only two points where you can measure 12V current: to the motherboard and combined peripheral/CPU. This limitation stems from the fact that the 24-pin ATX plug only has 2 12V pins and I didn't want to mess up the pinout. Another thing MADPSU can't separately measure is PCIe 12V power. This limits the possibilities for MADPSU to measure harddisk spin-up current and graphics power.

So there you have it. A picoPSU with measurement capabilities. Plans for measuring and adjusting power everywhere in your computer. Please do leave your remarks, criticism and requests in the comments section below.

Volgende: Building and improving a 3D printer (part 1) 04-'11 Building and improving a 3D printer (part 1)
Volgende: MADPSU: A measurable and adjustable DC PSU - Part 1 02-'11 MADPSU: A measurable and adjustable DC PSU - Part 1


Door Tweakers user wheez50, vrijdag 4 maart 2011 05:10

Just a headsup from another fan. *O*


[Reactie gewijzigd op vrijdag 4 maart 2011 05:10]

Door Tweakers user dragon4ce, vrijdag 4 maart 2011 08:49

Your designs arent made from copper and silicum - there made of pure awesome.


Door Tweakers user Snowmiss, vrijdag 4 maart 2011 09:01

Dit wordt nog eens wat (al snap ik er ondertussen te weinig van ;)).

Door Tweakers user, vrijdag 4 maart 2011 09:03

GIVF! :)

Very interesting, keep up the good work, I'll hope to be able to buy a MADpsu soon...! ;)

Door Tweakers user robvanwijk, zondag 6 maart 2011 22:15

Your blogs are still as interesting as ever, but they're getting more and more over my head. One thing I do understand; you have some great ideas!

BTW, do you ever read AnandTech? They've got a review up for a 300 W, 80Plus Gold PSU (yes, the review includes measurements of ripple and verification voltages are within ATX's specs, sorry about that :p ). Then again, it also contains a call to manufacturers for more low-power-very-high-efficiency PSUs (I guess you'd approve of that?).

Door Tweakers user mux, zondag 6 maart 2011 22:32

Obviously this blog series will not be as popular as my previous three series; it's real in-depth electronic design. Soon, however, I'll start blogging on two subjects that will again have a broader appeal: a 3D printer and my own take on a PSU review.

And yes, I actually read Anandtech religiously. They (it's more than just Anand nowadays) put a lot of effort in their research and verification so I respect them for that. Still, on PSU reviews I'm not too impressed. Anyway, that Huntkey PSU is absolutely terrific. It gets 85% efficiency at 10% load which is 30W DC. That means it will probably break 80% even at 5% load. This really is my next blanket recommendation for any new system; anything from an eco-build (atom/brazos/core i3/athlon x2) to a medium gaming system (HD6830/6850+Phenom X6) will work great on this PSU.

Just one caveat: what will the price be? The only other 80 Plus Gold PSU with truly good efficiency near 5-10% load is the Seasonic X-400FL and that PSU carries a hefty price tag.

Door Tweakers user Carstijn, maandag 7 maart 2011 09:24

Your current measurement track has to handle 8amps, how wide is it? Doesn't it get hot? When I need to calculate the width of a track I use this calculator:

For 8 amps it gives 5,3 mm on external layers an 13,8 mm on internal layers, this is for 10 degrees temperature rise.

How do you see this?

Door Tweakers user mux, maandag 7 maart 2011 09:35

I use exactly the same circuit calculator :D They all use the same formulas, so it doesn't matter. The formulas are the same as the ones used in my power electronics textbooks.

(actually, it's not formulas, it's a few precomputed curves that they inter/extrapolate)

Door Tweakers user Paul C, zondag 13 maart 2011 22:47

First of all thanks for writing these very interesting in-depth articles on a important and interesting subject! Also I'm happy to see there's still people who are critical of (power) measurements.

Regarding your current measurement tracks: wouldn't it be better to stretch them out over the pcb rather than packing then closely together as per your current design? Or would you say that the heat dissipating into the air is so much greater than through conduction of the PCB that this is irrelevant?

Door Tweakers user mux, maandag 14 maart 2011 08:13

Yes, that would probably be better. In finalizing the design I've tried to stretch them out a little here and there, although for two of the shunt traces the design current is actually just 3A (and they won't heat up at all, even when packed together).

Door Peter Hopton, woensdag 11 mei 2011 16:45

Awesome job, Please send me the schematics and stuff when you're done, I'd really like to make one of these and try it out myself in my new media PC!

All the Best


Door Tweakers user mux, woensdag 11 mei 2011 17:11

If you're really interested and have a bit of time to spare, I could use a hand in the software side of things.

By the way, still haven't got the PCBs in yet, probably going to take another week or so. Ah well, I don't have time anyway so no loss there.

Door René, maandag 16 mei 2011 18:19

How much an modern (launched in 2010 or 2011) and non-modded motherboard from asus or gigabyte is expected to push from the 3.3v and 5v lines? Will it normally exceed the 3A of your MADPSU? By how much in the worst case? Does it differ between intel and AMD plataforms? And between an Mini-ITX and (full-)ATX?

And do any modern motherboard require the -12V to turn-on and work well? I suspect that the ones with PCI slots may require, and maybe some others too. But I hope I'm wrong.

Door Tweakers user mux, maandag 16 mei 2011 18:38

I measured about 3A @5V max when I was using a 3,5" 1TB HDD in the very, very early stages of my core i3-PC. So with this MSI motherboard already pushing the limits of MADPSU, there's a significant chance that a lot of the 'less eco-friendly' manufacturers will exceed that. I'm building MADPSU exactly for this reason: to find out exactly how much everything uses and what the differences are between platforms/manufacturers/etc.

-12V is completely optional since at least the 24-pin specification, probably earlier as well. It is only used by modems, i.e. in CMR slots. You don't need it ever. None of your expansion slots provide -12V (not PCI, not PCIe, not memory banks, not your CPU socket, nothing)

Door René, maandag 16 mei 2011 22:33

Well, there is one -12V output specified in PCI pinout, and I haven't seen any mention that it has been deprecated or turned optional. Plus, I have never seen an ATX power supply w/o -12v output.

I know nothing uses -12v anymore, but I'm afraid it is needed for a motherboard be claimed PCI compilant, and maybe some motherboards may check for it's presence and issue an error if they can't find it.

And will you be able to measure the current using the MADPSU if the board draws more than 3A in 3.3V or 5V lines? If not, you would need to use another PSU, and your results would not be comparable anymore. Would't be better to put 2 3A converters in pararalel, or use higher rated converters, for a bit of headroom?

And it seems that some motherboards power all their USB ports from 5VSB, even when powered on. A very bad practice, but see:

And I didn't specified, but I would like to know specifically the power needs for an diskless system, booting from a USB stick. HDD power consumption is more well known and predictable, and it is not really needed for many aplications nowadays.

Door Tweakers user mux, maandag 16 mei 2011 23:22

I have never seen a motherboard actually check for anything except 5 and 3.3V, as those are the only voltages directly used for microelectronics. 12V is rarely checked. I see now that -12V is indeed not optional, but -5V is. My bad. Still, the function of -12V is vestigial at best. It should not be used by any other function than modems, which are defunct in any remotely modern PC design. It boils down to: don't worry.

The current shunts as implemented can be used just fine for higher currents, as i've implemented quite a few gain setting possibilities. The only problem with measuring higher current is the shunt tracks heating up too much and ruining accuracy. Still, keep in mind that this design is meant for low-power systems where currents even under maximum load rarely exceed 5A.

Putting multiple converters in parallel 'for a bit of headroom' is *exactly* what i'm not doing here! The whole point of this endeavor is to make something suited perfectly to the purpose. Higher ratings mean not in the least higher cost, but also lower efficiency. Still, MADPSU is a modder's tool to be adjusted at your discretion. If you want to hook up a different dc/dc converter, you can do so and still retain the MADPSU measurement functions.

A lot of motherboards do indeed power USB from 5Vsb, but I'm not designing for bad design practices here. They're even bending the rules a bit; a compliant motherboard must have a switch turning off 5Vsb to anything but the standby supervisor and associated logic. If you're running into these problems you'll need to hardware mod or fix it in another way. Of course, at the expense of resolution you can also reduce the shunt resistor value so you can pull more current out of 5Vsb.

And your use case is a great example of what MADPSU can be good for.

Door René, dinsdag 17 mei 2011 06:48

Thanks for answering my questions!

Now I have an idea that I've never seen before. I actually don't know much about eletronics and circuits (I'm learning quite a bit reading your blog), so maybe there is an obvious reason why nobody has done this before:

What about putting 2 dc/dc converters in paralel, but with a swich that only activates the second one once the amperage reaches a certain value (say, 2.5A). While waiting for the second converter turn on and be ready to supply the correct voltage, the first one can heat up a little, working above it's recomended value. Or maybe put a capacitor between the converters and the amperage measurement, to absorb sudden changes in the load while waiting the second converter to go online. It should only add little overhead in low loads (especially as you are already measuring the lines), and be able to supply more current if needed, changing from one efficiency curve to another in order to sustain high efficiency even at low loads. The efficiency curve would have two peaks, like an M.

So... is it possible? If yes, would it be as energy efficient as I'm thinking?

Door Tweakers user mux, dinsdag 17 mei 2011 07:37

That's less cost efficient than making one bigger converter that is more efficient.

Door Peter Hopton, dinsdag 17 mei 2011 14:58

Hi Mux,

I'm not so good at programming myself, but I'm keen to assist, I know a chap that writes windows apps, I might be able to get him to help you write a windows end of your USB interface for your chip.

I've also picked up some reference designs for quasi-resonant flyback ACDC PSU's, maybe you want to help me mess around with them?

Drop me an email.


Door Peter Hopton, dinsdag 17 mei 2011 15:07

Idea -

If we make our own brick we could have a signal going back from the DCDC board to alter the 12V?

I'm right in thinking it's not being altered right now, just being switched on?


Door Tweakers user mux, dinsdag 17 mei 2011 15:12

I'd love to, but I don't have your e-mail address ;)

Are you by any chance the VeryPC-Peter Hopton?

Door allert, woensdag 27 juli 2011 21:39

in your blog on the i3 8,5w system you mention the madpsu, am i right to assume the above is one and the same? so i could make the printboard, buy the parts and just solder an enhanced picopsu with measurement connections?
Is the edac adapter sold under its own brandname?
Never done a double sided board, any opportunity of buying a ready to assemble board?
A lot of practical questions becouse i hope it will be this years winterevenings project.

Door Tweakers user mux, woensdag 27 juli 2011 22:53

Yup, this is the same thing.

It's not exactly an 'enhanced' picopsu, it's more of a specialist picopsu. The main thing you have to keep in mind with this version is that it (1) has relatively weak 3.3 and 5V lines (keep in mind, that 5V line is also used for for instance charging your iPad, which in itself can draw 1.5A) and (2) is, as of now, designed as a hobby project (much like a lot of Arduino stuff). This doesn't mean it will stay this way (I am absolutely going to do a version 2 and onward with improvements, as a matter of fact, I'm already working on it) but right now it's something I cannot give a warranty on. Anyway, with this (again) out of the way:

EDAC do sell own-branded PSUs but there are other alternatives around. I personally can't help you with the best choice (here in the Netherlands the Seasonic 60W power adapter in the pricewatch is a pretty decent choice) because I really don't keep track of these things.

The board is 2-layer but it is only single-side loaded (since version 1.1, no blog on that yet). It should be very easy to assemble with solder paste and a regular oven. If you want an assembled and tested board from me that is alright, too, but it won't be cheap. That is to say, it will be on a one-off basis so you don't get the volume discount price and you will have to pay me for assembly labor (€15/hr, about 2 hours). I originally envisioned MADPSU as a cheap device that uses design for manufacturing techniques to push the cost down to less than €25/pc, so this small-volume stuff would be a bit counterintuitive.

In any case I would advise you to stick around for at least the version 1.1 update blog (no ETA on that yet, I'm really busy at the moment, but certainly before the end of the year).

Door maikm, maandag 5 december 2011 14:43


very awesome work!!
Very interesting what's possible with modern PC equipment and a soldering iron :-D.
I love this blog.
I found this block when looking for parts to setup a very low power consuming home server. Unfortunately with the current version of MADPSU my need to add 3 hard disks is not possible but maybe it can be addressed somehoe ;-)

I am looking forward for the next update blog.


Door Tweakers user mux, maandag 5 december 2011 14:46

I'm currently testing a new version with 6.3A on the 5V and 3.3V rails. That should be able to support three hard drives.

Door maikm, maandag 5 december 2011 15:52

Great news!

Thanks for the fast reply

Door maikm, vrijdag 9 december 2011 15:20

There was mentioned you got different power consumption with your ssd in windows and linux. do you have any more details? does this apply to all ssd or is it just with the intel one? I wonder there is any more data available?! :-)

Thanks in advance

Door Tweakers user mux, vrijdag 9 december 2011 15:30

I have very little data myself, but I know why this is (and this is a general problem with SSD power consumption): under the Linux distribution I tried, a SATA feature called Device Initiated Power Management (DIPM) was not supported. This basically causes the SSD not to be able to power down when it's idle.

You'll have to ask around and test yourself if you want to know more about SSD power consumption under linux. I currently do not have a Linux test bench (the one I'm working on is being muxified right now, it's already down from 13.0W stock to 8W and counting).

Door Tweakers user Spekkie88, dinsdag 11 september 2012 17:25

Looks very promising!
Although stated already and my personal problem with the current pico psu's is that they can't provide enough power for my HDD's... I have a HTPC with an asus e350 pro with currently 2 2,5" and 2 3,5" and a blu-ray drive, while I still have room for another 2 2,5" drives.
So I would love a psu like yours since my system is currently using 45W but I had to use a 300W ATX psu since there simply was no alternative.

Another problem I have with pico psu's is the relatively large adapter which is hard to place within a HTPC case even though there is room for an ATX psu.

You state in your posts that in your case you still need an 12V adapter, but do you have some examples that you can accommodate in the ATX psu space of an HTPC?

Door Tweakers user mux, dinsdag 11 september 2012 17:31

I don't have any examples off the top of my head, neither do I think anybody makes such a thing. This is good feedback, if MADPSU gets funded through ASN Bank I will definitely consider developing something along the lines of a bracket or selling an adapter-MADPSU-bracket combination that screws into the ATX area just like any other power supply.

Door Tweakers user andru123, donderdag 8 november 2012 22:33

Thank you for this very informative blog!
If possible, can you think of the following question (idea):
I have at home 2 broken ATX PSUs (as many other people do, I think) and a bunch of old power adapters of 12, 9, 6V etc. All this is lying in a box waiting to be thrown away.

But... can I re-use the (broken) PSU and adapters that I have already?

Mostly they break with leaking condensator, or (at least I hope) in a high-voltage part. But what if I just connect the 12V adapter that I have to the point in PSU where 12V was generated (after rectifier, but before the DC/DC converters for 5 and 3V).
That way, I would reuse all the wires and connectors, DC/DC converters and (hopefully) some other parts that are there.
And it will cost me nothing (except for about a week to actually find the right place where the 12V adapter wires should be connected)

Can it be done?
I really need a low-power-efficient unit, so the max wattage is fine.
Now I am building a low power home server and became very interested in the topic. I am actually at a point of ordering a 250W PSU, when I read this blog.

Door Tweakers user necessaryevil, zaterdag 14 september 2019 14:20

Hey, is de MADPSU te koop of zijn de 'design files' beschikbaar?

Om te kunnen reageren moet je ingelogd zijn. Via deze link kun je inloggen als je al geregistreerd bent. Indien je nog geen account hebt kun je er hier één aanmaken.