Main Content

TinyGo on Arduino Uno: An Introduction

Run Golang on this old but still popular 8-bit AVR microcontroller.

TinyGo - Golang for microcontrollers
TinyGo - “Go for small places”, now officially sponsored by Google - is one of the new programming language for microcontrollers. By using a LLVM-based compiler, it can generate binary files small enough to fit into microcontrollers, including 8-bit AVR boards with very limited RAM.

Since TinyGo is mainly designed for 32-bit microcontrollers, these AVR boards have limitations - they are not able to perform some features of TinyGo and may only be able to run smaller scripts.

On the other hand, Arduino Uno and Arduino Nano are still one of the most popular beginner’s Maker board, and their clones can be bought cheaply. If you accidentally toast one you won’t lose much. And for some people living in certain area around the globe (like me), open-sourced Unos are far more accessible than Cortex M0/M4 or nRF52 products.

Also, Go (Golang) has became rapidly popular in recent years. Learn Go basics on an interactive physical device may be more interesting than learning solely on a computer. It’s also exciting to see something else can run on Arduino Uno other than the powerful but intimidating C++. (No more problems caused by forgotten semicolons! yay!)

Uno may not be ideal TinyGo, but it is still capable to do many things.”

Link to article