Hacker News new | ask | show | jobs
by rnestler 1259 days ago
MCUs with just 4MB of RAM may not even have IP based networking.
5 comments

Unless you want really high performance networking, you don't need tons of RAM to implement it. ESP32-based MCUs are known to implement Wifi + TCP/IP + TLS [1] on 1-2MB of RAM. This is, of course, without a Linux-compatible kernel.

Much RAM is not needed if most of your code resides on the flash and runs directly from there.

[1]: https://github.com/espressif/esp-idf/tree/master/examples/pr...

2KB SRAM. ~1-2ms TCP setup + HTTP round trip, ~500-1000 requests/sec. Guess the MCU.
Atmega328P?
Knew someone would get it in one :)
If the slowness wasn't hint enough, the 2KB SRAM was a dead giveaway.
When I was your age, I sent 24 people to the actual moon with my software in 4K of RAM and here I am clicking your button and it takes ten seconds to load a 50 megabyte video ad and then it crashes. - @natecull, on Margaret Hamilton perspective
I work with a 2MB MCU, and run IP networking on it (in Python, no less). IP doesn't need very much RAM.
Sure, it's tilck that doesn't implement it. :)
You can run IP based networking on machines with well under 1MB (smallest I've personally a basic graphical web browser on would have been a 512KB Amiga)
We are doing IPv6 networking on MCUs with just 32k RAM.
on NXP K60 with FreeRTOS and lwIP IP based networking runs without problems with 256k Flash and 64k RAM. Of course it depends on the application, because the throughput is not high, but that is not the point here