Only 13mm long, Fomu really puts the micro in microprocessor. Fomu is a fully open-source, programmable FPGA device that sits inside a USB Type-A port. It has four buttons, an RGB LED, and an FPGA that is compatible with a fully open source chain and capable of running a RISC-V core. Fomu comes in a custom plastic enclosure that slots perfectly into a USB port.
For example, many embedded projects use WS2812 LEDs such as NeoPixels that require a specialized timing signal. A CPU can generate this signal in software, but it can’t do anything in the background while talking to the light. If the string of LEDs is very long, then the CPU wastes a lot of time and power generating the signal.
With an FPGA, it becomes possible to create an “LED driver” that allows the CPU to keep running while a hardware component handles the timing. The CPU could do other work, or could put itself in a low power state.
In fact, the “CPU” in the FPGA is created from a hardware description language, meaning it can be modified or swapped out. If you wanted, you could create a brand-new CPU instruction. Do you want to have fast 64-bit multiplies? Or maybe you want a way to get random numbers easily? With Fomu and its FPGA, you have the source code to the CPU itself.
Have some info to add for this board? Edit the source for this page here.
This is the latest stable release of CircuitPython that will work with the Fomu.
Start here if you are new to CircuitPython.
Built-in modules available: _pixelbuf, digitalio, gamepad, math, microcontroller, neopixel_write, os, random, storage, struct, supervisor, time, touchio, ulab, usb_hid, usb_midi
This is the latest unstable release of CircuitPython that will work with the Fomu.
Unstable builds have the latest features but are more likely to have critical bugs.
Built-in modules available: _pixelbuf, digitalio, gamepad, math, microcontroller, msgpack, neopixel_write, os, random, storage, struct, supervisor, time, touchio, ulab, usb_hid, usb_midi
Every time we commit new code to CircuitPython we automatically build binaries for each board and language. The binaries are stored on Amazon S3, organized by board, and then by language. Try them if you want the absolute latest and are feeling daring or want to see if a problem has been fixed.
All previous releases are listed on GitHub, with release notes, and are available for download from Amazon S3. They are handy for testing, but otherwise we recommend using the latest stable release. Some older GitHub release pages include the same binaries for downloading. But we have discontinued including binaries as assets on newer release pages because of the large number of files for each release.