working just about
using hardware serial