Arduino Nano ESP32 becomes an ultra-low-powered, pocket-sized Linux PC
While many users get them confused, microcontroller development boards and single-board computers are very different things. Single-board computers can run full operating systems, like your desktop PC or laptop does. Microcontroller development boards, like those from Arduino, are usually limited to simpler firmware. But as microcontrollers become more powerful, the line gets blurrier. To prove that, Naveen Kumar built an ultra-low-powered portable Linux computer based on the new Arduino Nano ESP32 development board.
By modern PC standards, the ESP32-S3 microcontroller in the Nano ESP32 board lacks both processing power and memory. But just a couple of decades ago, the 240MHz clock speed and 512kB of SRAM would have been considered respectable for a lightweight operating system. Clearly, that is still enough to run an operating system today. But there are other challenges that Kumar had to overcome to make that work.
On the hardware side, Kumar used a Nano ESP32 along with an Arduino UNO R4 WiFi, a CardKB mini keyboard, and a 2.8″ Adafruit TFT touchscreen. The Nano ESP32 acts as a headless computer, while the UNO R4 WiFi, keyboard, and touchscreen act as a terminal to access that computer’s command line. Most Linux distros wouldn’t run on an ESP32 microcontroller, because they expect a different architecture and instruction set. But Max Filippov already ported Linux to work with the Xtensa instruction set used by the ESP32.
Kumar explains how to compile the kernel for that port and flash it to the Nano ESP32, as well as the UNO R4 WiFi sketch. Hardware setup is quick and easy. You won’t be able to use this to run the latest triple-A games, but you will be able to work with a real Linux OS through the terminal.