How to run an Arduino clone on a 9V battery for weeks or even months
hwstartup.wordpress.com
hwstartup.wordpress.com
For more performance oomph, there are Cortex-M3 parts which exceed or meet the efficiency of the MSP430 line, such as the Energy Micro EFM32.
If you use a buck regulator, you could use starting voltages beyond the chip's max voltage limit and burn the power past a typical dead cell's voltage levels -- start with a 12V battery using 1.8V logic and burn the battery down to 2V -- probably around 98% used.
I think you'll find that most projects out there use a voltage regulator because you can use up "more" of the battery this way.
Two 0.9V alkaline cells can still power most microcontrollers, especially in sleep mode, and red LEDs will still light. If you really need higher voltage, than the boost is the way to go.
I previously worked off of an MSP430-turned-EFM32 product which had a MCU+radio lifetime of 5-7 years on 4-AA cells (two paralleled). Most switcher solutions we looked at wouldn't have netted a measurable increase in runtime due to the much higher sleep currents in those units compared to even the MCU.
You'll have a really bad time if you try to build a buck-boost switcher in a breadboard and won't have a clue why its not working. On the other hand you can throw an LDO into a breadboard with a couple caps and be pretty confident it'll just work.
TI's example code is often confusing and over-engineered. It is much better to find advice on blogs and forums instead.
The community has some great individuals that will produce great examples and tutorials. Unfortunately, it is very far removed from places like GitHub. Almost all code is shared directly in the forums at 43oh.com.
There are a couple of big projects surrounding MSP430's. Energia is, from what I understand, an Arduino-like IDE which lets you program at a much higher level, but at the cost of some performance. When you only have 512 bytes of RAM, it may or may not be an issue. Another one is BSP430 which is a lower level set of libraries. It promises much higher level abstractions at the cost of small performance penalties. I found the tutorials to be rather terse, but I may need to give it more time.
Outside of those big projects, there is lots of duplication of effort. It is typical to see 3-5 different implementations of bit-banging UART drivers that are all slightly different. I am no exception, as I started writing my own little set of libraries for dealing with various peripherals.
Lastly, a lot of the tutorials out there either use the register names directly (P2IE, P1SEL, etc) or provide really poorly named abstractions (cal_adc_15t30). Most of my time working with it so far has been spent on naming functions something like gpio_get_val(), uart_puts(), etc.
P.S.: Physical hardware buttons are terrible devices. Debouncing them is a must and most implementations in the wild are incorrect. [1] is a good read.
#define LED_GREEN BIT6
would be an improvement. However, I'd be willing to pay a small cost in terms of RAM/performance for doing something like this: gpio_get_val(P1, 6);
which would return whether port 1, pin 6 is high or low. I think that can even be a macro so it would be compiled down to (P1OUT & BIT6).It's powered by the metal. The fruit just acts as a salt bridge from the metal. The power source is the oxidation of metal.
I've also wondered if there are clamp-on induction taps that can be clamped to power lines (say, above the tiles in a corporate bathroom powering the lights) and drive low-power devices like a small Arduino.
This 9V hack is really cool for sensors and the like, but it wouldn't power a full OS with wireless AP ability for very long.
http://en.wikipedia.org/wiki/Thing_(listening_device)
Powered by an external radio beam. Transmits by modifying that same beam and reflecting it back. No internal power source. No active transmission. Weighs 1.1 ounce and was built in 1945
I had the crazy idea a while back about stuffing a micro-controller, temp+humidity sensor, piezo speaker into my guitar case to let me know if the Humidity got out-of-band but I couldn't see how to get this to run for more than a few days with out having a gian5t battery pack or having to plug it in to the wall.
Now I know, and knowing is half the battle.
The button is wired to "reset" pin of an attiny45, the LEDs are connected to two pins of the chip, and the code, predictably, ends with a low-power sleep instruction.
Two 2100mAh AA-sized accumulators provide the power.
I "launched" it into use about 4 months ago (I forgot the exact date), still did not have to recharge.
Try it IRL and then tell me your opinion, I'm curious to know your opinion.
This would be a specialty flavor of the arduino, not a change for the standard.
The article's try and see approach is very detailed and a great read for anyone looking to get into prototyping with AVR for battery based projects.
Any clues for how to keep 9v batteries providing enough juice when they're in the fridge? I'm trying to build a fridge monitor: http://gilgamech.blogspot.com/2013/02/wireless-temp-sensor.h...
The most obvious would be running the circuit off of the fridge power supply directly. I'm not sure how comfortable you would be with re-wiring your fridge though. The potential to start a fire is probably relatively small, but it still exists.
Another option would be running a small heater around the battery itself. It shouldn't take very much power to keep a 9v warm enough for minimal losses in a fridge. (http://www.bipowerusa.com/products/bipower-bl9v-u.pdf)
Ultimately, this device would influence refrigerator manufacturers to include this technology in their base models. I'm tired of fiddling with dials to try and figure out if my fridge is at 2C or 5C or -1C. (38F or 42F or 30F). I want fridges to know what their internal temperature is, and what we think it should be.
I'm thinking more about ensuring wide adoption through low-cost and low-intrusiveness. Modifying my fridge would make a good Hackaday post, but not such a good Kickstarter project.
(Maybe even a fridge/freezer with a barcode scanner and multiple compartments -- give it a database table of appropriate temperature ranges for different foods and let it set the temp in each compartment automatically. It could keep your ice cream from melting and prevent your lettuce from freezing? How about sectional temperature controls, like in car cabins?)
I'll look into reprogramming them, but assuming the Arduino prototyping board is ok, I'm only replacing the ~$5 ATMega processors.