Side Projects
Building Calvin has spawned a few side projects that I thought I’d go over here. So far, it’s just software I’ve written. It’s more accurate to say that some of it was written by Claude Opus, but I’ll leave discussions of vibe-coded apps elsewhere. It suffices to say that these apps have been useful and wouldn’t have happened if I had had to write them all by myself.
Side Project #1:grot and Gremlin
I don’t like IDEs. I’m a text editor and terminal kind of guy. For Arduino development, the options are basically Visual Studio, the Arduino IDE, and arduino-cli. Visual Studio is bloated and annoying. The Arduino IDE is not bad in that it’s simple, but the text editor is too simple. That leaves arduino-cli, but I could never remember the cumbersome commands.
So I wrote grot. (This one was as much me as Claude, for the record.) It’s a command-line wrapper for arduino-cli that simplifies the most commonly used commands. For example:
> grot build
> grot load
Those commands read a .grotconfig file in the project directory and build and load the sketch based on the config file’s settings. That’s the gist of it, at least.
Ditching the Arduino IDE meant not using the serial plotter and monitor. This is where Gremlin comes in. Gremlin is a macOS app that provides a front end for grot and a serial monitor and plotter. I abhor writing code for Apple products for a lot of reasons, so Gremlin is pure vibe code. It’s a black box, but it works.
I’m quite pleased with how much more pleasant Arduino development is with these tools. They’re not necessary, obviously, but pairing grot and/or Gremlin with my preferred text editor reduces mental load and friction for me, which is a big help.
Side Project #2: fission
Autodesk Fusion is decent CAD software and what I use most of the time. The fact that it’s free is a big part of that. But being free comes with limitations. The one fission solves is that the free version of Fusion does not support tool changes or indexing for its CAM package. (My Makera Carvera has a convenient tool changer.) What that means in practice is that you have to manually cut and paste G-code files together to get something the Carvera can use. That gets old fast and is a huge pain if you want to make a part on the fourth axis that requires indexing (a gear, for example).
fission is a simple Ruby script that assembles individual G-code files into a combined file that supports tool changes and indexing. It also does a few sanity checks to make sure the G-code is correct, but it’s not a full interpreter or simulator.
Side Project #3: Libra
Another one of Fusion’s shortcomings is its support for mass properties. It’s clunky at best, and downright miserable for even modest assemblies. Libra is a macOS app that allows you to import a STEP file (exported from your CAD program of choice) and run mass properties calculations. You can override weights and export the data in various formats. The graphical CAD-like interface helps make the process painless.
That’s it so far, but I have a feeling there will be more side projects before Calvin is complete.