Arduino Portenta H7 + Vision Shield
The Portenta H7 is a powerful development board from Arduino with both a Cortex-M7 microcontroller and a Cortex-M4 microcontroller, a BLE/WiFi radio, and an extension slot to connect the Portenta vision shield - which adds a camera and dual microphones. At the moment the Portenta H7 is partially supported by Edge Impulse, letting you collect data from the camera, build computer vision models, and deploy trained machine learning models back to the development board. The Portenta H7 and the vision shield are available directly from Arduino for ~$150 in total.
There are two versions of the vision shield: one that has an Ethernet connection and one with a LoRa radio. Both of these can be used with Edge Impulse.
The Edge Impulse firmware for this development board is open source and hosted on GitHub: edgeimpulse/firmware-arduino-portenta-h7.
Portenta H7 development board

Installing dependencies

To set this device up in Edge Impulse, you will need to install the following software:
  1. 2.
  2. 3.
    On Linux:
    • GNU Screen: install for example via sudo apt install screen.
Problems installing the CLI?

Connecting to Edge Impulse

With all the software in place it's time to connect the development board to Edge Impulse.

1. Connect the vision shield

Using the vision shield using two edge connectors on the back Portenta H7.
Portenta vision shield (with a LoRa radio) connected to the Portenta H7.

2. Connect the development board to your computer

Use a USB-C cable to connect the development board to your computer. Then, double-tap the RESET button to put the device into bootloader mode. You should see the green LED on the front pulsating.

3. Update the firmware

The development board does not come with the right firmware yet. To update the firmware:
  1. 2.
    Double press on the RESET button on your board to put it in the bootloader mode.
  2. 3.
    Open the flash script for your operating system (flash_windows.bat, flash_mac.command or flash_linux.sh) to flash the firmware.
  3. 4.
    Wait until flashing is complete, and press the RESET button once to launch the new firmware.

4. Setting keys

From a command prompt or terminal, run:
1
edge-impulse-daemon
Copied!
This will start a wizard which will ask you to log in, and choose an Edge Impulse project. If you want to switch projects run the command with --clean.
Alternatively, recent versions of Google Chrome and Microsoft Edge can collect data directly from your development board, without the need for the Edge Impulse CLI. See this blog post for more information.

5. Verifying that the device is connected

That's all! Your device is now connected to Edge Impulse. To verify this, go to your Edge Impulse project, and click Devices. The device will be listed here.
Device connected to Edge Impulse.

Next steps: building a machine learning model

With everything set up you can now build your first machine learning model with these tutorials:
Looking to connect different sensors? The Data forwarder lets you easily send data from any sensor into Edge Impulse.

Deploying back to device

  • Download your custom firmware from the Deployment tab in the Studio and install the firmware with the same method as in the "Update the firmware" section and run the edge-impulse-run-impulse command:
Note that it may take up to 10 minutes to compile the firmware for the Arduino Portenta H7
  • For an end-to-end example that classifies data and then sends the result over LoRaWAN. Please see the example-portenta-lorawan example.

Troubleshooting

If you come across this issue:
1
Finding Arduino Mbed core...
2
arduino:mbed_portenta 2.6.1 2.6.1 Arduino Mbed OS Portenta Boards
3
Finding Arduino Mbed core OK
4
Finding Arduino Portenta H7...
5
Finding Arduino Portenta H7 OK at Arduino
6
dfu-util 0.10-dev
7
8
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
9
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
10
This program is Free Software and has ABSOLUTELY NO WARRANTY
11
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
12
13
Warning: Invalid DFU suffix signature
14
A valid DFU suffix will be required in a future dfu-util release
15
No DFU capable USB device available
16
Error during Upload: uploading error: uploading error: exit status 74
17
Flashing failed. Here are some options:
18
If your error is 'incorrect FQBN' you'll need to upgrade the Arduino core via:
19
$ arduino-cli core update-index
20
$ arduino-cli core install arduino:[email protected]
21
Otherwise, double tap the RESET button to load the bootloader and try again
22
Press any key to continue . . .
Copied!
You probably forgot to double press the RESET button before running the flash script.