Teensy uSD Data Logger Project --> The high performance, battery operated data logger
Teensy uSD Data Logger Project --> The high performance, battery operated data logger!
-------------------------------
Teensy uSD Data Logger Features:
-------------------------------
1. uSD Logger has precision timestamping from a precision TCXO RTC +-5 PPM / 0.43 secs/day or 2.63 min./yr.
2. Uses the Teensy 3 ARM 12/16 bit analogs for precision sensor logging.
3. Uses Adafruit's MicroSD breakout board.
4. Uses a precision TCXO I2C RTC to generate the needed wake-up interrupt repeat alarms from "deep sleep" needed by the uSD logger.
5. uSD Logger is battery powered using a special boost converter to suck every joule of energy from two AA batteries.
6. Uses a Command Line Interface (CLI) and can use on any of the Teensy 3 serial ports. No IDE required.
7. uSD Data Logger "carrier PCB" is extremely small. ~ 1.250" x 1.670" or 31.75 mm x 42.418 mm. (size does not include the Adafruit MicroSD addon)
8. Logger operation is very simple ... Insert uSD flash memory card, ... hook-up an analog or a digital sensor ... install 2 AA batteries and log away.
-----------------------------------------------
Application uses for the Teensy uSD Data Logger
-----------------------------------------------
Environmental sensor logging
Portable lab sensor logging
Security sensor logging
RC plane / rocket data logging
or any project that needs a "teensy", low power, battery operated, high performance, data logger.
-----------------------------
uSD Logger CSV Logging Sample
-----------------------------
Data Logger uSD ReStart ... T3 @ 96 Mhz, I2C @ 400 kHz, SD @ FULL SPEED, CLI @ 115,200 baud
1,1.3079121,VDC A9 Sensor,21:7:53,7-12-2013,DOW=5,Fri,2.7705495,VDC AA Bat.,1734,uSecs. Task Execution
2,0.6664469,VDC A9 Sensor,21:8:0,7-12-2013,DOW=5,Fri,2.2918682,VDC AA Bat.,1905,uSecs. Task Execution
3,0.7752380,VDC A9 Sensor,21:9:0,7-12-2013,DOW=5,Fri,2.1806592,VDC AA Bat.,Low Battery(s) Warning!,1897,uSecs. Task Execution
Note: Task execution uses micros() to compute the execution time of the sample logging code before sleeping. Needed in battery calculations.
--------------------------------------
Sample uSD Logger Battery Calculations
--------------------------------------
Duracell "Coppertop" 1.5 VDC @ 2200 mHh
Alkaline battery new voltage: 1.50 - 1.65 Volts
Alkaline battery voltage under load: 1.10 - 1.30 volts
Alkaline battery discharge voltage: 0.80 - 1.00 volts
< 2.2 VDC of battery voltage is used as the uSD logger low battery(s) warning.
-------------------------------------------------------------------------------------
Repeat sample interval of 60 second and T3 code execution time @ ~2000 usec @ 31.68 ma. @ 96 Mhz. (does not the include uSD peak power surge - Notes 1,2 )
Capacity rating of battery (mAh) [2200] mAh = milli-Amp-hours
Current consumption of device during sleep (mA) [6.5] mA = milli-Amps <-----<<< Present T3 "deep sleep" mode quiescent current.
Current consumption of device during wake (mA) [31.68] mA = milli-Amps (does not the include uSD peak power surge)
Number of wakeups per hour [60] If always on, enter 3600 here.
Duration of wake time (ms) [2] ms = milli-Seconds. If always on, enter 1000 here.
Results: Estimated battery life is 11.99 days, or 0.03 years. <---------------<<<
-------------------------------------------------------------------------------------
Notes:
1. We don't have any expensive test measurement equipment needed to measure the SD card peak power. (In some cases > 100 mA. peak!) T3 idle current @ 96 Mhz is used.
2. AA battery total discharge voltage will not produce 100% current depletion.
3. The booster converter will work down to 1.8 V.
4. All calculations are approximate. For better results, just run the logger, with new batteries, and review the sdFat sample log when the batteries are depleted.
http://oregonembedded.com/batterycalc.htm
----------------------------------------------------------------
Command Line Interface Menu Sample of the Teensy uSD Data Logger
----------------------------------------------------------------
mySerial.println (F("-------------------------------------------"));
mySerial.println (F(" uSD Data Logger Command Line Interface "));
mySerial.println (F("-------------------------------------------"));
mySerial.println (F(" CMD (Case Sensitive) Function "));
mySerial.println (F("[A CR] --> Read Analog A9" ));
mySerial.println (F("[R CR] --> Read Time Date" ));
mySerial.println (F("[S h m s mo d yyyy CR] --> Set Time Date" ));
mySerial.println (F("[E CR] --> Write uSD Test" ));
mySerial.println (F("[F CR] --> Read uSD Test" ));
mySerial.println (F("[I CR] --> uSD Card Info " ));
mySerial.println (F("[B CR] --> uSD Benchmark " ));
mySerial.println (F("[L CR] --> uSD List Files" ));
mySerial.println (F("[K CR] --> Kill Log File" ));
mySerial.println (F("[B CR] --> Prt. Bat. Stats"));
mySerial.println (F("[T CR] --> CR2032 Date TS "));
mySerial.println (F("[a CR] --> 1 sec sample ")); // <----- power hungry
mySerial.println (F("[b CR] --> 1 min sample "));
mySerial.println (F("[c CR] --> 10 min sample "));
mySerial.println (F("[d CR] --> 15 min sample "));
mySerial.println (F("[e CR] --> 30 min sample "));
mySerial.println (F("[f CR] --> 1 hr sample "));
mySerial.println (F("[g CR] --> 1 day sample "));
mySerial.println (F("-------------------------------------------"));
mySerial.println ();
mySerial.print (F("CMD >> "));
Teensy uSD Data Logger Project --> The high performance, battery operated data logger!
-------------------------------
Teensy uSD Data Logger Features:
-------------------------------
1. uSD Logger has precision timestamping from a precision TCXO RTC +-5 PPM / 0.43 secs/day or 2.63 min./yr.
2. Uses the Teensy 3 ARM 12/16 bit analogs for precision sensor logging.
3. Uses Adafruit's MicroSD breakout board.
4. Uses a precision TCXO I2C RTC to generate the needed wake-up interrupt repeat alarms from "deep sleep" needed by the uSD logger.
5. uSD Logger is battery powered using a special boost converter to suck every joule of energy from two AA batteries.
6. Uses a Command Line Interface (CLI) and can use on any of the Teensy 3 serial ports. No IDE required.
7. uSD Data Logger "carrier PCB" is extremely small. ~ 1.250" x 1.670" or 31.75 mm x 42.418 mm. (size does not include the Adafruit MicroSD addon)
8. Logger operation is very simple ... Insert uSD flash memory card, ... hook-up an analog or a digital sensor ... install 2 AA batteries and log away.
-----------------------------------------------
Application uses for the Teensy uSD Data Logger
-----------------------------------------------
Environmental sensor logging
Portable lab sensor logging
Security sensor logging
RC plane / rocket data logging
or any project that needs a "teensy", low power, battery operated, high performance, data logger.
-----------------------------
uSD Logger CSV Logging Sample
-----------------------------
Data Logger uSD ReStart ... T3 @ 96 Mhz, I2C @ 400 kHz, SD @ FULL SPEED, CLI @ 115,200 baud
1,1.3079121,VDC A9 Sensor,21:7:53,7-12-2013,DOW=5,Fri,2.7705495,VDC AA Bat.,1734,uSecs. Task Execution
2,0.6664469,VDC A9 Sensor,21:8:0,7-12-2013,DOW=5,Fri,2.2918682,VDC AA Bat.,1905,uSecs. Task Execution
3,0.7752380,VDC A9 Sensor,21:9:0,7-12-2013,DOW=5,Fri,2.1806592,VDC AA Bat.,Low Battery(s) Warning!,1897,uSecs. Task Execution
Note: Task execution uses micros() to compute the execution time of the sample logging code before sleeping. Needed in battery calculations.
--------------------------------------
Sample uSD Logger Battery Calculations
--------------------------------------
Duracell "Coppertop" 1.5 VDC @ 2200 mHh
Alkaline battery new voltage: 1.50 - 1.65 Volts
Alkaline battery voltage under load: 1.10 - 1.30 volts
Alkaline battery discharge voltage: 0.80 - 1.00 volts
< 2.2 VDC of battery voltage is used as the uSD logger low battery(s) warning.
-------------------------------------------------------------------------------------
Repeat sample interval of 60 second and T3 code execution time @ ~2000 usec @ 31.68 ma. @ 96 Mhz. (does not the include uSD peak power surge - Notes 1,2 )
Capacity rating of battery (mAh) [2200] mAh = milli-Amp-hours
Current consumption of device during sleep (mA) [6.5] mA = milli-Amps <-----<<< Present T3 "deep sleep" mode quiescent current.
Current consumption of device during wake (mA) [31.68] mA = milli-Amps (does not the include uSD peak power surge)
Number of wakeups per hour [60] If always on, enter 3600 here.
Duration of wake time (ms) [2] ms = milli-Seconds. If always on, enter 1000 here.
Results: Estimated battery life is 11.99 days, or 0.03 years. <---------------<<<
-------------------------------------------------------------------------------------
Notes:
1. We don't have any expensive test measurement equipment needed to measure the SD card peak power. (In some cases > 100 mA. peak!) T3 idle current @ 96 Mhz is used.
2. AA battery total discharge voltage will not produce 100% current depletion.
3. The booster converter will work down to 1.8 V.
4. All calculations are approximate. For better results, just run the logger, with new batteries, and review the sdFat sample log when the batteries are depleted.
http://oregonembedded.com/batterycalc.htm
----------------------------------------------------------------
Command Line Interface Menu Sample of the Teensy uSD Data Logger
----------------------------------------------------------------
mySerial.println (F("-------------------------------------------"));
mySerial.println (F(" uSD Data Logger Command Line Interface "));
mySerial.println (F("-------------------------------------------"));
mySerial.println (F(" CMD (Case Sensitive) Function "));
mySerial.println (F("[A CR] --> Read Analog A9" ));
mySerial.println (F("[R CR] --> Read Time Date" ));
mySerial.println (F("[S h m s mo d yyyy CR] --> Set Time Date" ));
mySerial.println (F("[E CR] --> Write uSD Test" ));
mySerial.println (F("[F CR] --> Read uSD Test" ));
mySerial.println (F("[I CR] --> uSD Card Info " ));
mySerial.println (F("[B CR] --> uSD Benchmark " ));
mySerial.println (F("[L CR] --> uSD List Files" ));
mySerial.println (F("[K CR] --> Kill Log File" ));
mySerial.println (F("[B CR] --> Prt. Bat. Stats"));
mySerial.println (F("[T CR] --> CR2032 Date TS "));
mySerial.println (F("[a CR] --> 1 sec sample ")); // <----- power hungry
mySerial.println (F("[b CR] --> 1 min sample "));
mySerial.println (F("[c CR] --> 10 min sample "));
mySerial.println (F("[d CR] --> 15 min sample "));
mySerial.println (F("[e CR] --> 30 min sample "));
mySerial.println (F("[f CR] --> 1 hr sample "));
mySerial.println (F("[g CR] --> 1 day sample "));
mySerial.println (F("-------------------------------------------"));
mySerial.println ();
mySerial.print (F("CMD >> "));
Attachments
Last edited: