New Part Day: Arduino Goes Pro With The Portenta H7

The Consumer Electronics Show in Las Vegas is traditionally where the big names in tech show off their upcoming products, and the 2020 show was no different. There were new smartphones, TVs, and home automation devices from all the usual suspects. Even a few electric vehicles snuck in there. But mixed in among flashy presentations from the electronics giants was a considerably more restrained announcement from a company near and dear to the readers of Hackaday: Arduino is going pro.

While Arduino has been focused on the DIY and educational market since their inception, the newly unveiled Portenta H7 is designed for professional users who want to rapidly develop robust hardware suitable for industrial applications. With built-in wireless hardware and the ability to run Python and JavaScript out of the box, the powerful dual-core board comes with a similarly professional price tag; currently for preorder at $99 USD a pop, the Portenta is priced well outside of the company’s traditional DIY and educational markets. With increased competition from other low-cost microcontrollers, it seems that Arduino is looking to expand out of its comfort zone and find new revenue streams.

That’s a Lot of Pins

The Portenta H7 is obviously a far cry from the relatively dinky 8-bit Arduinos that we’ve all got filling up our parts drawers. Developed for high performance edge computing applications, the new board is powered by a 32-bit STM32H747XI that utilizes both an ARM Cortex M7 and an M4 running at 480 MHz and 240 MHz respectively. The two cores can work independently, allowing for example one core to run interpreted Python while the other runs code compiled in the Arduino IDE. When they need to work together, the cores can communicate with each other via a Remote Procedure Call (RPC) mechanism.

The new 80-pin connectors on the Portenta

Outwardly, the new board doesn’t look far removed from the modern Arduino form factor we’re used to. The USB connector has been upgraded to a Type-C, but the Portenta still retains the dual rows of pads ready for hand-soldered headers — that’s their more recent pinout that they call the Arduino MKR form factor.

If you look on the back of the board however, you’ll see that they’ve added two 80-pin high density connectors. According to the product page, these are intended to allow the Portenta to simply be plugged into a device as a removable module. The idea being that devices in the field can easily have their Portenta swapped out for an upgraded model. Some digging into the product page documentation section turns up a schematic that lists the connectors as Hirose DF40C-80DP-0.4V(51).

The base model Portenta features 8 MB SDRAM and 16 MB NOR flash, but it can be custom ordered with up to 64 MB of memory and 128 MB of flash should you need it. It’s also possible to delete various interfaces from the board when ordering, so if you don’t want network connectivity or the NXP SE050C2 crypto chip, they can simply be left off. However as of this writing it is unclear as to what minimum order quantity is necessary to unlock this level of customization, or or how much these modifications will change the unit cost.

Year of the Arduino Desktop?

The Portenta Carrier Board

The Portenta H7 is an impressive enough piece of hardware on its own, but when it’s plugged into the optional Carrier Board, things really start to get interesting. The Carrier Board provides full size connectors for all of the onboard peripherals, and according to documentation, turns the Portenta into an eNUC-class embedded computer. There’s even support for DisplayPort to connect a monitor, and miniPCI for expansion cards.

With a fully loaded Portenta H7 slotted into the Carrier Board, it would seem you have the makings of a low-power ARM “desktop” computer. Albeit one that wouldn’t outperform the Raspberry Pi Zero, and which costs several times more.

The Arduino press release and product page doesn’t make any mention of what kind of software or operating system said computer would run, so presumably that’s left as an exercise for the customer. While not particularly well suited to it, the ARM Cortex-M family of processors is capable of running the Linux kernel, so spinning up a “real” OS image for it should be possible. Of course with a maximum of just 64 MB of RAM, you’ll want to keep your performance expectations fairly low.

Where Does Portenta Fit?

We can’t even speculate what a maxed out Portenta would cost, and there’s no pricing or release date for the Carrier Board. But even at $99, the base model Portenta H7 would be a tough sell for hackers and makers who are used to buying dual-core ESP32 boards at 1/10 of the price, or the Teensy 4.0 which has a 600 MHz Cortex-M7 at 1/4 of the price. Which is fine, since this board isn’t intended for the traditional core Arduino audience.

