XLR8: Arduino-Compatible FPGA Development Board
Order Now button will take you to our shopping page at Mouser.com.
What is XLR8?
- Arduino-compatible development board
- FPGA-based
- Embedded 8-bit AVR instruction set compatible microcontroller
- Programmable with Arduino IDE
Advantages
- FASTER clock rates and overall application speed
- HIGHER-PERFORMANCE through hardware accelerated functionality
- CONFIGURABLE with custom Xcelerator Blocks on the FPGA
XLR8 can improve the speed, performance and functionality of your Arduino-based applications and projects!
What people are saying about XLR8
Advantages
Faster
Hardware-accelerated functions run in a fraction of the clock cycles required to execute the same function in software.
This results in faster overall application performance.
Higher-Performance
Shorter times to complete complex tasks in hardware result in more clock cycles available for additional software functions.
Computation performance is significantly improved.
Scalable
The functionality and capabilities accelerated in the FPGA hardware can be expanded and scaled for many different applications.
We are just scratching the surface of what is possible to accelerate!
Specifications
Physical Dimensions
- 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
Digital I/O
- 5V Tolerant Inputs
- 5V Outputs
- 14 Digital I/O Pins
- 6 Analog Pins
Analog Inputs
- 5V
- ADC Performance: 1 MHz
- Resolution: 12-bit sustained
- Sample Rate: 254k samples/second
Why XLR8?
XLR8 is a drop-in replacement for an Arduino Uno with an interesting twist. It is an Arduino-compatible board that uses a Field-Programmable Gate Array (FPGA) as the main processing chip.
The FPGA provides a reconfigurable hardware platform that hosts an ATmega328 instruction set compatible microcontroller.
The FPGA also accelerates specific functionality that is slow, problematic or even impossible for an 8-bit microcontroller.
The FPGA-based hardware acceleration and offload provided by XLR8 results in significantly improved performance in the same physical footprint and using the same tool chain as standard Arduino Uno boards.
XLR8 is a great solution for accelerating your Arduino-based applications and projects!
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.
Available XBs
Enhanced Analog-to-Digital Converter
The 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.
NeoPixel Control
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!
Servo Control
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.
OpenXLR8
OpenXLR8 is the methodology we are actively developing that allows XLR8 users to create their own custom Xcelerator Blocks and integrate them into the FPGA.
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.
Hardware Versions
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
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.
Production
The production version of our board includes a new silk screen, some additional test points for automated production testing, and some minor circuit modifications.