It is based on the PIC18LF24K50 and consists of a circle of LEDs which randomly displays pre-defined patterns. Every badge has its own infrared transceiver (LED-receiver pair), so the fun begins when two or more badges spot each other: they go from Adagio to full on Rondo, losing their default, dull visual pattern for a more dynamic, attention grabbing one, but most importantly – they synchronize. This means that, in a group of people, all badges will play the same pattern in unison. Every badge can spread the pattern code, so the whole group, however large, soon becomes synchronized. But if one of them “gets lost” somehow, it will try to learn it back from a neighbour or it might even launch into its own, randomly generated one. Sometimes it manages to spread it further and you get to witness a battle for light show domination.
The algorithm is quite simple: every badge plays its own pattern, while keeping its infrared eye open for someone else’s code. If it receives it and verifies the checksum, it stops the current pattern, transmits the special acknowledge code via infrared LED and starts playing the received pattern. If nothing was received, it randomly generates a new pattern code, transmits it, looks if someone acknowledged it and then runs the pattern. If there was an acknowledge, it switches to the “fast” mode. That’s it.
The beauty of microcontroller designs is that you can always add new features later, without affecting the cost. In this case, the infrared transmitter support was implemented in hardware, so the badge got upgraded with [Mitch Altman’s] TV-B-Gone function.
We want to thank Voja Antonic for designing the BalCCon2k16 Badge.