Robert Ou's version with serial interface