At Bay Area Maker Faire earlier this year, the Arduino team announced the MKR Vidor 4000 board, a big new step for the Arduino team. The Arduino team got its start making microcontrollers easier to use by simplifying the hardware and software in the hope that anyone could get started using them. Now with the Vidor, the team is hoping to do the same with another class of electronics, FPGAs.
An FPGA, or Field-programmable gate array, is an electronic device like a microcontroller — but while a microcontroller uses its transistors to interpret the code you send it, an FPGA contains logic blocks akin to mini-circuits inside, and the code you provide decides how these logic blocks are connected together. This is like creating a circuit with code rather than jumper wires. The real benefit of this is once you’ve programmed the hardware to do a task, it can do that task at incredible speeds.
The problem in the past was that many FPGA packages had a high barrier of entry for new users. On top of learning to program them, you also needed to understand how to set up the necessary hardware to run the device. Other companies have previously released packages designed to help users get started with FPGA development, but none of them have had the pedigree as the Vidor.
While the Vidor is out in the market, it’s still in early stages. Like everything else in the Arduino ecosystem, it’s all about libraries. The Vidor will really begin to shine as more libraries are developed to support it. On top of the FPGA, the Vidor board contains an Arm Cortex-M0+ microcontroller chip that the user can program too. This means all your normal Arduino sketches can run on the Vidor along with the FPGA instructions.
You can setup the Vidor inside the Arduino IDE by searching for it in the boards manager. Supporting libraries can be found in the library manager. Arduino has also created a good guide to get you started in understanding FPGA HDL (Hardware Description Language, the programming language used to setup an FPGA) so make sure to read the documents, even if you are a seasoned pro at microcontroller programming.
Once I set up my Vidor I started playing around with basic sketches just to make sure everything was working. I discovered that often I couldn’t upload new code to the device. A bit of googling and I found that often the Vidor will be blocking access to the serial port for re-programming. The solution is to quickly tap the reset button twice putting the Vidor into bootloader mode and unblocking serial access. Once I had this solved, working with the Vidor was easy.
To go along with the power of the FPGA chip, the Arduino team added some convenient other devices to the package. There is wifi and bluetooth on board along with a MIPI camera and mini HDMI connections. There is a great getting started demo that shows how to use the camera on the Vidor to recognize QR codes, a process that would have been tricky on many microcontrollers.
For now the Vidor is going to be relegated to super early adopters and those who are interested in FPGA development but I predict that as the library support grows for this board, so will its popularity and we will see some very interesting projects come out this tiny but powerful package.