Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
88cd7a4
Added device provisioning documentation
BenjaminDannegard Jun 27, 2025
a06ef02
Small spelling fixes
BenjaminDannegard Jun 27, 2025
5de0df7
Update content/arduino-cloud/02.hardware/06.device-provisioning/conte…
BenjaminDannegard Jun 27, 2025
b54a65e
Update content/arduino-cloud/02.hardware/06.device-provisioning/conte…
BenjaminDannegard Jun 27, 2025
6d979cd
Update content/arduino-cloud/02.hardware/06.device-provisioning/conte…
BenjaminDannegard Jun 27, 2025
c152005
Update content/arduino-cloud/02.hardware/06.device-provisioning/conte…
BenjaminDannegard Jun 27, 2025
75ac8e8
Update content/arduino-cloud/02.hardware/06.device-provisioning/conte…
BenjaminDannegard Jun 27, 2025
e49bf51
Update content/arduino-cloud/02.hardware/06.device-provisioning/conte…
BenjaminDannegard Jun 27, 2025
11478b5
Added note about provis update
BenjaminDannegard Jun 27, 2025
4992faf
updated images
BenjaminDannegard Jun 27, 2025
916976a
Small fix
BenjaminDannegard Jun 27, 2025
5f9c8f7
Fixed the note
BenjaminDannegard Jul 21, 2025
1071520
Added compatible boards list
BenjaminDannegard Jul 22, 2025
d7110f4
Fixed table
BenjaminDannegard Jul 22, 2025
c8e360d
Updated list and added section
BenjaminDannegard Jul 24, 2025
0b4ee41
Added migration documentation
BenjaminDannegard Jul 24, 2025
88c5f8c
Apply suggestions from code review
jhansson-ard Jul 28, 2025
f70f34c
Updated compatible devices
BenjaminDannegard Aug 7, 2025
37c9551
Added new section and missing image
BenjaminDannegard Sep 11, 2025
9b8b732
spelling fix
BenjaminDannegard Sep 11, 2025
90f920b
Updated info about different networks
BenjaminDannegard Sep 17, 2025
510f1c0
Fixed description of network connection
BenjaminDannegard Sep 17, 2025
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
144 changes: 144 additions & 0 deletions content/arduino-cloud/02.hardware/06.device-provisioning/content.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
---
title: Device Provisioning with Arduino Cloud
description: A step-by-step guide to device provisioning with Arduino Cloud.
author: Benjamin Dannegård
tags: [Cloud]
---

## Setup and Process

***If you are new to the Arduino Cloud, check out [Getting Started With the Arduino Cloud](/arduino-cloud/getting-started/iot-cloud-getting-started).***

To use the Arduino Cloud you will need to register and set up a **free** account.

## Different Device Provisioning Versions

There are two different versions of provisioning, 1.0 and 2.0. These different versions will change some things when you connect your board to the Cloud. The main change will be where the network credentials are stored.

If your board is provisioned to the Cloud with version 1.0, the network credentials will be stored in a "secret.h" file that can be found on the "thing" page, in the "sketch" tab. As shown here:

![Sketch tab on thing page](assets/sketch-tab.png)

If your board is provisioned to the Cloud with version 2.0 the network credentials will be stored on the board.

### Compatible Boards List

| Board | Compatible version |
| ------------------- | ----------- |
| MKR NB 1500 | Version 1.0 |
| MKR WAN 1300 | Version 1.0 |
| MKR WAN 1310 | Version 1.0 |
| MKR 1000 WiFi | Version 1.0 |
| MKR WiFi 1010 | Version 1.0 |
| MKR GSM 1400 | Version 1.0 |
| GIGA R1 WiFi | Version 2.0 |
| UNO R4 WiFi | Version 2.0 |
| Nano 33 IoT | Version 1.0 |
| Nano ESP32 | Version 1.0 |
| Nano RP2040 Connect | Version 1.0 |
| Portenta H7 | Version 2.0 |
| Portenta C33 | Version 1.0 |
| Portenta X8 | Version 1.0 |
| Nicla Vision | Version 2.0 |
| Opta | Version 2.0 |

