Easy-to-use solution for configuring an AVR-IoT, PIC-IoT, SAM-IoT or AVR-IoT Cellular Mini board to connect to Amazon Web Services (AWS), Google IoT Core Platforms and Microsoft Azure
Supported kits:
- AVR-IoT Wx
- PIC-IoT Wx
- SAM-IoT WG
- AVR-IoT Cellular Mini
Download the latest release and extract the binary from the zip file.
The zip file contains command-line executables for Windows®, macOS®, and Linux® operating systems bundled with all the firmware needed to complete the provisioning. Extract and use the command-line utility corresponding to your operating system. You will find more instructions for running the tool in iotprovision.md in the root folder.
Getting help:
iotprovision-bin --help
Provision for Amazon Web Services, using Microchip sandbox account:
iotprovision-bin -c aws -m sandbox
Provision for Amazon Web Services, using MAR and custom account:
iotprovision-bin -c aws -m mar
Provision for Amazon Web Services, using JITR and custom account:
iotprovision-bin -c aws -m jitr
Provision for Google Cloud Platform, using Microchip sandbox account:
iotprovision-bin -c google -m sandbox
Provision for Microsoft Azure (preliminary - only kit provisioning):
iotprovision-bin -c azure
The amount of logging is controlled by the -v/--verbose option:
Possible log levels are debug
, info
, warning
, error
, critical
. Default is info
.
iotprovision-bin -v debug
Print version info and exit:
iotprovision-bin -V
Print release info and exit:
iotprovision-bin -R
Switch Cloud Providers with the IoT Provisioning Tool (Video)
Connect to Your Private AWS Account with IoT Provisioning Tool (GitHub Tutorial)
How the IoT Provisioning Tool Works - AWS JITR (GitHub Tutorial)
The binaries here are generated from Python source. If you are more comfortable using Python the iotprovision wheel can be installed from the Python package index pypi.org
pip install iotprovision
PyPi project: pypi.org/project/iotprovision
When installing the iotprovision Python wheel as described in the previous section, all its dependencies will also be installed automatically. This includes other useful CLI programs like pymcuprog, pytrust, pysequans, etc. These will be directly available from the command line.
When installing the iotprovision-bin binary, this does not seem to be the case. However, all these resources are actually present inside the binary, and starting with the iotprovision 2.10 release, they can be accessed in various ways, which are described below. The out-of-the-box behaviour of the binary named iotprovision-bin is to work exactly the same as the iotprovision Python wheel. This behaviour is referred to as the iotprovision skin
of the binary. The remainder of this section describes ways of changing to other skins, to get access to other tools.
Whenever the following subsections refer to renaming the executable file, the same effect can be accomplished by creating a symbolic link to the original file, or copying it. Shell aliases (Mac/Linux) will not work for this purpose.
This is the preferred skin for users wanting to use multiple tools frequently. It transforms the binary into a tool with all the bundled tools directly available as subcommands. To enable this, rename iotprovision-bin[.exe]
to mcu8tools[.exe]
. Invoking mcu8tools
without arguments will list all the available subcommands. In this configuration, in order to use iotprovision to provision for AWS sandbox, you can do:
mcu8tools iotprovision -c aws -m sandbox
and to get help for our pymcuprog tool:
mcu8tools pymcuprog --help
iotprovision-bin is an example of a single-tool skin. The binary can be reconfigured to all of the included tools by means of renaming it to the desired tool. For example, renaming it to pymcuprog[.exe]
will cause it to behave like the pymcuprog Python wheel.
If you only occasionally need to use a different tool, all single-tool configurations of the binary can be invoked with the --skin
option to change skin temporarily, without need for renaming. This option must be the first argument present in the command line. Also note that this option can not be used to change neither to nor from the mcu8tools
skin.
Example: User of iotprovision-bin needs to upgrade AVR-IoT Cellular Mini kit Sequans Monarch 2 firmware:
iotprovision-bin --skin=pysequans upgrade full
As of release 2.10, these tools are available as installed packages when iotprovsion Python wheel is installed, and as subcommands/skins in the binary release:
- pykitinfo - List information about connected Microchip kits
- pymcuprog - MCU programming tool for selected AVR, PIC and SAM devices
- pydebuggerupgrade - Firmware upgrade utility for tools with DFU bootloader
- pydebuggerconfig - Access PKOB nano on-board debugger configuration
- pytrust - Command line interface for Microchip pytrustplatform
- pyawsutils - AWS account management for IoT kits
- pyazureutils - Azure account management for IoT kits
- pywinc - WINC firmware upgrader and utilities for WiFi IoT kits (part of iotprovision package)
- pysequans - Firmware upgrader and utilities for the Sequans Monarch 2 platform in cellular kits
- iotprovision - Provisioning tool for IoT kits
- pyserial-miniterm - Simple terminal program, from pyserial package
- -a AWS_PROFILE, --aws-profile AWS_PROFILE argument does not work, i.e. only the default profile works (DSG-5722 and DSG-5724)
- Firmware upgrades for subsystems WINC, debugger, and Sequans Monarch 2 platform are handled inconsistently. WINC and debugger firmware will not be checked for upgrades unless explicitly requested by user, using arguments
wincupgrade
anddebuggerupgrade
, respectively, in which case firmware will be upgraded automatically. On the other hand, Sequans Monarch 2 firmware will be checked automatically by default, and user will be advised how to do the upgrade if needed. (DSG-5726)