NanodeRF+SD+RTC

Hola a todos, en primer lugar me presento (no he encontrado un sitio específico para hacerlo).

Estoy haciendo un proyecto con openenergymonitor, para monitorizar la energía de una casa y enviarla por internet a una plataforma. Esa parte ya está hecha, es utilizar los códigos que vienen en openenergy.
Ahora quiero modificar el sketch del nanode para que además de enviarlo al servidor web, lo meta en una SD y además que le asigne una hora a los datos que le llegan de los medidores (emontx v2) mediante un RTC conectado al nanoderf.
Por separado con lo ejemplos todo funciona muy bien, el problema viene cuando intento juntar el código, ya que me quedo sin memoria, al incluir las librerías #include <SPI.h> y #include <SD.h> necesarias para que funcione la SD. Y eso que todavía no he metido las librerías del RTC.
¿Alguna idea?

Sketch uses 22.480 bytes (69%) of program storage space. Maximum is 32.256 bytes.
Global variables use 2.464 bytes (120%) of dynamic memory, leaving -416 bytes for local variables. Maximum is 2.048 bytes.
processing.app.debug.RunnerException: No hay suficiente memoria, ver http://www.arduino.cc/en/Guide/Troubleshooting#size para obtener consejos sobre cómo reducir su huella.
	at processing.app.Sketch.size(Sketch.java:1680)
	at processing.app.Sketch.build(Sketch.java:1590)
	at processing.app.Sketch.build(Sketch.java:1509)
	at processing.app.Editor$DefaultRunHandler.run(Editor.java:1915)
	at java.lang.Thread.run(Unknown Source)

Excelente hasta acá pero y el código???

Para sugerirte cosas debemos verlo.

Intenta usar menos variables globales. Limita el uso de variables definidas como String si es que las usas.

Cuando veamos el código podremos aconsejarte mejor.

Lo siento, aquí lo teneis, es mucho código, lo pongo por separado, porque no lo he podido juntar y hacerlo funcionar.

No puedo poner todo el código porque no me deja, lo subo en word y los .ino

Codigos.doc (64 KB)

Codigos.zip (7.66 KB)

no se de todos los códigos que has subido, cual es el que te esta dando problemas

Porque no lo describes. rtc ejemplo sd ejemplo nanonode principal por ejemplo dhcp ??? etc, etc

excediste la ram, al 120%

edito: variables globales consumen espacio (deben ser usadas por otros procesos/parte de codigo), variables locales al proceso el compilador reutiliza esa posicion de memoria.