You Can Learn A Lot From A Blinkenrocket

At this year’s Chaos Communication Congress, we caught up with [muzy] and [overflo], who were there with a badge and soldering project they designed to teach young folks how to solder and program. Blinkenrocket is a basically a 64-LED matrix display and just enough support hardware to store and display animations, and judging by the number of blinking rockets we saw around the necks of attendees, it was a success.

Their talk at 34C3 mostly concerns the production details, design refinements, and the pitfalls of producing thousands of a thing. If you’re thinking of building a hardware kit or badge on this scale, you should really check it out and crib some of their production optimization tricks.

For instance, instead of labelling the parts “C2” or “R: 220 Ohms”, they used a simple color-coding scheme. This not only makes it easier for kids to assemble, but it also means that they didn’t have to stick 1,000 part labels on every component. Coupled with [overflo]’s Zerhacker, SMD parts in strips were cut to the right length and color-coded in one step, done by machine.

The coolest feature of the Blinkenrocket itself is the audio programming interface. It’s like in the bad old days of software stored on cassette tapes, but it’s a phenomenal interface for getting a simple animation out of a web app and straight into a piece of minimal hardware — just plug it into a laptop or cell phone’s audio out and press “play” in the browser. The original design tried to encode the data in the pulse-length of square waves, but this turned out to be very hardware dependent. The final design used frequency-shift keying. What’s old is new again.

Everything you could want to know about the design, its code, and even the website itself are up on the project’s GitHub page, so go check it out. If you’d like to arrange a Blinkenrocket workshop yourself, shoot [muzy] or [overflo] an e-mail. Full disclosure: [overflo] gave us a kit, the “hard-mode” SMD one with 0805 1206 parts, and it was fun to assemble and program.

8 thoughts on “You Can Learn A Lot From A Blinkenrocket

  1. Thanks for the nice writeup!
    I promised I would send you something to build upon, but I haven’t found the time yet to do so.

    The components in the kit are all 1206 and the footprints are huge to help make up for not so good solder equipment that might be available to beginners.
    The webinterface is still work in progress, it has all the basic functionality, but needs mobile optimization, some UX tweaks and minor bug fixes.

    All the relevant links are in the writeup, I just wanted to add that we offer the kit for 25,- euro in the webshop (http://hackerspaceshop.com) and when you buy one there, a second kit goes in the donation box for free workshops at schools, as they are notorious underfinanced and usually can’t afford the kits.
    The kits will be available again in 2 weeks, we are currently in production.

    If you are reading this and you want to have a workshop yourself with blinkenrockets, please contact me for workshop set prices, they are very different from what you see in the webshop.

    All the best
    -flo

  2. “a badge and soldering project they designed to teach young folks how to solder and program. Blinkenrocket is a basically a 64-LED matrix display and just enough support hardware to store and display animations, and judging by the number of blinking rockets we saw around the necks of attendees, it was a success.”

    Serious question, are there a lot of children/youth that attend CCC? Or am I just misreading this?

    1. Yes!
      On day two of the CCCongress there is the “Junghackertag” where young hackers till 18 get in for free and there are guided tours, scavanger hunts and so on.
      Also there is a big (children) playground with ballpits and legos and everything.
      Many of us have kids of their own by now and there are more kids coming every year.
      I personally consider this a very positive trend.

        1. CCC is _extremely_ family friendly, and as flo said, the kids zone is awesome. Once they’re old enough to pick up a soldering iron — which age seems to be about 6-8 and up judging from the simple LED circuit workshops — there’s more room for creativity. Once they’re of coding age, there’s a lot more serious geekery.

          There’s also definitely stuff that small ones shouldn’t get into as well, for safety and sanity reasons, but these things are well segregated.

          People talk about the CCC being a “family” but it’s hard to imagine how true that is unless you’re there. And families have kids. And let’s be honest — half of the “adult” hackers are big kids too. It’s a good mix.

  3. I dug around a bit, but to no avail. What is the maximum amount of frames for a Blinkenrocket? I ordered one last night (Thanks to this write up!) and have some ideas on what I want to make it do.

  4. Interesting question!
    I have not tought about it yet :)

    From https://github.com/blinkenrocket/firmware/blob/master/src/storage.cc

    /*
    * EEPROM data structure (“file system”):
    *
    * Organized as 32B-pages, all animations/texts are page-aligned. Byte 0 ..
    * 255 : storage metadata. Byte 0 contains the number of animations, byte 1 the
    * page offset of the first animation, byte 2 of the second, and so on.
    * Byte 256+: texts/animations without additional storage metadata, aligned
    * to 32B. So, a maximum of 256-(256/32) = 248 texts/animations can be stored,
    * and a maximum of 255 * 32 = 8160 Bytes (almost 8 kB / 64 kbit) can be
    * addressed. To support larger EEPROMS, change the metadate area to Byte 2 ..
    * 511 and use 16bit page pointers.
    *
    * The text/animation size is not limited by this approach.
    *
    * Example:
    * Byte 0 = 3 -> we’ve got a total of three animations
    * Byte 1 = 0 -> first text/animation starts at byte 256 + 32*0 = 256
    * Byte 2 = 4 -> second starts at byte 256 + 32*4 = 384
    * Byte 3 = 5 -> third starts at 256 + 32*5 * 416
    * Byte 4 = whatever
    * .
    * .
    * .
    * Byte 256ff = first text/animation. Has a header encoding its length in bytes.
    * Byte 384ff = second
    * Byte 416ff = third
    * .
    * .
    * .
    */

    If i read this right we are talking about ~1000 Frames with the default EEPROM that comes with the kit :)
    Text is not stored in frames but is generated from a character lookuptable.
    It takes 8 times less space to save.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.