Hands-On with the Arduino Nano 33 IoT

Published By

In May 2019, Arduino announced an exciting new line of boards with the same footprint as the venerable Arduino Nano. Given their size and virtually identical specs to the Uno, the Nano "classic" makes an excellent next step in a user's microcontroller learning process.

These four new variations, the Nano Every, Nano 33 IoT, Nano 33 BLE, and Nano 33 BLE Sense, create an excellent microcontroller training ground. Their designs even feature a hybrid castellated build. You can solder this design onto a larger board and use it as a module when you've outgrown breadboarded (or "rat's nested") circuits.

Today, we'll focus on just one of the more advanced boards, the Arduino Nano 33 IoT. This device features connectivity via Bluetooth and Wi-Fi and packs a 6-axis LSM6DS3 inertial measurement unit (IMU) that detects angular motion as well as linear acceleration. The LSM6DS3 also has an embedded temperature sensor, though it's not immediately clear if or how this works with the Arduino board itself. I expect more examples and documentation to be forthcoming in the future as users learn more and spend some time getting to know this new board.

We'll cover the following information:

- My experience getting the board to run

- Experimenting with the Nano's accelerometer

- Wi-Fi and Bluetooth capabilities

- How you shouldn't use this new Nano

Using 3.3VDC

While I didn't test the Nano 33 with discreet IO, the tech specs state that the device only supports 3.3V IO and is not 5V-tolerant. You might be able to get away with pushing 3.3V as a high signal to some peripherals that work with 5V, but you'll encounter serious problems if you send that voltage back to the 33. To avoid frying your board, use a level shifter, resistor setup, or 3.3V sensors.

Setting up the Arduino Nano 33 IoT

You can find instructions on how to access this board online, and you'll either need to use their web editor or install the Arduino Desktop IDE. I took the latter route. Once that's complete, follow these steps:

1. Open the Desktop IDE and navigate to the Tools menu.

2. Go to Boards, then Boards Manager.

3. Search for Arduino Nano IoT to bring up the SAMD package.

4. Install this package, and you should theoretically be ready to transfer files after selecting the board and your COM port.

In my case, this didn't work, though the board did blink away happily once plugged in. After restarting the IDE and doing a few updates, the Nano 33 IoT showed up, but I still received compile errors when I tried to transfer a sketch to the board. Frustrated, I found a forum post that indicated I might have a problem with the SAMD installation. After deleting the files as instructed and reinstalling the SAMD package, everything worked correctly, and I was able to transfer sketches without issue.

You may or may not experience this problem. I had previously installed quite a few new boards and libraries, which may have thrown off the installation somehow. I haven't had a problem since, though I did have to delete the boards I installed via the Boards Manager. Without the forum poster's helpful advice, I would have been stuck (or had to reinstall the entire IDE, which would have been much more painful).

IMU Functionality Shines

Caption: Movement over time observed via serial plotter

The IMU functionality, via its built-in LSM6DS3 chip, was the easiest aspect of this board to use.

1. I installed the Arduino_LSM6DS3 library through the library manager.

2. Under Examples for any board, the Arduino_LSM6DS3 pops up with SimpleAccelerometer and Simple Gyroscope.

3. Load either of these sketches, then open the serial monitor to see how it reacts. Gyroscope data will deal with how the board rotates, while the accelerometer data will measure linear acceleration.

Notably, the board will always detect acceleration due to gravity in one direction, which might be useful in some applications. One way to observe this movement is to open the serial plotter instead of the serial monitor, which will give you lines for data readings over time. Also, unlike most 9-axis IMUs, this device does not feature a magnetometer. If you need that functionality, you can find it in the 33 BLE and 33 BLE Sense using the LSM9DS1 chip.

Nano 33 IoT Wi-Fi Connectivity

To configure the Nano 33 IoT for Wi-Fi, I used Arduino's Web IDE and their blink example. Here are the steps I followed:

1. Navigate to create.arduino.cc and click on "Getting Started," then click on "Set up an Arduino Nano 33 IoT."

2. Create an account, then log in, download, and install the required plugin (which was curiously hidden under the carrot that hides additional icons in my Windows 10 taskbar after being set up).

3. The site will ask for a name for the board and configure the Crypto chip. This step may take up to five minutes, though it was much faster for me.

4. Enter your Wi-Fi information.

5. Click the upload button to send that information to your board.

The board should connect and display a fun LED icon and a text entry box that lets you control the built-in LED on the 33 IoT. This process was painless, though when I disconnected and plugged it into an external USB power supply, the control functionality didn't immediately work. I'd suggest some further experimentation to unleash its potential fully.

Nano 33 Iot Bluetooth Problems & Workarounds

While Wi-Fi presents some interesting IoT applications, for more "local-ish" control, Bluetooth Low Energy (BLE) offers unique possibilities. You can connect the 33 IoT and another device using the ArduinoBLE library found on GitHub—or via a search on your IDE. Arduino also has some nice information on BLE available if you'd like to learn more about this technology.

After I installed the library and tried out several examples in both Central and Peripheral modes, I could only get my phone (a Moto G XT1625) to detect the Nano as a Bluetooth device intermittently. Unfortunately, the two never connected. I also attempted a connection with a fourth-generation iPad, to no avail. After this experimentation, I checked the library's GitHub page and found out that the Nano requires a NINA W102 ESP32 module ―which handles communications―that runs Arduino NINA-W102 firmware v1.2.0 or later.

If this was the problem, I'd need to update the module. The first step under Building says to download the ESP32 toolchain. Unfortunately, the link provided leads to a "Page not Found" webpage. These instructions seem to be a dead end as of this writing per the toolchain link.

Hopefully, we'll see more development on setting up the board for Bluetooth use in the future. I should note that I got a very early copy of the board―and it's entirely possible that I missed something during the setup process―so your results with the process may vary.

If BLE is your primary focus, the Nano 33 BLE may be a better option for your application. The 33 BLE includes a better IMU than the IoT with a magnetometer.


In the end, the Nano 33 IoT board is a truly impressive package, adding wireless communications as well as an IMU to the classic Nano form factor. You'll have more possibilities for IoT applications and robot control without the normal peripherals that you'd expect to add.

While I wasn't able to get BLE working as of now, consider that the last generation of Nano didn't feature any of these extra features. The Nano 33 IoT and the other new Nano boards are a very interesting development in the Arduino world. As the company and hackers everywhere continue to work with the Nano 33 IoT, I expect to see its abilities continue to expand while they work out some of the bigger bumps in the road.

See related product


Arduino Corporation RF/Wireless Development Boards and Kits View

Related news articles

Latest News

Sorry, your filter selection returned no results.

We've updated our privacy policy. Please take a moment to review these changes. By clicking I Agree to Arrow Electronics Terms Of Use  and have read and understand the Privacy Policy and Cookie Policy.

Our website places cookies on your device to improve your experience and to improve our site. Read more about the cookies we use and how to disable them here. Cookies and tracking technologies may be used for marketing purposes.
By clicking “Accept”, you are consenting to placement of cookies on your device and to our use of tracking technologies. Click “Read More” below for more information and instructions on how to disable cookies and tracking technologies. While acceptance of cookies and tracking technologies is voluntary, disabling them may result in the website not working properly, and certain advertisements may be less relevant to you.
We respect your privacy. Read our privacy policy here