Bring the power of FPGAs to your embedded projects! The Arduino MKR Vidor 4000 brings Arduino's ease of use to the work with the most powerful reprogrammable chips that exist: FPGAs.
With Vidor, you can create a board where all pins are PWM signals controlling the speed of motors. You can capture sound in real-time and make a sound effect pedal for your guitar. It is possible to create a real-time computer reading sensor information and sending it to a state-of-the-art monitor or capture video and overlay sensor information on the image that will then later be sent over to a screen.
You can connect to the Arduino IoT Cloud and control a complex laboratory machine running a large number of motors. You could even prototype your own processors inside the FPGA and have it to work in parallel to the other microcontroller on the board. Vidor is a device that invites experimentation, precision, and high-speed computation.
The main chip on the board is the Intel® Cyclone® 10CL016; it contains 16K logic elements, 504 KB of embedded RAM, and 56 18x18 bit HW multipliers for high-speed DSP operations. Each pin can toggle at over 150 MHz and can be configured for functions such as UARTs, (Q)SPI, high resolution/high-frequency PWM, quadrature encoder, I2C, I2S, Sigma Delta DAC, etc.
The board comes with 8 MB of SRAM to support the FPGA operations on video and audio. The FPGA code is stored in a 2 MB QSPI Flash chip, of which 1 MB is allocated for user applications. It is possible to perform high-speed DSP operations for audio and video processing. Therefore, the Vidor includes a Micro HDMI connector for audio and video output and a MIPI camera connector for video input.
All of the board's pins are driven both by SAMD21 and FPGA while respecting the MKR family format. Finally, there is a Mini PCI Express connector with up to 25 user-programmable pins, that can be used for connecting your FPGA as a peripheral to a computer or to create your own PCI interfaces.
The board's microcontroller is a low power Arm® Cortex®-M0 32-bit SAMD21, like in the other boards within the Arduino MKR family. The WiFi and Bluetooth® connectivity is performed with a module from u-blox, the NINA-W10, a low power chipset operating in the 2.4GHz range. On top of those, secure communication is ensured through the Microchip® ECC508 crypto chip. Besides that, you can find a battery charger, and a directional RGB LED on-board.
The Getting Started section contains all the information you need to configure your board, use the Arduino Software (IDE), and start tinkering with coding and electronics. If you want to know more about programming VHDL, the low-level language used to write parallel code that will be executed on the FPGA, check this reference page.
Currently you need to generate the FPGA code using external software. The following tutorials, by Arduino community member Daniel Hertz, explain how to create FPGA code with Intel® Quartus® authoring tool:
- Getting Started With FPGAs Using the Arduino MKR Vidor 4000: read the introduction here.
- How to Program the Arduino MKR Vidor 4000’s FPGA with Quartus IDE: check the tutorial here.
Tech Spec - FPGA Block
|FPGA||Intel® Cyclone® 10CL016 (datasheet)|
|PCI||Mini PCI Express port with programmable pins|
|Camera Connector||MIPI camera connector|
|Circuit Operating Voltage||3.3V|
|Digital I/O Pins||22 headers + 25 Mini PCI Express|
|PWM Pins||All Pins|
|UART||Up to 7 (depends on FPGA configuration)|
|SPI||Up to 7 (depends on FPGA configuration)|
|I2C||Up to 7 (depends on FPGA configuration)|
|Analog Input Pins||n/a|
|Analog Output Pins||n/a|
|DC Current per I/O Pin||4 or 8 mA|
|Flash Memory||2 MB|
|Clock Speed||48 MHz - up to 200 MHz|
|Video Output||Micro HDMI|
Tech Spec - Microcontroller Block
|Microcontroller||SAMD21 Cortex®-M0+ 32bit low power ARM MCU (datasheet)|
|Radio module||u-blox NINA-W102 (datasheet)|
|Board Power Supply (USB/VIN)||5V|
|Secure Element||ATECC508 (datasheet)|
|Supported Battery||Li-Po Single Cell, 3.7V, 1024mAh Minimum|
|Circuit Operating Voltage||3.3V|
|Digital I/O Pins||8|
|PWM Pins||13 (0 .. 8, 10, 12, 18 / A3, 19 / A4)|
|Analog Input Pins||7 (ADC 8/10/12 bit)|
|Analog Output Pins||1 (DAC 10 bit)|
|External Interrupts||8 (0, 1, 4, 5, 6, 7, 8, 16 / A1, 17 / A2)|
|DC Current per I/O Pin||7 mA|
|CPU Flash Memory||256 KB (internal)|
|Clock Speed||32.768 kHz (RTC), 48 MHz|
|USB||Full-Speed USB Device and embedded Host|