Computing stuff tied to the physical world

How low can it go?

In AVR, Hardware on May 7, 2012 at 00:01

While experimenting with various alternate power sources for a JeeNode, I was curious as to just how low it could go in terms of voltage and still function as a simple wireless transmit node.

Made the following mods to push things a bit more than usual:

  • adjusted the fuses to set the brownout level to 1.8V iso 2.7V (efuse: 0×06)
  • changed the RFM12B’s low-battery level to 2.2V iso 3.1V (rf12_control: 0xC040)
  • removed the voltage regulator from a JeeNode, and keep just the electrolytic cap
  • changed the radioBlip sketch to run at 8 MHz, i.e. 16 MHz clock % 2

This is the same setup as with the Tiny Lithium discharge setup described a few days ago, BTW.

Here’s the JeeNode-under-test (JUT?) – the cap I used here is again 100 µF:

DSC 3070

One pair of wires is from the power supply, the other from the multimeter.

And then it’s just a matter of hooking it up to a power supply and gradually lowering the supply voltage.

And the result is … 3.0, 2.9, 2.8, 2.7, 2.6, 2.5, 2.4, 2.3, 2.2, 2.1, 2.0, 1.9, 1.85 Volt still works!

Anything lower than that and the sketch stops sending out packets once a minute – but then again, that’s probably just the brownout detector of the ATmega kicking in!

To get it back up, I re-connected the power supply at 2.1 V and the node started its blips again… lower didn’t work, my hunch is that the RFM12B’s clock circuit needs that slightly higher voltage level to start oscillating.

  1. This is pretty cool and interesting. Have you tried using the low power EFM32 or MSP430 or STM32L MCU instead?

    • This does not help very much as the limiting factor seems to be the undervoltage threshold of the RFM12B.

  2. For comparison: i did some testing with my xbee zb24 modules (without micropr.). These modules stop transmitting at around 1716 milliVolts.

  3. JC, would you mind repeating these tests with the standard 16Mhz JeeNode? How much further can that be pushed down?

    I know that officially the JeeNode is running the ATmega328 outside of spec at 16Mhz and 3.3v, but I do have one which is running at 3v at the mo, and behaves perfectly well. How much head (or should that be bottom?) room is there?

    • Oh, but wait – it is running off a 16 MHz resonator – I merely set the pre-scaler to ÷2 so the ATmega runs at 8 MHz. My impression is that the clock circuit is fine at 16 MHz, even at low voltages – it’s just the propagation delays that mess up on the rest of the chip for low frequencies. Just a hunch, though.

      Only difference with a std JeeNode is that I’m running without regulator. That shouldn’t affect these results.

Comments are closed.