// {'name': 'Label', 'type': '[32]byte', 'size_bytes': 32} uint8_t Label[32]; it looks like all places where [n]byte is used is a string. should just make that char Label[32]; otherwise you have to cast when passing into strcpy() and friends.