The Arduino Nano 33 IoT is a breadboard-friendly platform for developing Wi-Fi and Bluetooth connected projects. Versatile and secure connectivity is its hallmark, while its form factor makes it great for prototyping, wearables, and integration as a module into larger projects.

At the center of the Arduino Nano 33 IoT is an ARM Cortex-M0 MCU from the Atmel SAMD21 line. The built-in USB support in the MCU allows this Nano to act as either a USB device or a USB host. Separate from the MCU, and having its own processor, is a uBlox Wi-Fi/Bluetooth module. Like the MCU, the Bluetooth module is capable of acting as either a Bluetooth device or a Bluetooth host. Unlike on the Arduino Nano 33 BLE, however, this uBlox module adds Wi-Fi capability. The Arduino Nano 33 IoT also features a dedicated crypto chip and a 6-axis inertial measurement unit (IMU). Given that the Arduino Nano 33 BLE has a 9-axis IMU and similar capabilities, a Wi-Fi requirement is the best reason to opt for this board.

Wi-Fi Connectivity for the board is pretty simple using Arduino’s Wi-FiNINA library. Functions in this library are very similar to the Arduino Wi-Fi library. Although Arduino would like for you to send the device’s data to the Arduino IoT Cloud, the board is also compatible with Blynk, IFTTT, AWS IoT Core, Azure, and Firebase. Example code or libraries for each service are linked to from the Arduino website.

The form factor of the Arduino Nano 33 IoT matches that of other recent Nano boards with holes for headers as well as castellations and a smooth bottom side for surface mounting to larger PCBs. Like the other Nano 33 boards, this board uses 3.3V I/O on every pin and is not 5V tolerant. Other than the voltage, the board is pin compatible with the Arduino Nano Every. Note also that there is a 7mA current limit on digital IO pins, lower than on many other Arduino boards. One down side to the design of recent Nano-sized boards is that all pin numbers are labeled on the bottom of the board.You will want to have a pinout diagram handy while prototyping. An oddity is that the Wi-Fi antenna appears to be attached with hot glue. Although mine was firmly attached, others have reported it separating from the board.

The first step in using this board with the Arduino IDE is to visit the board manager in Arduino IDE and install support for Arduino SAMD Boards. This took longer than expected and I was prompted to install some Windows drivers. Second, you will want to visit the library manager and install the Wi-FiNINA library for Wi-Fi support and the ArduinoBLE library for BLE support. If you intend to use the IMU you will need to install the Arduino_LSM6DS3 library as well. After installing the Wi-FiNINA library you will find an option under the Tools menu to update the firmware on the uBlox module. In addition to allowing you to upgrade or revert the firmware, this interface gives you the option to upload SSL certificates to the module.

As is the case with many Arduino products, the documentation and example code for this board are exemplary. To test out the basics, I combined the simple web server and IMU example code so I could view the acceleration of the board over the web. The board connected to Wi-Fi using WPA with no issues and served up expected IMU values as I rolled the board around to test each axis against gravity. The board has an integrated switching converter for power, so current draw will depend on your input voltage, but I found the power usage to be reasonable for use in a wearable.