HackSpace magazine

HackSpace magazine meets Jason Coon

By Andrew Gregory. Posted

Jason Coon (aka Evil Genius Labs) makes delightful objects. His work with LEDs is, on the surface, really simple – they’re just components arranged on to a pattern, after all – but that hides an ever-changing complexity that evolves before your eyes, creating new, organic shapes all the time, until before you know it you’ve lost half an hour to the glory of procedurally generated Fibonacci animations. Here’s why and how he does what he does…

“By day I’m a software developer. By night, I make stuff. And I have for a long time: I got started with Arduino, probably seven or eight years ago or so, after being away from electronics for a long time. I actually took four years of electronics in high school; I went to a vocational technical high school that had a four-year electronics programme. I graduated from that and started to go get my electronic engineering degree, but ended up dropping out and switching to computer science.

“I really didn’t do anything with electronics or hardware for quite a long time, until the advent of Arduino and Raspberry Pi, which sparked my interest to get back into it and get closer to bare metal. So I started making stuff and eventually people started wanting to buy some of the stuff that I made, and that’s when I started Evil Genius Labs.

“I actually started working with Louis Beaudoin, who runs Pixelmatix and Embedded Creations. He  wanted to do a Kickstarter for RGB LED matrix displays, and the Kickstarter was called Smart Matrix. Originally it was like a shield for the Teensy from PJRC, to drive the non-addressable RGB LED matrix boards, and he still sells those I think – Adafruit and Pimoroni and several other places still stock and sell those. But we did a Kickstarter that was less of a kit and more of a fully featured RGB LED matrix display, with an SD card slot so it could play animated GIFs right off the SD card; it had a microphone and an audio line-in jack and it could do music visualisations. He was the hardware guy and I mostly stuck with the software, writing code for it. But that really kicked me off down my descent into Arduino and LED madness.

“With Louis’s help, I designed my first printed circuit board – it was all through-hole components, and it was just a level shifter shield for driving addressable RGB LEDs that want 5 V logic level from microcontrollers that use 3.3 V logic level – for example, the ESP8266 is one of my favourite boards that I use. That was the very first thing that I started selling on Tindie.

“At the time, I was an active member of the FastLED community. And at the time, they were on Google Plus, which tells you how long ago it was. FastLED is a library for driving addressable RGB LEDs like NeoPixels from a wide variety of microcontrollers; it focuses on super-efficient discrete integer math as opposed to floating-point math, which you just can’t do on some of the smaller, less powerful microcontrollers.

“At the time on the FastLED community, I saw a post by Jim Bumgardner, who had made a Fibonacci LED display. Actually, he had simulated it in Processing, and then printed it out on a sheet of paper and drilled – I think – 100 holes in a piece of particle board and then pushed 8 mm WS2811 addressable RGB LEDs through, and that was the first display with LEDs laid out in a Fibonacci distribution that I’d ever seen. My head just exploded.

“I had to build my own, and so I did the same thing, drilling holes and writing some scripts in Python. This first one I drilled in just a thin piece of sheet metal, with 8 mm RGB LEDs, and it has a Teensy in the back for driving it. That was my first Fibonacci display.

“With Louis’s help, I started trying to do this but in a printed circuit board, just because placing and drilling holes by hand doesn’t scale very well.

“I used SparkFun’s tutorials to learn how to use EAGLE and make my very first printed circuit boards. Usually I would order the first batch prototypes from OSH Park here in the US and then, stencils from OSH Stencil; I learned how to use solder paste and place the components and reflow them in my oven. Later, I got a hotplate for doing rework and a hot air station rework, which is tricky with little plastic fragile LEDs.

“I’ve been called a mathematician and an artist; I wouldn’t call myself either of those, absolutely not. I just like tinkering. I would call myself a tinkerer or a maker maybe, but I’ve had no formal post-secondary or college training whatsoever in math or art.

“My constant source of inspiration is other makers. It’s like this amazing feedback loop of inspiration and making and creativity.

