Arduino Just Introduced An FPGA Board, Announces Debugging And Better Software

Today ahead of the Bay Area Maker Faire, Arduino has announced a bevy of new boards that bring modern features and modern chips to the Arduino ecosystem.

Most ambitious of these new offerings is a board that combines a fast ARM microcontroller, WiFi, Bluetooth, and an FPGA. All this is wrapped in a package that provides Mini HDMI out and pins for a PCIe-Express slot. They’re calling it the Arduino MKR Vidor 4000.

Bringing an FPGA to the Arduino ecosystem is on the list of the most interesting advances in DIY electronics in recent memory, and there’s a lot to unpack here. FPGA development boards aren’t new. You can find crates of them hidden in the storage closet of any University’s electronics lab. If you want to buy an FPGA dev board, the Terasic DE10 is a good starter bundle, the iCEstick has an Open Source toolchain, and this one has pink soldermask. With the release of the MKR Vidor, the goal for Arduino isn’t just to release a board with an FPGA; the goal is to release a tool that allows anyone to use an FPGA.

The key to democratizing FPGA development is Arduino’s work with the Arduino Create ecosystem. Arduino Create is the company’s online IDE that gives everyone the ability to share projects and upload code with Over-the-Air updates. The MKR Vidor will launch with integration to the Arduino Create ecosystem that includes a visual editor to work with the pre-compiled IP for the FPGA. That’s not to say you can’t just plug your own VHDL into this board and get it working; that’s still possible. But Arduino would like to create a system where anyone can move blocks of IP around with a tool that’s easy for beginners.

A Facelift for the Uno WiFi

First up is the brand new Arduino Uno WiFi. While there have been other boards bearing the name ‘Arduino Uno WiFi’ over the years, a lot has changed in the world of tiny radio modules and 8-bit microcontrollers over the past few years. The new Arduino Uno WiFi is powered by a new 8-bit AVR, the ATMega4809. The ATMega4809 is a new part announced just a few months ago, and is just about what you would expect from the next-generation 8-bit Arduino; it runs at 20MHz, has 48 kB of Flash, 6 kB of SRAM, and it comes in a 48-pin package. The ATMega4809 is taking a few lattices of silicon out of Microchip’s playbook and adds Custom Configurable Logic. The CCL in the new ATMega is a peripheral that is kinda, sorta like a CPLD on chip. If you’ve ever had something that could be more easily done with logic gates than software, the CCL is the tool for the job.

But a new 8-bit microcontroller doesn’t make a WiFi-enabled Arduino. The wireless power behind the new Arduino comes from a custom ESP-32 based module from u-blox. There’s also a tiny crypto chip (Microchip’s ATECC508A) so the Uno WiFi will work with AWS. The Arduino Uno WiFi will be available this June.

But this isn’t the only announcement from the Arduino org today. They’ve been hard at work on some killer features for a while now, and now they’re finally ready for release. What’s the big news? Debuggers. Real debuggers for the Arduino that are easy to use. There are also new boards aimed at Arduino’s IoT strategy.

The Future of Arduino

As you would expect in the world of embedded development, the future is IoT. Last week, Arduino announced the release of two new boards, the MKR WiFi 1010 and the MKR NB 1500. The MKR WiFi 1010 features a SAMD21 Cortex-M0+ microcontroller and a u-blox module (again featuring an ESP-32) giving the board WiFi. The MKR NB 1500 is designed for cellular networks and features the same SAMD21 Cortex-M0+ microcontroller found in the MKR WiFi 1010, but also adds a u-blox cellular module that will connect to LTE networks using Narrowband IoT, but the module does also support Cat M1 networks.

But IoT isn’t the only thing Arduino has been working on. On the leadup to the World Maker Faire this weekend, I had the opportunity to speak with Fabio Violante, CEO of Arduino, and Massimo Banzi, Co-founder of Arduino, and what I heard was remarkable. There’s going to be an update to the Arduino IDE soon, and real debugging is coming to the Arduino ecosystem. This is a significant development in Arduino’s software efforts, and when Fabio was appointed CEO last July, this was the first thing he wanted to do.

Also on deck for upcoming bits of hardware is a slow upgrade from ARM Cortex-M0 parts to Cortex-M4 parts. While this change isn’t exactly overdue, it is a direct result of the ever-increasing power of available microcontrollers. The reason for this change is the growing need for more compute power on embedded platforms, and simply the fact that more powerful chips are cheaper now.

