mehmetoz1980 said:
What specific features do you need to be able to program, and what specific ranges of options do you need those features to support?
Many controllers are "programmable" via their displays in some way (such as changing wheel size and other minor settings), but may not support user-changing of most other things. Some are very programmable, but may be quite complex / difficult to setup initially because you *have* to set all of them up for your specific motor/battery/etc and your specific usage scenario. And there are plenty of in-betweens.
4_torque simulation throttle (I want not speed simulation)
Do you want "torque simulation" or do you want actual torque control?
Torque simulation usually changes the current limit for each assist level, rather than the speed limit.
Torque control is done typically with FOC controllers and any other controllers that actually sense phase current (vs typical controllers that only sense battery current) by using the throttle to control the phase current to the motor itself, and can be much smoother and easier to control than the other methods, depending on how each controller implements it.
Torque control can be done just by controlling the battery current, indirectly controlling phase currents, but it is not as direct and may not be as smooth as the other.
7_regeneration charging and e-break
Do you want variable regen, or do you only need it to be on/off? Variable regen is "free" with FOC controllers, in that it's just as easy to implement as a throttle, as far as controller design goes (but it doesn't mean the controller always supports it...it just doesnt' really have a reason not to).
Variable is easier on your system mechanically but is a bit more complex to control. Some systems use a separate variable input for ebrake vs throttle (so you can use your brake lever to control all braking just like normal), some just use the same one but the ebrake switch triggers the throttle to become a variable braking control (this is much less natural to operate).
On/off regen is harder on your system mechanically, but is simpler to control; there's only a simple switch engaged by your brakes or brake lever.