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.


10 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!

  3. Great project… i have been trying to implement autoranging and wireless connectivity with uCurrent gold. Now I don’t need to scratch my brain any more, thanks to you :).
    I should get this one asap ;).

    Can DAC of this M0 chip be accessed through any of your breakout pin ?

    • The DAC is not broken out but it is connected to the output negative terminal.
      Why would you need the DAC? If you need to experiment with the M0 and need the DAC, the MoteinoM0 has it broken out as a header pin.

  4. Love the project and enjoying my CurrentRanger!

    Any thoughts on sending a CurrentRanger to the EEVBlog for “review/teardown” – might end up with a few extra orders from the views on youtube to cover the cost of the sent unit. Then again, Dave might think twice about it, seeing as it directly competes with his µCurrent GOLD.

    • Thanks for your comment Adam!
      Yes it does “compete”, and at the heart of both are the same MAX4239 opamps with 100x gain, but they are only equivalent in 1 operating mode – when CR is in BIAS mode (split supply) and without LPF or anything else enabled – even in that mode the CR output range can be slightly larger (3.3v/2 vs lithium 3v/2). All other specs are a superset on the CurrentRanger, so it’s not really an apple to apple comparison.
      As far as just review I’m sure he would have a blast pointing out the gross design flaws and shortcomings :D, I’m not sure I’m curious about that quite so soon.
      So far users seem to like it, and even suggested firmware improvements for autoranging (see forum). Andreas Spiess suggested he will do a review/comparison so let’s see how that goes.

  5. Hello,
    Any chance to get an optional BNC output for next iteration ? I would be great to be able to put a BNC to use it as a permanent low impedence setup along with some proper cable when working on low current instead of using a probe.
    Oh, by the way stock is now “goneski” as some down under says 😉
    Rgs, TM

    • Thanks for the interest, it was requested by others as well. It would be possible but it might be either BNC or terminals, not both, at least not without changing the PCB size.
      But definitely something to consider in a future revision.
      And hopefully available in the coming week or so.

Comments are closed.