Поиздевался слегка над оригинальной программой AlexVOK на предмет уменьшения кода
При этом ничего КАРДИНАЛЬНО не менял. Почти все на уровне простого поиска-замены. Вот что получилось:
// History modification (Use ArduinoIde Ver 1.5.8)
__01 Оригинал
Sketch uses 28 246 bytes (91%) of program storage space. Maximum is 30 720 bytes.
Global variables use 949 bytes (46%) of dynamic memory, leaving 1 099 bytes for local variables. Maximum is 2 048 bytes.
__02 Легкая модификация
Некоторые куски кода перенесены в функции
Sketch uses 28 300 bytes (92%) of program storage space. Maximum is 30 720 bytes.
Global variables use 949 bytes (46%) of dynamic memory, leaving 1 099 bytes for local variables. Maximum is 2 048 bytes.
Тут код слегка увеличился за счет вызова функций (Но это я с прицелом на дальнейшую модификацию, когда руки дойдут )
__03 еще одна модификация (пока почти оригинал

)
Замена Библиотеки LCD5110_Graph на LCD5110_Medium (Самодопиленная)
Причина: Попытка уменьшить код
Заменено:
1)Оставлены только шрифты MediumNumbers (слегка изменен) и SmallFont
2)Добавлен Шрифт SymbFont - псевдографика
3) Перевел в publik protected методы (они в библиотеке использовались внутренними функциями)
void drawHLine(int x, int y, int l);
void clrHLine(int x, int y, int l);
void drawVLine(int x, int y, int l);
void clrVLine(int x, int y, int l);
Т.e. отрисовка чисто вертикальных и горизонтальных линий
4) Чуток подправил заголовок для работы с новыми версиями Arduino Ide вроде... может быть... уже не помню...

Соответственно в проге земенил: шрифты BigNumbers на MediumNumbers; DrawLine на DrawHLine и drawVLine; отрисовку кружочков на псевдографику SymbFont
Замена Библиотеки DS1307 на DS1307RTC + Time
Причина: Использование СТАНДАРТНОГО потока ввода\вывода через СТАНДАРТНЫЕ пины I2C контроллера и вроде аппаратно а не придуманного авторами либ дерганий пинами не предназначенных для I2C
Эту модификацию я считаю для себя критичной. I2C намерен использовать в будущем под разное оборудование
(как недостаток: возможно придется реализовать парочку функций по начальной настройке и инициализации м-мы DS1307)
Соответственно заменил все строки с вызовами старой библиотеки + дописал чуток
Sketch uses 26 720 bytes (86%) of program storage space. Maximum is 30 720 bytes.
Global variables use 1 175 bytes (57%) of dynamic memory, leaving 873 bytes for local variables. Maximum is 2 048 bytes.
__04 еще модификация:
Использование библитеки digitalWriteFast (
https://code.google.com/p/digitalwritefast/)
идея взята с
http://www.gammon.com.au/forum/?id=12173
Кстати, очень рекомендую заглянуть
Sketch uses 26 570 bytes (86%) of program storage space. Maximum is 30 720 bytes.
Global variables use 1 235 bytes (60%) of dynamic memory, leaving 813 bytes for local variables. Maximum is 2 048 bytes
Выигрыш в принципе небольшой. Но всеже... при таких ресурсах эти байты могут стать решающими.
Да, забыл предупредить. Тут пару каналов еще отрублено. Просто для себя я жестко забил необходимость оставить свободным serial порт для связи с компом. Но на тенденцию уменьшения кода это не влияет.