Video of the Arduino FPGA Board Demo at Maker Faire

This week, Arduino announced a lot of new hardware including an exceptionally interesting FPGA development board aimed at anyone wanting to dip their toes into the seas of VHDL and developing with programmable logic. We think it’s the most interesting bit of hardware Arduino has released since their original dev board, and everyone is wondering what the hardware actually is, and what it can do.

This weekend at Maker Faire Bay Area, Arduino was out giving demos for all their wares, and yes, the Arduino MKR Vidor 4000 was on hand, being shown off in a working demo. We have a release date and a price. It’ll be out next month (June 2018) for about $60 USD.

But what about the hardware, and what can it do? From the original press releases, we couldn’t even tell how many LUTs this FPGA had. There were a lot of questions about the Mini PCIe connectors, and we didn’t know how this FPGA would be useful for high-performance computation like decoding video streams. Now we have the answers.

The FPGA on board the Arduino Vidor is an Altera Cyclone 10CL016. This chip has 16k logic elements, and 504 kB memory block. This is on the low end of Altera’s FPGA lineup, but it’s still no slouch. In the demo video below, it’s shown decoding video and identifying QR codes in real time. That’s pretty good for what is effectively a My First FPGA™ board.

Also on board the Vidor is a SAMD21 Cortex-M0+ microcontroller and a uBlox module housing an ESP-32 WiFi and Bluetooth module. This is a really great set of chips, and if you’re looking to get into FPGA development, this might just be the board for you. We haven’t yet seen the graphic editor that will be used to work with IP for the FPGA (for those who don’t care to write their own VHDL or Verilog), but we’re looking forward to the unveiling of that new software.

