I want to stay away from the need of extra components for the time being until it’s absolutely necessary. Shit I wish @Lee_Wright did a mellow break down to make sure they’re not using some sort of accelerometer to pull it off.
The very worst case is this feature will only support the VESC 6, Unity and StormCore since they have populated 3-axis accelerometer and 3-axis gyro (which is used really nicely in the VESCT TOOL Logging from what I’ve seen).
After doing so stalking (just went to the old forum and see which GitHub he forked I found this:
His explanation of how it works for future reference:
Seems like he made some strides towards endless mode recently:
From. quick glance , I’m unsure
and it works like so:
Endless ride - when remote is off and speed is over 12 km/h for 3 seconds,
cruise control will be activated when speed drops below 12 km/h.
Slide the board backwards while standing on it or foot brake
to produce a spike in the current and stop the board.
From looking at this receiver.cpp file he takes any speed above 23km/h as downhill
and applies a braking force of 127 / 5 * 0.1 to the throttle until it’s stopped
I have to look more into it but this mode doesn’t seem like a 1:1 endless ride implementation that I’m going for.
It’s a nice implementation of the timed cruise control concept me and @Brenternet where thinking of earlier. Any thoughts on his implementation? Auto Braking should only occur in the PUSHING state that can only be entered into if the current speed is past a certain RPM. If it’s within an okay region (past the pushing state threshold but under the pushing state speed limit) and the throttle aint being messed with, then the ENDLESS MODE state will start its timed cruise control. After a certain amount of time passes (or if the throttle is messed with) it will enter the Coasting state until it reaches back under the pushing speed threshold.
One thing though is I don’t get how a user will be able to push during the coasting state. It seems that the user will have to wait until the Coasting state goes back to the normal state to have their pushing accepted. Also instead of pulling back the speed to the max push speed, it opts for braking, which I guess can work if you set a high enough limit but can get annoying if the limit is low and brakes while you’re trying to push on flat land.
@Jamie42 any insight into your implementation?