I attended the 2024 Hackaday Supercon conference this year. I wanted to take something special to share. So I made a little electronics badge that acts a little like an Original Macintosh.
Huh?
So this probably needs a lot of explaining. There are nerdy conferences that nerdy people (like me) attend. Like most conferences you attend, you get a badge that shows that you paid to attend the conference. At these conferences though, the badge is very often an electronic device all on its own. It’s made of a circuitboard, maybe it has a display on it, a microcontroller, some buttons. And usually a lot of LEDs. Then, on those badges, there is often a connector for even smaller circuit boards. These are called SAOs – Simple Add-Ons* – and they’re usually art made of circuit boards and LEDs.
So in 2023 when I attended my first Hackaday Supercon I got an SAO from Tom Nardi. It looked like a computer he made. It had a little screen, and displayed a bunch of nerdy references. It was very fun. I came home eager to make my own for the following years conference.
2024 is the 40th anniversary of the Macintosh. Besides making a some of us feel awfully old, it seemed like a good opportunity to celebrate the computer I grew up with. Initially my idea was that I would display some cool Macintosh-like screens and write some words. Maybe even paint a picture.
Over the next few months, I worked on the project. The first version I was looking at trying to use the CH552. A shockingly inexpensive microcontroller. The limitations here were substantial because there was not really a library to work with it. I’d have to implement all the stuff myself. It sounded it like the fun would be a little further off while I was doing basic architecture. One wild idea I had was using a chip that could actually work as a USB host – so someone could conceivably plug in a mouse and move the pointer around the screen. That was a big ask though.
The MacSAO gets more complex
In late August Hackaday announced a contest for SAOs: They wanted folks to make SAOs that took advantage of the communications features on the connector. So you could send messages to the SAO, and it could send messages back. This kicked my creativity into overdrive and I wondered what I could enable folks to be able to do.
I ditched the CH552 and started out programming on an ESP8266. It was advantageous because of really solid Arduino extension support. I needed something cheaper though if I was going to make a bunch and give them away. I moved to another WCH chip, the CH32V003 which had become quite popular. There were a couple of hiccups. The 8266 had 1MB of flash storage onboard. The CH32V003 had just 16KB. While my Arduino stuff was not complex, it was vastly larger than the new chip had room for. So I started from scratch and wrote methods to draw my Macintosh screen.
I had toyed with the idea of getting the whole thing manufactured when I had the PCBs manufactured – basically the factory would send the PCBs over to their assembly warehouse and put all the parts on. An article on Hackaday waived me away from this. This was the first time I’d really been able to make a product for folks, and I would be able to experience the process of manufacturing my own thing at scale. I’d planned for this with Christmas Countdown, but I hadn’t gotten to the point of being able to do that. This was a chance. So I bought all the parts, and 3d-printed some jigs to help the assembly process.
Taking the Macintosh SAO to Supercon
I had a bit of anxiety about my SAO. Would people think it was as cool as I did? What if everyone thought my idea was dumb and I came home with 40 Macintosh-shaped circuit boards?
I had run into a few problems late in development and of course I had to pack my suitcase and get ready to go. So I left for Supercon with the SAO not quite being done. I spent a fair bit of the first day trying to get the firmware squared. Then a bit of the second day and it still wasn’t going very well. I did manage to get the firmware reliably working – and then started programming them all.
Once I’d handed out a few to folks who’d expressed interest, I started to have people swing by and ask about them. There were so many very kind people who told me it was really cool. I had my fears assuaged and it was tremendously validating. At one point I brought one over to Andy Geppart, who had been developing an Etch-a-sketch SAO. As I was telling him how cool I thought his SAO was, he was telling my how cool he thought mine was, and said we were both part of the mutual-admiration-society. I agreed completely.
It’s really amazing all the different kinds of SAOs folks brought. So many creative concepts! It really is amazing.
OK, cool – but what does it do?
Oh, I’m glad you asked! The Macintosh SAO allows you to created animated sequences that look like a Mac in action! You can move the mouse, open windows, open menus, write text to MacWrite, paint in MacPaint! Conceivably you could get even more abstract and just draw whatever you want on the screen. I put together a full website about how to use it with examples and the API. On a whim, I went out and found an appropriate theme.
There’s also a mode where you can update the display in real-time. You can move the mouse around, open windows, etc. One group at Supercon actually implemented a game of Pong on the display, using controls from the aforementioned Etch-a-sketch.
I am very proud of my little Macintosh. It is not what I originally thought it would be, but it turned into so much more and stretched my knowledge of programming and hardware. I’m grateful that I got to share something cool with so many people.