98 thoughts on “Video of the Arduino FPGA Board Demo at Maker Faire

  1. if you can program that with the PCI-E interface, I might put up with a usb wifi stick on my laptop…. It’s a shame Intel is unlikely to open source the tool chain for these FPGA’s, using the IceStorm tools has been a fantastic breath of fresh air…

      1. We support USB on mini PCIe like other mini PCIe modules with modems or wifi. This means you can use Vidor as an expansion for PCs with this interface or you can just create a breakout board that takes advantage of the many pins connected to the fpga

    1. OSS, probably not (but I’d be happy to be proven wrong). But Altera’s closed crap kind’a works on Linux – at least it did a few years ago, although not without installation problems (library-, dependencies issues,…)

      I’d be interested to hear anyone’s experiences if you try a recent installation on current Debian, Ubuntu etc

        1. Where did you get this idea? Quartus supports Linux for many years and there’s an installer that you can download and install. Are you sure you’re not confusing it with Xilinx ISE, which is indeed a virtual machine image?

  2. Well, this is one board the Chinese are unlikely to make a cheap clone of. Most of the other Arduino-boards have been copied, but I’d imagine the Intel Cyclone – part is both the most expensive and the least available part here. Then again, I’d love to be proven wrong.

    1. The FPGA is the 10CL016YU256I7G, which costs EUR 15.31 in single quantities at Digikey. But the board lacks decent memory for serious applications. 512 kBits RAM is only 64 kByte. An old Gameboy has 8 kByte RAM, but you need fast access to up to 8 MByte for the cartridge ROM. Would be no problem with e.g. a MiniZed, which has a Zynq, Bluetooth, WiFi and 512 MByte (not MBit) memory, an accelerometer, a MEMS microphone, and doesn’t cost much more. You can even implement a GBA with it, because it has an integrated ARM CPU core, which you can’t implement in a FPGA, unless you pay lots of money to ARM for it, and you could run Linux on it. Forget this with the Arduino board. So $60 sounds expensive for this new Arduino board. Or buy some cheap FPGA board on eBay, like this one: https://www.ebay.de/itm/232194910386 with 64 MBit RAM. Should be no problem to implement at least a Gameboy with it.
      And if you don’t need all the FPGA flexibility, you can do machine vision with much cheaper boards, like a Raspberry Pi. OpenCV runs on it with no problems. But the Arduino board looks like a nice packet for some niche applications, and if it works out with the easy online programming sharing of IP blocks without the need to install complicated and bloated software like Altera Quartus, it might be a good solution for FPGA hobbyists.

      1. Correct me if I’m wrong, but at @1:44 he says it has 8Mbytes of ram. I don’t see anything about 512kBits of ram. The intel doc for the FPGA says 504Kb as does the article above. I think it’s a really well planned move and cost wise it’s right around other beginner offerings such as the Papilio Pro and Mojo V3 both are $75, or the DE0-Nano at $80. And while you can buy more advanced boards the draw of an arduino / FPGA is being able to use and learn from packages or libraries that other people have written. Yes, I can’t wait for Chinese knock-offs to drop the prices down just like they do with everything else.

        1. You are right, I missed the 8 MB RAM. I hope it is accessible from the FPGA. Then it would be possible to implement an old Gameboy with it, but maybe not a GBA.
          With the 512 kBits was just an example. The documentation says, the FPGA has 516096 bits of RAM, which is 504k (504*1024=516096), so only 63 kByte. But it has 15408 logic elements. Maybe this is enough to implement the missing one kilobyte to 64 kB, if you don’t need all for logic :-)

        2. A side note on the chinese knock offs. I hope you do understand that to develop something like this requires a lot of effort and investment which can only be supported by people buying original hardware. If you only wait for the chinese copies you’re basically discouraging anybody from making open source hardware-software products.

          1. But this is the whole idea of open source hardware: everyone can build and sell a clone of it (if they don’t use the trademark name), if you don’t want to pay the high price the original developer wants. I don’t understand why open source hardware works anyway.

          2. @frankbuss
            Open Hardware or Free Hardware Design is for having the option of development based on what already exists, without extra permission. It also helps to write drivers and better documentation. Last but not least, it can be useful to counter surveillance (by gov) and governmental regulations.

      2. You seem to have misread the Arduino spec. It also has 64Mbits (8MBytes) of SDRAM. It has 3 times the amount of logic resources as the cheap board you linked to, plus the ARM and ESP32 chips for not much more than the Chinese board.

          1. The ram is available to the FPGA (otherwise the demo you see in the video wouldn’t be possible)
            This is a tool that will introduce a lot of people to FPGA, if you’re an FPGA pro keep using what you are using., if you’re a beginner this board and the tools that come with it will allow you to learn about FPGAs and use them in your projects. it’s a big step forward!

    1. Yes and no.. USB is connected to the arm processor. You can emulate the USB interface at 1mbps or Ethernet at 10mbps without external components or go for an external phy and go full speed. For example you can attach a cypress fx3 and have it connected via bidirectional parallel bus to obtain real USB 3.0 speeds, not only to emulate mass storage but also for things like image capture, encryption acceleration ( we have an aes ip porta in the pipeline) and much more… Same goes for Ethernet for which by attaching a gbit phy you can do TCP/ip offloading and so on…

  3. That’s it. There is so much cool stuff I want but none of it is within my budget. Heck, no way I could justify the spend to my lovely wife at all at this price point

  4. For just an FPGA board with 16K LE and 8MB of RAM on its own I can assure you that it is. Add in an ARM CPU and an ESP-32 wireless module and you have a bargain.
    Take a look on aliexpress.com if you don’t beive me.
    FPGAs are not cheap compared to microcontrollers. They are however potentially far more powerful, and able to handle high speed signals beyond the limits of an MCU with ease. Horses for courses.

      1. I think many artists can write some simple Arduino script, probably with lots of examples from the web, but it would be too complicated to write VHDL code. Same as for me it wouldn’t be possible to draw Mona Lisa :-)

      1. No programming hardware required. Samd21 is connected to JTAG so it can program the fpga. We are planning to emulate USB blaster so quartus will be compatible with it.

    1. $60 is cheap if you’re a hobbyist and the part is versatile and interesting. I think my Dad spends 20x that on R/C models each year now that he’s retired.

      I’m more of a SW guy, so RPi Zero and NodeMCU are my sweet spot rather than this thing, but that’s purely my personal bias. For FPGAs I tend to need something massive enough for use as a CPU or image processing or vector math, and I’m not so good at verilog and need a lot of help or something off-the-shelf.

  5. I often saw articles here about FPGA’s. I know more or less what they do (a lot of NAND’s inside and you connect them in some way, I guess), but working with one was like miles away for me because I don’t know where to start.
    I often have questions about Arduino’s ‘mission’, but maybe that will be the way I can learn to work with an fpga.

    1. Guide to Digital Electronic Design
      for Absolute Newbies

      1. Get an introductory book on Digital Design, like this one:
      Digital Logic And Computer Design

      It doesn’t really matter which edition. This book will teach you boolean logic, truth tables, gates, flip-flops, counters, etc. The book also covers Hardware Description Languages, but I’ve never read that part.

      2. Get this book
      Rapid Prototyping of Digital Systems: A Tutorial Approach
      https://www.amazon.com/Rapid-Prototyping-Digital-Systems-Tutorial/dp/0792374398/
      There are several editions of this book and they target different Atera design software (MAX+PLUS II or Quartus II) and different boards. I would recommend getting a version that targets Quartus. You can still download and license (for free) MAX+PLUS II, but you will need a Windows XP computer with a parallel port. Quartus can use cheap USB programmers and is still supported.

      3. Get a development board, targeted by the book – UP, UP2, DE1, DE2, etc. They show up on Ebay frequently. Older boards are cheaper, but you’ll need the older software.

      Check out this page:
      http://hamblen.ece.gatech.edu/book/bookse.htm
      It will give you an idea about the different editions of the books..

      Disclaimer:
      I have no formal training in electronics (I am in fact a structural engineer).

      1. 1. I can skip part 1.
        2. The book in 2. is to expesive and books (even ebooks are always behind).
        3. I’ll think I’ll buy the arduino fpga for 60$, they will have to provide the tools.
        4. I’ll start learning the same day.
        That will do for now and for 60$.

        1. I’ve been thingking about Ostracs’s comment.
          An FPGA could be ideal for structural design.
          One has to know ali the value’s at 1 given moment in a given situation.
          An FPGA can process them all at once.

    2. Seems interesting and value added. I’ve found, whether the Arduino’s mission or not, that the boards have aided in understanding how a basic CPU microprocessor works.

      There are other IC formats for microprocessors and CPUs used by Arduino and others. The Advanced RISC Machines (ARM) CPU is based on the RISC (reduced instruction set computer) architecture developed by ARM.

      I’m guessing at least for me, the FPGA use will help advance not only the chip format and design… the awareness maybe to some how advanced the FPGA’s are now days and how to use if developing or prototyping a circuit design that uses an FPGA as I guess this is an industry trend.

      My education isn’t electronic or EE either… so I’m learning how the older computer systems (Intel / AMD) worked more clearly now after working with the Arduino Uno and Nano.

      1. Figure I’ll note for newbies and for more memory re-enforcement; the Atmel chip is the simpler Reduced Instruction Set Computer (RISC – https://en.wikipedia.org/wiki/Reduced_instruction_set_computer ) that say for instance the ATmega 328 ( https://en.wikipedia.org/wiki/ATmega328 ) is found on the Arduino Uno or newer than v3.0 Nano ( https://en.wikipedia.org/wiki/List_of_Arduino_boards_and_compatible_systems ).

        Basically, I’ve found the Arduino’s are awesome for prototyping and then you can design your own form factor on a breadboard then into whatever form factor like “one chip” designs that are really compact. You can even make or use a Uno or Nano as a ISP programmer ( https://en.wikipedia.org/wiki/In-system_programming ) like an AVR, ATtiny or whatever technically up to a certain limit, without customizing the Arduino more, programmer.

    1. Exactly! This is one of the first use cases we’re looking at… Multiple high res pwm, quadrature encoder support and he based PID… suggestions for more are welcome!

    1. Absolutely! We successfully compiled c64 emulator on it but could not demo it because although it’s supposed to be open source the owner of the (peculiar) license considered commercial usage showing it… Btw it took just a fraction of the fpga, including 1541 emulation on as card

  6. Given how kinda crappy the Arduino IDE is in user experience compared to other IDEs and just how bad UX was in ISE, using this tool will probably drive you mad in a day.

    1. It comes a time when educated people should just stop saying that something is “crap”. It would be much better for the whole opensource community to actually point out what is so bad about a tool (which has helped millions of people to learn about microcontrollers). We’re investing more in the UX of the Arduino IDE in the next months, if you want to help provide some constructive feedback :)

      1. People will never be happy. The Arduino IDE is light and simple and people compare it to much more involved IDEs and then conclude it’s not good enough. Atmel Studio is built upon the very well liked Visual Studio, but people complain about disk space and general bloat. People will fault you whatever you do. You can’t win.

        That being said, I worry about the plans for an online Arduino IDE. Cloud based IDEs aren’t a replacement for a proper offline IDE. I really do hope Arduino makes it an offline IDE with optional online features, rather than a mandatory online experience. The latter is asking for problems in the classroom and not ideal in parts of the world where the Internet may not be too reliable.

        1. +1 — I can’t stand web based/online IDE’s. Please don’t jump on that bandwagon. I’m sick of the ‘crap’ complaints also – the IDE is great for its intended use. It’s simple, and easy to learn for someone new, without a daunting learning curve and feature set. If you’re a hardcore/fulltime/advanced developer who may consider it ‘crap’, well, you have plenty of other tools you will easily understand or could learn at your disposal. It is great for the occasional recreational use/project, and overall is plenty powerful for what many hobbyists need. If you outgrow it, nothing is stopping you from taking on a more advanced IDE, with the knowledge you’ve accumulated already helping jump you up the learning curve of it. Keep up the good work.

        2. +1 – A “Cloud” IDE is DEAD to me. I’ve lived the past 25 years in the developing world where Internet connectivity is still a struggle for the vast majority of people. Being from the developed world originally, I can easily appreciate where inexperienced developers trying to do “right”, do “wrong” by making software and other services tied primarily to the Internet. Don’t forget the “rest of the World”. Make the IDE primarily OFFLINE if you really care about the rest of us trying to just keep up with you.

    1. Hi,
      Fpga is too small to handle h.264 but the pi camera sensor actually supports jpeg output and fpga can easily collate the pictures to have mjpeg. In case you still prefer outputting raw from sensor a jpeg ip consumes only about 3 of the 16kle

  7. FPGAs beat micro controllers where you need:
    processor speed (typically 400+ MHz core, vs 120MHz Cortex M0),
    parallel functions (video decode & object detect running independent of CPU), and / or
    I/O (multiple sources or targets, at high speed, feeding data to / from the FPGA functions).

    I/O ranges from high speed HSMC, FMC, Syszygy, down to PMOD – and the Arduino shield interface.
    The video shows the card reading from a camera and playing video out. That’s a good start, but I’m going to need to see much better ADC / DAC action before I buy.

    1. Not so sure about this, the on-board ESP32 could be dedicated to wireless communications, as a WiFi/Bluetooth controller like the ESP8266 was initially, which remains its first purpose as a product,

      If so, it could be only accessible through some modem-like protocol via high speed interfaces, meaning you couldn’t (easily) flash it with a custom firmware to take advantage of its CPU cores and its other I/Os, probably not broken out to headers and connectors in this case.

      A schematic could learn us more, but one for the Risc-V based, “Arduino Cinque” board presented a year ago is still nowhere to be found… That’s the same problem with this kind of PR material relayed as-is on HaD : while the reporter had a privileged access to this product’s engineers and designers, legitimate questions about real-world usage of the “hack-oriented” audience is not discussed in the article or video, leaving us mostly to speculations in the comments.

      1. Thanks for this great comment, and these fantastic news, Massimo ! :D Sorry for the doubts, now a full access and progammability (with I/O routing capabilities of both ESP32 and FPGA) sounds like great “multiple cores” fun indeed !

      2. thanks for your comments, some clarifications:
        The Arduino Cinque wasn’t a product of arduino.cc but was announced at maker faire by the former arduino.org without checking with us. It was just a prototype and was dropped before it was even ready to be a product. Sorry about that. We don’t even have the files for that…
        The Schematic will be released when the product launches. At least we recently introduced a policy that we announce products only when they are 1 month away from being available. it’s a big change :)
        The ESP32 firmware implements the same protocol as the original Arduino Wifi Shield from a few years ago.. so it’s 100% software compatible with any Wifi or Wifi101 code people have.

    1. I like it even more since Arduino people (Dario and Massimo) just came here to answer our comments, with some clarifications and many good news too !

      It’s really cool to get to discuss about this announcement (first official Arduino board with onboard FPGA) directly with them, and it shows a welcome commitment and a will to exchange with users, thank you very much !

        1. I must wholeheartedly concur with this sentiment. You’re doing great and really incentivizing an old python head to get into c++ [eventually VHDL , perhaps? Anyway thanks again so much

  8. I’d love to see this get turned into something like an open source oscilloscope! Seems like a great opportunity to combine the ease of arduino programming with the power of FPGA!

    1. But then you need ADC/DAC hardware attached to the FPGA. Remember, an FPGA itself is not really any good for the analog world. Rather than reinventing the wheel perhaps you’d be better off with something like a Red Pitaya.

    2. Actually we were thinking to create with it something more than just a scope… The idea is to develop a tool that also acts as a logic analyzer, waveform generator, protocol analyzer and so on. Of course analog in would require an adc and that is a good candidate for the mini PCIe breakout board we are planning to develop. Regarding analog output I developed an ip that does sigma-delta DAC so any pin can actually output high dynamic range analog output with a simple low pass filter. Given we can drive pins at over 100 MHz the trade-off between sampling rate and dynamic range can get you quite interesting results.

  9. The hallmark introduction projects for this new Arduino should be: 1. Logic Analyzer 2. DDS/ARB signal generator. Not only will it show off what the FPGA can do, it brings real TEST EQUIPMENT to the user at no added cost!

    1. That or the many things that are usually done with FPGAs. But “real test equipment” from a dev/prototyping board ?? Ok, for example you could add support for this 60$ module to Sigrok open-source logic analysis software, if USB 1.0 transfer speed is fine for you… And waveform generation applications (beyond simple discrete R2R-DACs) will probably be proposed for more $$ in the form of a DDS module, among a range of add-on daughter cards. By the way, I just thought of a user-friendlier name for them : “hats” :)

      1. Thank you for pointing at sigrock. This is very interesting and for sure that is in my roadmap. As I was mentioning in another post we are considering a sdr board and that may as well be used for analog acquisition as a scope.

  10. I had a Altera board like this from Arrow that has the same dodgy edge connector and the board – Today it’s in a landfill.

    This one suffers from the same issues. No accessible I/O unless you build a custom interface card to it. Did it ever occur to the Arduino folks to provide a interface board for it. You know guys it wouldn’t kill you to provide example prototype boards with BOM and a Gerber if you are going to do it this way.

    So that $60.00 board will be around a $80-100.00 when you pick up the extras to make it useful.

    As far as the board goes. It’s clearly not aimed at FPGA newbies, it’s aimed at people who already know how to write Verilog or VHDL when you look at all the junk they added on it like the ARM and crypto engine. Newbies OTOH need to learn the basics which this board avoids like the plague. LED’s, buttons, switches, LCD’s, interfacing to A/D, D/A’s, video, etc. That’s why you buy a Terasic board for a bit more. It already has all the goodies for newbs. You know all elements to become productive with FPGA’s.

    If you are going to target newbies, then do it right. Don’t just toss out a bizarre board. Include lots of tutorials, examples – like what these guys do:

    http://www.lbebooks.com/

    1. There’s a reason for the card edge connector – high speed systems require impedance control and length matching and consistent connections.

      You can’t have a 50MHz clock connected up via some 0.1” pin header with flying wires.

    2. Hi, as I wrote in other posts the board is aimed primarily at existing Arduino users. Our idea is to prevent the need for RTL coding by providing lots of up blocks. The idea we’re providing allows you to just drank and drop blocks into your system on chip without any need for RTL knowledge. Basically the concept is that this board provides you the possibility to tailor it to any application, removing the limitations of the peripherals you have in the microcontroller.
      Of course we’ll be delighted to see people contribute and write RTL ip blocks and I am sure it will come but again I am sure that most people will use up blocks as they today do with software libraries.

  11. I don’t get it. finally it’s just another development board but arduino branded. arduino should promote the open source and use a lattice FPGA with IceStorm toolchain instead of intel/Xilinx FPGA to integrate the FPGA toolchain inside arduino IDE and improve the toolchain (but I suppose they can’t do it).

    Because now, how will be the toolchain for this new board?, a fancy GUI like system generator to connect IP cores but with the overloaded quartus IDE running in background?. I don’t see the improvement compared to another IDEs.

    P.D. just curious about the PCI because is the cheaper board in the market with a PCI connector.

    1. It doesnt work this way :) :( Why do you think there ever existed Arduinos build around Intel Curie/Quark/Galileo/Edison turd garbage? Intel funds those with sweet sweet $, Arduino makes money before even selling a single board.

      1. Not really. We didn’t get any sponsorship by Intel on this board. This is just something we’ve been thinking about for long time and we now think we have a solid concept for enabling fpga flexibility for the masses.

    2. As I already wrote somewhere else, reverse engineering a fpga compilation tool is not easy and works only for small, simple devices. Quartus is a very good tool but again we’re not going to ask users to install it. The compilation will happen in the cloud so you will be able to produce the fpga image even with a Chromebook or eventually a smartphone.
      The blockly based GUI we’ll be releasing is much simpler than the ones in the dev tools from fpga vendors as we are trying to make it really easy to assemble systems, taking care of all the complexity behind it.

    1. Hi Alexey,
      sorry for the slow reply… SAM D21 connects to FPGA via JTAG and is able to upload new images as well as upgrade the image in the flash. JTAG connection is not Passive Serial but does more or less the same thing with the exception that you have a finer control on what you are doing. in addition to this we are actually implementing compatibility with USB Blaster so that you can use Quartus directly connecting Vidor to the PC without additional hardware.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.