Candle Flame Oscillations as a Clock
cpldcpu.com335 points by cpldcpu 5 days ago
335 points by cpldcpu 5 days ago
I love this. This is why we need science: a very interesting and curious fact is examined. Experiments are done and a toy is built based on the findings. It is all totally useless, excepts that human knowledge is brought forward and it is also fun. This is important. It is the reason why we are here. Life would be dull without these kind of highlights in my day. And for this, public funding is needed, because it makes people happy, and happiness is an important persuable goal of many public bodies. And because goal directed research (which is often dull and predictable) of stuff that can be financially exploited is funded anyway, non-publically.
From the article:
> A fascinating fact is that the oscillation frequency is rather stable at ~9.9Hz as it mainly depends on gravity and diameter of the flame.
This reminds me of when I first heard about Dolbear's law by which you can get an approximate measurement of the air temperature using the number of chirps per minute from a cricket.
In the late 1980s I did an electrical engineering internship in a coal-fired power station over summer vacation. The gas furnace igniters ran continuously, but how do you detect presence or absence of burner flames against semi-apocalyptic background of ignited pulverised coal dust being air-blasted into the furnace? Have a little window and photosensor pointing at the burner flame and FFT. No spectral component spike at xHz (IIRC x ~= 13? -- it's a burner flame, underlying dynamics not same as for candle wick) --> ringing alarms, flashing lights.
What was the preferred way of doing FFT at that time?
hasn't the preferred way been Cooley-Tukey consistently since 1965?
https://en.wikipedia.org/wiki/Cooley%E2%80%93Tukey_FFT_algor...
Bingo. We certainly learned about Cooley-Tukey in undergrad back then. That power station was 100% Hitachi Heavy Industries turnkey. The control rooms had Hitachi mainframe and some minicomputers running proprietary real time OS (I guess). These were the days when the video controller for a colour industrial process control raster display CRT was a waist-high cabinet. So you'd transduce the flicker and then transmit it via analogue current loop to a rack in the control room annex, convert back to voltage, A/D it... and crunch the FFT on one of the control room computers. Something like that. Cheap distributed compute just wasn't a thing at the time.
Only tangentially related:
In the Quake source code, they have strings to represent the intensity over time of a flickering light source:
https://github.com/id-Software/Quake/blob/bf4ac424ce754894ac...
// 3 CANDLE (first variety)
lightstyle(3, "mmmmmaaaaammmmmaaaaaabcdefgabcdefg");
They range from a to z and progress through the string with time, so the candle starts out at medium "m" intensity for a bit before it goes dark ("a") for some time, etc.Very interesting article from the same guy where he reverse engineers the randomness of a flicker LED.
I was today years old when I learned that the frequency of a flicker candle flame is ~9.9Hz :-)
That is awesome. And I am so sad an individual that my first thought was of a software plug-in that would use this frequency to generate realistic candle-flicker effects.
To continue this tangent, legend has it that some of those battery powered tea candle lights actually reuse the chip from cheap music playing trinkets. If you replace the yellow LED with a speaker, you might hear beepy christmas music or happy birthday.
I've never found one myself (most of them have a better candle simulation chip than that), but they are apparently out there.
This was 10-15 years ago.
In between they used dedicated ASICS: https://cpldcpu.com/2013/12/08/hacking-a-candleflicker-led/
And more recently simply microcontrollers: https://cpldcpu.com/2024/01/14/revisiting-candle-flicker-led...
What a testament to the might of the global electronic supply chain that entire computers are cheap enough to be in disposable candles.
Single use Vape-pens too. Some of those have displays and Bluetooth.
Insane.
Just to offer an alternate perspective.
While technically a PIC12 is a computer since it has I/O, tiny storage, a PC and an ALU - it’s hard to even think of it in the same category as what most think of as a computer. IMHO the takeaway is more what the bare minimum it takes to be a computer, which isn’t much. (In other terms, a PIC does not meet the DOOM threshold).
PICs are so old and rudimentary that they started out as peripheral controllers for “real” computers in the 70s. It turns out you can do some useful embedded stuff with a basic chip, but even the newest of these are on 30 year old semiconductor tech at this point.
That may sound jaded, on the other hand I do find mass production of modern level integration and speeds to still be marvelous.
And as an EE, the “white” LED in the candle is more interesting than the uC!
In strings of programmable LED lights every single LED is actually an LED combined with a computer. This allows the LEDs to be addressed individually without loads of wires.
Computer is overselling it a bit. It's a fixed logic latch+shifter. Basically each LED takes first few bytes for itself and shifts out the rest down the chain.
Still awesome this is small and cheap enough to put into individual lights of course.
single use vapes should be outlawed imho -- it's so wasteful to include both the cart and the "pen" (power delivery) in one package to be thrown away.
Chaotic circuits are neat, but they are actually not random (their output distribution is not uniform or gaussian). And candles are not random either :)
btw, slightley related: https://cpldcpu.com/2020/06/15/building-a-chaotic-oscillator...
> their output distribution is not uniform or gaussian
https://www.worldscientific.com/worldscibooks/10.1142/7200#t...
> "More in details, Ando and Graziani demonstrated that the Chua's circuit can be used to generate either a gaussian or a uniform white noise. To do this, they investigate the statistical and spectral characteristics of the signals generated by a Chua's circuit with respect to different values of the parameters α and β. They then applied the x^2 method to determine which set of parameters leads to a signal having the statistical and spectral characteristics more similar to those of either a Gaussian or uniform noise. By using this method, a signal with a Gaussian-like distribution is obtained with a confidence of 95% for this set of parameters: ..."
They've got charts of the probability density functions for each that seem reasonable to me.
Nice, I was not aware of that! Quite interesting. Thank you for the source.
It seems to be a corner case. As I learned to know them, chaotic circuits have unpredictable cyclic behavior. Chua's circuit typically follows an oscillatory behavior with a double attractor.
If true randomness is the goal, it is much easier to use other sources of randomness like avalanche transistors, jitter of ring-oscillators in the analog domain or LFSRs if you are in the digital domain.
This was a cool post. A few nitpicks for anyone else interested in the topic:
(1) a process can be random without being uniform or gaussian
(2) a deterministic process can generate a uniform or gaussian output
(3) chaotic systems are traditionally deterministic by definition. they're deterministic and are sensitive to initial conditions.
Thank you for your comment, indeed!
I think the main confusion for analog implementations of chaotic circuits is that they often have an inherent source of noise (e.g. johnson or flicker noise of resistors, transistors) which will be amplified into large changes by the sensitivity of the system to initial (and also intermediate) conditions.
So the actual implementation has an unpredictable behavior, but this is because the randomness of the components is amplified.
I don't know what the most obvious distinction between a chaotic analog circuit and a TRNG is. For me it was always obvious that any kind of visible structure in the trajectory (the attractors) contradicts randomness. But whenever people see Chua's circuit brought up, there are lots of commends regarding random number generators. It turned into a bit of a pet peeve of mine.
That makes a lot of sense.
I don't know much (or really anything) about circuits and circuit noise.
There is a long history of deterministic pseudo RNGs, which you may already know about. https://en.wikipedia.org/wiki/Pseudorandom_number_generator. These are sometimes chaotic. In this line of thinking, a thing that generates unpredictable noise and adds chaos would make probably a good hardware PRNG.
But the chaotic part is not actually random (although it's hard for attackers to predict). And whether the noise is random depends on a bunch of physics.
But if this has gotten to the point of a pet peeve to you, you might be interested in Randomness Extractors (https://en.wikipedia.org/wiki/Randomness_extractor) which are a way of thinking about questions like "we have an unpredictable source of bits, but it's not as random as it seems... how can we extract actual randomness from it?"
For example, extractors can take low quality somewhat random non-uniform (or non-gaussian) output and use it to create high quality uniform (or gaussian output).