diff --git a/sys/arduino/serialport.cpp b/sys/arduino/serialport.cpp
index c9512be5765d34ac1056a1251d1604a1f762d328..63ac0af9478f3c227ae5fcdfce41430db487de0b 100644
--- a/sys/arduino/serialport.cpp
+++ b/sys/arduino/serialport.cpp
@@ -27,10 +27,10 @@ extern "C" {
 
 #include "serialport.hpp"
 
-void rx_cb(void *arg, char c)
+void rx_cb(void *arg, uint8_t c)
 {
     ringbuffer_t *buf = (ringbuffer_t *)arg;
-    ringbuffer_add_one(buf, c);
+    ringbuffer_add_one(buf, (char)c);
 }
 
 SerialPort::SerialPort(uart_t dev)