Low Power Arduino

This is our attempt to make a low power Arduino variation board. Some feature of the board:

  • It uses the "breadboard" (ATmega328 on a breadboard (8 MHz internal clock)) as the board option in Arduino IDE 0018.
  • Utilizes full SMD components to reduce the cost of assembly.
  • Ultra can be powered by either the USB, external DC source, Li-Ion/Polymer or all of them at the same time.
  • Runs on 3.3 V rail as most low power interface runs on 3.3 V rail or lower.
  • A low power 32.768 kHz is present to allow the board use it as a asynchronous timing source during power safe mode. This removes the need of an external dedicated RTC IC.
  • Microcontroller - ATmega328P-AU
  • Clock - Internal RC 8 MHz oscillator
  • External DC source range - 7.5 - 36 V, 2 A
  • Battery - Lithium Ion or Lithium Polymer with temperature monitor for charging
  • Battery charging - Maximum 500 mA charge current
  • Buck-boost converter stage for usage of input voltage lower than 3.3 V
  • On board temperature sensor - MCP9700 connected to ADC7
  • Battery voltage monitoring - Connected to ADC6
  • USB port protection - 500 mA resettable fuse
  • Analog reference voltage with LC filter
  • Indicator LED connected to digital pin 13
  • Has Arduino standard breakout pins at the bottom side using SMD 2.54 mm headers
  • Dimension - 55.88 mm x 68.58 mm

We tested the 1st PCB attempt in terms of functionality and found out that we forgot to supply the MCP9700 sensors with supply, :o. Have yet to measure the current consumption especially during power save mode but we hope it goes near the design specifications.

Schematic Revision 1.00

Where could we see the schematics? Preferably in Eagle format.
And where can we buy this?

Udo

for low-power have a look at this development too :
http://news.jeelabs.org/2010/09/03/jeenode-goes-solar/
http://news.jeelabs.org/2010/09/02/sending-packets-without-battery/
and
http://news.jeelabs.org/2010/09/06/running-off-a-single-aa-battery/

(no, I have no vested interests in that business, just being excited)

Clock - Internal RC 8 MHz oscillator

Calibrated?

Where could we see the schematics? Preferably in Eagle format.
And where can we buy this?

I just uploaded the schematic. I did the design in Diptrace because it's easier for me. I'm not sure whether I would sell this but it depends on whether people are interested. :slight_smile:

for low-power have a look at this development too :
http://news.jeelabs.org/2010/09/03/jeenode-goes-solar/
http://news.jeelabs.org/2010/09/02/sending-packets-without-battery/
and
http://news.jeelabs.org/2010/09/06/running-off-a-single-aa-battery/

I'm crazy about low power stuff as it is so important in my 9-5 job.
The external 7.5 V to 36 V input was meant for solar panel but needs a Li-Ion/Li-Pol on top of that. :slight_smile: Thanks for the links.

Calibrated?

I'm looking into that but it might need to load the calibration values into the OSCCAL register during power up from any storage like the EEPROM or flash in the sketch itself. But we tested the serial communication up to 1M, it works fine but haven't test against temperature variation yet. I'm quite sure it needs calibration as LilyPad itself change from Internal RC to the external resonator probably due to this same reason.

I'm quite sure it needs calibration

I believe so, too...
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1264584005/8#8

I have no idea if I've been able to calibrate or not. The whole process went very strangely for me. At one point, I thought I had bricked one of my processors. Yet it still responded when performing the calibration. After a few more attempts it came back to life. I foolishly had not benchmarked the processor before hand so I don't know if anything actually changed.

If you decide to try your hand at calibrating I would certainly like to hear how you get on.

Hmm, the processor has a 32kHz crystal, so it should be able to automatically calibrate. I think there exists an application note that describes this process but I seem to be able to find it with Google right now.

Udo

@48X24X48X
This looks great! I'm also working on a low-power Arduino (well, Sanguino) variant, specifically for parasitic / energy harvesting power sources (http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1281416433/6)
It includes interchangeable power shields for various sources (solar/battery, piezo, peltier, RF), but nothing explicitly for charging LiIon yet.

Looks like yours is further along, though - my boards are on a monthly batch order that only went out to the PCB house yesterday.

Did you get a chance to measure the sleep current on this design?

@48X24X48X
Do you need the 22pF caps on the watch xtal, or is that in case you can't find a 6pF xtal.

I ask because I'm doing something similar with a 1284, I don't have room for the caps but a 9pF xtal shouldn't need them with that processor.

If you decide to try your hand at calibrating I would certainly like to hear how you get on.

I will definitely post it here if I manage to get it work. :slight_smile:

Hmm, the processor has a 32kHz crystal, so it should be able to automatically calibrate. I think there exists an application note that describes this process but I seem to be able to find it with Google right now.

I think the application note is AVR053 but it doesn't need a 32kHz crystal for this calibration process. The programmer (AVRISP/JTAG/STK500) will supply a 32.768kHz clock to the MCU for calibration. I found that we can write the OSCCAL register directly in AVR Studio but we have to point where the value is in EEPROM or flash using one of the programmer. So, in this case we don't have to load this value in the sketch.

It includes interchangeable power shields for various sources (solar/battery, piezo, peltier, RF), but nothing explicitly for charging LiIon yet.

I made something similar for my company usage where we have different power shields, RF shields, and sensor interface shields that fits into different applications. But, we were using ATmega128 as our board was based on Crossbow's Micaz at that time. It provides flexibility but it gets annoying when your stacking goes higher and higher although we were using low profile board to board connector (1.00mm pitch).

Did you get a chance to measure the sleep current on this design?

I have yet to measure yet because I went straight to the 2nd revision as I changed the buck-boost converter (LTC3530) to TPS63001 instead as it uses so much less external components and cheaper too! But if I recall correctly, using ATmega128 and similar setup, it was around 40 uA. I didn't go for very low LDO design like MCP1700 as I think some other shields might need more than the 250 mA for the 3.3 V rail. For example an XBee Pro module. Once, I get the 2nd revision up running, I will post the current during power save mode here. :slight_smile:

Do you need the 22pF caps on the watch xtal, or is that in case you can't find a 6pF xtal.

The crystal load capacitance is 12.5pF. I estimate the stray to be around 5pF and using C=2CL-CS it comes out to 20pF actually. But I have a reel of 22pF lying around, so I think might as well give it a try.

Higher load capacitance implies less pullability. Thus in doubt better precision.

With regard to the callibration: I thought the RC oscillator is much more affected by temperature. Hence a recallibration at startup might be reasonable to improve precision.

Udo

Higher load capacitance implies less pullability. Thus in doubt better precision.

Thank you for pointing that out. I will try to find a crystal with lower load capacitance, probably 6pF.

I don't get your point. If you go for lower load you will get more pullability and thus less precision / stability. Is this what you are aiming for?

Udo

If you go for lower load you will get more pullability and thus less precision / stability.

Yes, you are correct as the pullability is proportionally to the inverse of load capacitance square. I was also thinking of removing the 2 capacitors (that's why I was saying about 6pF crystal, :)), but obviously it will increase the ppm value too.

OK, got it.

I looked up your schematics. The power path controller and the regulator come in very small packages. How did you solder those?

Udo

How did you solder those?

I usually use hot air for those IC without legs. Sometimes I used hot plate and toaster oven too. Anything that has pins, I would use a solder iron with very sharp tip. :slight_smile: