Arduino Inspired, FPGA-Based
Although XLR8 was created to bring FPGA capabilities to the Arduino ecosystem, it is also a high quality, affordable option for FPGA designers.
- SUPPORTED by Intel Quartus Prime Lite Edition – FREE!
- PROGRAMMABLE via JTAG or USB with OpenXLR8 and Arduino IDE
- COMPATIBLE with vast ecosystem of Arduino shields and accessories
Bare-Metal FPGA Design
If you are looking to develop your FPGA design from scratch, XLR8 gives you a familiar board design form factor. Just add a pin header, fire-up Intel’s Quartus Prime, and use USB Blaster to load your design to the MAX10 though the JTAG port.
If you like the idea of keeping XLR8 Arduino-compatible, you can implement your FPGA logic in the form of Xcelerator Blocks and use OpenXLR8 to load them to the FPGA. This gives you the ability to program the MAX10 with your custom functionality across the USB interface on XLR8.
No JTAG and No USB Blaster required!
An Introduction to Xcelerator Blocks
What’s an Xcelerator Block?
An Xcelerator Block is an optimized hardware implementation of a unique processor intensive function. Since everything needs a cool acronym, we simply refer to one of these blocks as an “XB”.
XLR8 ships with pre-installed XBs that target application-specific behavior. XLR8 can be field-updated to change the XBs implemented on the FPGA.
A list of initial XBs available with XLR8 is provided on the right. Early feedback from developers indicates interest in Xcelerator Blocks targeted toward functions such as:
- Proportional-Integral-Derivative (PID) control
- Event Counters and Timers
- Quadtrature Encoders/Decoders
- Pulse Width Modulation (PWM)
- Multiple UARTS
Alorium will implement future XBs based on feedback from early adopters and new potential customers. If you have an idea for an XB you’d like to see, jump over to the XB Forum and share your thoughts and requests.
Enhanced Analog-to-Digital ConverterThe Enhanced Analog-to-Digital Converter (ADC) XB provides a solution that improves sampling performance and overall results. With the ADC XB, XLR8 can sustain a 12-bit output resolution and can achieve a sample rate of 154k samples/second! This means XLR8 could be a great solution for interesting audio applications or other projects where finer ADC resolution is required.
The NeoPixel Control XB provides three key improvements for controlling NeoPixel shields, strips, and arrays:
- Data memory is not used for pixel color storage.
- Interrupts are not disabled while updating the pixel array.
- Changing pixel brightness does not corrupt color data.
These improvements open the door to new and enhanced ways of implementing NeoPixels in your projects. In addition, the XLR8 board can drive arrays as large as 1280 pixels!
This XB completely eliminates the “jitter” problem that commonly faces developers using Arduino to control servos for drones, robotic platforms, sensor alignment or other applications. The XLR8 servo control block can be used by simply including a different header file and then leaving the rest of your sketch completely unchanged!
Floating Point Math
Intense mathematical computation is a known challenge for applications using Arduino-compatible solutions. The Floating Point XB provides hardware based floating point math implemented in the FPGA fabric. Functions and operations can be accessed from your sketch by installing our library and using our floating point arithmetic functions.
- Based on the Arduino Uno
- Matches the Uno’s physical footprint – including pin headers for attaching shields
- Mounting brackets or shields that fit Uno will also fit XLR8
- 5V Inputs
- 3.3V Outputs
- 14 Digital I/O Pins
- 6 PWM Digital I/O Pins
- 6 Analog Pins
- 5V tolerant
- Op-amp circuit emulates 0-5V behavior of the ADCs on the Arduino Uno
- Correct ADC results regardless of whether it’s powered from USB or from the barrel connector
- Performance: 1 MHz
- Resolution: 12-bit sustained
- Sample Rate: 154k samples/second
The History of XLR8
The XLR8 concept was born as a result of brainstorming ideas for how we could offer the advantages of FPGA processing and acceleration to the Arduino ecosystem. At the same time, one of our own makers was running into some problems with a home project. The rest, as they say, is history.
Here's our Kickstarter video from last fall that tells the story.
Rev 1 Prototype
This is the first version of XLR8 that we designed. This board went from concept to hardware in our labs in about two months, and it worked like a champ!
Rev 2 of the XLR8 board includes level shifting circuitry to provide true 5-volt compatibility for legacy 5V shields. There were also some small mechanical changes and a new color.
The production version of our board includes a new silk screen, some additional test points for automated production testing, and some minor circuit modifications.
What people are saying about XLR8
Although Arduino is an excellent platform for rapidly and inexpensively building new product designs, it is resource limited. Alorium Technology’s XLR8 board solves this problem in a cost-effective manner by integrating an Arduino compatible processor into an FPGA with custom Xcelerator Blocks that significantly improve Arduino-based projects.