Fomu Runs MicroPython And Fits Into Your USB Port

Fomu Runs MicroPython And Fits Into Your USB Port

When it comes to the world of Microcontrollers, FPGAs, DSPs, or basically anything related to embedded devices, we have traditionally been accustomed to something averagely big (in regards to this domain) and even created some standards like SBCs (Single Board Computers) to categorize devices.

What if we could have development boards that goes beyond the standard norms of the traditional form factor, something about the size of the chip itself. Also, not just small, but powerful as well. Tim Ansell envisioned the Tomu ARM dev boards in late 2017 – a tiny ARM micro-controller board that fits inside your USB port running on the popular Cortex-M0+, but he isn’t stopping there and now presenting an FPGA in your USB port called Fomu.

When it comes to FPGA, micro size is not something you see every day, it’s one of those rare events. An FPGA is an Array of Gates that is Field-Programmable. Unlike CPU where all the logic cells are already fixed in place, FPGA puts everything in your hand. You customize things at the hardware level, connect the logic cells the way you want and get better performance than the average microcontroller.

Fomu is a programmable FPGA device, and it was designed to fit inside a standard USB Type-A slot. It has 4 buttons, RGB LED, two capacitance touch buttons, and an FPGA that is compatible with a fully open source chain and capable of running a RISC-V core. It is based on a Lattice iCE40UP5K with 5k LUTs and DSP tiles, along with 128KB of RAM and 2MB of Flash.

Fomu FPGA Board

With its 128 kilobytes of RAM, Fomu is capable of running MicroPython natively, and the installation is straightforward – It is entirely compatible with FμPy which is a MicroPython module. With Python onboard, you don’t have to go through the general complication involved in getting FPGA to work properly. At the heart of the Python interpreter lies a RISC-V softcore running on the FPGA fabric.


  • FPGA: Lattice ICE40UP5K
  • Speed: 48 MHz external oscillator
  • RAM: 128 kB RAM for a soft CPU¹
  • Storage: 1 MB SPI flash²
  • Connectivity: USB 2.0 FS (12 Mbps)
  • Buttons: Four³
  • LEDs: One RGB

The default Fomu firmware exposes a USB bootloader running a RISC-V softcore, but you can load whatever you want. You can practice adding instructions to the CPU, or add new blocks such as LED blink patterns or better cap touch hardware blocks.

Fomu is now live on Crowd Supply, costing $39, with free shipping inside the United States, and an additional $5 for worldwide shipping. Want to get one? Or want to appreciate the Fomu team, then pledge them a beer on their CrowdSupply page.

iCE40UP5K block diagram


Please follow and like us:
Pin Share

Hi, I'm software, a hardware guy, and a technical writer. Have had a stint with the EdTech industries, but mostly interested in the space of deploying AI for edge computing. Otherwise, I am writing or coding about some technology pieces covering IoT, GPU computing, LoraWAN, PCB, Machine Learning, Precision Agriculture, Open Electronics, and related fields. Got a tip, freebies, launch, gig or leak? Contact me on Twitter, or via email: I don't bite.

view all posts by ayo
Notify of

Inline Feedbacks
View all comments
Get new posts by email:
Get new posts by email:

Join 97,426 other subscribers