If you have a board that is compatible with version 2.0 but have provisioned it with version 1.0, please have a look at the [section](#migrating-from-version-10-to-20) at the end to understand how to migrate your board from 1.0 to 2.0.

### Configure Your Board

After you have set up your account, to add your device to your Arduino Cloud account go to the [Devices page](https://app.arduino.cc/devices) and click on the **+ DEVICE** button.

![Create new Device](assets/creating-new-device.png)

This will take you to the setup menu for your device. You can now choose between three different options depending on what type of board you are using. Continue by clicking on **Arduino board**.

![Select Arduino](assets/selecting-board-type.png)

Now you have to decide how you want to set up your board with the Cloud, either via Bluetooth® or USB cable (you can check if your board is compatible with the Bluetooth method below). These two options have different processes, pick the method that suits your needs best and follow the section for your chosen method.

## Bluetooth Provisioning

### Compatible boards

Here are the boards that are compatible with Bluetooth provisioning via a Bluetooth connection:

- [Arduino UNO R4 WiFi](https://docs.arduino.cc/hardware/uno-r4-wifi/) (Wi-Fi firmware version 0.6.0 or later required)

### Setting up Your Device With Bluetooth

After selecting the Bluetooth option you will see a page telling you how to connect your board. Follow the steps to connect your board via Bluetooth.

![Bluetooth page](assets/connect-with-bluetooth.png)

Once your board is connected you will see a page that will let you pick the Wi-Fi the board should connect to. Pick the Wi-Fi you want to connect to and enter the password. Here you can also change the device name.

![Configure network via Bluetooth](assets/connect-to-network-bluetooth.png)

After completing these steps your device will connect to your Wi-Fi and you will be taken to the device page. Here you can click on the icon in the bottom left corner to attach a thing to the device. To find out more about Arduino Cloud Things, go [here](https://docs.arduino.cc/arduino-cloud/cloud-interface/things/).

![Attach thing after Bluetooth](assets/attach-thing-to-bluetooth.png)

Now you are ready to start using your board with the Arduino Cloud!

## USB Provisioning

If this is your first time using the Arduino Cloud you will be asked to download the **Arduino Create Agent**. The Create Agent is a piece of software that is necessary for your Arduino board to communicate with your browser. Download and install it by clicking on download and following the installation process.

When the installation is finished you will get to a page that lets you select the board you wish to configure. Click on the board that you want to set up.

![Configure Device with USB](assets/connect-with-usb.png)

Now the board will start connecting. You should now see this loading screen:

![Board connecting](assets/connecting-with-usb-loading.png)

Wait for it to finish and when it is completed, click "continue".

![Board connected to the cloud](assets/succesfull-connection-with-usb.png)

You will now be taken to the page where you can select the network you want to connect to. Depending on your boards network compatibilities you can set up either ethernet, CAT-M1, Cellular or Wi-Fi connectivity. Here you can chose your network type and enter its credentials.

When this is done you will be taken to the device page. Here you can see the details of the board, change the name, attach it to a thing and change the network configuration.

![Network configuration on device page](assets/network-config-device-page.png)

To find out more about Arduino Cloud Things, go [here](https://docs.arduino.cc/arduino-cloud/cloud-interface/things/). In the bottom left corner you can press the icon highlighted in the image below to create a thing and attach your board to it automatically. Clicking it also takes you to the Thing page.

![Create thing from device page](assets/device-overview-usb.png)

## Migrating from version 1.0 to 2.0

If you would like to upgrade your board from 1.0 to 2.0, so that your network credentials are saved on the baords storage and so that the board can be updated via BLE. And If you have a board that is compatible with version 2.0 but have provisioned it previously with version 1.0, please follow the instructions in this section!

Go to the device page [here](https://app.arduino.cc/devices), if the board is on the list already please delete it. Then press the **+ DEVICE** button.

![Device page](assets/creating-new-device.png)

Next select "USB connection" and on the next page select your board.

![Device selection](assets/selecting-board-migration.png)

Now your board will be updated to version 2.0, wait for the process to finish.

![Board being updated](assets/migration-process.png)

When this is done you can continue setting up the network connection for your board and it will now be using the latest provisioning method with the Arduino Cloud!

### Removing Saved Network Configuration

This section will explain how to remove the stored network credentials and force the restart of the BLE interface of a board that has been provisioned with version 2.0. This can be useful to either reset the board or to update the network credentials via BLE.

If you want to remove the stored network credentials and force the restart of the BLE interface, so that the network credentials can be updated via BLE. Please follow these instructions depending on your baord:

- `Arduino Opta`: Press and hold the user button (BTN_USER) until the led (LED_USER) turns off
- `Arduino MKR WiFi 1010`: Short pin 7 to GND until the led turns off
- `Arduino GIGA R1 WiFi`: Short pin 7 to GND until the led turns off
- `Arduino Nano RP2040 Connect`: Short pin 2 to 3.3V until the led turns off
- `Arduino Portenta H7`: Short pin 0 to GND until the led turns off
- `Arduino Portenta C33`: Short pin 0 to GND until the led turns off
- `Other boards`: Short pin 2 to GND until the led turns off
- `Portenta Machine Control`: Currently the reset procedure is not available

If you would like to remove the network credentials from the board, you can use the (**Arduino_NetworkConfigurator**)[https://github.com/arduino-libraries/Arduino_NetworkConfigurator?tab=readme-ov-file] library.

Open Arduino IDE and on the left side open the **library manager**. Search for **Arduino_NetworkConfigurator** and download it. Once it is downloaded go to **File > Examples > Arduino_NetworkConfigurator > Utility > DeleteConfiguration**, this will open a new example sketch. Select your board and port then upload this example sketch to your board. When the sketch has been uploaded you can look at the serial monitor to monitor the progress and troubleshoot if needed.
Loading