Need something bigger and an Uno

Just about finished combining SDFatLogger with an Adafruit 9 DOF sensor. The code is unfinished and I'm at 95% of the UNO's storage capacity and use 68% of Ram. So it's time to think about an upgrade. I'm using the Web Editor and would prefer to stay with this IDE if possible. What do you suggest?

Due seems to be a reasonable choice.

Also the ATmega2560 might work but with only 8k of ram it doesn't seem to me to be much of an upgrade.

I'd go with a Teensy but it would involve an IDE swap and at this juncture, I don't want to invest the time and effort to set up a Linux based IDE + Teensy mods.

Are you sure? I thought there was a board selection for Teensy that you could install in the IDE. It's not native but I think you can install it. TBH I've never used the web editor though. Maybe not there.

"only" 8k? That's 4 times the UNO memory, both flash and RAM. I suggest the Mega. Do you expect to quadruple your code size?

The Mega is the quintessential no-brainer, particularly if you have Uno shields to hand. If you have an RTC on board, you will need to jump it to pins 20,21, but the only software change is the need to call pin 53 as OUTPUT instead of pin 10.

The Mega has 8x more flash and (as mentioned), 4x more RAM.

The Due is a 3.3V board so you might have to change your design a little. Don't be fooled by the bigger size of the memory of the Due, part of it will be consumed by the different architecture; you can check yourself by installing the package for the Due and compile your sketch for it. Below the results for blink without delay for Uno, Mega and Due.

Uno
Sketch uses 860 bytes (2%) of program storage space. Maximum is 32256 bytes.
Global variables use 15 bytes (0%) of dynamic memory, leaving 2033 bytes for local variables. Maximum is 2048 bytes.

Mega
Sketch uses 1392 bytes (0%) of program storage space. Maximum is 253952 bytes.
Global variables use 15 bytes (0%) of dynamic memory, leaving 8177 bytes for local variables. Maximum is 8192 bytes.

Due
Sketch uses 22148 bytes (4%) of program storage space. Maximum is 524288 bytes.

You more than likely will benefit from more memory, but just be aware of it; testing is simple :wink:

Note:
It surprised me a little that the Mega also consumes more flash for the same sketch compared to the Uno.

1284P.
16k SRAM, 128K flash, 32 IO, dual hardware serial ports.
Easy to add to the IDE with MCUDude's Mightycore

An example, one of several 1284P boards I offer:

Of course if you want an inexpensive option, a WeMOS D1 Mini. :face_with_raised_eyebrow:

It's not a boards platform alone, as with any other 3rd party boards. Teensyduino is actually a patch to the Arduino IDE itself. There is currently work in progress to provide the capabilities in the Arduino boards platform system required to support Teensy ("pluggable discovery", "pluggable monitors").

Yeah, for the reasons explained above, the Teensy boards are not supported by Arduino Web Editor.

The standard Arduino-IDE for windows offers support for a lot of processor-types
even for things like Seeeduino XIAO and teensys

On windows the "effort" to install teensy-support is to start the installation-file and then it works.

I have no experience with Linux but PJRC offers the teensy-loader for ubuntu
https://www.pjrc.com/teensy/loader.html

best regards Stefan

And the nano Every ..

Yes that has a bit more flash an much more RAM than a Uno. However, there may be some library compatibility problems. Here is the processor:

https://www.microchip.com/en-us/product/ATMEGA4809
. . .
ATmega4809 is a microcontroller featuring the 8-bit AVR® processor with hardware multiplier - running at up to 20 MHz and with up to 48 KB Flash, 6 KB SRAM and 256 bytes of EEPROM in 48-pin packages.
. . .

I'd say the level of library support for the ATmega4809 is roughly the same as for the Due. Neither of those boards have the same level of support in the Arduino ecosystem as the Uno.

1 Like

If you're developing in a simulator, you can just choose any processor that allows you to compile. Then you can port it to just about any board you like, if you don't use too many processor specific functions...

I think the OP is using the online IDE. The last time I looked the Online IDE was for Arduino branded boards only.

Do you mean they exclude clones from the web IDE?

I don't care, really, just want to know what Arduino branded means in this context.

a7

I mean that I tried the online IDE but couldn't find a way to use it with the ESP boards like the Wemos D1 Mini or NodeMCU.

I don't think the IDE can tell a clone Uno from an Arduino Uno.

No, clones work fine, The same goes for any board that can be compiled for and uploaded to with one of the available board selections.

The only exception to my statement is that the automatic port detection can't work for the boards that have a different USB VID/PID pair (e.g., an Uno derivative that uses a CH340 in place of the ATmega16U2). This is an inherent limitation because the VID/PID is the identifier used by that system. The same even applies to the official classic Arduino Nano, since it uses the manufacturer provided FT232R VID/PID, and thus can't be uniquely identified from the VID/PID.

Unlike the desktop Arduino development tools, there is a fixed selection of supported boards. It is not possible for the user to install additional boards platforms on Arduino Web Editor.

The ESP8266 and ESP32 boards are supported. You should be able to use them on Arduino Web Editor and Arduino IoT Cloud, no problem. The only exception is that you can't install plugins such as the exception decoder and SPIFFS file uploader, which are popular among Espressif users.

There is some variation in how people use the word "clone". True hardware clones of the Uno use the ATmega16U2 USB chip, and these seem to universally use Arduino's VID/PID pair in the firmware running on that chip. The IDEs can not distinguish such a clone from an official Uno.

However, a lot of people also use "clone" when referring to boards that look somewhat similar, but are not physically identical to the official boards. The example I mentioned above of an Uno derivative that uses a CH340 in place of the ATmega16U2 is not truly a clone, yet many people refer to it as such. Due to having a different VID/PID, the IDE is able to differentiate one of these boards from an official board. In theory, it could block their use, but it does not do so, and in the end it probably wouldn't even make sense to go to the effort to implement such a capability.

Yes, I do refer to anything not genuine as a "clone", perhaps "counterfeit" or the gentler "knockoff" would be more accurate.

A large percentage of IDE programmable boards I have do indeed use the CH340, another swathe is without build in USB and use the external FTDI device, which somehow I manage to have several many of - can't think of what they came with.

THX

a7

Talking about bootloaders yet?

You can install the UNO bootloader in a NANO or the NANO in an UNO

IMHO. A clone works the same.
A knockoff represents itself as the original.

It continues to annoy me that these variants advertise themselves as UNOs when they do not have the distinguishing feature - the 16U2 - of the UNO. Duemilanove variants in fact. :roll_eyes: