one question about this function on marlin code
#define MICROSTEP_MODES {16,16,16,16,16}
is this used for drivers A4988 and alsofor DRV8825 drivers or is for other type of drivers?
This would be for controller that support software controlled mircostepping.
Ramps with standard pololu (A4988 and also for DRV8825) does not do this. they opt instead for 3 jumpers as you only have to set it once and forget it.
Some advanced stepper drivers that have SPI interface use this