I need some advice on what to buy. I want to activate a sensor with 5V digital, communicate with another instrument via rs232, obtain A/D data and log data on an SD card, all at very low power. Data would be sampled at around 0.1 Hz for a couple hours each day. It sounds like an Arduino Uno with a SD card logger board would work, but is there something better? Can I use the GPS logger for this? Can I save data on the GPS logger in my own format, or does it have its own format that I cant change? I prefer to stay with an Uno since I've used one before. What I am thinking of getting is:
ARDUINO UNO R3
Adafruit Assembled Data Logging Shield for Arduino
9V 1A Arduino power supply adapter
Stackable shield header
CR1220 battery
Uno is not a good choice for low power. The reason is that the linear regulator, power LED, and (I believe) USB chip are all constantly using power, even when you have the Uno's ATmega328P microcontroller in sleep mode.
I'm not sure which boards are good on power consumption out of the box. It might be easiest just to make your own from scratch. I have used the Pro Mini. I removed the power LED and 3.3 V regulator from the board and that's a bit tricky since they are surface mount and very close to other components.
Here's some good information on reducing power usage: https://www.gammon.com.au/forum/?id=11497
It says that the Uno still uses 34.5 mA with the ATmega328P asleep. That will drain your batteries very quickly!
Railroader,
I forgot to mention this would be deployed in the ocean, running autonomously.
Pert,
Making a circuit from scratch seems to (at least) cut power in half. Low power is a plus, but so is development effort. If I were to make a circuit from scratch, can I still use the IDE to program it? Is there any guidance for chip setup and programming?
jgolden:
If I were to make a circuit from scratch, can I still use the IDE to program it? Is there any guidance for chip setup and programming?
Yes. If you use a 16 MHz crystal/oscillator in your circuit then you can simply continue to use it as an Uno. If you wanted to use a lower clock speed then I would recommend you to use MiniCore:
After installing MiniCore, you can select Tools > Board > ATmega328 and then you have a variety of clock speed choices from the Tools > Clock menu.
Next, you will need to burn the bootloader to the microcontroller in your circuit (e.g. ATmega328P). Even if you decide not to use a bootloader, this is still necessary in order to configure the microcontroller fuses, which are likely not what you want in their factory settings:
Connect an ISP programmer to your ATmega328P. If you don't own a dedicated ISP programmer then you can use your Uno as an "Arduino as ISP" programmer.
Tools > Programmer > select your ISP programmer
Tools > Burn Bootloader
To upload sketches to your microcontroller, you now have two choices. Normally you would upload to your Uno over serial using the USB cable. That is very handy because you will typically want that connection to your computer during development for debug output anyway. You also have the option of using the ISP programmer to upload via Sketch > Upload Using Programmer. This is nice because the serial upload requires a bootloader, which takes up 0.5 kB of your precious program memory but Upload Using Programmer doesn't require a bootloader, and will actually erase the bootloader the first time you upload. If you're doing Upload Using Programmer, you should use MiniCore and select Tools > Bootloader > No before burning the bootloader.