Fomu: An FPGA in your USB Port

2 min

We’ve just started crowdfunding Fomu, and FPGA that fits in your USB port!


The original project – Tomu – was a really interesting little device. It was a simple ARM Cortex M0 MCU that fit entirely inside a Type A USB port. It was easy to build, yet was actually rather interesting. There’s something fascinating about being able to easily program another computer sitting inside your computer.

Now we’re taking it to the next level. Thanks to work by the very talented Luke “tinyfpga” Valenty, we have the beginnings of a workable USB PHY/MAC layer written entirely in a Python-based HDL, namely MiGen. This USB foundation makes it possible to start thinking about an FPGA-based Tomu.

The other missing piece is the FPGA itself. Verilog is hard, and while it’s powerful, few people want to learn its idiosyncrasies. While alternatives such as MiGen and SpinalHDL exist to make hardware programming easier, it’s still not great for many projects. Fortunately, there are many open-source softcores available, allowing people to program in software rather than hardware.

Finally, there’s the problem of memory. Many small FPGAs don’t have a whole lot in the way of storage. Fortunately, there’s the ICE40UP5K, which packs 1024 kilobits (128 kilobytes) of built-in SRAM. This is on top of the block ram that most FPGAs come with. That means your softcore can have a relative plethora of RAM in which to do its computation.

Put this all together, along with some gentle nudging from Tim Ansell, and you get to where we are today: crowdfunding an open FPGA that we aim to make as easy to use as possible.

This is a really exciting project, and we’re looking forward to sharing it with the world.