You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: 'Learn how to manage multiple Portenta X8 devices using FoundriesFactory® fleet management tool: Waves.'
4
4
difficulty: intermediate
5
5
tags:
6
6
- Embedded Linux
@@ -13,7 +13,9 @@ hardware:
13
13
14
14
## Overview
15
15
16
-
In a production environment it is convenient to plan updates and have control over when and which devices are updated. FoundriesFactory® Waves is the feature for this. It allows you to easily define a group of Portenta X8s and then push updates to that specific group. The difference between standard updates and using Waves to update is that the Wave update will promote targets to production by double signing them, which makes the updates more manageable and controllable. This tutorial will show you how to define that group and how to construct a Wave that can then be pushed to a group.
16
+
In a production environment, it is convenient to plan updates and have control over when and which devices are updated. FoundriesFactory® Waves is the feature for this. It allows you to easily define a group of Portenta X8 and then push updates to that specific group. The difference between standard updates and using Waves to update is that the Wave update will promote targets to production by double signing them, which makes the updates more manageable and controllable.
17
+
18
+
This tutorial will show you how to define fleets and how to construct a Wave that can then be pushed to a group.
17
19
18
20
## Goals
19
21
@@ -23,66 +25,77 @@ In a production environment it is convenient to plan updates and have control ov
-USB-C® cable (either USB-C® to USB-A or USB-C® to USB-C®)
28
30
- Arduino Create account
29
-
- Arduino Cloud for business subscription with Portenta X8 Manager add-on.[Learn more about it](https://cloud.arduino.cc/plans#business).
31
+
- Arduino Cloud for business subscription with Portenta X8 Manager add-on:[Learn more about here](https://cloud.arduino.cc/plans#business)
30
32
- Foundries.io™ account (linked with the Arduino Cloud for business subscription)
31
-
- FoundriesFactory® and devices already attached to your Factory. ([Check the Getting Started tutorial](https://docs.arduino.cc/tutorials/portenta-x8/out-of-the-box))
33
+
- FoundriesFactory® and devices already attached to your Factory ([Check the Getting Started tutorial](https://docs.arduino.cc/tutorials/portenta-x8/out-of-the-box))
32
34
33
35
## Instructions
34
36
35
37
### Setting Up the Terminal
36
38
37
-
Waves fleet management requires us to have the X8 setup with FoundriesFactory. If you have not done so, please follow our [Getting Started tutorial](https://docs.arduino.cc/tutorials/portenta-x8/out-of-the-box), as it will walk you through setting up the X8 with your Factory. To use Waves, you need to have fioctl installed and configured. Follow this [guide](https://docs.foundries.io/latest/getting-started/install-fioctl/index.html) to do so.Creating Waves and device groups will be done via the host, which is your factory. As such, the following commands will be entered in a terminal using fioctl to connect to your Factory.
39
+
Waves fleet management requires us to have the X8 setup with FoundriesFactory. If you have not done so, please follow our [Getting Started tutorial](https://docs.arduino.cc/tutorials/portenta-x8/out-of-the-box), as it will walk you through setting up the X8 with your Factory.
40
+
41
+
To use Waves, you need to have fioctl installed and configured. Follow this [guide](https://docs.foundries.io/latest/getting-started/install-fioctl/index.html) to do so. Creating Waves and device groups will be done via the host, which is your factory. As such, the following commands will be entered in a terminal using fioctl to connect to your Factory.
38
42
39
43
### Rotating Our Keys
40
44
41
-
For security purposes, we recommend that you rotate your FoundriesFactory keys. Rotation of the key will convert the root role's online-key, which was generated during the bootstrap of your Factory, to an [offline key](https://docs.foundries.io/latest/reference-manual/security/offline-keys.html).
45
+
For security purposes, we recommend that you rotate your FoundriesFactory keys. Rotation of the key will convert the root role's online key, which was generated during the bootstrap of your Factory, to an [offline key](https://docs.foundries.io/latest/reference-manual/security/offline-keys.html).
46
+
47
+
First, we will rotate the root keys. These are the most important keys, as they are used to create new target keys. Rotate them with the command:
42
48
43
-
First we will rotate the root keys. These are the most important keys, as they can be used to create new target keys. Rotate them with the command:
Before a Factory can start doing production OTAs, an initial production Targets file must be created. More information can be found [here](https://docs.foundries.io/latest/reference-manual/ota/production-targets.html). This can be done by creating a dummy wave with the command:
69
+
Before a Factory can start making production OTAs, an initial production Targets file must be created. For more information, please check out [here](https://docs.foundries.io/latest/reference-manual/ota/production-targets.html). We can begin by creating a dummy wave with the command:
This creates a new targets.json file for production devices, subscribing to the production tag. It will include a single Target from CI build.
80
+
81
+
This creates a new `targets.json` file for production devices, subscribing to the production tag. It will include a single Target from the CI build.
72
82
73
83
### Creating a Wave
74
84
75
-
Now we can start creating our Wave. The command below will create a Wave that can then be pushed to our devices. To create a Wave, we will sign it with a key, here we will use the targets only key. Then we give the Wave a name, target number, and tag. The `target number` needs to correspond to the target that we want the Wave to contain for our devices. The `tag` can be set as production or development.
85
+
Now we can start creating our Wave. The command below will create a Wave that is pushable to our devices. To create a Wave, we will sign it with a key, and here we will use the targets-only key. Then we give the Wave a name, target number, and tag. The `target number` needs to correspond to the target that we want the Wave to contain for our devices. The `tag` can be set as production or development.
The name and the short description should be as explicit and concise as possible to highlight its group. Now to assign a device to our group we use the following command:
116
+
102
117
```
103
118
fioctl device config group <deviceName> <groupName>
104
119
```
105
120
106
-
On your FoundriesFactory device page you can sort and view devices by group.
121
+
On your FoundriesFactory device page, you can sort and view devices by the group.
107
122
108
123

109
124
110
-
To rollout our Wave to our device group, use:
125
+
To roll out our Wave to our device group, use the following command:
126
+
111
127
```
112
128
fioctl waves rollout <waveName> <deviceGroupName>
113
129
```
@@ -116,7 +132,7 @@ Every device in the device group should now have the target specified in the Wav
116
132
117
133
### Conclusion
118
134
119
-
In this tutorial we first looked at what is required to use the Wave tool. We then went through the process of creating a Wave and device group. Then we pushed a target to the device group using the Wave tool.
135
+
In this tutorial, we first looked at what is required to use the Wave tool. We then went through the process of creating a Wave and device group. Then we pushed a target to the device group using the Wave tool. With this, you have learned to use FoundriesFactory® Waves Fleet Management for multiple Portenta X8.
0 commit comments