Initial implementation with serialport