Nano/Mini vs Mega ram capacity

I'd like to use a Nano or Pro-Mini for a project as they are small boards but I want to use an SD card, RTC, LCD and Radio.

The problem I face is lack of ram on the 328 based boards.

So two questions:

Is there a quick ready reckoner to find out the ram usage for each of the Arduino Libraries, or do you just build on a Mega and use a ram usage checker to see if it would fit on a 328?

Is there a small Arduino board with more than 2k ram? Maybe I should look at a Teensy?

richardtheboffin:
Is there a small Arduino board with more than 2k ram?

Maybe Bobuino? Not so small but smaller than Mega and Due.

Atmega1284P processor featuring 4 Kbyte EEPRPOM, 16 Kbyte SRAM, 128Kbyte Flash Memory; 2 hardware UARTS; 32 IO lines...

For best power/speed Vs size Vs price it's hard to beat the Teensy offerings, especially 3.x version. Only slight down side is that you have to download and use a modified arduino IDE that the teensy firm maintains, as the standard IDE does not support the Teensy product line.

A quadram-board may be nice, its adds 512kB of external ram to a mega2560- board.

http://ruggedcircuits.com/html/quadram.html

I'd like to use a Nano or Pro-Mini for a project as they are small boards but I want to use an SD card, RTC, LCD and Radio.
<...>
or do you just build on a Mega and use a ram usage checker to see if it would fit on a 328?

Almost assuredly, if you build with a Mega and 8K of SRAM (or 1284 with 16K), you will get sloopy and porting down will be painful. I recommend developing with the preferred uC/board and go upward only when your best effort to stay in the 2K fails.

You can also be creative. The LCD "could be" a serial type if you need the extra pins, and the SD card need for 512 or 1024 RAM can be alleviated by offloading the entire SD write/read process. I often just want to data log, so this is my implementation:
http://forum.arduino.cc/index.php?topic=154864.0

Nick Gammon has a software serial version that is send-only and only needs the 1 pin reference.
RTC can be I2C... And so on.

As you do the code and library integration, remember libraries are suppose to be granular, but some may be coded where the optimizer cannot determine the granuality. So, try more than one library. Use the freeRAM function to keep tabs as you code (playground.arduino.cc/Code/AvailableMemory).

Remember to move as much static data into PROGMEM as possible ... arduino.cc/en/Tutorial/Memory

Ray

If you do decide to step up to a 1284P, I have kits (and offer it assembled as well) a trimmed down version of the original Bobuino (thanks for the mention K5CZ!). 16k SRAM, 4K EEPROM, 128K flash, dual hardware UARTs. Rx/Tx on D0/D1, SPI on D10-11-12-13, I2C on A4/A5. 32 IO total.
Cross Roads Electronics for more pic's


Kits are $22 less the onboard USB module (many folks use offboard FTDI Basic or equivalent just for programming), $10 for a module, $15 to assemble, and $5.25 to mail within the US.

I have used teensy before and the 3.1 version is quite a beast! I've been looking for very low cost too and the Teensy3.1 is good value for money but it's still nearly 4 times the price of a pro-mini.

I know I can optimise to fit into 2k ram (only 600 bytes to lose) but I was curious to know if there was any info anywhere with the RAM and FLASH requirements of the common libraries.

So how come there's no Arduino with a Xmega128 on it??? They are pretty cheap devices now and you get 8k ram and stacks of hardware....