Memory Limitations - Why have them?

Hello,

I have JUST discovered the Arduino World so I'm allowed my first barrage of "dumb" questions...right?

As I study this hobby, one thing I quickly find is that there is a scarcity of Dynamic (I think) memory.

ie...sketches can only be 32000 bytes or something like that.

WHY?

In this age if cheap digital memory, why is it limited like that?

Why not at least one measly MegaByte of Dynamic memory?

Thanks for tolerating newbies

quamikazee:
Why not at least one measly MegaByte of Dynamic memory?

there are many many platforms with more capability...

That is why they make so many different chips. If your program will fit in 32K, why pay for 1M? It's a right tool for the job deal. I use Tiny 85 chips for some projects. 1K SRAM, 8K flash. Just right for small, low pin count projects and they are cheaper (cost and board space). And you may be surprised how much you can do with 32K.

The memory is internal to the microprocessor chip. There is a trade-off between the amount of memory and the cost. If you want more memory, choose a different Arduino or a different platform, but be prepared to pay for it.

Ok.
Do they make an Arduino board with expandable memory?

I may never need it, but just curious

Define expandable memory. If you add a SD card, is that expanded memory? Or external SPI or I2C EEPROM? Or do you mean more program memory?

groundFungus:
Define expandable memory. If you add a SD card, is that expanded memory? Or external SPI or I2C EEPROM? Or do you mean more program memory?

More program memory.
Or is there an Arduino board that already has more program memory?

quamikazee:
Or is there an Arduino board that already has more program memory?

more than which?

I'd start by clicking the PRODUCTS link above your post

This board comparison chart might be helpful:

It looks like the Due has the most program (flash) and dynamic (SRAM) memory of all the official boards.

quamikazee:
Why not at least one measly MegaByte of Dynamic memory?

Everything in engineering design involves tradeoffs. Some of them in single-chip processor design include cost, complexity, and power dissipation. Dynamic memory would increase all three due to the need for a memory controller.

There are other boards in the "Arduino ecosystem" besides those mentioned. Some of them very powerful (and proportionally more complex). Check out ESP8266, ESP32, and the various Teensy boards.

You probably should take a look at what the various boards can right out of the box before worrying about extra memory. Without a bloated OS, they run very leanly and efficiently.

The Apollo Guidance Computer had 2K words of RAM and 36K words of program space (16-bit words). Shows what can be done if you use resources efficiently.