Why I’m Doing This

I’ve never built a robot before, but I’ve wanted to ever since I saw a video of a balancing robot on the internet around 2008. I wish I could remember the name of the guy who made it, because it was pretty impressive — low-tech, but high-quality. That same year (or around then — it’s been a while), I went to an event at Y Combinator and was greeted by a similarly impressive balancing robot mingling with the attendees. I don’t know much about that robot or who made it, but it left an impression.

So I’m building Calvin as a learning experience. YouTube is full of simple balancing robots running PID loops that balance… sort of. I want to build something better — something that aspires to the level of the machines being developed at universities for research. In that spirit, I’ve overdone pretty much everything. Most of Calvin is going to be overkill, but it’s overkill with the goal of learning the fundamentals that won’t be overkill on the next project.

This is very much a “learning in public” sort of project, so if you have suggestions, feel free to let me know - my email is linked in the footer.

-Damon

A Note About AI

I use AI heavily on this project. That said, it’s not the point of the exercise. AI simply allows me to work faster, learn faster, and ultimately build faster.

The software I’ve written with Claude, for the most part, has been carefully reviewed by me. Some of it is a bit sloppy - either because I haven’t gotten around to refining it, or because sloppy is good enough for its purpose. I don’t spend much time worrying about whether the CSS is well written, for example. I do look over the C++ code extensively.

At the end of the day, this project is about learning and building, not “building with AI.” To the extent that AI helps me do that, I use it enthusiastically.