Massimo, Fabio, and the rest of the Arduino team will be showing off their latest wares at Maker Faire Bay Area this weekend, and we will be posting updates. The FPGA Arduino — the MKR Vidor 4000 — will be on display running a computer vision demo, and there will, of course, be fancy new boards on hand. We’ll be posting updates so keep your eye on Hackaday!

139 thoughts on “Arduino Just Introduced An FPGA Board, Announces Debugging And Better Software

  1. Arduino? Really? Those guys are still around? I thought they would have gone the way of PIC and shut down by now. Is this their last gasp? Don’t they know they have been beaten and we all use Intel microcontrolers now?

    1. > Arduino? Really? Those guys are still around?

      Yes and no…

      Arduino died a long time ago when the easy beginners’ and artists’ microcontroller environment got too diverse by adding extremely different boards. Some of them already were lost when the Leonardo showed up and that was only the beginning of this disaster.

      Playing with ATmegas and ATtinys still is fun, but Arduino no longer is.

      I’m curious what MicroChip additionally will break.

      Will ATmegas/ATtinys soon have only crippled compilers for free like some of the PICs?

      We’ll see…

      1. The total “paid” ecosystem of microchip is keeping me far from the PIC family.
        You want your code compiled efficiently, PAY!

        Want a programmer (not debugger) PAY!

        Want to use c++ upto PIC24, you can pay but we don’t have any cross compilers.(f*** u)

        And my uni has this shit in syllabus
        Plus, the I feel like the datasheet style is kind weird ????.

        1. The diligent Max32 dev environment seemed to run gcc (it’s gui looking like a red version of the Arduino editor). I believe it does release builds. (..gosh, I really hope so. hmm)

          1. The official PIC32 compiler is the MIPS version of GCC, except they forked it, added some code that disables higher optimization levels unless you pay them several grand for a license, and then put a term in their library licensing to prevent people from using standard versions of GCC without the license check.

        2. For the PIC Compiler. It’s GCC, so it’s GPL. Just a fucking pain in the ass to compile it…. But there are people who done that for you, so there are binaries around. Pimping up MPLabs studio is basically super easy. Just replace the original compiler binary with the rebuilt one. Basically the same way we cracked games back then. Just more legal, since the replaced binary is totally legal.

      1. I love Arduino, but that entire header and shield system is obnoxious as all heck. For the price and power consumption, they could have gone with a Grove or sparkfun qwiic style bus for “shields” and only had individual pins for non-modular stuff like LEDs and analog interfacing.

        Although that might have been harder back when Arduino first started.

        I’ve started adding footprints for qwiic on everything now if I can. I’d love to see “Randomly adding a standard bus connector even if you don’t think you’ll ever use it for anything if there’s room” become a new standard best practice.

        1. My remark was totally tongue-in-cheek of course. :)

          In all seriousness, the biggest problem I always have with Arduino is that it tries to be smart by generating hidden prototypes of my functions, which makes it difficult to use my own types as parameters for functions.

          Fortunately there’s an easy workaround:

          typedef struct
          {
          int a;
          } mytype;

          void dosomething(mytype x) // Won’t compile
          {
          // code
          }

          #define squirrel(x) x // Distract the Arduino preprocessor

          squirrel(void dosomething(mytype x)) // Compiles fine
          {
          // code
          }

    2. Rapid c-like dev environments won’t be going anywhere any time soon
      its a good jumping off point for anyone getting started and a fine way to rapidly test something out
      i still use it for something i dont feel like busting out the mbed for, and for projects i intend to be entry level and easy to reprogram without the end user needing a programmer

      1. Yup. The Arduino universe has a good choice of boards, great libraries, minimal configuration hassles, tons of examples. And if you want to program for Arduinos etc but in a better IDE, install M$ Visual Studio Community edition, then get Visual Micro’s plug-in for Arduino. Even the free level is very useful. http://www.visualmicro.com/

      1. I can pick up virtually any popular chip and there’s an Arduino library for it. For PIC you often have to code from scratch or use poorly documented libraries. Of course, with the PIC you can write more efficient code and develop a product around it, but Arduino’s customers aren’t typically doing that.

        1. If you’re willing to step out of the “Arduino” environment, you can use different syntax which runs MUCH quicker. directly accessing the ports rather than using digitalWrite() is instantly like 35 times faster!… Furthermore, the ICSP header on every board means you can get Atmel studio and program on the bare metal with no Arduino-hand-holding and then you can access all of the hardware on the chip.
          I started with ‘duinos, and moved on to the bare AVR’s and then on and on, and I think many others have taken a similar path too and I truly worry that Microchip will try to commercialise the community beyond reason! I mean of course you expect to have to pay for things, but the prices of things in the PIC ecosystem is shocking!

          1. Ive never understood buying PIC’s. Theyre overpriced, very limited etc. Arduinos are on the other hand just a gateway to microchip programming. And you can build your own programmers and arduinos from scratch pretty easily. Once youve dipped a toe in that world you can move chip to chip and.. the truth is.. you can simply move on from Atmel. Microcontrollers are pretty standardised so its pretty easy to move to arm chips, stmicro.. whatever. Sure you dont have a “hobby kit” in some cases.. but i think by that time youd be familiar enough with microchips that youre comfortable just building it yourself and adding on what you actually want.. (i never got around to doing this honestly because my interests/time limits changed)

    3. Microchip’s community and technical support is awful compared to Arduino. Anyone who isn’t an engineer or an experienced hobbyist is going to take an Arduino over a PIC.

      1. I’m a dutch student electrical engineering and we don’t use PIC at all.

        Years ago the curriculum on micro-controller programming shifted completely to AVR based MCU over PIC. AVR with the C language and the good quality compilers+options was just considered a more appropriate choice.

        So yeah. Here even engineers are starting to avoid PIC!

  2. Wow! This thing is pretty cool! I guess they included the card edge connector imagining people will embed these in other more powerful devices. I wonder if that’ll actually happen. Or if they have the appropriate IP blocks (and enough gates!) to support it. I’d love to see what effects popularizing that has.

      1. Well, the post talks about PCIe-Express (even though I have not found that in the press release anywhere). If it is PCIe, then it is really puzzling about who is this targeted at – I just don’t see an average Arduino user to be able to handle verilog or VHDL and even less to deal with PCIe in a desktop computer (not to mention the risks of frying the machine by a wiring mishap).

        And for people who are sufficiently advanced to be actually able to make use of this meaningfully the board is woefully limited with IO (especially high-speed one) but packed with useless stuff like that security chip and wifi. There are much better boards available if someone wants to start with FPGAs.

        I think the last Arduino worth using was the Nano and perhaps Mega, everything that came after were expensive solutions looking for a problem, coupled to a horrible IDE :(

        1. I agree RE it being a confusing market choice. But I’d argue one of Arduino’s biggest contributions generally is forcing the embedded market to smooth off some of the (crappy) sharp edges of the embedded development process, while causing a proliferation of XXX + Microcontroller widgets (for better or worse). I want those market effects applied to cool things I can stick in my laptop!

  3. The new boards seem interesting.

    But how about fixing bugs with the IDE ? Also, will these new features for the IDE be compatible with all the million old boards around ?

    1. IDE updates were also part of this announcement and Fabio Violante said several times on the call that they are investing in software improvements all around. Time will tell but to me it sounds like your concerns about bugs and continues compatibility are on their minds.

    2. Presumably the real debugging is coming to the Arduino ecosystem, meaning it is a software update that would also work on older boards? Have been waiting for native support for this for ages now. Can anybody clarify?

      1. Most likely, it’s shit. Just like their “IDE”. Who needs a debugger in an environment that just plainly hides compiler warnings? That’s like wanting a race car when you are still using a bicycle with training wheels.

        1. “shit” that is very articulated and thoughtful. Compiler warnings are confusing for beginners that’s why they are filtered by default. you can just go to preferences and enable them along with verbose compilation and you’re all set. Debugging takes a lot of work, unfortunately it seems that most of the genius coders prefer to pontificate on online forums rather than submitting pull requests. BTW the “shit” you’re referring to has enabled millions of people to learn about microcontrollers and electronics, innovate, get jobs , start companies etc… You’re welcome to release a much better tool

    1. That is what I was going to say. Why add all the complexity with multiple processors? For a lot of projects I’ve even been sticking with the ESP8266 because of the lack of need for the additional horsepower and I/O of the ESP32.

  4. If PCIe and FPGA is your interest, then the PicoEVB is a Xilinx Artix 7 FPGA mounted on an m.2 2230 key A/E card so you can put it in the same slot typically occupied by wifi cards.

    1. Ick. Particle Photon did that, and I’ve still got it sitting in a bin. I never flashed more than a Hello World on it because of the proprietary feel Web IDE’s give me.

  5. I love the idea but it’s really badly executed. They went for a budget, budget Microcontroller running at 48Mhz and a really expensive FPGA. Why not use an M4F or even the new M7 processors at a decent clock speed with a cheaper but quite capable Lattice FPGA?

    1. Same reason why they chose to use an ATMEGA328 over an ARM … its good for learning and rapid dev … and just because the clock is 48mhz does not mean its limited to 48mhz as its an FPGA you can do far more rapid calculations/operations

    1. Take the time to push through and learn SystemVerilog. It’s the easiest for someone coming from C/C++ to FPGAs to learn while also still providing the full power of the FPGA.

      What doesn’t help is the IDEs for FPGA development are ten to twenty years behind on usability and interfaces. They’re something that you just have to suffer through in the field. That and having multiple versions of large development environments installed because only certain versions support certain FPGA families, and the newest ones tend to only support the newest FPGAs.

  6. Arduino lost me when they went from cost effective(ish) boards for makers to wallet molestating boards for industrial applications. Putting the term ‘prototyping’ in their description has become a token word on every board description page while here in reality, most makers are not implored to risk an unavailable 60$+ board at a go.

    …and where is my Arduino Vije board!

    1. ROLF
      Look like you don’t understand the meaning of the term ‘prototyping’ .
      If you plan to sell a product driven by a ATmega and you are not stupid you design a simple PCB with the microcontroller and all you need on it or you are that dumb to think someone really sell product with a Arduino ( or any prototyping pcb) board inside?
      ????????????????????????????????????????

      1. Looks like you don’t understand the meaning of the ‘prototyping’. Literally not synonymous with selling and nor was that implied in my comment (and since you had to include a series of thoughtless insults, I shall amend with, dip shit).

        Prototyping experiments which is inherently risky. Shd I dumb that notion down further for you, dip shit? Pokey pokey sparky sparky doh no, my expensive board, poo.

      2. People build and sell products with Arduino boards inside and they are not stupid… they are large companies which make $$$ in revenues. If you think it’s faster to build your own board to make a prototype you’re assuming that your time is worth $0 so the time you spend doing that is not a cost.. anybody who is trying to be efficient starts with dev boards… they design pcbs much later in the game when there is a real business case

  7. When I see a daughter card with high speed ADC / DAC, to take advantage of the speed & DSP functions of an FPGA, I’ll consider buying. Until that day, I’ll hang on to my money.

  8. I don’t like the ATECC508A. It’s not just a crypto accelerator, and reading its datasheet, a lot of what it does looks like it’s designed to be for DRM (even Microchip’s site lists preventing “counterfeit” peripherals as one of its uses). In my opinion, Arduino shouldn’t be supporting such a chip by including it on their boards.

    1. So wish to stop people from protecting and profiting from their hard work? Instead you would prefer them to go out of business because any content they create is stolen and uploaded to the web?

      1. Maybe that’s the truest test of an absolute position? If creators no longer create, and the world is lessor for it in the end, then we’ll know that an all, or nothing position wasn’t the right one. A form of tough love in a way.

    2. I agree that people should not be selling counterfeit Arduino boards with the Arduino name and logo, but if your design is open how are you going to enforce this in engineering terms (with technical fixes, excluding the obvious non-technology legal approach.)

      Support for strong crypto e.g. TLS is important, but the ESP32 already has this hardware!

      So what’s it for? If I make my own board using the open-source design, will the Arduino IDE reject my “counterfeit” device?

      1. Clarification: although this chip is capable of DRM, the Arduino board isn’t using it for such. It’s only using it for crypto acceleration. This board has no special anti-counterfeiting measures. I’m only unhappy about the principle of financially supporting a DRM-capable chip, by using one instead of using a DRM-incapable chip that only does crypto acceleration.

    3. Every technology has multiple uses. the ECC508 can ALSO be used to prevent counterfeiting and that is VERY important in some type of products… if somebody fixes the plane you’re flying on with fake parts and it fails in mid flight than the idea that we can certify the origin of spare parts suddenly seems like a great idea..
      We use the 508/608 as a way to authenticate devices with cloud services without leaving any credentials in the code. this is VERY important to build secure IOT products. The chip is not programmed in the factory, you’re free to place your certificates in it and learn how to use it thanks to the extensive code examples and libraries we are releasing..

  9. I feel at this rate, three months from now we’re gonna see a Raspberry Pi board designed to be used in massively parallel datacenters, running on a dual-xeon array with 128GB RAM, that you can buy with a backbone designed to fit in a 4U rack that’ll hold 200 of these boards, and Aruduino’s gonna announce an option to upload directly from the Arduino IDE to a ASIC fab that’ll send you 20 boards for “A competitive price”.

  10. I get the Arduino bashing – certainly there are plenty of limitations to the software and hardware but as an opening to the world of micro controllers for many many people it has been invaluable. The new boards may not suit your taste but for many people it’s been a godsend. Since I started playing with an Arduino Uno I’ve expanded out to other Arduino boards, espxxx, started to learn python, had a play with a HackRF, built a bucket load of projects.

    It may not be the best environment but it’s certainly good enough for the basic stuff most hobbiest are every likely to need. I don’t know anything about FPGAs but with low barrier to entry I just might give it ago. I’ll never be a programmer or embedded engineer but I’ll have fun haveing a go and have some more neat projects (some will even get finished) lying around the house.

    1. I agree. And there is so much code available that has been written by others, I almost never have to create a new project from scratch. These benefits seem to be lost to prima-donnas.

    2. Totally agree on how it’s opened it up.

      But a simple nano is enough for most applications, we don’t need a million boards developed. It would have been wiser to invest that time into a better IDE.

    1. nope, it’s a Cyclone 10 LP. the mini PCIe connector is using only the USB interface connected to Cortex M0+ and if you don’t use it to interface to a PC you can still use it on a breakout board to export FPGA pins.

  11. The ublox NINA-W102 looks interesting. But it’s expensive. USD$8.43 for 500x, maybe half that in high volume?

    What do you get that you don’t get with a bare ESP32, or a cheaper generic module? A better antenna S11, and non-suspicious FCC module certification, are probably the correct answers. There’s not really anything else in the module.

    Will we be stuck with that horrible java IDE forever?
    How about options such as a plug-in for Atom?
    Or a command-line tool that can upload a “sketch” written in vim?

    How much will this new Arduino cost?
    A hundred bucks?
    How will they compete with Espressif silicon on a generic breakout board, programmed in MicroPython, or the Arduino IDE for that matter?

    An ATmega32u4 provides the USB interface. Why bother?
    Sure, the ATmega16U2 on an Uno lets you replace its firmware and tinker with LUFA and custom USB devices, but hardly anyone bothers with that. Just save the cost and use an ordinary CP2102 or FT230XQ or similar?

    Why do we still have all these USB-serial bridges anyway? Why not native USB on the main microcontroller that just works reliably and easily with minimal BOM, without a separate chip?

    Why does it still use an 8-bit microcontroller? This seems silly.

    Get rid of the “Arduino form factor” that was invented at a time when an Arduino had a DE-9 RS-232 port and it was designed by somebody with a total phobia of SMT components.

    Just move on. Move to a more compact DIP form factor just like Featherwing, NodeMCU Arduino Nano, Pycom, etc. Smaller and breadboard compatible.

    The use of an 8-bit AVR as the main processor with an ESP32 attached to it as a “modem” seems silly to me. What an inefficient waste.

    The ESP32 already has an on-chip crypto peripheral to help enable security protocols such as TLS. Why do we need to add more BOM?

    What about deep sleep of the whole board? Can it enter an efficient deep sleep state where everything is turned off without wasting power? Can it wake/reset on a timer, or a sensor interrupt?

    1. well… you should read better the specs. first of all it’s a cortex M0+ (SAMD21), not an AVR, there is no USB bridge… USB is connected directly to SAMD21. cost is 60 USD and to move past the low pin count on the DIP interface we have the mini PCIe connector with many more pins.

    2. The “horrible” IDE has enabled millions of people to learn about microcontrollers not bad eh?
      A full cli will be released in june.
      We sell several products based on the 32U4 and people still prefer the 328, if companies could force customer to make sensible decisions it would be a much different world.
      the 328 and 4809 guarantee compatibility with millions of lines of code.. sometimes people prefer to save time and avoid rewriting code just to switch to a more powerful processor (which myabe the don’t need in the first place)

      None of us had phobia of SMTs, we wanted people to be able to assemble one with minimal effort and knloweldge of soldering. Anyway back then the format was considered “small” compared to the STK500 and other dev boards.
      Anyway we have a more compact format, is called MKR and it’s a big family already.

      The NINA comes with certifications for any county you can think of. That is important for people who are building serious projects.. If somebody is building a wifi cat feeder for the home they can continue using random wireless modules.

      1. I actually find the Arduino IDE to be excellent. while debugger integration would be nice it’s not in my mind a critical component for fast prototyping. The IDE has gotten quite a bit better with the library and the board managers.

        One thing that would be nice to have is an option to switch between the arduino abstraction of setup() & loop() and the traditional c/c++ int main(void) one. This would make Arduino a great vehicle for teaching core c/c++ in colleges and universities, where the arduino abstraction while simpler might confuse new c/c++ programmers, even if they do end up using a superloop structure within their main anyways.

        1. I dont understand the hysterical need for a debugger to handhold you through the coding process. You arent writing tens of thousands of lines of cold on any arduino Id be the average program is what.. a few pages long tops? And most debuggers mostly catch syntax errors etc. If you root out that kind of simple typing or brainfart error in a couple pages of C youre in trouble anyway.

  12. I see small FPGA modules all over the place intended for hobbyists to learn about FPGAs, but has any hobbyist done anything useful with such a device that couldn’t have been done by an MCU alone. In other words, has any hobbyist used the small FPGA to take advantage of things it can do that an MCU could not do as well? I casual search hasn’t turned anything up.

      1. Software defined radio is for sure in our radar although not being top of the list. Be big issue is cost of the front end circuit.. as you probably know any fpga based sdr would cost more than 100 usd. We are considering a daughter are approach… Open for suggestions.

  13. We’re gonna need a new term instead of “IP” for blocks of FPGA code that get released under a non-proprietary license.

    The implication of that term has always bothered the hell out of me. Doubly so now that it’s making its way into this ecosystem.

  14. The only official Arduino boards that became popular were the UNO ( and older versions of it Diecimila & duemilanove), the nano and the Mega. Unofficial arduino boards that are also real popular are all the Teensies. Recently the Arduino on Esp8266 & Esp32 has also gotten popular. Pretty much all the other official boards and there has been a lot of them, especially when there were two arduinos (.org and .cc ) have pretty much sucked…didn’t get proper support or just never really gathered enough momentum.

    I hope that this FPGA board gather momentum but we will see. The FPGA io connector does not look very prototyping friendly. I really hope that there will be an easy and inexpensive way to access those edge pins. This FPGA board has some potential but IDE support has to offer a good experience to capitalize on it, otherwise it will yet another dead on arrival dev board.

    The complexity of the board however (FPGA+uC with edge connectors and an esp32) has me worried that arduino’s target audience will find it too complicated and steer away. While the geeky engineering types will find the IDE too simplistic to use and won’t give them enough control or power and will also steer away. Guess we’ll have to wait and see

    1. There’s a reason for the funny card edge connector – it supports the impedance matching and length matching required for high speed signals.

      There’s a reason that an FPGA mezzanine card, for example, uses a funny connector. You just can’t push 1 Gbps down a 0.1” header and DuPont jumper wires.

  15. I’d advise most readers to validate what you read here sparately. There are some insightful comments against a firmament of inciteful comments and unsubstantiated opinions. Being a person that never saw a chip I didn’t like, I suppose I’m less aligned with one vendor or another.

    FPGA design can be a considerably valuable skill for those students or hobbyists who might go pro at some point. Verification of FPGA and/or board designs can also be rewarding and both are typically in demand.

    People from diverse backgrounds historically have mastered digital logic design and made significant contributions on product designs. If you’re interested in designs where chunks of logic need to run at high speed, programmable logic can be a very effective tool to apply. There exist many applications where FPGAs are a preferred solution. For example capturing a frame or three of JESD204 A/D data so a microcontroller can format it to a display screen to make an oscilloscope. Other examples could include the logical parallelism afforded by FPGAs that makes possible multi-ported communication interfaces or multiple simultaneous DSP computations. In the abstract FPGAs are empty canvases to HW designers just as microcontrollers and CPUs are empty canvases to SW people.

    Lastly, because of their reprogrammability, FPGAs designs can be upgraded and/or have bugfixes applied in a manner extremely similar to code updates for processor based designs (albeit with security caveats in both cases).

    I am a fan of the Altera (now part of Intel) Cyclone-II and -IV and MAX-II boards available on eBay for <20USD with a USB ByteBlaster dongle at <4USD. Design and verification software are free from Altera. Xilinx options are also available. Description and simulation of digital logic in a hardware description language can be experienced for free with iVerilog, an open-source HDL and sim environment.

    The HW is waiting….

    1. What does this even mean? Who needs an Arduino when you can get an STM32 “blue pill” board for $1.50, with 72 MHz and 20K RAM, it blows any Arduino out of the water. It actually does support 5 volt peripherals with its 5 volt power supply pin and its 5 volt tolerant inputs. You can run stm32duino if you want to use the Arduino API and tools, or you can run nuttx or mbed and you can have real multitasking if you want. And if you want to step up from blue pill you’re not screwed like you are with AVR, you have enormous upgrade possibilities with complete software compatibility. For the price and the capability you can just throw all that AVR stuff in the garbage.

    2. Forget about the 5V system… you should learn to be comfortable with a 3.3V system where the microcontroller, sensors and peripherals are all designed to run at 3.3V supply and interoperate at 3.3V levels. (Or even 1.8V or lower, but let’s just stick with 3.3V for now.) Get comfortable with it. You’ll thank me later.

  16. I agree with many of the comments above – putting a esp32 on a 8 bit processor for wifi is really odd – it would like be adding a ferrari to the front of a horse to make it go better ie why would you bother?

    Its just stupid, and will also mean the price point doesn’t make sense..

    Of course, if that had done a esp32 with a 8 bit processor hanging of it (via i2c) that would have almost made sense, as then you are using the 8 bit proc as a port expander and controller for some hardware (ie servos..)

      1. it’s pretty close. I recently ported a few thousand lines of code that start on an ardunio years ago, then went to a 8266, and now to an esp32.. The main step was from a ardunio to 8266 – as all the ardunio assembly bits could be chucked and redone in C instead (as the 8266 is so much faster) – but that wasn’t hard as there were (of course) in their own functions and could be swapped out without the rest of the code knowing..
        Moving from a 8266 to the esp32 took about 15 minutes, apart from the led string handling…

        I’d guess that 90% plus of ardunio programs could be compiled on a esp32 pretty much as is…

    1. except that it’s an ARM Cortex M0+, not an AVR… it’s a proper 32 bit processor ;)
      ESP32 is still more capable of it on some sides but as i wrote in another post it does not have USB and it’s not as supported as the M0+, in fact Arduino had to rewrite its code to have a decent WiFi and some basic support for BT…

  17. Of course Arduino comes up with an FPGA board after I start working on a 32U4 + Max II board. I love the democratisation it’ll probably bring, but hate that I now look like a copycat.

  18. Oh, an online IDE? When will companies learn that pushing things into the cloud isn’t making things more robust or appealing? Especially in educational settings it’s a huge turn off. Get your stuff together Arduino, and provide a proper IDE.

    1. We have a proper IDE but there are scenarios where the cloud is very compelling, two examples:
      1. 60% of schools in the USA are on chromebook, without a chromebook app you can’t do Arduino.
      2. the fpga toolchain is huge , runs only on windows and linux and it’s not very easy to use so we place it in the cloud and we make it super simple for anybody to compile for the FPGA.
      The world is full of different people with different needs, just because you don’t understand the use case that doesn’t mean the solution is stupid… :)

      1. I have to agree with Massimo here. Using cloud based tools is great for schools as it removes the need to manage additional software on computers and eliminates time wasted troubleshooting when the offline IDE fails to install/ function properly. I teach college students embedded systems /physical computing with mbed. One of mBed’s biggest selling points is their online IDE in my mind.

        1. I’d argue the opposite is true. The last thing schools need is software that’s out of their control and dependant on the availability of the internet. Doing something online doesn’t magically eliminate points of failure, it just shifts them beyond your control. You want something that’s there regardless. I’ve lived through networked solutions in the classroom and it wasn’t a pleasant ride. If it’s not your infrastructure you’re basically resigned to waiting until someone fixes whatever is wrong.

      2. Don’t get me wrong, I do understand the added value of cloud solutions in some situations. It can be a great tool. The big mistake almost everyone makes is having it be the only solution. It’s not a silver bullet and the way some companies are force feeding it to its user base doesn’t help. If Arduino provides a proper offline IDE and an online platform for whoever prefers that, that’s perfectly fine, assuming interoperability. Giving people choices is good and it seems you’re intending to go that way.

        Thanks for taking the time to respond to the community. I’m glad to see Arduino coming up with some exciting initiatives after a difficult period.

        1. Hi Sighborg,
          of course not every country has good internet connectivity in schools and cloud experience can be a pain. at the same time most schools do not have an IT department managing PCs and often machines are not that good. FPGA tools are quite resource hungry and just to give you an idea a full quartus installation requires about 25 GB of download (of course you won’t need all that but likely the average user would download everything rather than pick what’s really needed) and a beefy machine with at least 8 GB of RAM just to start thinking about compiling.
          in any case we’re not ruling out the possibility for local compilation within Arduino IDE but don’t expect it soon.
          finally… open source compilation tools for FPGAs right now are a bit of nonsense for anything bigger than a CPLD in my point of view: apart from the satisfaction of reverse engineering someone else’s work, these tools are very far from being effective as FPGAs compilers have a lot of tricks in their sleeves which hardly will be replicable without having a clear view of the fabric’s characteristics. just to make a simple parallelism, it’s like trying to develop GCC for a machine of which you don’t even know the instruction set. it may work if you have a RISC processor with few registers but imagine if you’d have to first reverse engineer the instruction set of a XEON.
          you may argue that they should release more info on FPGA fabric and i may agree with you but this is not the case now and in my humble opinion until then it’s wasted time…

  19. I have only two questions about the Vidor 400 that either make or break this thing: Does it have built-in battery charger circuit and what is the interface between MCU and FPGA?

    1. Hi JP, yes, like other MKR boards it has battery charger. interface between MCU and FPGA is JTAG. we chose this as it allows us to use existing tools (programmer, signaltap, etc) via USB and at the same time have efficient access to FPGA internals. we redesigned the JTAG bridge to be much faster and optimized than Intel’s so that we can speed up transactions. finally we have an internal soft core handling Remote Procedure Call requests from a dual port memory mailbox so that M0 does not really need to write IP registers but rather will “call” high functions from FPGA’s internal drivers

  20. The Lattice ICE40HX1K-STICK-EVN is equal on price to a genuine Arduino UNO board at USD$22 or so.

    This is the best comparison for the Arduino offering – and I doubt we’ll see success here unless the price is about the same.

    It doesn’t really make sense to think about writing an FPGA core in C++. If you’re coming from a software background without any HDL experience, the best rough analogy I can think of is a functional language such as Haskell. I think part of getting started with an FPGA is the understanding that this is a fundamentally different paradigm to programming a microcontroller.

    If you want to “learn how to use an FPGA” then I really think part of that is learning basic skills in the industry-standard languages (HDLs) that everybody uses, i.e. VHDL. (Or Verilog, which is like HDL in inches and feet whereas VHDL is like the metric system.) And if you want to interoperate with the open-IP ecosystem like OpenCores then you must speak the same language.

    We’ve already got OpenCores, already got a USD$22ish dev board and we’ve already got open source and multiplatform toolchains such as IceStorm. I think that’s the existing system that Arduino has to beat. Show us that they are just as good and show us that they are better.

    1. Hi Luke,
      we don’t want to beat anyone, we just want to make things easier and hope that with this contribution we can succeed in getting FPGAs out of the ghetto. i am afraid your comparison with Lattice ICE40 is a bit unfair… it’s true that it costs 22 USD but it has 1280 logic elements agains the 16K of the FPGA we’re using, plus our board has WiFi/BT, battery charger, cortex M0+, HDMI output, MIPI input, 8MB of SDRAM, 2MB of flash… shall i continue?

      regarding high level synthesis i feel like hearing myself when at the age of 16 i was sure assembler was unbeatable by C. while it’s absolutely true that languages closer to the bare metal representation allow you to better think about what you’re doing and maybe produce more optimized results, on the other hand we have gone far away from that concept and now we run interpreted languages on our machines just because they allow more flexibility. of course C++ programming on FPGAs will not be the same as on PCs but it for sure is a way to enhance productivity.

  21. I m interested to a starter kit for this Board, because it maybe very complicated for for all the users. Arduino best product, for myself, was the “book”, because it entroduced ne and thousends of People around the world in the embedded World. I suggest an easy going bibliografy for these Boards

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

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