Damit kann man char-Arrays an Methoden als string übergeben usw.
ja, aber gerade bei cstring musst du beachten, dass sie immer aus
char
und nicht aus uint8_t bestehen:

char str1[20];
char* str2;

und dass char in cstrings bei AVR kein byte und auch kein uint8_t (0..255) sondern ein signed char ist (-128..+127).
Bei ARM/ESP hingegen ist die cstring-char unsigned, also quasi "wie ein byte".
Aber auch wenn char hier unsigned sind, kann man dennoch nicht byte oder uint8_t arrays dafür einsetzen bzw. verwenden.

Genau darauf wollte ich oben in meinen Posts #5 und #7 hinaus.