Reverse Engineering Flickering LED (+ RGB)

    1.5 years ago on Habré wrote about the attempt to reverse-engineer a randomly blinking LED. Then, attempts to analyze the patterns of flickering of the LED as a black box were not crowned with final success - however, the distribution of the brightness modulation duty cycles was established, and an emulator was written. Over the past time, different groups have opened flickering LEDs - and a little more has become known about their work. Finally, my hands reached them.

    Over the past time, it was discovered that crystals of "random blinking" are quite a few varieties. Photographs and thoughts of the authors on the principle of operation of similar crystals - siliconpr0n.org , cpldcpu.wordpress.com , hackaday.com. It is surprising that not only does someone substantively develop and mass-produce such a seemingly insignificant thing as a flickering LED - there is still progress / competition!


    Red flickering LED



    Crystal size 580x476 µm, technology 3µm. 3 contacts - plus, minus and output to the LED crystal.

    It seems that as a source of random data, the phase difference between the two RC generators is indirectly used here, and the behavior is not deterministic. There are many options for implementing this chip, for example, you can find an option with LFSR and one generator (16-bit shift register with linear feedback - for implementation it requires a 16-bit shift register and one multi-input XOR, the repetition cycle of the generated pseudorandom sequence is 65536 with optimal configuration choice, the simplest hardware pseudo-random number generator).

    Crystal photo without metallization:


    RGB flashing LED



    The behavior of this LED is completely determinate: differences in the behavior between different LEDs only in the frequency spread of the built-in RC generator (~ ± 10%). The lower left part is reminiscent of ROM-based microcode. Those. This LED resembles old processors - sequential switching of operating modes through this microcode at the right time activates various combinations of flicker subcircuits. And, like the processor, starting the program from 0 - here each LED goes along the same state graph, just at a slightly different speed.

    Crystal size 553x474 µm, technology 1.5µm. Despite the complexity of the scheme, the crystal turned out to be smaller. This microchip turned out normally to be photographed only from the 3rd attempt: with such small crystals (area ~ 0.25mm²) the work is very nervous: 1 ,2 .

    Crystal photo without metallization. PS. The faculty of ASOI GSU helped in obtaining LEDs .




    Summary

    All crystals (both those that came to me and others) were produced using relatively old production technologies, from 1.5 to 3 microns (1500-3000nm!) - which emphasizes that far from always subtle production standards are economically justified for new products: crystals - about 0.25 mm², it is already difficult to cut off a crystal of a smaller area, and accordingly, finer production standards will not make the product cheaper / better (in fact, RGB technology was improved only to 1500 nm to get about such a crystal size). It is also a good example that even simple products earn someone money - but it’s just as difficult to make something simple cheaper than everyone else, as well as to do something the most difficult.

    The control microcircuits themselves are more complicated than I expected: I would not be surprised to see something analog at all from several transistors (for the monochrome version of course) - but apparently it is difficult for such solutions to provide temperature stability and the desired visual effect.

    Also popular now: