Rispondo a caso.
itoa:
io uso sprintf, visto che
qui dicono che itoa non è C++ standard per cui è a discrezione del compilatore come implementare quella funzione e se implementarla.
itoa2:
perché devi andare ad occupare 6 byte di Sram e tutto l'aggravio di codice che porta l'uso di sprintf con sé quando puoi spedire 2 byte e leggere 2 byte per ricostruire il valore?
somma di controllo (checksum):
la quantità di bit che usi per la somma di controllo la definisci. Ovviamente più bit usi più è accurata e precisa nonché esente da errori la somma stessa. 8 bit possono essere già sufficienti, ma se vuoi più sicurezza adoperane pure 16.