element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Energy Harvesting
  • Challenges & Projects
  • Project14
  • Energy Harvesting
  • More
  • Cancel
Energy Harvesting
Blog Measuring nanoamps
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Energy Harvesting to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: koudelad
  • Date Created: 2 Oct 2019 9:52 PM Date Created
  • Views 2947 views
  • Likes 17 likes
  • Comments 8 comments
  • keysight
  • energyharvestingch
  • joulescope
  • psoc 4
Related
Recommended

Measuring nanoamps

koudelad
koudelad
2 Oct 2019
  • Introduction
  • Before optimization
  • After optimization
    • Keysight U1828A multi-meter
    • Joulescope
      • Full measurement view
      • MCU start
      • Run mode
      • Starting LCD back-light
      • MCU and components shut down
      • Detail of the stop mode
    • Keysight N6705CN6705C power supply with N6781AN6781A unit
  • Conclusion

Introduction

If you want to do energy harvesting, you also want the powered device consume as little power as possible.

 

My first bigger electronics project is an IR thermometer. I have previously written a few blog posts about it’s goal and evolution. (Here is the first blog post with links to the following parts: "No lies" IR Thermometer - part I  ). It is also my first battery powered micro-controller design and I still have much to learn how to improve this device. One thing I didn’t have time to optimize is battery life. The thermometer is used twice a week on average, to check our body temperature etc. The rest the time it should be in low power mode, ready to be used.

 

Just a quick recapitulation on hardware used:

  • MCU: CY8C4245AXI-483CY8C4245AXI-483 , PSoC with ARM Cortex-M0 core, made by Cypress https://www.cypress.com/part/cy8c4245axi-483
  • IR sensor: MLX90614 https://www.melexis.com/en/product/mlx90614/digital-plug-play-infrared-thermometer-to-can
  • LCD: RC0802A-GHW-ESV, 8x2 characters, made by Raystar Optronics (the first thermometer revision had a some no-name 16x2 display)

Both the IR sensor and LCD (and separately LED back-light) are powered directly from PSoC pins.

 

Before optimization

Here is an older video of the 1st thermometer revision, measuring a power consumption using a Keysight U1282A multimeter.

 

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

 

 

Power consumption during operation is not that important. It’s usually 5 - 15 mA, but the device stays only 10 seconds in this mode.

 

Note: At this point I have already caught a huge power leak to the LCD data pins, when the LCD power pin had logic 0 on output. When the data pins were not disconnected (switched to analog inputs), ca. 20 mA was leaking through them. That was twice as much as in run mode!

 

However, power consumption in low power mode was bouncing between tens of microamps to hundreds of nanoamps. This situation means, there are floating MCU pins and the current is leaking to/from external circuitry. In the second HW version (which has the same components, smaller LCD and a different PCB shape) the current was bouncing between 70 – 300 uA.

 

My colleagues taught me a simple way to diagnose this issue. Touch and leave the MCU and if the consumed current jumps with the touches, it is caused by the floating pins that get charged or discharged by the touch. One exception is touching pins connected to an external oscillator. Added capacity of the finger can change the clock frequency and affect the power consumption.

 

After optimization

Cypress has an application note for power modes and power reduction techniques: https://www.cypress.com/documentation/application-notes/an86233-psoc-4-low-power-modes-and-power-reduction-techniques

 

The lowest achievable power mode is stop mode, which retains nothing and the only way to wake up from this state is an external reset or a logic state change on P0.7 pin. I intentionally have a button on this pin, using it to start or perform an additional temperature measurement. Power consumption in this state is supposed to be around 20 nA.

 

I have already applied some of the advice, connecting the IR sensor and LCD directly to the MCU pins. This way, the MCU is in the command of the overall power consumption.

 

What I didn’t realize is set the pins to appropriate state before going to a lower power mode. The advice is to set all pins to high impedance analog inputs to avoid current leaks. If that is not possible, make them digital inputs will pull-up or pull-down resistors, or make them outputs with a strong drive. It really depends of the hardware design.

 

image

So I set all unused pins to high impedance analog inputs, programmed the MCU, measured the current and… nothing changed. Which is not a surprise, because all unused pins are in this state by default.

 

