My initial attempts centered around running the joule thief at a low enough frequency to flash the LEDs itself, or by using the common NPN junction breakdown type flasher after the usual jt circuit. Both of these just used way too much power, the low frequency one was inefficient while the junction breakdown type required the jt to be run hard to produce the needed 12-15V.
What I eventually ended up on was a voltage-regulated joule thief circuit to boost the 0.5-1.5V from a single AA cell up to around 3V. This is then used to power a CMOS oscillator that blinks some LEDs.
The use of bright, efficient LEDs, low power 4000 series logic, and a carefully tuned power supply means that wasted power is kept to an absolute minimum.
The power supply works just like a joule thief with the following addition: Output voltage is fed back through R2 and D1 into Q2. Since D1 is a white LED, its forward voltage, combined with the base voltage of Q2, means that Q2 will turn on at around 3.2V. So when the output rail reaches 3.2V, Q2 turns on, shunting power from the base of Q1 to ground. This essentially stops oscillation until the output capacitor C1 drops low enough to shut off Q2. Overall this does a surprisingly good job of regulating the output rail without the usual losses of a linear regulator or zener diode. Of course, D1 could be replaced with a zener, a string of silicon diodes or TL431 for more accuracy, but a white LED was easily to find in the parts bin and worked fine. Also, if enough current is flowing, D1 will actually light up pretty brightly and can be used as another light in the ornament!
IC1-6 are the gates of a 4069 hex inverter that act as an oscillator and LED driver. Note the “active-low” type drive (LED cathode connected to output pins). This is done deliberately because the 4069 can sink more current than it can source. The LED flash rate is most easily changed by the value of C2.
The sub-circuit of D6, C3, and R9 causes D7 to fade between bright and dim rather than blink on and off. This has a nice effect of looking more like fire or candles rather than a robotic on-off blink. Take note of the unusual polarity of C3 due to the active-low logic!
Q1 & Q2 can be pretty much any NPN transistor from the junk bin. Higher Hfe is better.
D2 & D6 are Shottky diodes; select for lowest forward voltage and least leakage current.
(You might notice in the pictures that I used power components for the transistors & diodes; they're just what I had on hand and regular parts are OK.)
The 4069 should be picked for the lowest possible voltage operation. Try different manufacturers, I found several Toshiba TC4069UBP's in the lot I had that ran all the way down to 2.5V.
D3, D4, D5, & D7 are LEDs of any type. They will be starved for current running from the 4069, so pick the most efficient ones you can. LEDs from a discarded string of Christmas lights worked great.
L1 & L2 are a transformer, a common line filter type works fine. Avoid winding your own transformer as loose windings tend to emit an annoying siren rather than “sing” in this particular circuit.
R6, R7, & R8 are current limiting
resistors that may not even be needed.
The resistor values used for R1 and R2 will depend heavily on the Hfe of the transistors you use and several other factors. Start with 1-10K for both and try some different values. Run the circuit from a variable power supply and make sure you have the CMOS oscillator or comparable load attached while you monitor the current draw.
In short, lower values of R1 will allow the circuit to operate from nearly-dead batteries, but will drain unnecessary power when the battery is full. Higher values of R2 will bring up the output rail voltage, but too high and the circuit will go out of regulation and draw too much power.
With the components I used, I ended up with a circuit that could blink one orange, one red, and two green LEDs while drawing around 5-10mA. It was able to run an AA battery all the way down to 0.5V, the cutoff of the transistor. It exhibits a similar curve to a DC-DC SMPS, where it requires more current at lower voltages and less at higher.
Where to go from here? Well, the 4000 series logic family has some pretty neat chips, and since each additional IC takes only microamps to run, you could add on quite a few of them and make some complex displays. The 4017 has a counter with built-in 1 of 10 decoder, making it perfect for sequencing LEDs. And of course there's always room to improve the joule thief end of things; germanium transistors, buck-boost topology to tolerate a wider battery voltage range etc.