|
Phlegm and prototypes No images? Click here ![]()
Goatmire Elixir in 2025 was a new experience for the community. In the same vein as many of the smaller conferences and much like AlchemyConf had just done before, we put some twist on it. It was compared to EMPEX and The Big Elixir. Very gratifying as I had not been to those but heard great things. Born out of my visit to Gig City Elixir and I just put my own opinionated approach on that same concept. Great talks, great vibes and some truly outlandish presentations pushing the bounds of what had been seen before.
Goatmire Elixir in 2026 we pulled out all the stops. Mostly by accident. Which turned out to be good because we also decided not to do a 2027 edition. Outlandishly good talks. Audacious theatrics that generally worked well which is wild. Free workshops to really give people time to do the code thing together. More coordinated evening plans.
For the full write-up: I am a sucker for devicesI have so much new hardware to play with. Fairphone 3 with NervesMarc Lainez left me no less than 3 of the Fairphone 3 devices that were used at the workshop. For those who don't know. Citronics let Marc grab probably 40 Fairphone 3 from their repurposing operation for the workshop. Simbase also offered trial SIM cards so people could try modem things. The gist of it is, fully operational smartphone hardware that we can run Nerves on. I've combined it with Damir's work on Solve + Emerge and have had Claude build out a small smartphone OS that I might not hate letting my kids have and play with. It is just overall a phenomenal little platform for experimentation. So many sensors, a nice enough touchscreen. And Marc's work on putting Nerves on essentially any old Android phone that Postmarket OS can run on means this could be done with whatever you have laying around. Assuming you put in some effort and probably tokens. This is a clear favorite among my Nerves devices just in terms of what it can do. Especially because Marc put in the work to make sure all the hardware (except the fingerprint scanner) works.
Huginn, Odin's ravenAlso powered by Nerves. Built by Flora with help from her mom (professional puppeteer) I believe. It has a PTB setup, Pan-Tilt-Beak. I think the Tilt might be dying though. As I was tearing down the Nerves orchestra I extracted Huginn from his perch on the shoulder guard and made him a really rough but workable wooden stand. And I reattached his speaker so soon he might be cawing again. He now sits in my office casually animating and with time he will certainly become an integral part of my Home Assistant setup. I added some ballast to help him keep his head up since the beak is a long lever on the tilt axis. I tweaked the firmware so he is ambiently animated by default.
I love this guy. Balance Bot by Gus & JamesAlso Nerves you know. I don't have a picture of mine but Gus just sent one where he bothered his cat with his because it was balancing well enough to just steer around. Two wheels, an eInk display, some LEDs, battery, buttons. It has most what it needs and the software makes it awesome and a very interesting challenge. I look forward to getting this in a little bit more easy-to-play-with shape for the kids, probably involves printing a cover for the battery and then they'll have a field day. Goatmire Badge V2 - The AtomVM badgeA display, keyboard and just so many sensors, LEDs, IR blaster, IR receiver. BLE, ESP Now. It can do a lot. And people have already made it do a lot. I have a whole stack of these suckers to do something with. Tempted to bring a few to Code BEAM and have them do something silly. NervesWatchIn Marc's talk about putting Nerves on all the things he showed the NervesWatch (not an official Nerves project thing). Essentially there are smartwatches that are just a variant of Android phones. So we can totally put Nerves on them just as well as we can put Postmarket OS on them. Marc found a candidate and did it. TicWatch 3 GPS is the one I have in my office. Marc gave me his cursed modified data cable and I will at some point get some instructions for how to successfully put Nerves on it. And then silliness can ensue. Getting to decide the featureset, connectivity and do Erlang clustering on consumer hardware is so satisfying. Once the foundation of hardware support is there the rest is relatively easy. I don't love coding agents but in my end of the Elixir community, around Nerves and so on, they are absolutely unlocking a big pile of consumer power. Things that weren't feasible to reverse engineer or not worth the time to bring back to life are just a few prompts away. It is fascinating and while I think the free lunch will end there will be some element of this using open weights and jankier compute. SO101 robot arm w. BEAM BotsJames is such a sweetheart and apparently decided he didn't need two arms after his Goatmire talk. So he cut one off and gave it to me. Robot arm that is. The SO101 is very cool and I now have one in what I can only assume is Prusa Orange. It is clamped to my desk and I will be hurting myself with it shortly. I got it moving with very little effort once I remembered to switch the power strip on. I certainly want to do silly things with it. .. and moreI have a whole box of solenoids. More controllers for solenoids and motors than any man should be trusted with and a whole fleet of new Pi devices. These are essentially just the leftovers of the orchestra, tree, etc. Oh. And 3x300 LED strips of 15 meters each. I don't have immediate plans for all these things. But I'm sure I'll figure some stuff out over time.
From building the orchestra, the tree and our little setup with The Conductor laptop I feel like we touched on an old favorite from Joe Armstrong. The Universal Server. Slightly more involved when there is more code. But fundamentally if you bring up devices with credentials to join a mesh network and some mechanism of discovering each other, I have done this with tailscale for some purposes. For Goatmire we knew the devices so it was a static list in config. The exact mechanism is not important. Then let them cluster up. You can ship whatever parts of your system you want to whichever application needs it. With Nerves devices we already cross-compile all the hairy native parts for the platforms we need to support. We could only bring them up
and have them join the cluster and then we could ship the software at will to turn them into displays, control surfaces, processing machines, instruments. Erlang RPC over default Erlang distribution is a bit too powerful in terms of security boundaries. But for prototyping, creative and personal use it is phenomenal. We can make our hardware way more malleable in very interesting ways. I am recovering from a big ol' cold after Goatmire so I have been resting very actively. I'm very restless. I hope I can properly poke some of this stuff shortly.
Thank you all for reading. |