PulseRain M10

by PulseRain Technology

The power of FPGA meets the simplicity of Arduino.

$2,965 raised

of $1 goal

Not Available
Jan 13 2018
funded on


Recent Updates

As Featured In


"La tarjeta PulseRain M10 de PulseRain Technology... es una placa de desarrollo FPGA de diseño abierto que integra un núcleo MCU funcionando a 96 MHz, tomando con ello un enfoque técnico distintivo."


"It’s now possible to embed a soft-core MCU into an FPGA rather than using a hard-core ASIC MCU and here is where PulseRain comes into play with an open source design down to the silicon level."

The PulseRain M10 is an FPGA dev board. But unlike standard dev boards, the M10 takes a distinctive technical approach by embedding an open source soft MCU core (96 MHz) in an Intel/Altera MAX10 FPGA, while offering an Arduino-compatible software interface and form factor. It also features onboard resources like a voice CODEC, microSD socket, SRAM, onchip ADC, TSD (Temperature Sensor Diode) and dual IO voltages. On top of that, the whole design is 100% open, including the PCB design, the System Verilog code for the FPGA, and the software.

In a bid to dazzle the audience, here is a quick demo of the M10 board used to make a home automation system controlled by DTMF (Dual Tone Multi-Frequency)

As the video shows, the M10 board offers the following major capabilities:

  • FPGA with a soft-core MCU running at 96 MHz
  • DTMF decoder with voice CODEC and onboard microphone
  • Audio file replay from the microSD card
  • Audio samples storage in SRAM
  • PWM
  • Ability to work with Arduino Shield (in the video, the SparkFun Arduimoto shield is used to drive the DC motor)
  • On-chip ADC/TSD for temperature monitoring

Push the Boundary between Hardware and Software

The past ten years have witnessed FPGA (Field Programmable Gate Array) technology making its way into embedded systems, thanks to the relentless breakthrough of semiconductor processes. Since an FPGA is programmable hardware by definition, the boundary between hardware and software has started to blur. With FPGAs in the picture, designers have more leeway to shift workloads between FPGA hardware and software, as both can be modified without a touch of the soldering iron.

And that’s where PulseRain M10 comes into play, a FPGA board that has a soft-core MCU and a rich set of peripherals, with 100% open hardware and software!

With the M10, the hardware is as programmable as the software. The software is no longer fettered by the once carved-in-stone hardware, and you are free to push the boundary between the two.

The Hardware of M10

The M10 board has the following major components: (The packages of these components has been carefully chosen to avoid BGA or QFN packages.)

  • Intel/Altera MAX10 FPGA (with on-chip A/D Converter and Temperature Sensor Diode)
  • Voice CODEC, onboard microphone, and speaker jack
  • 1 Mbit serial SRAM
  • microSD socket
  • USB/UART bridge (FT232R)
  • 3.3 V / 5 V voltage translator to support dual IO voltage
  • OpAmp and potentiometer for analog input
  • 12 MHz Crystal Oscillator
  • Two push buttons
  • Six LEDs (two for USB/UART indication, one for IO power, three for general purpose)
  • IO connectors that are compatible with Arduino UNO Rev 3
  • JTAG header for the FPGA
  • Jumpers for IO voltage selection and FPGA programming

The Software of M10

The M10 features an Arduino compatible software interface:

  • The M10 has chosen Arduino IDE for its GUI-based development environment. The Arduino IDE has support for third-party hardware integration. All you have to do is to point the "Additional Boards Manager URLs" to our GitHub repository in "File/Preference/Additional Boards Manager URLs" and then install the board support package in "Tools/Boards/Boards Manager"

  • The M10’s Arduino support package uses SDCC as its open source compiler. With the supporting package mapping out all the details, developers can simply use Arduino language for coding. This new approach streamlines the development process and saves developers from the idiosyncrasies of the traditional approach.

  • Unlike Arduino, which uses software bootloader for device programming, the M10 has an OCD (onchip debugger) built into the MCU core. This approach not only saves precious onchip RAM, it also makes device programming more reliable and robust.

  • The biggest benefit of using an FPGA with a soft MCU core is flexibility. The hardware can be customized to a particular application. And the PulseRain FPGA peripheral library supports a wide variety of devices such as Serial SRAM, voice codec, MicroSD card etc. Like other Arduino boards, software libraries for those peripherals can be directly installed in the Arduino IDE.

Who Needs It and Why?

Just like Arduino, the M10 can serve as a core module to work with other Arduino shields. However, the M10 is much more flexibile in this regard, thanks to the soft-core MCU in FPGA. Its rich set of peripherals also makes the M10 more versatile and less dependent on external shields.

The M10 comes in handy for makers, FPGA designers, and embedded system engineers. It is also a good fit for educators teach both microcontroller and digital design.

Use Cases

As an FPGA Dev Board

The M10 is an FPGA dev board to begin with. So it can do anything that regular FPGA boards can do. And the good part is that you don’t need a JTAG cable to download the FPGA image (bistream). The M10 comes with PulseRain High Speed Configuration Solution for MAX10, and the FPGA image (bitstream) can be programmed through the Micro USB port.

As a Training Board for FPGA and Microcontroller Educators

For educators who teach both FPGA (digital design) and microcontroller coding, the M10 can serve both purposes, as it is a soft-core microcontroller inside an FPGA. The 100% open software and hardware combined with the Arduino-compatible software interface makes the learning curve less deep.

As a Replacement for Arduino UNO

For FPGA hackers and makers, the M10 board can be a good replacement for Arduino UNO, with the extra benefit of flexibility and ability to customize. The following are two good examples:

  • DTMF Control and Voice Application

