Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - ParticleViolin

Pages: 1
1
I'm producing a datalogger that needs to stay alive for at least a month between battery swaps (hardware and software detailed below). My multimeter (connected at the battery) tells me that I'm draining <1 mA on average while the logger is in Power Down sleep mode, and it spends the vast majority of time asleep. When the logger is writing to SD (once a minute), usage shoots up to ~20 mA for maybe <50 ms.

The problem is that no matter what battery setup I use, the logger only stays alive for less than 3 days. I've tried 2x AAs, a 1200mAh Duracell USB power bank, as well as several quadcopter Li-ion batteries. My most recent test was with a 3.7V 860mAh Li-ion battery, and it lasted almost 3 days (71.79 hours, really). That's basically 12 mA drain to get that sort of battery life, which is way beyond what the multimeter is indicating to me.

Does anyone have any ideas as to why this is happening?

This is an on-going problem I've been having, so here's some troubleshooting that I'm working on:

  • I've ordered a processor board without a battery option (gets rid of the battery charging indicator LED).
  • I'm now testing the TinyDuino stack without external circuitry, just the processor + SD + RTC + protoshield connecting to a Li-ion battery, and the logger printing fake data to the SD card. I previously had an indicator LED and a DHT11 powered from a digital pin and VCC respectively, but the presence of those didn't change my <1 mA sleep reading.
  • I haven't tested constant power from a wall plug, which would tell me whether the board just refuses to continue working after 3 days.



Here's the hardware setup:

  • TinyDuino processor module with Li-ion battery option
  • TinyDuino MicroSD module
  • MicroSD card from Tiny Circuits
  • TinyDuino RTC module
  • Proto module with terminal blocks
  • 3.7V 680 mAh Li-ion battery (connected to Vin with jumper wires since the connection jack doesn't fit the TinyDuino)

Testing gets done at 19–25 °C, 32–58% relative humidity.

Here's some pseudo-code representing the logger's function:

Code: [Select]
Setup {
    minuteValueFromLastWakeup = RTC.getMinutes
}

Loop {
    Go to sleep for 8s. (Rocket Scream's Low Power Library, 'Power Down' mode, ADC and BOD off.)
   
    if (RTC.getMinutes != minuteValueFromLastWakeup) {
        if (batteryVoltage >= 2800 mV) {
            Open logfile.csv on microSD card.
            Write <100 bytes to the card.
            Close the file.
        }
        minuteValueFromLastWakeup = RTC.getMinutes
    } else {
        Do nothing.
    }
}

Pages: 1
SMF spam blocked by CleanTalk