“In addition to electronics in high school, I took art and drafting on paper with a mechanical drafting machine. And I always loved making drawings, even just with a pencil, freeform on a blank sheet of paper, but especially on graph paper, and with a compass and all of the cool procedural shapes that you can make with just circles and a ruler. I’ve always, absolutely always been drawn to geometry, and especially nature-inspired geometry.

“And then, also books like The Nature of Code by Daniel Shiffman, which is another constant source of inspiration.

“Debra of Geek Mom Projects, we talk constantly, and I’m constantly inspired by the things that she makes. And you know, Sophie Wong and Becky Stern, and Jorvon Moss for his little robotic creatures – the amount of inspiration out there is amazing.

“I sell my boards as just LED displays, and you can do whatever you want with them. And one of the things you could do is play back pre-rendered pre-generated animations. You can definitely do that; I don’t do that.

“I really enjoy writing procedural animations – patterns with code. I’ve been accused of being an artist, but really, the only way that I’ve ever been able to do anything remotely close to art is with graph paper or rulers or compasses, protractors, whatever, and then with code on the computer using trigonometry – cosine, tangent, and drawing circles and lines – all the way back to fourth grade in the computer lab in the library, writing Logo commands, moving the turtle around the screen to draw lines.

“I can remember sitting down with graph paper and drawing spaceships and things with my older brother. Give me a blank sheet of paper and maybe I can draw something, you know, while looking at it. But give me graph paper and I’ll be much happier.

“All of my code is open-source, I definitely share all of my code. Until recently, I hadn’t released anything of mine as open hardware, and I’m extremely conflicted about it – I have a lot of respect for people that are passionate about open source. Lately, I’ve kind of abandoned my early beginnings with PCBs – you know, the level shifters – I just decided, I didn’t want to bother with the time and expense to create, to make and produce, and sell them. So I released all of those on OSH Park – you can just buy them directly from OSH Park and the board files are up there.

“Once I’ve abandoned something, I have no problem making it open-source. And my maybe selfish justification for my stance on it is just that this is a self-funding hobby for me – it’s not my full-time job, and it’s not just a hobby, it’s somewhere in between. I use the proceeds of selling the things that I make to make new things, and there’s a feedback loop of that which enables me to buy tools to make cooler things. I’ve been able to use the proceeds from the sales of Fibonacci boards and my other projects to buy a 3D printer and a laser cutter. I have dreams of having a garage or shop with a pick-and-place machine and a larger laser cutter – you can never have too large a laser cutter.

“One of my most recent projects was to pack 128 RGB LEDs into a 33 mm diameter. So each of those LEDs is only 1.2 mm2 – tiny. I assembled it by hand and I could not have done it without my microscope. I have a stereoscopic microscope and I use that a lot. I’m getting older and my eyes aren’t what they used to be. And the LEDs don’t have any visible indicator of polarity or anything on the top, so you have to turn them over, or assemble them on a microscope on a mirror so that you can see the marking on the bottom of them. So yeah, it’s challenging. I had to do lots of rework; I think I had to rework eight or nine LEDs on the first one that I tried to assemble.

“And every component is at a unique angle… they’re all rotated, which is the beauty of the Fibonacci distribution: no two LEDs are at exactly the same angle, and never will be. Irrational numbers rotate by phi, or the golden angle, between each LED, so they know to never completely overlap. And you can always add one more LED, just like a plant can always add one more petal or one more leaf.

“I got started with LED matrices, and I still love them. I just got to the point where I felt like I was making smaller and smaller monitors; monitors with really big pixels. I still love them, but I wanted to try to find other forms.

“And that’s been my driving purpose ever since. I have to say that the majority of the patterns that I ship on my boards are actually slightly modified examples from the FastLED library. I absolutely would not be able to do the things that I do without the FastLED library. They have implementations of sine wave generators, and Perlin noise generators and things like that, that just make this all so easy.

“One of the two remaining founders of the FastLED library is still around, Mark Kriegsman. And a lot of the code that runs the patterns – and, in fact, even some of the patterns themselves – was written by him. (David Garcia was the other guy that started the FastLED library and unfortunately, he’s not with us any more). So a huge shout out and kudos to them for inspiring and making all of my work possible. That’s another reason why I was inspired to share every line of source code that I write – because they did the same.”

From HackSpace magazine store