The M10 is good at voice applications. In particular, it works well for DTMF-based (Dual Tone Multi-Frequency) control, as the video at the beginning part of this page can attest. It can also be easily turned into a voice recorder, as it has all the necessary hardware.

  • Wi-Fi Control

The M10’s soft-core MCU runs at 96 MHz, which surpasses most standalone MCUs in its category. Its customizable hardware also makes it a lot easier to integrate with other shields, particularly the popular ESP8266 Wi-Fi Controller. The ESP8266 needs to be controlled by a UART. The Arduino UNO Rev3 has to use a software-emulated UART to work with ESP8266, at a limited baud rate of 9600 bps. But with M10’s high speed MCU and a second hardware UART (921600 bps), working with ESP8266 becomes more straightforward, with extra CPU cycles for more tasks. Want proof? The following is a demonstration of the M10 and ESP8266 working to make a Wi-Fi-controlled Lego monster truck.

Features & Specifications

  • FPGA: Intel/Altera 10M08SAE144C8G
    • Logic Elements: 8 K
    • Block Memory: 378 Kbits
    • User Flash Memory: 32 KB
    • 18 x 18 Multipliers: 24
    • Internal Configuration: two (This FPGA does not need external memory for configuration)
    • PLLs: one
    • On-chip A/D Converter: 12 bit
    • Temperature Sensor: On-chip TSD (Temperature Sensor Diode)
    • Package: 144-pin EQFP
  • Microcontroller: Soft-core FP51-1T, with support package for Arduino IDE
    • Clock Rate: 96 MHz
    • Processor Core: Enhanced 1T 8051, with RISC implementation
    • Throughput: Single clock cycle execution for most instructions
    • Instruction Memory: 32 KB
    • Data Memory: 8 KB
    • On-chip Debugger: Yes (supports code download throughput of 921600 bps)
    • Open Source Compiler: SDCC (Small Device C Compiler)
  • Onboard Peripherals and Components:
    • Voice CODEC: Silicon Lab Si3000, with onboard microphone and speaker jack
    • DTMF Decoder: Available through software library
    • UART/PWM/I2C: The default configuration has two UARTs, six PWMs and one I2C
    • SRAM: 1 Mbit serial SRAM (Microchip 23LC1024)
    • microSD Socket: Molex 472192001
    • OpAmp and Potentiometer for Analog Input: 6 analog input channel, 1 potentiometer on A0
    • USB: USB/UART bridge (FT232R), with 921600 bps throughput
    • JTAG Header: Yes
    • Push Button: two
    • Oscillator: 12 MHz crystal oscillator, with DIP package
    • LEDs: six (two for USB/UART indication, one for IO power, three for general purpose)
  • Form Factor and Input/Outputs:
    • Arduino UNO Rev 3 Compatible Dimension: 2.1 inch x 3.2 inch (~5.33 cm x 8.13 cm)
    • Maximum Height: 0.5 inch (~1.27 cm)
    • IO Pin Map: Compatible with Arduino UNO Rev 3
    • IO Voltage: Dual voltage support (3.3 V / 5 V)
    • Power: 5 V USB or 7-12 VDC jack
    • Host Interface: Micro USB


EmbeddedMicro MojoAlorium XLR8PulseRain M10
FPGASpartan 6 XC6SLX9MAX10 10M08SAU169C8GMAX10 10M08SAE144C8G
Soft Core MCUN/AATMega328 ClonePulseRain FP51-1T (Enhanced 1T 8051)
Is the MCU Core Open Source?N/ANoYes
MCU Clock RateUnknown32 MHz 96 MHz
Board Package for Arduino IDEN/AYes Yes
Standalone Utility for ConfigurationYes NoYes
Additional SRAMNoNo1 Mbit (128 KB)
voice CODECNoNoYes
onboard microphone / SpeakJackNoNoYes
DTMF DecoderNoNoYes
microSD SupportNoNoYes s
Arduino Compatible Form FactorNoYes Yes
Dual IO Voltage (3.3 V / 5 V)No5 V In/3.3 V Out Yes
Host InterfaceMicro USBMini USBMicro USB

Manufacturing Plan

At this point, the M10 board has completed its pilot run successfully with our contract manufacturer and a small batch has thus been produced.

For high volume production, we expect the component sourcing, PCB fabrication, and assembly will all be carried out by the same contract manufacturer. But the final FPGA programming and ATP (Acceptance Test Procedure) will be done in our own facility. The ATP document can be found in https://github.com/PulseRain/M10_PCB/raw/master/docs/M10_ATP.pdf

Shipping & Fulfillment

The early bird units are expected to ship by 01/31/2018, with the rest of the units expected to ship by 03/28/2018.

Fulfillment of the M10 board will be handled by Crowd Supply, and will ship from their Portland, OR warehouse.

For those who back the M10 x 4 option, the free book will be shipped directly from the publisher.

More information on logistics can be found in the Crowd Supply Guide.

The international shipping fee is based on the quote we received from the couriers, with insurance included.

Risks & Challenges

The M10 has a BOM of 47 lines. The biggest potential risk is component sourcing as volume increases. To reduce this risk, the BOM is being closely monitored through "findchips.com". Backup BOMs can be readily produced for some passive components if needed.

Design Resources

Documents and Repositories


Users are more than welcome to post their questions and suggestions at http://forum.pulserain.com.

More information can also be found on http://m10.pulserain.com.

Video Tutorial (How to Setup the M10 Board for the First Time)


PulseRain Technology

Engineering is not a spectator sport! We strive to provide high quality IP cores as well as embedded system designs for a wide variety of markets. Our craftsmanship, savvy industrial experiences, and engineering passion are what's driving our products to success.

Changyi Gu

See Also

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects: