Goby’s second wind: introducing BitBang

Hey Makers & Friends,

It’s been quiet here for a while, but I’m back. I’ve been a working man, working at my jobby job in the corporate salt mines, and Charmed Labs has taken a backseat. But I haven’t forgotten that I owe y’all the rest of the Goby story.

Last spring we introduced Goby, our pocket-sized explorer robot, and ran a Kickstarter to bring it to production. We came up short. Between tooling costs and shifting tariffs, the numbers didn’t add up to enough runway for our little Goby, and I made the hard call to cancel the campaign and take a full-time job at another tech company in order to give my family a bit more stability.

But I made a promise in that final Kickstarter update: that Goby would live on, in a sense, through the technology that made it work. Turns out I meant it.

Today that technology, BitBang, is open source and available as a command-line tool, a Python library, a 3D-printer plugin, and a signaling server, released across 4 repositories. (Wow!) So… mission accomplished! (right?)

Well, not quite… Goby is an embedded system, which is kind of the point of BitBang — connecting to devices, and importantly, low-cost devices like the ESP32. Support for this will come a bit later. Here’s the thinking:

BitBang is the networking layer that allowed Goby to be reached from anywhere with a browser — no account, no port forwarding, nothing to install on the other end. But before I put it back on tiny hardware, I wanted to rebuild it properly: a real security model, a clean protocol, a server side built to last rather than built to demo. (I even wrote a posh whitepaper.) That kind of development work is more efficient on general-purpose computers — quicker to write, easier to test, easier to debug, easier to try one idea and then try another. So that’s where it lives first, in these initial repos. (But note, the 3D-printer plugin runs on a Raspberry Pi — not as cheap as an ESP32, but within the realm of “devices” at least.)

Which brings me to the honest answer to where’s the Goby code? Goby’s brain is an ESP32, and it used a WebRTC library called libpeer to talk to your browser. Espressif has recently taken libpeer, improved it, and then closed it — the API is open, but the core now ships as a binary blob. libpeer is MIT-licensed, so this was entirely within their rights, but taking an open project someone else wrote and then blocking access to the improvements is kinda lame. So I’ve been working on a fully open-source WebRTC stack — more complete and more robust than what came before, and built to work with BitBang. It’s not out yet, but it’s coming, I promise.

In the meantime check out the BitBang CLI, Python library, 3D-printer plugin, and signaling server — start here: github.com/richlegrand/bitbang For example, installing and running the CLI tool takes literally 30 seconds.

And you don’t have to wait for the embedded release — Raspberry Pi fans will find the Python library very useful now. It’s the easiest way I know of to stream high-quality video to a remote browser.

If you backed Goby, or cheered it on, or just followed along — thank you. BitBang is the part of Goby that keeps going, and I’d love to hear your ideas and see what you do with it.

As I sagely remarked in that final Goby update: sometimes you swing and miss, but you learn, and you carry the lessons forward. So… it’s all been worth it… I think… ask me in a year. 🙂

Rich LeGrand