Then I realized I didn’t take care of the I2C data pins leading to the IR sensor and UART. Setting these pins is specific, because once they are internally connected to a component like I2C or serial communications block, they can’t be set in GUI nor generated API. The only way is to change the control using Cortex-M0 registers. One has to go to a PSoC 4 Architecture Technical Reference Manual (TRM) https://www.cypress.com/file/126171/download and PSoC4 Registers TRM https://www.cypress.com/documentation/technical-reference-manuals/psoc-41004200-family-psoc-4-registers-trm-technical .

 

After this change, the device goes to a stop mode and consumes really low power.

 

How much? Let’s see on three different devices.

 

Keysight U1828A multi-meter

https://www.newark.com/keysight-technologies/u1282a/digital-multimeter-handheld-4/dp/58Y5948

 

Multi-meter is set to auto-range (the thermometer won’t turn on if set to the lowest range manually), the lowest range is 600 uA. The picture below shows 0.01 uA = 10 nA . We are on the edge of precision that can be displayed. In addition to that, the accuracy of this meter is 0.05 % + 5 cnts , which is 0.0005 * 600 uA + 50 nA = 350 nA.

 

image

Here is a live video showing the measurement. The auto-ranging takes a while, so I take multiple measurements in order to get the result in both run and stop modes.

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

Joulescope

Joulescope is a $800 device (low cost, compared to what comes next) for energy profiling. It was originally funded on Kickstarter, but is currently commonly sold. If you want to know more about it, here is a link to the website: https://www.joulescope.com/
image

I hope you don't mind if I just copy a few numbers from the specification https://www.joulescope.com/specs/

  • -1V to 15V voltage range
  • -1A to 3A current range, continuous
  • Up to 10A pulses (<10 ms, < 3A average per second)
  • Down to 1.5 nA resolution, equivalent to 32-bits of dynamic range
  • Synchronously measures voltage and current at 2 million samples per second, 14-bit
  • 250 kHz bandwidth
  • Rapid 1 μs switching between shunt resistors for seamless dynamic current measurement

 

First, the Joulescope multi-meter mode. It provides live view and has the ability to average values over time. I captured almost 20 seconds in the MCU stop mode.

image

At the lowest 18 uA range, it has a resolution of 1.5 nA (but for some reason adds one more fake digit) and accuracy of 0.25% + 30 nA = 0.0025 * 18 uA + 30 nA = 75 nA

It looks like the current was more flowing from the thermometer to the battery than the supposed way. Again, we are at the edge with accuracy.

 

Next, a scope view (yellow line shows the average value):

image

Then I tried the scope view and captured one temperature measurement. Waking up from the stop mode, measuring and displaying the temperature and going back to the stop mode. The scaling in GUI is automatic, which means I had to zoom to specific time in order to get a better picture of the signal. The dynamics of the current makes it sometimes hard to see the details.

 

Full measurement view

There is no way to differentiate between an active and stop mode, however, there are noticeable spikes when the MCU comes to live (ca. 2 Amps) and later when everything is shut down (ca. 200 mA).

image

MCU start

image

Run mode

Ca. 10 mA current consumption.

image

Starting LCD back-light

image

MCU and components shut down

image

Detail of the stop mode

Looks a bit different than the stop mode graph above.

image

Keysight N6705CN6705C power supply with N6781AN6781A unit

This device is a beast. Bench power supply with many power modules options. $8000 chassis with a $6400 module inside. https://www.newark.com/keysight-technologies/n6705c/dc-power-analyzer-current-pow/dp/02AC5191 , https://www.newark.com/keysight-technologies/n6781a/source-measure-unit-for-battery/dp/79R9083

(No, I don’t have this at home image )

 

Lowest power range of the optional N6781AN6781A unit is 10 uA. Accuracy is 0.025% + 8 nA = 0.00025 * 10 uA + 8 nA = 10.5 nA

 

However, the device display doesn’t seem to show what I was expecting.

 

image

 

Let’s see what the data logger mode shows. This requires a PC with software connected to the power supply. The graph resolution is 100 nA per division, the average line is obviously the one in the center. You can see a 30 s recording. The disturbance in the first 12 seconds was simply to illustrate what happens when touching the wires. The capacity of hands is enough to provide some current. If you look at the Avg column (not the Marker 1), you can see an average of 16 nA.

image

Conclusion

