Arduino recently announced a new line of Arduino products and one of them, the MKR Vidor 4000, includes an FPGA. What will makers do with the power of an FPGA in their hands?

An FPGA in an Arduino

The Arduino is a popular prototyping tool for a number of reasons. Firstly, it does not require a bulky expensive programmer (such as PIC chips) and can be programmed via USB. Secondly, Arduino boards are open source and, because of this, there are many manufacturers of Arduino boards that offer competitive prices. Thirdly, Arduinos are famous for their robust ecosystem of shields and library support which makes using even complex devices such as ethernet chips a breeze. 

As technology has progressed, so too has the Arduino. Many industry trends are reflected in the release of new Arduino boards. For example, the introduction of the Arduino Yun added Wi-Fi capabilities and the Arduino Duo ushered in more powerful processors. Miniaturization was realized with the Arduino Nano and wearable electronics was introduced with the LilyPad. But all of these improvements involve specialized hardware which performs unique tasks such as radio communication or low power usage.

Now that FPGAs are becoming cheaper and more readily available, Arduino is about to release an Arduino with an inbuilt FPGA, the MKR Vidor 4000. The "MKR" portion of its name is pronounced as "maker" and Massimo Banzi, co-founder and CTO of Arduino, refers to it as being a "maker form factor" board. This is unsurprising as Arduino is generally accepted to be designed for makers and not of particular interest to professional EEs.

 


The FPGA

While the specific FPGA is currently unknown the image of the product suggests that the Arduino will be fitted with an Intel Cyclone 10 FPGA and the Arduino website states that the FPGA contains 16K logic elements, 504Kbit of RAM, 56 18x18 hardware multipliers for highspeed DSP applications. The website also states that the FPGA pins can toggle up to 150MHz and can also be configured as common communications ports such as UART, I2C, and SPI. If true, then this FPGA addon could be extremely useful for designers who want to design high-speed digital systems that need to capture data and process it quickly (such as Digital Signal Processors).

However, how many hobbyists really need to use an FPGA?

 

The Arduino Vidor 4000. Image courtesy Arduino.cc

 

How will this help designers?

Access to an FPGA allows designers to create custom circuits to connect to the Arduino, which can eliminate the need for external circuitry. It also allows the offloading of I/O functions from the Arduino to the FPGA but this comes at the cost of requiring a communication line between the FPGA and the Arduino (unless the FPGA and CPU are integrated into the same package, in which case the two may have a special I/O communication line).

FPGAs, however, are complex devices and are often programmed in languages such as HDL and Verilog which are not for the faint-hearted. While Arduino announced that they are designing a cloud-based compiler system that will make using the FPGA easy this is yet to be seen. More times than not as a system is made easier to use it sacrifices its power, ability, and control. Having said that, the Vidor 4000 could be an invaluable educational tool for those who want to start with FPGAs.

 

More Like a Pi?

The Vidor 4000 does not just boast the inclusion of an FPGA; it also has various I/O devices that make it seem more like a Pi than an Arduino.

Included on the Vidor 4000 are also a Nina W102 Wi-Fi module, an ECC508 crypto chip, a micro HDMI connector, an MIPI camera connector, and a MiniPCI express connector with up to 25 user programmable pins. These features, especially the in-built Wi-Fi, create a potentially popular IoT platform that can perform incredibly complex tasks. With the onboard crypto chip, SSL verification and HTTPS will become a trivial task and help to offload security tasks from the main microcontroller.

While this device will not be as powerful as a Raspberry Pi, it is definitely smaller and more focused on hardware which is something that the Pi falls behind on.

 

Competing FPGA Maker Boards

The Vidor 4000 is obviously not the first board to come out with FPGA capabilities, but it's also not the first built with Arduino compatibility in mind. Another product currently on the market, XLR8, is an Arduino-compatible development board that is FPGA-based, includes an embedded 8-bit AVR instruction set compatible microcontroller, and is programmable through the Arduino IDE.

 

The XLR8. Image courtesy Aloriumtech

 

The XLR8 is preconfigured with “xcelerator blocks” which are blocks that are especially designed to handle specific tasks. Blocks that the unit comes preinstalled with include a quadrature, a floating point math block, servo controller, NeoPixel controller, and an enhanced ADC.

 


 

Integrating FPGAs into an Arduino project will no doubt create a whole new wave of projects and ideas that hobbyists will be able to build—but FPGAs are complex devices. However, with glue logic being problematic in a world where 10MHz just won't cut it, Arduino users may start to design their own hardware from scratch and FPGAs being included in microcontrollers may change the way that circuits are built.

The MKR Vidor 4000 will be available from Arduino's store on June 15th. Are you planning to give it a try? Let us know in the comments below what you think you could do with it.

 

Comments

6 Comments


  • Yrless22 2018-05-31

    Great story. But what’s FPGA? With all of the current initials, acronyms, etc. being used in technology as well as everyday life, it was a rather far stretch to assume everyone would immediately recognize what was meant by FPGA. A brief description early in the piece would have been helpful to me.

    • BrittanysPal 2018-06-01

      Field Programmable Gate Arrays. The integrated circuit is a very large array of CMOS logic gates that can be interconnected usually using proprietary code in a serial input to perform unique functions. Really a sophisticated high speed proto-board©.

      • BrittanysPal 2018-06-01

        The code is loaded into flash memory which sets the function(s) each time the FPGA is powered.

  • w1bworx 2018-06-01

    Well FPGA’s have been around since early 1980’s [I know I designed with one of the first Xilinx devices which makes me feel very ancient]. Suggest you look at google before complaining.
    I think this board is potentially very interesting especially if the cost is in the same bracket as RPi etc.
    What will make/break it though is how well the FPGA programming goes. Xilinx / Altera / Tools are extremely complicated and confusing to first time users so a simple easy to understand cloud based compiler might be the answer and arduino have certainly got a good track record for making things easy to use.
    Verilog or VHDL code is required as programming FPGA’s in C is still very much in the beta stage .... doesn’t work well for tiny devices as its too inefficient ..... And you still really need to write code with some understanding of how the hardware actually works.  Other ‘block’ based design tools are generally too limiting as the whole point about FPGA’s is to be able to define the hardware to do exactly what you want rather than being a fixed function like some standard hardware component. I will definitely buy one and see what can be done.

  • Heath Raftery 2018-06-02

    An uncharacteristically well written article from AAC! Continues to surprise.

    Yes, will be very interesting to see if the maker space stable can democratise one of the few remaining EE domains. I don’t know whether to be eager or nervous!

  • Aquamatix 2018-06-03

    This could be really useful way to implement simple PLC event functions in the FPGA and control the dataflow, analogue analytics and communications in the Arduino.