Based on pololu_driver