I tried to measure a very low current using three different devices and got five different results. I didn’t expect a $4 MCU can do such a benchmark even for a $14 000 setup image Anyway, I changed the consumer batteries in the thermometer for the industrial ones and hope them to last a few years…

 

What is the lowest current of your devices?

 

Thanks for reading,

David

  • Sign in to reply

Top Comments

  • fmilburn
    fmilburn over 5 years ago +8
    Hi David, Nicely presented and great follow-up on your part… I found out about the need to set floating pins on the TI MSP430 sometime back in order to minimize power. Of interest, some of the smaller…
  • clem57
    clem57 over 5 years ago +6
    A great read and a bit surprise of the floating pins in MCU. My static digital view is shattered. Thanks koudelad
  • dubbie
    dubbie over 5 years ago +6
    Very impressive low current measurement, as well as designing the low current electronics. I had a go at this once using a PIC microcontroller and only managed to get the sleep current into the hundreds…
  • mudz
    mudz over 5 years ago

    Wow, you sure jumped deep into the nano world, it seems. image
    Great work.. Thumbs up for that..


    -Mudz

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Jan Cumps
    Jan Cumps over 5 years ago in reply to Jan Cumps

    A comparison when reading current between 7 and 11 mA with a µCurrent and a Keithley DMM6500.

     

    The load is a Maxim ARM microcontroller running blinky, in series with its 3.3 V supply.

     

    first, µCurrent - scale set to 1mV / mA. The shunt resistor is 10 mΩ.

    image

    Now with the DMM6500 as current meter, in the 3A input, in the 10 mA range (it can take the 11mA in that range)

    The shunt is 10 Ω in that range.

    image

    image

     

    I'll post some lower scale measurements later ...

    • Cancel
    • Vote Up +5 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Jan Cumps
    Jan Cumps over 5 years ago in reply to koudelad

    For thosesituations where it fits, I use EEVblog's microCurrent.

    In essense, a low Burden voltage current to voltage converter with decent amplification.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • koudelad
    koudelad over 5 years ago

    Thank you for your comments. I am always surprised from what I learn when doing "basic" measurements like this current measurement.

     

    All the tools I used were borrowed. And I have to confirm that U1282A is a bit slow when taking reading. That is why I had to do multiple thermometer measurements to see the multi-meter reading from a run mode. Otherwise it has a nice feature set.

     

    At home, I have an inherited manual-ranging Metex 4660M. On the lowest range of 2 mA, it has the lowest resolution of 10 nA and accuracy of 6.03 uA . The readings were the same as with U1282A, in sleep mode the current jumps between 0.0000 and 0.0001 uA. However the thermometer doesn't start on 2 mA range, so I need to switch it to 200 mA to run and switch back to 2 mA after it gets to sleep mode.

     

    Joulescope is good for energy profiling of battery operated gadgets, especially with wireless radios etc. I don't know about a similar device in this price range. If you wanted to head a podcast with the designer, here is a link: https://embedded.fm/episodes/278

     

    One colleague has also recommended me a way of profiling 3V devices using one of EFM32 STK kits from Silicon Labs: https://uk.farnell.com/search?st=efm32%20stk . It requires installing the IDE, Simplicity Studio. More details are described here: https://www.silabs.com/community/mcu/32-bit/knowledge-base.entry.html/2015/08/03/profiling_an_externa-sRqf and in this discussion: https://www.silabs.com/community/mcu/32-bit/forum.topic.html/how_to_use_an_stkto-jLpQ . Primarily, it is supposed to be used with the MCU on the kit, but can be used to power an external device. Not sure about the range, I tried it a few months ago, probably between tens of nA and up to 100 mA. Definitely the cheapest option of all mentioned, so far.

    The biggest advantage (when using on the embedded MCU from Silicon Labs) should be current measurement for specific parts of code. (I haven't tried it.)

    • Cancel
    • Vote Up +5 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • three-phase
    three-phase over 5 years ago

    Interesting set of experiments to read through. I too have a U1282A, but have found it very slow to settle when taking readings. I then looked at Joulescope when it was a Kickstarter, but could never justify the purchase probably, until a few weeks ago when I wanted to measure the inrush current drawn on some instruments I was testing. Ended up with a Picoscope across a shunt resistor, but couldn't really measure the current for a sleep-mode with this method.

     

    Kind regards.

    • Cancel
    • Vote Up +5 Vote Down
    • Sign in to reply
    • More
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube