Arduino announced several new products at the 2018 Bay Area Maker Faire. One of those products is the Uno WiFi Rev 2. (Check out this post for an introduction to the MKR Vidor 4000, an FPGA-based board. You can read their official announcement here. This new Uno board represents a significant upgrade for the 8-bit family of Arduino boards. However, I do have a few reservations.
Arduino Uno WiFi Rev 2
Starting off, I am not happy with the name. It is too long. For that reason, I am going to keep using the full name in this post to demonstrate why I don’t like it. Another reason I’m grumpy it that new microprocessor makes it incompatible with 328p code. That said, sketches (and libraries) using only the Arduino library will (likely) work fine. Anything that uses registers, like direct port manipulation, will have issues. Just like moving to any other architecture supported by the IDE. However, because it has the name “Uno,” many users will be tripped up by incompatibilities.
Keeping the name “Uno” was only there for marketing reasons. The form factor is the traditional Arduino Uno style. Which begs the question, can we retire that massive USB connector yet?
8-bit family improvements
Now that my grumbling is out of the way, here are the new capabilities and features that the Uno WiFi Rev 2 offers. At the Uno WiFi Rev 2’s core is an ATMEGA4809. You may not be familiar with this chip since it is a new one from Microchip. (Remember that Microchip acquired Atmel.)
Bullet item feature improvements include:
- 16-Channel 10-bit ADC
- Five 16-bit timers
- Four UARTs (Arduino’s announcement only says 3…)
- 6k SRAM
- 48K Flash
- 256 bytes EEPROM
- Core Independent Peripherals
So the user-EEPROM got cut down by a factor of four. Considering all of the other enhancements, that is fine by me. I think we can all welcome the 3x increase in SRAM! Additional serial communication, timers, and more ADC channels are all vast improvements as well.
Based on all the movement to 32-bit ARM-based boards, it was starting to look like 5 volts was dead. I’m happy to see that the Uno WiFi Rev 2 is a 5 volt based system running at 16 MHz. However, still driven by a ceramic resonator rather than a crystal.
It does seem, at the moment, some of the ATMEGA4809’s fancy I/O capability is held-back by the Uno form factor. This limitation may open the door for an alternative form factor like we have seen happen with other Arduino boards.
At launch, Atmel Studio supports the Uno WiFi Rev 2’s onboard debugger. The capability sounds similar to the Arduino Zero’s debugger. The interesting tidbit is that the API for this debugger is now (or soon to be) open.
This change means in-IDE debugging may be coming soon! (For boards and processors that support it.)
megaAVR vs XMEGA
Years ago the high-end of the AVR line was the XMEGA series of chips. These had more peripherals and more flexible I/O compared to their “ATMEGA” or “megaAVR” counterparts.
One reason I’m not happy about the “Uno” name is that this flexibility means ports and registers are mapped very differently in this new family. I bring up the “XMEGA,” a series that seemed like it was dead because this new chip looks more like an XMEGA than the “megaAVR” it is named after.
One way the new chip looks like the XMEGA is with the idea of “core independent peripherals.”
Core Independent Peripherals (CIP)
CIP is like interrupts for more complex conditions. An event is generated based on something like the state of an IO pin, an ADC result, or a timer. For example, you could toggle an IO pin based on the state of a pushbutton without writing any code or using CPU cycles.
Sounds great, right? However, I’m not sure how the Arduino library or IDE exposes these capabilities. CIP does some seem to help alleviate some of the questions and issues around multitasking and using millis().
Since the Arduino introduction mentions CIPs, I assume there is a plan to support them. Also mentioned was a focus on security.
Microchip ECC608 Crypto Chip
There is a joke in security circles about IoT devices. “The S in IoT is for security.” (Because there is no S or security.) The Uno WiFi Rev 2 includes an on-board Microchip ECC608 crypto authenticator. The product page lists crypto buzzwords such as Elliptic Curve Diffie-Hellman, SHA-256, hashing, and others.
What does this chip do? Well, I’m not 100% certain yet. The Arduino team’s focus provides users a secure method for authenticating to IoT cloud-based services like Amazon’s AWS IoT and Google Cloud IoT. In the past, in only 2K of RAM, it was difficult, if not impossible to hold the tokens necessary for these services, let alone calculate the crypto involved.
Again, it is not clear to me, today, how the Arduino library or IDE supports this new chip. I hope that it will be as easy as some #define statements with the appropriate private keys.
Regardless, I am happy to see a development platform add some dedicated support for secure communications. Especially on an 8-bit system with limited RAM.
By the way, the MKR Vidor 4000 includes this same chip.
u-blox Nina W102 WiFi
As the easy to say and quick to type name, Uno WiFi Rev 2, implies, there is onboard WiFi support. That support comes from a u-blox SoC which integrates the TCP/IP stack. Interestingly, the W102 appears to support Bluetooth. But I do not remember Massimo saying anything about that.
A question others will undoubtedly ask, what advantage does this SoC offer over, say, an ESP8266?
The first comes in the form of the WiFi source. u-blox is a Swiss-based company that specializes in communication semiconductors (chips.) If your project is a hobby or one-off design, you may not care too much about the quality of the RF radio. However, if you are prototyping something with the intent to sell a product, or you need this project to work in a more complex environment, you’ll appreciate the module’s design (and compliance.)
Since I now have a spectrum analyzer, the R&S FPC1500, I am looking forward to doing some benchmarking. I was told one of the benefits of this module is its RF stage. So I’d like to test that myself.
One more bullet item feature is the integrated inertial measurement unit (IMU). I didn’t ask, so I don’t know, if that is part of one of the other chips or if it is standalone onboard. Interestingly enough, when Massimo was introducing the Uno WiFi Rev 2 to the audience, he said “… and we added an IMU, because, well, just because we could.” Then smiled.
Did anyone else notice there looks like an RGB LED on-board? 🙂
Regarding the 8-bit Arduino family, the Uno WiFi Rev 2 is a step forward. The ATMEGA4809 looks like a great 8-bit micro. That said, I’m still worried that its architecture not matching the rest of the 8-bit Arduino line means a hard decision for a design.
Stick with the 8-bit boards or go to one of the 32-bit ARM based boards What do you think? Let me know in the comments.
We will have to wait until June to know since they are not shipping today. For more information visit the Arduino Uno WiFi Rev 2 product page.