How to know if a Arduino has enough memory for a project

Nick,

Pretty sure "ton" in not a real code measurement unit. Retroplayer was just proving a point that many people can easily shed code and memory space by being a bit careful with what they don't use. To understand the "ton" qualitatively, Retroplayer gave a couple of examples. I would extend the example to include Serial.print(float) vs Serial.print(integer,integer);

If you output a float then you need the overloaded print(float) but if you make a simple integer(before decimal).integer(after decimal), you save a "ton".

You can also save half a "ton" by modifying the core to not instantiate the Serial or Serialx (MEGA) if you don't need them.

A "ton" can also be saved by using arrays, functions, understanding PROGMEM, f(), length of integer vs. that of char etc. Sometimes resorting to MEGA is an indulgence of one's own inability to cut wasteful spending in code mall. So I always give an extra push to someone "running out of space" to learn to optimize code before getting a MEGA, instead of a nudge in the MEGA direction regardless. Don't take this as me against you. I only take a stand on issues not who raised them. I do this even if the other side is Grumpy or Paul but seldomly find them to have anything I can nitpick about.