Das ist eine recht teure Variante.
Zudem funktioniert das nicht weil "1"!= "HIGH"
Ich rate dir von String ab.
Bei größeren µC mag das ja ok sein...
Evtl. kannst du dir ja beim CMDMessenger was abschauen.
Der tuts übrigens auch mit Dateien und anderen Ablegern von Stream.
Wenn er dir zuviel Speicher benötigt, kannst du ihn hier einschränken.
z.B. die Buffer kleiner machen, oder weniger Callbacks