Before you start, read this post to see how to make a Stick Shift Monster Truck with, and this post to see how to make a home automation system. Both projects feature PulseRain M10 as the core module board.



The PulseRain M10 Board is a versatile and expandable platform that can fit in a wide variety of scenarios, as illustrated below:

It is a FPGA platform that puts soft-core MCU into the FPGA, while presents a software interface and form factors like Arduino. It is an open source answer to the dominant proprietary solutions in the embedded systems, and it also offers the flexibility that standalone MCUs can not match. The great features it bears are as following:

The schematic and layout are designed with Eagle CAD. The PCB design files can be found on GitHub, and they are licensed under "Creative Commons Attribution Share-Like 3.0".

The processor core and peripheral libraries (in System Verilog) are licensed under GPLv3. And for those who want to use them in ways that are incompatible with the GPLv3, we also offer commercial license instead.

All the firmware(sample code, libraries in C/C++) are licensed under LGPLv3 (GNU Lesser General Public License).

All the desktop software (Python script and utilities) are licensed under Apache License Version 2.0.

And the fine print of the license agreement can be found here, which is the official document that carries legal weight.

This platform has the bells and whistles for common embedded applications, such as:

M10 board's form factors are compatible with Arduino Shields in connector and mounting hole positions. The onboard FPGA (Altera 10M08SAE144C8G) can be migrated to a device as big as 25K LE, 675Kb BRAM, or as small as 4K LE, 189 Kb BRAM.

And all the peripherals are connected to the processor core through the open source Wishbone FASM bus interface, which gives users the greatest choice possible to add new peripherals. In this way, the hardware can be tailored to users' specific application.

Arduino IDE can be used as GUI based development environment. Starting V1.5, Arduino IDE has support for 3rd party hardware integration. All you have to do is to point the "Additional Boards URL" to our GitHub repository in "File/Preference/Additional Boards URL". And then install the board support package in "Tools/Boards/Boards Manager".


The architecture of M10 board is illustrated in the figure below. The FPGA we choose is Altera 10M08SAE144C8G that features 8K LE, 378Kb Block RAM, 172 KB flash memory, a 8-channel A/D converter with temperature sensing diode. Out of the box, we have pre-loaded this FPGA with our FP51-1T MCU that runs at 96MHz. And other open source processor cores (such as RISC-V E variant) are also on the road map thanks to the programmable nature of FPGA.


People often say Hardware is the brawn while Software is the brain. Early we mentioned that M10 board will be software friendly (aka smart :-). In this regard, we have come up with the following:

For more information, please visit