What’s this FPGA doing in my new Arduino Vidor? I think it’s the backstroke, sir. – Classic British Humor (paraphrased)
Among several new development boards announced by Arduino.cc just before the opening of the Bay Area Maker Faire in May, the Arduino Vidor 4000 stands out because it is so not an Arduino. It combines an Arm Cortex-M0+ processor, 8Mbytes of SDRAM, an Intel Cyclone 10CL016 low-end FPGA, and a u-blox NINA-W10 Wifi/BLE radio modem—all on a 61.5x25mm board. That’s roughly the size of a stick of chewing gum, minus the sugar coating. It’s much smaller than and looks nothing like the classic Arduino dev board.
The new Arduino Vidor 4000 combines an Arm Cortex-M0+ processor, 8Mbytes of SDRAM, a low-end FPGA, and a Wifi/BLE radio modem on a board that’s about the size of a stick of chewing gum.
Arduino’s design engineers have packed a metric ton of capabilities into this inexpensive ($60) board. You should be able to order it from the online Arduino store by June 15, with distributor availability scheduled for some time later. Arduino plans to accommodate some of the Intel FPGA’s hardware programmability using new graphical-based design tools that will extend the Arduino IDE.
Arduino demonstrated this board at the Maker Faire running a real-time, “machine vision” application that tracks QR codes. This video-processing demo decodes video and recognizes QR codes in real time, and it immediately answers the question, “Why put an FPGA on an Arduino?”
Answer: For performance. (Duh!)
The high-performance capabilities of the FPGA’s parallel hardware make possible many real-time applications that were far beyond the reach of the original Arduino Uno with its slow, 8-bit microcontroller and interpreted-software programming model.
USB or 10Mbps Ethernet on any I/O pin? Sure. As many as you like. “If you want ten USB ports, you can do that,” said vision/video IP expert Dario Pennisi in a Hackster video shot at the Maker Faire. Real-time camera video input? HDMI output? Arduino’s Vidor 4000 says yes to all of ‘em.
A recent blog post on the Arduino site quotes Arduino co-founder and CTO Massimo Banzi, who said, “The new MKR Vidor 4000 will finally make FPGA accessible to makers and innovators, and we are looking forward to changing the game yet again.” Overlooking the fact that many other board-level vendors made FPGAs accessible to makers and innovators by offering low-cost dev boards long before Arduino, the Arduino brand certainly has an unprecedented reach into those communities. The $60 one-off price for this very capable board isn’t bad either. That price certainly makes the board accessible to a broader audience and makes the Arduino Vidor 4000 dev board more than competitive with other FPGA boards.
Do you really get much for that $60? Yes, you do. You get a ton of stuff.
Here’s a list of hardware specs, collected piecemeal from several sources:
- Microchip SAM D21 microcontroller integrating a 32-bit, 48MHz Arm Cortex M0+ processor core; 256Kbytes of Flash memory; 32Kbytes of SRAM; 7 analog inputs; 1 analog output; 12 PWM pins; a UART; and 8 external interrupt pins
- Intel/Altera Cyclone 10CL016 FPGA with 15,408 Logic Elements; 504Kbits of on-chip SRAM; and 56 18×18-bit hardware multiplier blocks (for DSP)
- Microchip ATECC508 crypto security chip (for network security including IoT)
- 8Mbytes of on-board SDRAM (available to both the microcontroller and the FPGA)
- 2Mbytes of on-board QSPI Flash memory
- u-blox NINA-W10 Wifi/BLE (Bluetooth Low Energy) radio modem with in-module ESP32 processor
- On-board interface ports and connectors:
- MiniPCIe (supports only USB mode; not a true 2.5Gbps PCIe interface because the FPGA lacks the SerDes ports to support it)
- Micro HDMI
- Micro USB (power input and USB host port)
- MIPI CSI video camera interface and connector
- Arduino MKR header (all pins driven by both the microcontroller and the FPGA)
- LiPo battery connector
The Arduino Vidor 4000 represents a significant leap in capabilities relative to the original Arduino Uno. The FPGA can toggle each of the general-purpose I/O pins on the MKR header at 150MHz, and you can use these pins for functions such as SPI or QSPI serial I/O; and it has high-resolution, high-frequency PWM; quadrature encoding; and I2S. This is one very capable dev board.
That said, a comparison between the Arduino Vidor 4000 and an Avnet MiniZed based on a Xilinx Zynq Z7007S SoC provides some perspective. The Avnet MiniZed sells for $89, so it costs roughly $30 more (or 1.5 Jacksons) than the Arduino in single-unit quantities. Physically, the MiniZed board is more than three times as large at 71.12×76.2mm (versus the Arduino’s 61.5x25mm). That size difference buys you a lot more capability in terms of processing power.
Compared to the Arduino Vidor 4000’s SAM D21 microcontroller, the Zynq Z7007S SoC incorporates a better, faster microprocessor (a 32-bit Arm Cortex-A9 application processor with MMU that runs Linux at clock rates as fast as 667MHz, which is nearly 14x the clock rate of the Arduino’s Arm Cortex-M0+). Other differences include:
- Significantly more programmable hardware resources in the MiniZed’s FPGA (23K logic cells, 1.8Mbits of BRAM, and 66 DSP slices, with 25×18-bit hardware multipliers versus 15.4K logic elements, 504Kbits of SRAM, and 56 18×18-bit hardware multipliers)
- 512Mbytes of SDRAM on the MiniZed (versus 8Mbytes on the Arduino Vidor 4000)
- 16Mbytes of QSPI Flash memory on the MiniZed versus 2Mbytes of Flash memory on the Arduino, 1Mbyte available for user storage)
- 8Gbytes of eMMC mass storage on the MiniZed (versus none on the Arduino)
The Avnet MiniZed also incorporates an LIS2DS12 3-axis MEMS accelerometer and temperature sensor and an MP34DT05 omnidirectional MEMS digital microphone, both made by ST Microelectronics.
Both dev boards offer Wifi and Bluetooth wireless interfaces and USB. The Avnet MiniZed also includes two Digilent-compatible Pmod connectors and an original Arduino header instead of the Arduino Vidor 4000’s MIPI CSI camera port, the micro HDMI port, the USB-only MiniPCIe connector, the MKR-style headers, and the LiPo battery connector.
From my perspective, a good hardware summary would be that the MiniZed offers a lot more processing power (both in the faster Arm Cortex-A9 microprocessor and in the larger integrated FPGA) while the Arduino Vidor 4000 perhaps has an edge in the I/O department, thanks to the MIPI CSI camera port and the HDMI output.
Instead of the Arduino visual IDE, the Avnet MiniZed’s software-development environment is Xilinx’s Vivado tool suite. Vivado is a comprehensive design tool that can intimidate new FPGA users, and Arduino’s visual FPGA design tool…is currently a completely unknown entity. No one seems to have seen it yet.
Which is better? That depends on your application, doesn’t it? But isn’t it nice to have a choice?