user declares objects for use by the code, with their static initialisation data, like the BLDCDriver with its pins
user initialises parameters in the setup method. Parameters can be initialised in any order.
Note: part of the parameters that get set are the sensor, current-sense, driver and other objects "linked" to the motor. Why treat them differently?
user calls motor.init(). The motor init method also initialises any uninitialised linked objects like driver, sensor, etc.
the motor init method checks parametrisation and inits the system accordingly.
the motor init method performs calibration if needed (e.g. if closed loop mode is selected and electric zero is not set)
This will simply the API for users, who can currently do a lot of things wrong.
Unify the init method. Create a clear paradigm:
This will simply the API for users, who can currently do a lot of things wrong.