Evo M51 Quick Start Guide

Snō FPGA Module | Snō Quick Start Guide


This Evo M51 Quick Start Guide is in preliminary release mode. We are actively creating and adding content as we near production shipment for the board.

Our intention is that anything visible on this page should be accurate; however, it’s possible that there may be a few errors, omissions, or simply somewhat confusing information.  We will be working to add details, clarify any confusion, etc. on a regular basis.

If you see anything that does not make sense, or want specific information that we have not yet posted, please feel free to email us at: support@aloriumtech.com.


1   Introduction

The Evo M51 module marks the evolution of Alorium Technology’s FPGA enhanced microcontroller solutions. 

By pairing a powerful Microchip (Atmel) 32-bit SAMD51 microcontroller with the low-cost, highly-featured Intel MAX 10 FPGA, Evo M51 provides the perfect blend of embedded compute performance and flexibility.

With the increasingly popular Adafruit Feather form factor and pinout plus an additional 34 castellated edge I/O, this board can be easily added into existing projects or directly integrated into new system designs as compute module component.

This quick start guide will help you get up and running quickly with your Evo board!

2  Pinouts

Evo M51 was designed for compatibility with the Adafruit Feather specification for primary I/O and connectivity.  As a result, all of the through-hole I/O on Evo match what you should find with any other Feather-compatible board. 

In addition to the standard Feather I/O, Evo includes 34 castellated vias which can be used as digital I/O.   

 2.1 Pin Map

The following diagram shows the pin assignments for Evo M51.  Click here or on the image below to view or download the PDF.

Evo Pin Map

2.2 Digital I/O

Dedicated Digital GPIO: D4, 5, 6, 9, 10, 11, 12

Pins D4, 5, 6, 9, 10, 11, 12 and 13 provide dedicated digital GPIO pins.  In addition, each of these pins can provide PWM outputs.

Additional Digital GPIO

There are a number of additional I/O on Evo assigned to communication interfaces or analog functions that are available as digital I/O:

  • RX (0) / TX (1)
  • SDA (21) / SCL (22) / SCK (25)
  • MO (24) / MI (23)
  • A2 /A3 / A4 / A5


2.3 Analog I/O

Evo M51 provides access to the ADC and DAC on the SAMD51 microcontroller instead of using the MAX 10 ADC.  There are 3 ADC inputs, 2 DAC outputs, and  3 of the analog pins can also be used as digital GPIO.

  • A0 / A1
    • Analog ADC inputs
    • Analog DAC outputs
  • A2 – A5
    • Analog ADC inputs
    • Digital GPIO outputs
    • PWM outputs


2.4  E-Pins  (Castellated Vias)

Evo provides an additional 34 digital GPIO through castellated vias (CVs) along the edges of the board.

2.5 Communication Interfaces

  • USB_D-/USB_D+ CVs  – Differential signal interface to SAMD USB input
  • SPI  – SPI interface
    • SCK – SPI Clock
    • MO – Master Out, Slave In (MOSI)
    • MI – Master In, Slave Out (MISO)
  • I2C – I2C (“Wire”) interface
    • SCL – I2C clock
    • SDA – I2C data
    • Note:  SCL/SDA do NOT have on-board pull-up resistors.  So, external resistors may be required.
  • UART – Serial UART interface
    • RX – Receive
    • TX – Transmit
  • SWD CVs – Single-Wire Debug interface
    • SWDCK – SWD Clock
    • SWDIO – SWD Data
  • JTAG – JTAG programming interface (Shared with GPIO pins 10-13)
    • JTE – JTAG Enable
    • TCK (12) – Test Clock
    • TMS (10) – Test Mode Select
    • TDI (11) – Test Data In
    • TDO (13) – Test Data Out

2.6 Power, Programming and Other I/O

  • USB Connector – USB Micro Type B
  • RST – SAMD/FPGA Reset
  • 3.3V – 3.3V output from voltage regulator
  • AREF – Analog reference input (Need details)
  • GND – Ground
  • JST Battery Connector
    • BAT – Positive voltage from battery
    • GND – Battery ground
  • BAT – Positive voltage from JST Battery connector
  • USB – Voltage from USB Micro connector

3   Programming Evo M51

3.1  Programming the SAMD51 Microcontroller

Programming the SAMD51 microcontroller on Evo is easily performed using the very popular Arduino IDE. Refer to Section 4 below for help installing Arduino if you don’t already have it installed on your development machine.

Other programming tools such as Atmel Studio, PlatformIO/VSCode, and others may also work for programming Evo.  However, we have not yet validated those solutions, and for now Arduino is the only officially supported programming environment for Evo M51.

3.2  Programming the FPGA

The FPGA on Evo comes pre-programmed with an image that provides <TBD> functionality.

In time, additional FPGA images with different functionality or new mixes of Xcelerator Blocks will be available from Alorium Technology.  Those images can be uploaded directly through the Arduino IDE or accessed via our GitHub repo and flashed to the FPGA using a command-line program.

As with all of our products, the FPGA can be programmed with your own custom FPGA image by using our OpenEvo FPGA methodology.  

3.3  CircuitPython

Evo M51 is designed to support CircuitPython – a special version of the Python programming language designed to run on microcontrollers. CircuitPython uses a slightly different development flow than programming standard C programs or Arduino sketches.  

Section <TBD> provides the details of how to use CircuitPython with Evo.

4   Installing the Arduino IDE and FTDI Drivers

4.1   Arduino IDE Software Installation for Microsoft Windows and macOS

The first step in setting up your computer to connect to and program the Snō is to install the standard Arduino IDE software. Follow the instructions below to install the Arduino IDE on your computer.

Microsoft Windows

  1. Click here for the official Arduino IDE installation guide for Microsoft Windows.
  2. Follow the instructions for installing the IDE.
  3. Once the IDE is installed, return here to finish installation of the Alorium Technology board specific packages and libraries.

Mac OS X

  1. Click here for the official Arduino IDE installation guide for Mac OS X.
  2. Follow the instructions for installing the IDE.
  3. Once the IDE is installed, return here to finish installation of the Alorium Technology board specific packages and libraries.


If you are running Linux, the setup steps are a bit different. Therefore, we have created one tutorial that incorporates all of the steps Linux requires to setup Arduino IDE.

This document was originally created  when we released our XLR8 board, and it still carries the XLR8 name in the title.  However, the steps remain the same for using Arduino with Evo, as well. 

Click the link below to see our Linux Setup Tutorial:

5  Evo M51 Board Package and Libraries 

To Be Added

6 Updating the FPGA Image

To Be Added

7  Restoring Factory FPGA Image

To Be Added

8 Schematics and Layout

To Be Added

9 Register Summary

To Be Added

Improve Your Project!