Seeing the carrier board, we can’t help but notice some parallels here with the Raspberry Pi Compute Module. With connections broken out to a SODIMM header, the idea of the Computer Module was to help bridge the gap between the DIY community and the commercial one by offering up a Raspberry Pi in a more rugged form factor that would be easier to integrate into end-user products. But since it wasn’t any cheaper than the stock Pi, there wasn’t a whole lot of incentive to switch over. We haven’t seen consumer products advertising “Raspberry Pi Inside!” so it’s hard to tell if there has been any meaningful adoption from industry.

One has to wonder why any company that has the resources to integrate such an expensive board into their products wouldn’t just come up with their own custom design around the Portenta’s STM32H747XI chip, which even in single quantities, can currently be had for less than $15. The difference may end up coming down to the world-renowned community that surrounds the Arduino brand, and the company’s efforts to modernize their toolchain.

91 thoughts on “New Part Day: Arduino Goes Pro With The Portenta H7

      1. How “hardened” is this board overall? Can it even tolerate 5V? 12V? 24? Is it pro in price only or also in durability? One of the major downsides of the Arduino product (aside from the dismal speeds and memory of even the “higher end” or “more industrial geared” MEGA product) has been related to the robustness of the actual hardware.

        Even if it is, it’s still a good bit more expensive than many other competing offerings out there today. If this had come out 5 years ago, it might have been pretty impressive. Now it just feels like an overpriced official product that may very well turn into a DUE or other basically unsupported yet official Arduino board.

        1. I agree this is not long for this world. Duino is big because its 3 $ ea for chinese clones. Millions of arduino users supply the code base.
          The 25 or 30 people who might use this thing are not going to support a code base , this is on borrowed time . imho

        2. The board is a module meant to be connected to application boards where you will add whatever kind of I/O hardening you please. The only external facing interface is usb-C which is of course protected. The pro claim comes due to the usage of industrial temperature components (-40 +85 °C) and due to the fact we’re going to allow, for volume customers, to customize the BOM and get the exact configuration you need for your application. All components have also been selected for long availability so we’ll be also offering a lifespan guarantee.
          In terms of Arduino hardware robustness, I guess you’re talking about clones which often come with low or no quality control and for which you need to buy 10 to get at least 6 working… Anyway if you feed 24v to an I/O pin designed for 3.3v or 5v of course you’re going to break it.
          Regarding the Portenta Vs Pi comparison, I think that just mentioning it is missing the whole point. On one side you have a powerful dual core microcontroller with industrial grade peripherals meant for real time, instant boot applications whereas on the other side you have a consumer grade computer on module meant mainly for desktop or cell phone like applications. Of course you may try to stretch one in the other domain but you get what you get…
          Regarding pricing… Any industrial grade board will cost much more than a standard consumer grade part, Moreover published price is for 1 unit whereas of course you get quite different pricing for volumes and even lower if you don’t need all the goodies we stuffed in there.
          Finally, if for an industrial application you decide to use consumer grade devices it’s really up to you… Of course they will work well but when your customer will call you after your nice value added application failed at low or high temperature killing a critical mission project maybe you may want to rethink your approach. Don’t even mention trying to get hold of consumer grade stuff for years with volumes… What are you going to do when your low cost solution disappears suddenly and you have to issue a product change notice to your customers, maybe requiring expensive requalifications?

    1. IoT feels like low level end user/ consumer for me. “Industry 4.0” is a stupid name but that is what it’s for.
      They say:
      “Use Portenta when performance is key, among other cases, we envision it to be part of:
      High-end industrial machinery
      Laboratory equipment
      Computer vision
      PLCs
      Industry-ready user interfaces
      Robotics controller
      Mission-critical devices
      Dedicated stationary computer
      High-speed booting computation (ms)”

      My bet is that they will ditch the Arduino name in the next round. Classic move and a smart one.

      1. Just imagine a high-end industrial device, costing millions of dollars in development, operated by beefy version of Arduino programmed with one of those trendy scripting languages for programmers who can’t be bothered to learn C. Everybody knows that industrial devices only needs a 10% of the raw computational power of that board…

        And is it me, or “Portenta” really sounds like name of a STD medicine?

      2. I don’t see it being used for any of these. Not at least without a really well designed and buffered I/O board And no that carrier board that Arduino is selling does not inspire confidence. It’s clear the designers included everything but the kitchen sink because they had no idea what their target audience is.

        Worse you would still need to design another daughter board to use the digital I/O because it’s not buffered.

        They’d also have to dump the kiddie scripting language and Ardunino IDE. Those are not selling points to industry. Quite the opposite – it says “hobby board”.

        At least the Ruggedino line put out by Rugged Circuits does a lot better job at targeting industrial apps than Ardunio does with the Portena.

  1. $99 is absolutely not expensive in the PRO world where you need parts that are reliable, well documented and can be reordered in a hurry. As an engineer, $99 is my rate for 30 mins of work. Do the math; you have a team of seven engineers working fulltime for three months as part of a bigger project. Your job is to make 200 – 300 identical pieces of equipment that is critical to the project. Even at scale this could make sense.

    1. The price one gets paid has little to do with the cost of the product your making. Sure, you have to cover development costs. But do you want to sell 10, $10 hamburgers or 100 $1 hamburgers. Its all in the grand scheme. Most companies want to compete with the final product price. So if out of the gate one part is $99 whereas another is $35 (RPI CM Module) your already out of the game.

      1. Of course, cheaper is better if the quality and all the features are comparable but I was just noting that in some fields $99 vs $9 isn’t all that important. That $35 board of yours might be the winner but again, do the math. Price is really way down the priority list. Safety first, quality, deadlines, regulations, paperwork… they all win. And as a sidenote; a normal hamburger cost us $11.35 at the greasy clown. Twice that for something edible at a restaurant.

      2. Actually, the price of an engineer for half an hour has everything to do with the cost of the project to the client, and the development costs are almost always significantly higher than the hardware costs. When hardware costs less than $100 for a dev kit, Missy clients could care less about the cost if the product exactly meets their requirements, and no a raspberry pi is not a one size fits all solution, FYI

      1. This doesn’t appear the require/need the Arduino Scripting/IDE for programming though, running Js or Python out of the box. So might well be better suited for critical projects.

        1. I think most designers of industrial microcontroller based equipment would agree that ‘Runs Js and Python’ and ‘for critical projects’ are mutually exclusive ideas for so many reasons.

  2. So…
    ST-Link can be used to program it?

    And…
    Just how hard will it be to have those 80 pin connectors mate with a couple of plugs on a (gasp!) daughterboard.
    (maybe they are only intended for ribbon connectors.)

    1. Probably you could after a bit of hassle with the connections. But why would you, when there are plenty of STMicro dev boards that are more user-friendly than this thing?

      As for connections, they probably want to sell the whole expansion “system” (marketing codeword for unnecessary and overpriced junk, like this board). I designed and made a board for 100 pin PIC24s, dsPICs and PIC32s that exposes all of its IO in a friendly manner with 2,54mm pins, and it’s a bit less than 50x50mm in size. But I can’t use it because I can’t solder 100 pin TQFP due to my poor eyesight…

    2. Not only ST-Link but also many other much higher spec debuggers are supported as we also provide SWO for some trace capability. The Portenta Carrier hosts an on board jtag connector and you will be surprised to learn that we’re going to support quite a bit of debugging tools built in the board(s) of this family. The Arduino Pro IDE, based on Theia (which basically is a VS Code able to run both on desktop and cloud) supports native debugging via jtag or more in general a GDB connection (more news on this coming soon).
      The two 80 pin connectors are meant for mating with an application board that specializes the Portenta module for a given application. These are not for ribbon connection although you can eventually design a rigid flex pcb with them. The connectors themselves are very easy to procure and low cost if compared to headers, moreover they allow a large number of signals to be exported with proper signal integrity. Of course manual soldering is hard and most will fail at this but again the product is meant for professionals or advanced hobbyists that are able/willing to create their application board and can manufacture it

  3. What a laughable product. There is nothing “PRO” about Arduino. Its know around the world as a hobbyist toy. There is not a “real” engineer out there that uses Arduino for anything. Not to mention at $99, any product your making is going to be expensive. If I as a buyer of such a product using this would here to the question “So, whats in there” Oh there is a Arduino processor…. “Stop….” i heard enough, no thank you.

    1. It’s all about the right tool for the right job.
      I’m working with a 100k€ test rig with a coolant pump inside which can be set to two speeds.

      Once I had to repair something and discovered that the pump is controlled via an arduino. It’s a simple task and the manufactor must have been lazy but it all works fine.

    2. Our digital designers have arduinos sitting beside their computers because they need to sequence digital inputs going high or low and quickly change the sequencing and timing. My programmable load boards have arduinos controlling the relays that change the load. The die pressure testing system we built uses an arduino to talk to the load cell. Plenty of real engineers use arduinos.

        1. Is Arduino a hardware device or an IDE? Also, looks like Atmel Studio is a Windows/.NET application. On linux, without Atmel Studio, it’s mostly command line avr-gcc tools. Seems you’re splitting hairs on the abstraction layer with which one should code. As we know, void main() is pretty high level. My take is that real engineers don’t knock others for doing the best they can.

          1. If the engineers in question is using Arduino IDE and Arduino hardware/firmware to operate the uC via registers (the way it should be done), I don’t really see the problem. But if they are too lazy to do that and instead use the routines Arduino people designed, then they are lazy or incompetent. Or both…

        2. Could you elaborate on that? If its the right tool for the right job I use it, if not, i will use something else. If i need a computing board, that has good documentation, good evailability and most important a long life span, I dont see a difference to any other professional gear. and you can programm any arduino like any other microcontroller board.

    3. “There is not a “real” engineer out there that uses Arduino for anything.”

      Wow, your horse is so high it seems to be giving you hypoxia. You might want to get off it and look at what us “real” engineers are doing when we have to maintain 20 year old equipment on a shoestring budget. Sometimes it’s better and/or faster to slap an arduino into something and get it running again. Might not be pretty, but pretty is not often the goal.

    4. Speak for yourself- I’ve built up at least 30 seperate projects where I work using nothing but “hobby-grade” stuff. Collecting process data, getting/setting PLC and controller registers via Modbus, providing visual feedback to employees about production /overflow queue capacities using those big-ass 7-segment LED displays, displaying water tank levels using those cheap silicone-sealed WS2812 LED strands off of Amazon, and more. Hell, I’ve have an RPi that’s been humming away collecting steam supply data in a hot and humid boiler room for the past 2 years without a single hitch- and it’s not even in a totally sealed enclosure. It’s so easy to snub your nose at the ‘hobby-grade’ stuff because they’re not ‘industrial’ enough or something when most of the reliability concerns can be solved through simple means. I can tell you first hand that being able to find and diagnose process inefficiencies due to poorly designed piping by whacking some ESP8266’s to the analog output of a portable, clamp-on flow meter makes those things worth their weight in gold.

  4. It is all about perception. And it works both ways. The name “Arduino” is synonymous with “toy” to many people, but a good engineer recognizes he can solve a problem with an Arduino and does so. At the other extreme, slap the word (if you can call it a word) “Pro” on it, and it suddenly gets legitimacy in some peoples eyes. But anybody can slap “Pro” on their product (and many do!), and this can be enough for the simple minded and guilible.

    As for this gadget, it isn’t knocking me over — and the fancy connectors are a liability from my perspective — we shall see.

    1. “but a good engineer recognizes he can solve a problem with an Arduino” .
      No, not true. A good engineer would know that all Arduino did is take any real learning how to program micros out of the equation. The day Arduino goes belly up so many people are going to be screwed. Most who use that platform think that code actually starts at “void setup()” In the real world its void main() and there is no such thing as void loop().

      1. no, in real world code starts at reset vector and you need to setup stack, copy initialized data from rom to ram, fix errata issues, enable interrupts or possibly the cache or fpu if you have one … so having main() vs setup() and loop() is really the same level of abstraction/ignorance :-)

        1. Ehm no, a main() is not the same level of the loop(), sorry but I cannot read such sentences, assuming if such people are firmware engineers. And there is no need to prove that on a comment, just study some software architecture to understand what does mean layering, wrapping, callbacks and, apparently also what is a “function”. Oh, check in the main.cpp of Arduino platform to understand what this is about. And going on personal opinions, using such functions also through such an Arduino IDE it is not an abstraction, it is a lie :D

      2. That. If someone knows how to write firmware, will find more easily and in control to use a real, DEBUGGABLE platform, like Atmel Studio and a real debugger, which is cheap. And who says you need to do all the startup before, to make it seem more difficult, seems it never used a 8bit MCU or ARM or anything. Some low level setting, without any particular need, are done by default. And if we use Arduino, we don’t have particular needs, usually.

    2. A good engineer wouldn’t need to waste their time with Arduino because they would already know several toolchains to solve the problem with hardware that isn’t a toy, or fits the requirements perfectly. A good engineer doesn’t like running into artificial limitations of a hardware abstraction, because they would know how to get results from the hardware with better toolchains.

      Arduino IS A TOY, and good engineers can recognize that and avoid it. The only reason to use it is because you got tricked into using it because you think everyone else is using it, but really only the noobs are using it, not good engineers.

      1. Also a good engineer working on real industrial machinery would program it in C or something other that is low level and close to hardware. Not with a scripting language few levels of abstraction above the hardware…

      2. We are providing hardware and software solutions that not necessarily need to be used together. We are enabling users to pick their choice of software on top of our hardware and even on everybody else’s hardware…
        Arduino stopped being a toy long ago and this new platform is a clear demonstration of it. you should not compare it to maker or consumer grade products as it’s industrial temperature, with characteristics that are far different from the ones you find on cheaper products… just to name one check the WiFi/BT module…
        in terms of software we support running mbed, Arduino on top of mbed, MicroPython, Jerryscript and TensorFlow. with minimal effort you can also run bare metal if you like.

  5. this does seem to be an bit of an odd product for them to do..

    Want I want is something that can be a bit more expensive than a esp32 board (say $5US) but not up to a pi( say $50US) – ie something about $15 – that has wifi, Bluetooth on a separate chip, a couple of cores so I can run a interpreted language on one, and real time stuff on the other, and say 8MB of flash and 8MB of ram (or 16/16). Running a RTOS – not unix or any other bloatware.

    Two esp32-S2 (from the specs) and a nordic bluetooth chip would just about do it if they have fixed the problem with the esp32 not wanting to be a i2c client (the current esp32 can only do that in brain dead mode, ie not via interrupts which even a 328p can!).

    1. I will still take an ESP32 over Arduino Pro. Free RTOS, I use one core for more critical functions then dump data to second core for WiFi, printing, etc. ESP32 more than fast enough. I really like the two API MCPWM units. I have found the API fast and accurate for BLDC motors.

  6. In the carrier board this would make a pretty good pseudo-retro console target. It’s got the right balance of limited but functional specs, a co-processor to run something like graphics or sound, and most peripherals you could ever want.

    1. Or even picking one of the many STM32H7 based Nucleo-144 boards which are very similar to the Portenta H7 but about 1/4 the price.

      Unfortunately they don’t do a board with the H747 chip but they do have one with the H745 which I think only lacks the MIPI-DSI interface although the Nucleo-144 boards do have the ethernet port implemented.

  7. “When they need to work together, the cores can communicate with each other via a Remote Procedure Call (RPC) mechanism.” OMG, what a mistake.
    Decades of industry experience have proven that RPC is not a good way to tie systems together. Simple character streams over bi-directional serial links, however, are much better at providing scalable, robust systems. If extra syntactical sugar is needed, a simple message-passing layer based on publish/subscribe would have been far superior.

    1. we are actually supporting OpenAMP on top of which we provide the RPC mechanism. you can chose to use RPC or OpenAMP if you prefer just message passing.
      we’re just trying to provide as many tools as possible for users to be able to do whatever they please in the easiset possible way

  8. Way too high priced, everyone who creates a one of a kind product will use a RPi4 and call it a day. And if you start to produce volumes you check LCSC for a cheap but viable for your product micro and get cracking.

  9. Hmm.. I’m not sure what problem this is solving. The market already seems pretty cluttered with similar dev-boards from players that will also be happy to take your money when you need a production run worth of their in-house processors.

    Although stamping Arduino on it sure does seem to evoke some strong responses over a silkscreen! On the quality of an unreleased product line…

  10. This thing costs more than the industrial version of the Beaglebone Black, which comes with Debian pre-installed and Real Python instead of this “circuitpython” if you would want such a thing.
    For rapid prototyping one of the many available evaluation boards seem a better buy, or indeed the new Teensy 4.0 which looks quite impressive for it’s price.

    1. Again comparing very different things. Beagle bone black industrial costs between 70 and 80 USD but is bigger, does not have a crypto, WiFi or BT ( the wireless module on Portenta is quite powerful and expensive), does not have a camera interface and is not a real time capable system. It is just for a totally different market. Teensy is great but again it’s not industrial temperature and does not have any of the many features we stuffed in there (dual core, sdram, flash, crypto, ethernet, WiFi/by module, etc). Even if you don’t need these differentiating features, if you need volumes, we can customize bom and get you the right price. If you just need a single board and Portenta is not for you then of course you’d better look for an alternative

      1. @Dario Pennisi, I’m very interested in the Portenta and I think the production timeline might even fit my needs.

        Can you recommend any cameras that work with it and remark on resolutions/fps? Also, what’s the likelihood I can order a Portenta (or 5) for end of March with max RAM and max flash?

      1. Just wondering how many people will compare apples to oranges and associate it with being an actual engineer? While your point is valid, your comparison of what is being sold as an industrial product to a popular consumer product commonly used by hobbyists doesn’t contribute in any relevant way. Not to mention, using a hobbyist device because it’s “fast enough” for a vague need (not a requirement) suggests you aren’t an engineer either.

  11. I don’t know if this new Arduino solves any problems I’m likely to have. But I’m not a PRO engineer ;-). I am way more fun at parties, tho…

    As a hacker who’s into boats, I could really use something like a Raspberry Pi 3 or 4 that’s been hardened for mobile/marine/industrial use: protected ins and outs, able to run on 6 to 16 V DC, can handle temperature and humidity extremes without added cooling or fans, built-in interfaces for CANbus (NMEA-2000), plugins or ports for wifi, Zigbee, LoRa etc.

    1. You’re right about the parties! Haven’t enjoyed them myself since the 90’s anyway.

      Agree with you on wanting something sturdy for boat stuff (and dust, rain, snow etc.). And the input range is very important. If Portenta (or others!) could be offered in a marine grade casing with proper connections to the outside world I’d get one right now. As much as I like modifying Pelicases, a ready-to-go solution would be a huge time-saver.

      1. Case and hardened I/O, aside, I’d wanna also see a conformal coating and an industrial grade PC board. And especially cooling! I’m very disappointed that the rPi 4 needs extra heatsinks and/or a fan. You can’t encase it properly for marine or mobile.

      2. We’re able to customize the board for volumes and this includes also tropicalisation and eventually full product manufacturing via our third party manufacturers. Just don’t expect to buy this off the shelf for 1 piece, at least for now.

  12. “While not particularly well suited to it, the ARM Cortex-M family of processors is capable of running the Linux kernel”
    You won’t get far with Linux without an MMU… uclinux would work but that project looks DOA. Can’t even hit uclinux.org anymore.

    1. Yea, no-mmu got rolled into mainline and the rest is either tken in or tossed. There are some follow uo projects, looks like. Uclibc-ng looks like a library successor.

      I would guess the parent company(s) slowly dissapeared as well looking at who had a copyright on the marks.

  13. Hello

    I would like to know if it is possible to use a serial module UART (using the 2 high-density 80-pin connectors each located on the bottom of the board) to program the Arduino Portenta H7 instead of using the USB (located on the top of the board).

    Regards.

Leave a Reply

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