Relatively Inexpensive Source-Measure Unit?

Does anyone have experience with any Source Measure Units that are more affordable than the ones available from Keithley/Tektronix?

Anyone know of an inexpensive, simple, accurate method to measure nano amps?
Yeah, I know I donā€™t ask for muchā€¦:upside_down_face:.

1 Like

A used HP/Agilent 4142B is less expensive than a used Keithley 2400. The documentation like all things from HP back then is great. However, itā€™s big, heavy, and getting it fixed if it breaks is a real challenge if not altogether impossible. Also, itā€™s mainframe based, so the unit can only be controlled via GPIB/HP-IB (maybe, also, RS232). So while Iā€™ve used them and like them, I wouldnā€™t recommend buying one.

Source Measure Unit ā€¦ hmmmm most everything measured from the Kilogram now ā€¦

The ampere is that constant current which, if maintained in two straight parallel conductors of infinite length, of negligible circular cross-section, and placed one metre apart in vacuum, would produce between these conductors a force equal to 2Ɨ10āˆ’7 newtons per metre of length.

newton: the SI unit of force. It is equal to the force that would give a mass of one kilogram an acceleration of one meter per second per second, and is equivalent to 100,000 dynes.

Voltage is a measure of electrical potential energy in units of volts or joules per coulomb (energy/charge). Then 1 volt means 1 joule per coulomb; 2 volts mean 2 joules per coulomb, and 5 volts mean 5 joules per coulomb.

A coulomb is the amount of charge that passes a point through a wire carrying one ampere for one second.

Everything goes back to the kilogram ā€¦ the source ā€¦

Here is the new Kilogram ā€¦

1 Like

Are you measuring voltage or amps?

And what is your range and resolution?

You would be surprised what you can do with the right equipment.

Iā€™ve measured resistances of ~5 mOhms and signals ~1uV in amplitude with a lock-in amplifier before

This is pretty cheap for what you get, will do nA. Played with an older version, pretty awesome.

1 Like

Interesting. Looks like Adafruit carried it at one time - no longer.
Looks like itā€™s gone ā€œbuild your ownā€ since itā€™s open source.
Thanks for posting.

Good reference

That uCurrent looks pretty darn cool but I have a concern about the lack of over current protection.

The reason I need one of these things is that Iā€™m going to be working with IoT devices that sleep much of the time. When my device wakes up (perhaps every 5-10 seconds) it will immediately fry the uCurrentā€¦

Nonetheless, this is really cool. It does not appear that bare PCBs are available so Iā€™m going to lay one out. Anyone interested in getting one (a bare board)? Based on my last PCB order Iā€™m guessing cost in the few dollar range.

Schematic, parts list, gerber files, etc. listed in @sixvolts link.
Let me know if you order pcbs form OSHPark.

In the past Iā€™ve ordered from EasyEDA. Right now can order 10 boards in red, black or blue for less than $10 shipped. Iā€™ve had good luck with them in the past. Nice quality work.

You shouldnā€™t need to measure lower current than about a microamp for a sleepy IoT device right? We should have meters in the elab that can do that.

A source measurement unit is ideal if you have one that can integrate power over time and tell you the total energy consumed after a given amount of time, but as long as you donā€™t need to be able to both sink and source current (like in this case I think), you can get by without one, and thereā€™s another option that can do way more for you for a sleepy IoT device than an SMU can.

What I do for sleepy hardware, which is most of what I work on, is use a multimeter to verify that the hardware achieves whatever sleep current itā€™s rated for, whether thatā€™s 0.5uA or 5uA or whatever, and then I use an oscilloscope to measure the energy consumed by each unique type of wakeup event by powering the hardware from a lab power supply run through a 10 ohm resistor which the scope is measuring across. By viewing the current waveform like this during a wakeup event you can calculate the energy consumed by each event in joules. The Rigol scopes we have should even calculate this for you. This allows you to then calculate your total energy usage over time by adding up each type of wakeup event along with how often they occur and then adding the baseline sleep current (which is often insignificant compared to whatā€™s used by the wakeup events unless you have an incredibly sleepy device).

The end result is that you can take your battery capacity and apply your energy usage calculations to determine your current battery life, and then optimize your wakeup events in order to achieve your desired battery life, which is usually the goal. You might be surprised how much energy you can save by removing printf outputs that are slow and keep the microcontroller awake for a long time, or by using a low power clock source for a really short wakeup event rather than powering up the main crystal oscillator which can actually take longer to power up than the time you need to spend using the cpu. This optimization becomes really accessible and intuitive when youā€™ve added to your toolset the ability to view the current waveforms of wakeup events.

3 Likes

Thomas, thanks for your input. Iā€™d love to pick your brain sometime.

Your comment sounds like a perfect outline for a class and you could do one easily. Post a class and count me in!

You get $50, ELab gets $50 and we all get hands on experience calculating elusive wakeup energy.

1 Like

Iā€™d sign up in a heartbeat.

1 Like

Thatā€™s true but it may depend more on what features you need to leave powered up while youā€™re sleeping. If you intend to wake up at a set time then you probably need to leave a low power timer running and that takes on the order of 1uA for modern stuff. The nanoamp sleeps Iā€™ve seen are basically powered off states where you can only wake up from a hard reset or maybe a gpio state change and you probably donā€™t have any ram retention and you definitely donā€™t have any kind of clock or timer running.

I just checked and the fluke bench meters in the lab have 0.1nA resolution and Iā€™d hazard a guess that you can probably resolve tens of nA with them or better without any special probing techniques.

For what itā€™s worth, itā€™s been my experience that anything less than a few uA is becoming negligible unless youā€™re sleeping for hours or days between packets. If you have a radio and youā€™re using it, you probably donā€™t care whether you sleep at 1uA or 3uA, and you definitely donā€™t care whether you sleep at 100nA or 10nA. By then you might be pushing your battery life so far that you run into its rated shelf life before its rated capacity.

ā€œ600nA Low Power Mode (LP0) Current with RTC Enabledā€

This is probably the lowest power state you can use and still be able to wake up at a predetermined time so you can do something. Thatā€™s 0.6uA which is more or less where current technology bottoms out from what Iā€™ve seen. You can use the lower nA sleep states only if you can avoid needing to use the RTC like if you only need to wake up when the user presses a button, but generally for a sleepy IoT device youā€™re sleeping for a set period of time and then waking up to send and receive data. You canā€™t rely on the radio to wake you up because leaving the radio awake in receive mode would take ~10mA for something like 802.15.4 or ~100mA for something like 802.11.

Using a timer works well in practice though and you donā€™t notice the energy usage. With that 0.6uA you get a really precise 32kHz crystal oscillator that lets you sleep for very long periods of time and wake up with really good timing accuracy. This lets you have two sleepy devices sleep for what could be weeks and then synchronously wake up in a window that could be only 100ms long to talk to each other. The radio takes the most power generally, so maximizing the amount of time itā€™s off pays more than trying to reach a nanoamp sleep state.