The Go programming language is loved almost universally and has been widely adopted for a large variety of uses. What I wasn't aware of, is that it's also making a splash on a variety of microcontrollers.
We spoke with deadprogram at the GitHub stand at Embedded World 2022 about the TinyGo project. We cover how the project began, who it's for, and how TinyGo can help people get more out of their older hardware. He also walks us through his GopherBot's parallel embedded systems and how they show off some of TinyGo's desirable features for embedded devs.
Alongside deadprogram's infectious enthusiasm, there are a lot of interesting features hidden behind the scenes here. Alongside a fairly comprehensive feature list for microcontrollers including GDB debugging, TinyGo also incorporates some of Go's native web programming perks like the ability to generate WASM, and there's even a highly experimental feature to generate inline native assembly code.
For a deeper dive into TinyGo, check out deadprogram's talk at GopherCon 2019:
For many folks, one of the initial draws of TinyGo will be the opportunity to learn a new way of working with hardware that we may have already cast aside. Despite its infinite usefulness, once you've got a testbench full of ESP32 boards, it can be hard to find a day-to-day reason to fiddle with the Arduino Uno any more.
TinyGo changes this, with its extensive catalog of supported MCUs, and that support is consistently growing. To find out more about the TinyGo project, including supported MCUs and documentation, head to the TinyGo website.