Hi again.
I have start to coding slave and see something missing in Special chars function... It has only
'\n' support. How about to add
'\b' and
'\r' chars?
'\b'ackspace and carriage
'\r'eturn are useful chars if you counting something and it's better/speedy than using some high level functions.
Wait a minute I can't see
'\t'ab character support also :o
I skipping functions that require PGM_P ( like Puts_P ) since we don't have such strings in slave device program memory. But we needed to support them in master device. Right? Is PGM_P str is compatible with char* ? Or do I needed to convert it? I don't play them before. I wish I could convert them easily when I writing masters code.
SelectFont functions make me thinking... I use enumerations for selecting fonts that stored locally and see that there is no memory for including all fonts 16796 bytes but 14336 allowed!).
If we remove arduino bootloader from slave (arduino don't required for such a device I think) We got some bytes > 1K. And removal of heartbeat function (I usually wanted to have heartbeat on MCUs.

) and serial library, It's fits in the device. But I don't implement drawbitmap function also. Might be use function pointers to get some space also, But we needed to remove some of the fonts again i think. Also serial library or OneWire (that I wanted to see it) will require more bytes.
So atmega328 chip is required for including everything, but we needed to remove some fonts from atmega168 targets. Which fonts are we will crop by default? Which ones are used mostly?(I don't know really) I will place font header includes to top of slave code so user could uncomment which one they needed to use. But I want to hear font list from you that from important to petty one...
Could we transfer new fonts from master to slave RAM before using? On atmega168, there is no RAM such fonts like Arial14.(Currently 711 bytes available on) And storing fontset to flash on demand will degrade flash on MCU with time or with missuses... If we use atmega328, it's ram is could used such a purpose but we could also store all fonts into flash!

I don't know how could we handle gText things!!! I import DrawArea functions to slave. But I think we needed to create some instances of gText on slave to play with it, right? What do you think about it?
Also DrawBitmap function make me thinking. Because wire library code allows you up to 32 byte to transmit continuously. If you send 33.rd one, It will discarded. I needed to divide data to 32 bytes before send and needed to write it to screen directly since there is not enough RAM for frame buffer. Also images are stored in the PGM data. I think I needed to rewrite DrawBitmap code for the master and the slave. I think it will be fun to code DrawBitmap

What do you think about those functions and do you have some advice about implementations of them?
Regards,
Erdem