docs: def set_target(self, setpoint):
          """Higher level abstraction for setting the speed register. This
          register is responsible for telling the grizzly at what speed or
          position to drive at. The different control modes and type it expects is
          documented in the table below:
          
          Mode            Type                Range
          NO_PID          16.16 fixed         [-100, 100]
          
          SPEED_PID       int16               Defined by your motor. Units are in
                                              encoder ticks per millisecond. This
                                              value is technically unbounded but
                                              realistically limited by the maximum
                                              motor speed.
                                              
          POSITION_PID    int16               Defined by your encoder. Units are
                                              in encoder ticks from zero. This 
                                              value is technically unbounded but
                                              realistically limited by integer
                                              overflow.
          """
          
          fixed_set = int(setpoint * (2 ** 16))
          buf = [cast_to_byte(fixed_set >> 8 * i) for i in range(5)]
          self.set_register(Addr.Speed, buf)