A robust Arduino serial protocol with a corresponding Java API