Arduino Announces 'UNO R4' with Clock Speed/Memory/Storage Upgrades, 32-bit ARM Cortex-M4 (arduino.cc) 70
Saturday Arduino announced "a new, revolutionary revision of the iconic UNO board," promising "a long-awaited update on performance and possibilities."
The Arduino UNO R4 indeed preserves the well-known features of the UNO family — standard form factor, shield compatibility, 5V operating voltage, outstanding robustness — while offering no less than a 32-bit Cortex-M4 and a 3-to-16x increase in clock speed, memory and flash storage....
The UNO R4 will come in two versions — UNO R4 WiFi and UNO R4 Minima — offering unprecedented performance and possibilities for the maker community. The WiFi version comes with an Espressif S3 WiFi module, expanding creative opportunities for makers, educators, and hobbyists alike; while the UNO R4 Minima provides a cost-effective option for those seeking the new microcontroller without additional features....
SRAM went from 2kB to 32kB, and flash memory went from 32kB to 256kB to accommodate more complex projects. In addition, following the requests from the community, the USB port was upgraded to the USB-C and maximum power supply voltage was increased to 24V with an improved thermal design. The board provides a CAN bus, which allows users to minimize wiring and execute different tasks in parallel by connecting multiple shields. Finally, the new board includes a 12-bit analog DAC.
All in all, Arduino UNO R4 is the answer to the requests for improvement and updates the developer and maker community has been advancing, making it easier than ever to get started with Arduino.... On the software side, a big effort is being made to maximize retrocompatibility of the most popular Arduino libraries so that users will be able to rely on existing code examples and tutorials.
The UNO R4 will come in two versions — UNO R4 WiFi and UNO R4 Minima — offering unprecedented performance and possibilities for the maker community. The WiFi version comes with an Espressif S3 WiFi module, expanding creative opportunities for makers, educators, and hobbyists alike; while the UNO R4 Minima provides a cost-effective option for those seeking the new microcontroller without additional features....
SRAM went from 2kB to 32kB, and flash memory went from 32kB to 256kB to accommodate more complex projects. In addition, following the requests from the community, the USB port was upgraded to the USB-C and maximum power supply voltage was increased to 24V with an improved thermal design. The board provides a CAN bus, which allows users to minimize wiring and execute different tasks in parallel by connecting multiple shields. Finally, the new board includes a 12-bit analog DAC.
All in all, Arduino UNO R4 is the answer to the requests for improvement and updates the developer and maker community has been advancing, making it easier than ever to get started with Arduino.... On the software side, a big effort is being made to maximize retrocompatibility of the most popular Arduino libraries so that users will be able to rely on existing code examples and tutorials.
Re: (Score:3)
If I had seen this while Meta Moderating - which I have not done for a while - this advertising piece would have received a "spam" vote.
Units may be wrong (Score:1)
SRAM went from 2kB to 32kB, and flash memory went from 32kB to 256kB to accommodate more complex projects.
Even when I started computing around 1985 I had 128kB of RAM and floppy disks were larger than 256kB, leading me to believe there is a typo there.
Re: (Score:3)
Well, in that case all the program plus data needed to fit in RAM. But in most MCUs program runs from flash/ROM, and usually read only data is also running from flash/ROM. Only variables that need to be modified need to stay in RAM. So a more fair comparison would be 128 KiB vs 34 KiB (32 KiB flash + 2 KiB RAM). A very small amount of memory, but much greater than 2 KiB.
Re: (Score:3, Informative)
You may have used a PC (x86 system?) while we talk here about a micro controller.
Re:Units may be wrong (Score:5, Interesting)
It's a Renesas RA4M1, which is the sort of thing you might put in a washing machine. Your washing machine does not even need that much RAM, but it's becoming about the minimum these days for MCUs with the peripheral sets (PWM outputs etc) that you normally need.
I program STM32, and the growing memory doesn't really allow you to do much more, but you can certainly write cleaner software, and start throwing in stuff like simple dynamic memory allocation with message queues etc, rather than having to spend lots of time optimising the call stack and things like that. I still do a bit with 8-bit micros and one of them as 32 bytes of RAM. You'd be amazed what you can do with that - it's quite fun as well, like solving a sudoku puzzle, but alas, the need for this sort of thing is rapidly going away.
Re: (Score:3)
Re: (Score:2)
I decided to go the whole hog here and design my own 16-bit RISC CPU, with instruction set and assembler and implement it
on a FPGA. This was a really fun project, and I learned a lot. Squeeing every bit out of 16 bit instructions space was challenging and very interesting.
Re: (Score:3)
The previous Uno board was based around the AT328 chip, which does indeed have 2KB of RAM and 32KB of flash.
For things like displaying a clock or status info on an LED matrix, handling MIDI I/O for a synthesizer module or rotating a servo motor in 45 degree steps depending on what four I/O pins are doing, 2KB is plenty.
Re: (Score:3)
Even when I started computing around 1985 I had 128kB of RAM and floppy disks were larger than 256kB, leading me to believe there is a typo there.
Arduinos have 2kB of RAM.
(and look at all the things people have managed to do with them...)
Re: (Score:2)
We're talking embedded 8-bit processors. You write it in C and forget about it, the final binaries are just about enabling and disabling the 20-or-so pin ports.
The fact people are clamoring for more RAM/flash (which means more power consumption) to have Rust or Python flash an LED boggles the mind.
Re:Units may be wrong (Score:5, Informative)
Sure there is,
https://docs.arduino.cc/learn/... [arduino.cc]
Re: (Score:1)
From the Rust docs:
- Rust prevents out-of-bounds memory accesses and buffer overruns via runtime bounds checks
On an 8-bit embedded CPU with 2k of RAM and 32k of ROM doubling your binary and orders of magnitude more syscalls becomes VERY expensive.
https://drewdevault.com/2020/0... [drewdevault.com]
Re: (Score:2)
Re: (Score:1)
That was RAM and external storage. We're talking CPU-based SRAM and Flash (EEPROM) storage. In comparison, the 8088 had four 16 bit registers or 8 bytes of "SRAM" and an 8K ROM or maybe 64K if you had BASIC.
Re: (Score:2)
No, this is correct. The board contains a microcontroller. These ICs have very limited amounts of code & ram space, and cost as low as a few cents.
I recently completed a product for a customer using 24 bytes of ram and 1.5kB of flash memory. Not unusual.
Re: (Score:1)
Re: (Score:2)
I started with 4kB and upgraded to 48kB. So what? Memory costs chip area, especially SRAM, and that costs money. Fewer chips per wafer, and almost always lower yields. Microcontrollers are built for cost, and it turns out you don't need a lot of RAM to do the things the limited number of I/Os on a uC could possible do.
Teensy 4.1 has a 600 MHz ARM with 1024K RAM. That's a beast of a microcontroller. Beyond that we start getting into system-on-chip and system-on-module designs which overlap with smartphones,
Re: (Score:2)
Cost? (Score:2)
What will it cost per?
Unless that specs are CONSIDERABLY better... (Score:5, Interesting)
...than the original Uno, don't expect me to be impressed.
I have this feeling that time passed by Arduino. Yes, they opened the door to MCUs for hobbyists, but others simply walked through faster than they did. And while Atmel-chips sure are easier to program in assembler than, say, most Cortex (even though ARM assembly is vastly superior to the Atmel set), that means fairly little if most people program either with the same Arduino-IDE interface.
SRAM went from 2kB to 32kB, and flash memory went from 32kB to 256kB
That's nice and all, but realize that your competitor is a nodeMCU with 64kB Sram and 4Megs of Flash that can accept a wider input Voltage range, uses less power and comes with 80/160MHz clock speed. And we're talking about a MCU that costs about 7-10 bucks, even at the inflated prices we face today.
Raspberry Pico (Score:1)
The competitor is the 4€ Raspberry Pico.
Re: (Score:3)
Well, not really. The Pico runs on a Cortex M0+ while this is supposedly an M4 and it has WiFi. So I'd definitely give them the ESP8266 as the competitor, in the nodeMCU configuration to acknowledge the breakout-board setup the Arduino provides.
But no matter how you twist and turn it, we're still talking for a single-digit dollar price. And even the Uno R3, the predecessor of this new one, clocked in at about 25 bucks.
Re: (Score:1)
Re: (Score:2)
Hold on, where did you find the specs for the Uno R4? Could you link them please?
Re:Raspberry Pico (Score:4, Interesting)
Blog post in the summary mentions it's a Renesas RA4M1 MCU running at 48MHz...
Browsing the The Pico's RP2040 MCU [raspberrypi.com] datasheet feels a little underwhelming. Not doing a deep dive on it but things I look for are for example timer/counter features; The RP2040 seems to limit you to some internal master clock/counter that you can set alarms against, rather than more flexible hardware. Entirely possible I'm missing something though.
The Renesas RA4M1 MCU [renesas.com] looks to be much more similar to the Atmel AVR MCUs that Arduino was built on. Despite the Cortex CPU the peripheral hardware all looks very familiar at least skimming through it. (I've a lot of experience with Atmel-now-Microchip AVR MCUs)
The biggest difference in my opinion, MCU peripherals on the Pico and other Pi products is literally an entire subsystem that historically created less-than-ideal lag between the general CPU code and GPIO. Not sure if the PIO has been expanded or integrated enough to accommodate more meaningful operations, but if not then you're not getting a "real MCU" in the classic sense but something more analogous to a PC with an expansion card.
=Smidge=
Re: (Score:2)
Re:Raspberry Pico (Score:4, Interesting)
The Raspberry PI Pico/W does have WiFi. Still Cortex M0 though
But the RPi Pico is becoming the Swiss Army Knife of MCUs, especially with it innovative PIO State Machine IO Extension
Re:Raspberry Pico (Score:4, Interesting)
That programmable IO is SO awesome! I only have a few of the non-WiFis ones here right now, but that PIO is the ultimate interface, whatever you want, whatever you like, you can implement it (within reason, USB 3.0 is still out of reach).
But that only matters if you really have something to interface with. If all you need is some WiFi or just raw processing power, the ESP8266 is probably the better choice.
Still, I don't see the need for an Arduino. What can that Uno R4 do that can't be done better, easier, cheaper or just faster with an alternative?
Re: (Score:3)
But that only matters if you really have something to interface with. If all you need is some WiFi or just raw processing power, the ESP8266 is probably the better choice.
The wifi version has an ESP32 S3 on it, so its communications processor is literally more powerful than an entire ESP8266.
This is for projects in between current Arduino models and a RasPi, where you need realtime processing out of the Arduino so the communications are offloaded to another chip.
#1 real question is what the cost will be like. In particular, the cost of the non-wifi version, but both are interesting. #2 real question is what speeds the CAN bus will be able to manage. There is a real shortage
Re: (Score:3)
RPi Pico can CAN [github.com].
Don't let the "in software" fool you, what they really did was to use of the programmable IOs to do the trick.
Re: (Score:2)
Looks like rpi pico is fast enough for CAN, but not CAN-FD. That's a lot better than nothin', but not adequate for the most modern uses.
Of course, this device will probably be the same, but I don't know
Re: (Score:2)
The RP2040's PIOs are great, people are doing all sorts of clever hardware hacks with them. You can buy just the RP2040 MCU on a reel and for a dollar or two each and spin up your own custom PCB if you want to. This makes it easy to build, for example, a tiny USB dongle, or integrate it into your industrial or lab equipment without needing a daughterboard.
The dual-core nature of the RP2040 is intriguing but I don't know how well this is supported by the Arduino IDE. The RP2040 is well documented though so i
Re: (Score:2)
QFN isn't exactly the most hobbyist-friendly form factor, but generally I agree. Then again, 4 bucks for it mounted on a breakout isn't breaking the bank either.
I don't know how well it is supported by Arduino, I had more fun toying with it "directly". It is, as you said, very well documented, so rolling your own isn't limited to the hardware here.
As for the 5V signaling... yeah, granted, but looking around the currently offered periphery, most of them operate on 3V3 now, 5V is definitely on the way out. Mo
Re: (Score:2)
And your link doesn't work.
Sorry about that... it got mangled because I had to refresh the page. This should be better: https://len42.github.io/rp2040... [github.io]
And yeah, the QFN of the RP2040 is tricky to hand solder, whereas the package on the Arduino R4 looks easier. Maybe it's time to actually build the reflow oven I've been putting off for years!
Re: (Score:2)
It's possible to hand solder QFN, but you need a VERY well made PCB and a bit of experience. Not easy, but possible.
Re: (Score:2)
Re: (Score:2)
Yes, they opened the door to MCUs for hobbyists, but others simply walked through faster than they did.
Not at all. This isn't general purpose computer. You don't wave your MHz dick around and declare yourself king. I/O is king, capability to meet the specific application requirement is king. Anything more is a waste, anything less is a hinderance.
That's nice and all, but realize that your competitor is a nodeMCU with 64kB Sram and 4Megs of Flash that can accept a wider input Voltage range, uses less power and comes with 80/160MHz clock speed.
The nodeMCU with its lower I/O count, no DAC, fewer ADCs, fewer dedicated timers, no CAN bus, no onchip USB, fewer SPI busses, fewer I2C busses (and facetiously using plurals there), ... lame.
Look if you have an application where the NodeMCU is more suited, use it.
Re: (Score:2)
Curious choices (Score:3)
And by curious, I mean not assurredly the right ones. For example, using an entirely new processor, instead of any of the ones that see popular at the moment. Also, sticking with 5 volts when the shift to 3.3 seems well under way.
Re: (Score:1)
Re: (Score:2)
If you need 3v3 then you can use a level shifter, there are probably architectural reasons why they used 5v, and most arduinos will trigger on 3v3 anyway so you only have to worry about outputs. Depending on what you're doing you may be able to get away with just using a voltage divider either way anyway.
Re: (Score:1)
Re: (Score:1)
the shift to +3.3 is done.
the shift to +1.8 is well under way.
i got an Arduino for a project and got really far along, was looking at the schematic, and saw +5v. what a great idea, I thought, having +5v in addition to +3.3 .
wait, WTF?!, this thing is running from +5V and has +5V IO ??
Had to go buy a different microprocessor eval board.
Re: (Score:2)
The vast majority of Arduino shields are still 5v IO. And a lot of other components in common use by the arduino communicty are 5v. So keeping compatibility with existing Arduino shields is a good thing. I've got several ESP32s and ESP8266s, and they sometimes come in a form factor similar to Arduino which lets them work with some Arduino shields, but not most.
Re: (Score:2)
Darn edit button doesn't work. I meant to add that moving to 3.3v is fine, but the IO pins should be 5v tolerant. And there's littler eason they cannot be. Despite many claims to the contrary, the ESP32 and ESP8266 input pins are, in fact, 5v tolerant according to Teo Swee Ann at Expressif:
https://www.qworqs.com/2021/05... [qworqs.com]
https://www.facebook.com/group... [facebook.com]
Re: (Score:2)
I've used nanos for a lot of projects, as the cheapest arduino with both USB and ISP (and with a reasonable number of pins available, and one of the best chips on a classic arduino as they have a 328) and they are available in 3.3 or 5v. I will be surprised if knockoffs of this board don't appear in 3.3. This would be a great board for robotics projects. The ESP32 gives tolerably good wifi performance with modern security features at a reasonably low cost.
Re: (Score:2)
entirely new processor
There have been Arduino boards using ARM processors for many years already. Unless you're talking about the specific model of chip, in which case why are so many people excited to use an "entirely new" Intel Core processor?
And 5 volts is because microcontrollers are about interfacing with other chips. Most hobbyist electronics still deals with 5 volt power supplies. The most annoying problem I've had is talking from a 3V MCU to 5V CMOS which expects 75% VCC, or 3.75 volts. It works well enough at low speed
Re: (Score:2)
Aside from compatibility with old 5V shields and other peripherals, there is also the fact that microcontrollers with 5V outputs can usually source more current than 3.3V parts can. You can easily drive a relay directly from the output of an Uno or other 328P-based board.
The RA4M1 is not actually a full-on 5V microcontroller. It's one that has nine 5V-tolerant I/O pins, and two that can source or sink 20mA. In that regard it is not a full replacement for the Uno in all applications, but it does have enough
Meanwhile... (Score:2)
Meanwhile the Adafruit METRO M0 Express has been out for years, with similar if not the same specs.
Who are they targeting with this?
Re: (Score:2)
Meanwhile the Adafruit METRO M0 Express has been out for years, with similar if not the same specs.
That board has a Cortex M0+. This one has a M4, which has about six times the performance. Nice try there, though. It's cool to hate on Arduino, but it always turns out to be misguided.
Re: Meanwhile... (Score:3)
Well for just $2 more thereâ(TM)s the M4 Express. But the R4M1 matches the M0 clock speed, RAM, Flash, so I wanted a fairer comparison.
Wifi? What about wired? (Score:3)
I'm actually somewhat interested in this, but I want a wired ethernet (and don't need wifi - one of the main reasons I haven't used an ESP). I realise a lot of applications use wifi because not everyone has their house flood-wired, but with wifi, I've got to provide some way to select the network and enter/change the password. With a wired connection, no UI required - just plug it in and you can DHCP your address and be up and running.
If it matters, I'm wondering if I could replace the Raspberry Pi I that sends alerts when my doorbell rings. It's easy enough to detect the button press, and sending a UDP unicast is probably easy enough, but the Telegram Messenger API POST request is a bit trickier (HTTPS, etc).
Re: (Score:2)
Even better if that wired ethernet supported POE.
Re: (Score:2)
https://github.com/espressif/a... [github.com]
There are wired-ethernet Arduinos, though, and wired-ethernet modules for Arduinos, with or without PoE.
Keep it tiny (Score:3)
Wifi uses ESP (Score:1)
It says that the The WiFI version will use ESP as the WiFi module. This begs a question - the ESP module itself is far more powerful than the hosting UNO - why not program the ESP itself and do away with the UNO? The ESP can already be programmed using the Arduino IDE almost like a Arduino device. The ESP8266 that I'm playing with, runs 32 bit at 160Mhz, 80KB RAM, 4 MB program size .
Re: (Score:2)
the ESP module itself is far more powerful than the hosting UNO - why not program the ESP itself and do away with the UNO?
If you actually want to use the wifi, then you don't have access to the whole ESP32. Odds are good though that you'll be able to flash the ESP32 separately anyway, so you could use the board that way if you wanted. For example you could use the ESP32 as the higher level brain, let it be in control of the system, and use the "main" chip just to do your low level realtime stuff.
The advantage of using an ESP32 over an ESP8266 is that the ESP8266 has issues accommodating WPA2 Enterprise.
Re: (Score:2)
The reason you don't use the 8266 for the whole thing for me part is the WiFi. The WiFi interrupt apparently has the highest priority, and will get in the way of whatever you are doing. Also, the ADC, as it turns out, is pretty lousy (at least as exposed to the Arduino IDE). It's really better to dedicate the 8266 to WiFi and do everything else on a separate processor, at least if you care about timing anything less than a few milliseconds.
I had an application where I was trying to do ADC acquisitions wi
But... why? (Score:3)
Re: (Score:2)
Re: (Score:2)
That alone is as useful as this whole board
Even a cursory glance at the datasheets for the ESP32 and the RA4M1 will tell you that one isn't as useful as the other and in fact each of them are so widely different in purpose that combining them on a single board in some situations actually makes sense.
Clockspeed is not only not everything for microcontrollers, it is very largely not even a consideration at all. If you're blinking an LED and tweeting about it, then sure get an ESP32. If you do something more, such as have to talk on multiple busses to
Re: (Score:2)
If you're blinking an LED and tweeting about it, then sure get an ESP32.
Tell me you know nothing about microcontrollers without saying it. An ESP is not some PIC or ATMEGA chip for doing minimal GPIO, it's a considerably stronger and more featured chipset used in most IoT and smart home products available off the shelf.
If you do something more, such as have to talk on multiple busses to multiple peripherals then good f-ing luck.
I literally use ESP32 S2 and S3 devices on a CAN bus to control all manner of gauges and inputs on a fairly complex flight simulator cockpit. I've used the S2 and its wifi capabilities on a large scale with a web-based API as status monitoring and Andon function
Re: (Score:2)
I'm working on something that involves multiple serial buses (ESP32 has 3 uarts), and I encountered a problem that I don't get on the Teensy. Writing to serial, even at 115200 or 460800 is very slow. Almost 10 times slower than writing to a uart on Teensy. So while writing to a serial port, sometimes I miss bytes coming in another serial port. Don't have that problem on Teensy.
I'm not sure if this is because of the uart buffer size or what. I'm wondering if on ESP32 I should use RTOS tasks to put my se
Lol (Score:2)
What's the Price (Score:3)
I switched to the much more powerful ESP8266 because knock off Nano's from China went too far up in price to make sense for what I'm using them for. The ESP8266 was much cheaper and much more powerful.
What the Nano has is more pins and more analog pins. It's great for real world sensors where you don't need a lot of program memory and just need to read pins and store values on an SD card.
If the new board isn't better than the ESP boards and costs more, it's going to continue to lose relevance.
SparkFun lost all relevance when they started using expensive proprietary connectors for their boards instead of standard dirt cheap connectors that were well established.
Both companies seem more interested in making money than in serving any particular community.