Don't give up yet on that idea yet! Keep the const's in there but change
uart_write(_uart, &c[i], 1);
to
uart_write(_uart, (char *)&c[i], 1);
If that all still doesn't work -- but it will eventually! -- dump the template and manually insert the 7
inline HardwareSerial &operator <<(HardwareSerial &obj, char *arg) { obj.print(arg); return obj; }
inline HardwareSerial &operator <<(HardwareSerial &obj, char arg) { obj.print(arg); return obj; }
inline HardwareSerial &operator <<(HardwareSerial &obj, uint8_t arg) { obj.print(arg); return obj; }
inline HardwareSerial &operator <<(HardwareSerial &obj, int arg) { obj.print(arg); return obj; }
inline HardwareSerial &operator <<(HardwareSerial &obj, unsigned arg) { obj.print(arg); return obj; }
inline HardwareSerial &operator <<(HardwareSerial &obj, long arg) { obj.print(arg); return obj; }
inline HardwareSerial &operator <<(HardwareSerial &obj, unsigned long arg) { obj.print(arg); return obj; }