Of course, not all ESP32 boards are created equal. This is a solidly made board that can be powered by a wide range of voltages. The Nano pinout gives access to 14 digital I/O pins (of which five can be PWM) and eight analogue inputs. There are two UARTs and one each of SPI and I2C. There’s 512KB of SRAM, and a chunky 16MB of flash for your programs and data. This comes in the standard Nano form factor. While this isn’t the most common form factor around, there is an ecosystem of parts that this board should work with (though do check the documentation for exact requirements).
Perhaps the most unusual thing about this board from Arduino is that it comes with an official port of MicroPython (it can also be programmed in Arduino C++ using the traditional IDE).
While Arduino has been talking about the Python programming language for a long time, this is the first time it’s been available on a board in a way that’s both official and easy to use. The software is supported through some new Arduino software – there’s a MicroPython firmware flasher and a MicroPython IDE.
MicroPython support is listed as a feature of the board on the web page; the software itself claims to be experimental and pre-release. It’s a bit frustrating that the status of the software isn’t highlighted on the sales page, and if you’re working on something critical, it’s probably worth avoiding until it’s more thoroughly tested.
The Arduino MicroPython editor is basic but functional. There’s a toolbar of circular buttons at the top, a text editor, and optional panes for file management, and a terminal – it will look familiar to anyone who’s used the Mu Python editor. It gives you the basics of what you need for MicroPython. This editor will suit beginners more than experienced programmers. However, you don’t need to use this editor – you can connect to the board with any other MicroPython IDE, such as Thonny, if you prefer.
Arduino has released a free MicroPython 101 web course which consists of a series of lessons that take you through getting started with this language. It skips quite quickly over the basics of programming, so if you’ve not coded before, you might struggle. Otherwise, it does a good job of introducing the language. However, there’s one big caveat. It relies on specific hardware. For example, the button doesn’t use a regular button – it uses a button module. The same with LEDs, potentiometers, etc. The code is the same either way, but if you don’t know how to wire up, for example, an LED and series resistor, you won’t know what to do. This reliance on specific hardware adds a lot to the cost of following the course.
As well as traditional Arduino C++ and MicroPython, you can use the Arduino IoT Cloud, an online service for working with devices remotely. This allows you to share data between devices, and even use machine learning to gain additional insights from the data your microcontrollers detect. This is a huge platform – far too big to accurately summarise here – and we’ll take a detailed look in an upcoming issue. This online system is available on a range of network-enabled microcontroller boards from both Arduino and third-party manufacturers.
This board is perhaps the most unusual Arduino board we’ve reviewed. It’s the first step into MicroPython, which is something we welcome. While Arduino C++ has defined a generation of maker electronics, it’s no longer the best route into microcontroller programming for beginners, in our opinion. While Arduinos were the first widely-used hobbyist microcontroller boards (and the organisation used that first-mover advantage to cement its place in the market), it’s a late-comer to the world of MicroPython. Many other options are both cheaper and more mature. The only real selling points of this board are its robustness and that it comes in the Nano form factor – if you already have hardware set up for this that you want to use with MicroPython, then it could be a reasonable option.
None of this is to say that the Nano ESP32-S3 is a bad board, but it does feel a few steps behind the market. If Arduino wants to be relevant in the world of embedded Python, it need something more than a well-made board with official support – there are already loads of these from a variety of manufacturers. The documentation could have been the reason to recommend this board, but the choice of expensive hardware makes this a less attractive proposition.
We’d love another player to come in and help push the MicroPython experience forward, particularly for new users, but at the moment, the Arduino Nano ESP32-S3 doesn’t stand out.
A perfectly capable board, but it struggles to justify its price tag.