Concept and Hardware-Design
Power supply with very low quiescent current
The main challenge was to design a power supply, that guarantees a long-lasting battery life, as well being enough powerful to light up all 31 RGB-LEDs at once.
A single AAA-Battery has a nominal voltage of around 1.5V. While discharging, the voltage drops under 0.9V at the end of its capacity. The SK6805, however, needs at least 4.3V to work properly (the datasheet recommends at least 3.5V, but then the colors shift to reddish quite significantly). One LED fully powered on (white) draws ca. 22mA, thus all LEDs together would consume around 650mA which is a lot of current!
To boost up the battery voltage to the desired 4.3V the TPS61200 has been used. The Low Input Voltage Synchronous Boost Converter is perfectly suited for this application. It can deliver up to 1.3A, although not very efficiently.
However, the rest of the cuiritry does not need such a "high" operating voltage. In Low-Power applications, the lower the operating voltage is, the smaller gets the power consumption of the device which results in a longer battery life. Therefore, operating voltages of 1.8V and below became a standard in the industry.
But there is a drawback at those low voltages. Maintaining high clock speeds of integrated circuits is getting substantially harder. Specially for older technologies like the AVR architecture used in the ATtiny-Family.
As you can see in the graph below (datasheet, p. 163), the maximum clock speed of the ATtiny45 is kind of linear to the operating voltage.
For generating the signals for the NeoPixels, a clock speed of at least 8 MHz is necessary. Thus, the ATtiny must be powered with at least 2.5V. While testing, I've noticed that sometimes the ATtiny has some difficulties to start up. As a result of this, I've increased the operating voltage to around 2.9V which didn't effect the power consumption significantly. To generate this specific voltage, a different DC-DC boost converter, has been used, with a very low quiescent current of only 5.5μA, namely the TPS61220.
This voltage rail is always powered on, if a battery is connected. That's why it's really important to put everything in sleep/power-down mode, when the device is not in use. Specifically the microcontroller and the temperature sensor which is a TMP116 (High-Accuracy, Low-Power and I²C-Compatible). The second DC-DC converter for the LEDs is turned off by the ATtiny to save even more power if nothing gets displayed.
I have measured a total current consumption in sleep mode of only 20μA at room temperature. This leads to a theoretical battery life of up to 6 years, considering a fully charged AAA Alkaline battery with a typical capacity of 1200mAh.
Reverse polarity protection for a single 1.5V Alkaline battery
As it might happen, someone puts in the battery the wrong direction which would result in potentially killing the entire electronics. To prevent this, a reverse polarity protection has been built in. A simple diode-circuit wouldn't be sufficient due to its substantial voltage drop. Thus, a more complex solution has to be found. This paper by Texas Instruments had some really useful information how to achieve this. E.g. this example schematic:
For this project, the circuit above has been modified slightly. For driving the gate of the MOSFET (FS8205), the internal 2.9V supply has been used. An additional low voltage schottky diode has been placed in parallel to the MOSFET, to help starting up the DC-DC converter....Read more »