Molto più semplicemente, ricordandoti che una stringa di char è sempre "null terminated", prevedi un array della massima lunghezza (232 = 4294967296), tipo 12 char (incluso il terminatore), cominci dalla posizione 0 e alla fine, quando non hai più caratteri, metti il valore terminatore 0x00 ... la dai in pasto a strtoul() ed ottieni il tuo unsigned long.
Nota che strtoul() fa parte di stdlib.h che fa parte di AVR libc che è automaticamente inclusa dal compilatore ![]()
Guglielmo