arduino uno r4 wifi — introduction

Arduino Uno R4 WiFi

I purchased the recently release Arduino UNO R4 WiFi from Amazon for US$27.50, the same price that Arduino charges on its website. I was drawn to it because if its intriguing mix of a Renesas RA4M1 (Arm® Cortex®-M4) running at 48MHz and an Espressif ESP32-S3 microcontroller peripheral for WiFi and Bluetooth support. I’ve barely gotten started with working with it, so I don’t have much to say about what its fit for purpose for, but so far it’s been extremely easy to program when paired with Arduino’s latest Arduino IDE, version 2.3.2.

Arduino IDE 2.3.2 with UNO R4 WiFi sketch

Pairing this latest Arduino board to the Arduino IDE is incredibly easy. After first plugging in the R4 and then starting the IDE, the IDE immediately identified the board and was ready for me to build a sketch and then flash that sketch to the R4. A little bit of searching uncovered the C/C++ source to the initial application the board is shipped with (see links below), as well as a lot of other programming examples that exercise the WiFi and Bluetooth features of the ESP32-S3 peripheral.

One big feature I like is that the new Arduino IDE 2 is based on Eclipse Theia, an alternative framework for building IDEs. That is completely unlike Visual Studio Code, which is built on top of Electron. That makes the Arduino IDE 2 a much more agile and leaner tool than Visual Studio Code. I prefer Arduino IDE over Visual Studio Code.

One little feature about this board, and all other Arduino boards like it; it ships with a clear plastic cover snapped onto the bottom of the board. That means you can start to work with the board as soon as you remove it from its box, because sitting it down won’t cause any part of the board to short, especially if you sit it on a conductive surface. I find that original Arduino boards have a touch of engineering class, if you will.

I also find that the low cost of the UNO 4 compared to recent Raspberry Pi boards (both the 4 and the 5) is a lot cheaper, yet it’s powerful enough to run embedded applications that can do quite a bit. Unless you’ve got a strong use case for running embedded Linux, the UNO 4 is more than capable of performing quite a bit without the much higher cost and overhead of running an embedded operating system to support your embedded application.

Bottom line, I’m quite happy to have purchased this board, and I’m looking forward to seeing what I can do with it. I’m sure I’ll be able to do quite a bit.

Links

 

commercial and open source software updates

Micropython local build using IDF-ESP v5.1.2

I’ve been busy these past few weeks with my part-time job. The week of February 12th I spent out in Louisiana and billed 65 hours for the week. This week I’ve been doing other tasks, both to catch up from being on travel the week before as well as doing much less work in my new part time job. I still managed to read a bit and discovered, while out in Louisiana, that updates had been made to the open source project Micropython (version 1.22.2 was released) as well as Espressif’s commercial but open ESP-IDF C/C++ embedded tool chain.

When I got back this week I updated my personal fork of Micropython on Github, then updated my home Micropython development area via git, then set about testing all the updates in Micropython by using ESP-IDF 5.0.4 to build it, then began to experiment to see if Micropython would build with ESP-IDF 5.1.2. I mention ESP-IDF version 5.1.2 because Adafruit wrote that the latest CircuitPython beta, 9.0.0 beta 2, was built with ESP-IDF 5.1.2 after rolling in the latest changes from Micropython. When Micropython 1.22.0 was released in January the developers had locked in ESP-IDF 5.0.4 as the version that would build Micropython. I tried to use 5.1.2 and Micropython failed to build, so I stayed with ESP-IDF 5.0.4. Now the latest Micropython updates build successfully with 5.1.2, which the bottom of the little test web page provided by one of my ESP32-S3 N8R8 boards shows (see above). I’m quite happy that main Micropython builds with ESP-IDF 5.1.2 because I currently have three versions of ESP-IDF; 5.0.4, 5.1.2, and 5.2. I would like to drop the oldest (5.0.4) and even move Micropython compilation up to 5.2 so I can drop 5.1.2 as well. I do all my development with 5.2, only using an older version to build Micropython.

Using ESP-IDF 5.2 directly to compile embedded C++

This next example is another Espressif board, the ESP32-S3 N32R8 running code written in C++ and compiled with ESP-IDF 5.2. As you should note at the bottom it’s been built with ESP-IDF 5.2, which is the current stable release. So far everything is working well, especially WiFi. I’m in the process of finishing up a MAX7219 C++ class using SPI for communication with the MAX7219. Once finished I’ll write about it here as well as push the source up to my modest Github space.