CurrentRanger: auto-ranging current meter

I’ve always wanted a fast auto-ranging low-burden voltage current meter. You may find expensive high end bench meters which can auto-range they may be slow or lack the bandwidth to capture fast dynamic loads that go through several orders of magnitude of current consumption. Most multimeters also have a large burden voltage, which means their internal current shunts can cause your DUT to see a very significant voltage drop.

I own a µCurrent GOLD from EEVBlog which is great in that it has the precision and bandwidth to capture fast current transients, but it’s a simple manual device that cannot auto-range and unfortunately it’s really noisy in the nA range where it picks up mains noise and it’s unusable without an extra cap on the input (I thought mine was broken but this problem is also reported in the EEVBlog forum here and here). It’s useful when you know your DUT is going to stay in 1 range or if you can predict when your DUT might wake up from deep sleep and manually range just before that happens but it’s a guessing game. Hence the mechanical switches get a lot of abuse and wear, add output noise during switching, and introduce some contact resistance with noticeable effect in the mA range.

Looking around, I couldn’t find much else in terms of affordable fast auto-ranging and highly precise ammeters. So over year ago I started to design my own version of a current meter that has the precision and bandwidth, can auto-range, and has some extra nice-to-have features like:

  • Low pass filter for smooth oscilloscope tracing
  • Unidirectional measurement mode by default for maximum measurement range
  • Standalone OLED display
  • Bluetooth logging would be nice
  • Buzzer for tactile feedback (and why not also play some Beethoven on power-on)
  • Auto-power-off to spare the battery, oh how I craved this simple feature
  • LiPo powered, rechargeable, easily re-programmable – wouldn’t all that be great?
  • Great value vs. features without breaking the bank

It was a bit ambitious and immediately became obvious that this needs to be digitally controlled by a microcontroller to do all that. Five prototype revisions and a year later I think the result is finally ready for release. So I’m pleased to introduce the CurrentRanger, click here for full specifications and user guide.

As a side story – out of the birth pains of the CurrentRanger, resulted the Moteino M0 which uses the same SAMD21 ARM processor that controls the CurrentRanger.

The CurrentRanger is now available in the shop. Please let me know if you did something interesting with this meter. It’s certainly a complex device with a large BOM and lots of parameters to test. With your help I think it can be made even better in so many ways. As resources/code/new features become available they will be added in the CurrentRanger Guide.


4 thoughts on “CurrentRanger: auto-ranging current meter

  1. First of all thank you for making this kind of device.
    I have read all the ucurrent meters blogs. And I have suggestions for the same.
    My question is that as the current shunt value is (10mΩ, 10Ω, 10kΩ) respectively for the selection Right!!
    as you have selected the 10K shunt value is not so good according to my opinion. below is the reason for the same.

    before a few week we are testing the current consumption of our nrf52832 based BLE board.
    we used keithly DMM6500 6½-Digit.and we are looking at the graph. our sleep mode current is 1-2 uA.and wakeup current is 100 mA.
    hence @1-2uA resistor value in DMM6500 is >500 Ohm.and we measure sleep current which is good innuf 1-2uA. & @100mA current sense value is 10 Ohm.
    but as device is wake up & start to take current of 100mA than it automatically going to reset due to the high series resistance value.

    Asshunt resistor comes in series than resistance of the same is added in series with battery & 2rf52832 device.hence shunt resistor value it self-limiting the current.(due to in series with a battery and our device).
    if the value of shunt resistor is toomuch high 10K Ohm(in current ranger) than it also cause a problem of limiting current.
    hence my suggetion is put for uA to mA range this value in between 10 to 100 Ohm is innuf i think.
    I m not saying that current ranger is bad design.but i am sharing my experiance here.
    You can reach me @ or
    Call +919925020032

    • Hi Yagnik,
      Thanks for your comment. The shunts are fixed values and cannot change without significant changes to the 3 ranges.
      I think the effect you see on the keithley meter might be because of burden voltage, and delay to range-up.
      I am not familiar with that keithley model and its specs, but I can speak for the CurrentRanger.
      The auto-ranging will always have some limitations in any meter. It takes time for the meter to sample the output, determine it needs to range-up, and then do the switching.
      In the CurrentMeter overload+range-up is on the order of milliseconds. That’s very fast, but perhaps it can be made even faster using SAMD21 ADC window interrupts that react on the order of microseconds.
      Still, if your DUT is ultra sensitive to any voltage drop while ranging, I suggest adding some power rail capacitance to help it keep up with the high current demand until the higher range is reached.
      Also the CurrentRanger is really low burden voltage. But when a device wakes up to much higher current that burden voltage will increase until range-up happens. If a meter has inherent high burden voltage then it’s simply not going to be as efficient as a low burden meter. This is all explained in the guide.

  2. Gahdammit, just the other day I was thinking what I’ll do for my next project, and thought about an auto-ranging uCurrent. Then I came here to check out the low-power Arduino library, and this is the blog post I find on the front page! Nice work, Felix!

    • Thanks Anthony, I hope you enjoy this product in your low power measurement endeavors, let me know how you like it and if you have improvement suggestions!

Leave a Reply

Your email address will not be published. Required fields are marked *