• Hello ES! We could use some help to get us past the finish line on building the new knowledgebase for the forum.
    Can you donate? Please see our fundraising page. Thank you!

VESC configuration for mid-drives

pwd

Regular
Joined
Oct 11, 2011
Messages
932
Location
Ontario, Canada
I'm playing with a Makerbase 75200 VESC based controller with a Cyclone 3000 motor on a normal 10 speed bicycle drivetrain and I cannot smooth initial acceleration with ADC current control. I've got throttle mapping adjusted how I like but when I engage the throttle I get an aggressive "clunk" in the drivetrain as the motor catches up to the rear hub's freewheel.

Running the ADC control type in "Duty Cycle" mode seems to solve the clunk problem and accelerates much smoother. The motor shaft starts spinning at a lower rpm compared to "Current" mode.

How can I improve the startup behavior while using "Current" for ADC control type?
current_control_vesc.png
 
You could play with that "Positive Ramping Time" setting there.

I've also sort of heard about similiar problems with geared hubs in which initial acceleration causes weirdness as the freewheel gets re-engaged. It's sometime solved by having the "off" position of the motor actually be sending a tiny amount of power (like .1A or something) so that the motor is always "engaged" but not enough to push the bike around. Maybe something like that could help here?
 
Setting the throttle curve helps a bit, especially if the motor is powerful. The best solution I've found is setting the throttle range so that when the throttle is at rest it applies just a tiny bit of current to the motor (you have to disable the safe start), just enough so that the freehub is always engaged but it isn't enough to move the bike at all. When I stop for more than just a second I just have a kill switch on the bars. Honestly this feels way better than the alternative of having it ramp up slowly, the throttle lag from a slow ramp up sucks no matter what motor, driveline, controller, etc. And ramping up fast is violent both in experience and on the freewheel.

I'm trying to think of a better way to do this and so far I think either a system that turns off the motor after you come to a complete stop but then turns back on this idle power once you start moving would work. Or something like a throttle with a detent in it so if you turn the throttle backwards a little is clicks into a slightly lower position.

But if you don't want to do the motor always running setup I would change, the Positive Ramping, reduce the throttle deadzone if you can, and change the throttle curve to have a nice gradual start.
 

 
Last edited:
Great, I've got some reading/experimenting to do. Not sure how I missed that already existing VESC Throttle Idle thread in my searching but thank you for finding that.

I'm not keen on disabling safestart / having to use a killswitch when coming to a stop but all of your suggestions are pointing to the same idea; I will give it a try and see how it behaves.

Thanks for your input so far! :es:
 
I was pretty easily able to set the throttle up so it's consistently at the just barely any power level so I'm never worried about forgetting the killswitch or anything. Even just the lightest of braking will hold the bike while the idle power is on and my bike is geared absurdly low. Another option would be to wire the killswitch (which is just the other ADC port BTW) to a brake switch so when you stop it automatically cuts power and when you go to take off releasing the brake give the motor a half second of gentle power before you get to the throttle, then when you are moving power is nice and responsive but their will be a disengage and reengage if you tap the brakes but it should be pretty gentle as the current idle current is so low.

And if you don't like it I do think you can get the starting to be as smooth as you like with the ramp and throttle curve. The default minimum current is so low that if you command it accordingly it will go from driving not enough current to turn anything to barely enough pretty smoothly, you just have to give the motor enough time to spin up and engage everything and the controller can't do anything about that.
 
I have no experience with VESCs or Cyclones, but it sounds to me like the problems you're describing here would be greatly reduced by zip tying the cassette to the spokes, unless your cyclone doesn't have a freewheel.
 
I'm playing with a Makerbase 75200 VESC based controller with a Cyclone 3000 motor on a normal 10 speed bicycle drivetrain and I cannot smooth initial acceleration with ADC current control. I've got throttle mapping adjusted how I like but when I engage the throttle I get an aggressive "clunk" in the drivetrain as the motor catches up to the rear hub's freewheel.

Running the ADC control type in "Duty Cycle" mode seems to solve the clunk problem and accelerates much smoother. The motor shaft starts spinning at a lower rpm compared to "Current" mode.

How can I improve the startup behavior while using "Current" for ADC control type?
View attachment 353623
So why you don't run it in the "Duty Cycle" mode if it behaves just like you want in this mode?
 
I'm trying to think of a better way to do this and so far I think either a system that turns off the motor after you come to a complete stop but then turns back on this idle power once you start moving would work. Or something like a throttle with a detent in it so if you turn the throttle backwards a little is clicks into a slightly lower position.
How about to map the throttle in the firmware the way is has different maximum current level depending on the motor RPM and the bicycle speed? Like if the bicycle speed and RPM are below a particular speed it has lower maximum current, then it lifts the limit depending in the bike speed and the motor RPM. It also can apply that tiny current when the throttle if off above particular speed of the bike and turns that current off below that speed so you do not have that current constantly applied.
 
How about to map the throttle in the firmware the way is has different maximum current level depending on the motor RPM and the bicycle speed? Like if the bicycle speed and RPM are below a particular speed it has lower maximum current, then it lifts the limit depending in the bike speed and the motor RPM. It also can apply that tiny current when the throttle if off above particular speed of the bike and turns that current off below that speed so you do not have that current constantly applied.
Would have to have a lot of conditions, since it would really have to adjust the current at the low end, you still want the max current available at all speeds if you pin it. I've been thinking recently about a better way to solve the issue of the motor not spinning along with the drive so you get that delayed response but also the issue is a side effect of keeping the motor engaged. That is on full suspension bikes with anti-rise and other chain length changes with suspension travel. Those do all sorts of weird and annoying things which I've tried to solve with other methods but only with some success. A controller solution could be when the throttle is at zero the motor runs in RPM mode based on a wheel speed sensor. So the motor RPM is always just a little slower than the wheel speed.

In practice though a better version of my cush drive setup that gives more range of chain length change and better adjustment may work better. Once I get around to finishing it I'll know.
 
The from a stop startup jitter you sometimes get I think is caused by both the startup settings but also slack and spring in the system. The motor may start and spin a little then it meets a hard resistance of the drivetrain and stops or maybe even bounce back slightly which causes an oscillation and jitter. Honestly in the past I usually just push the bike a foot or so before starting the motor and it doesn't do it if the bike is moving at all, or I guess pedal the bike if you still have that function. I think some startup settings could help but I never played around with them much. A much lower startup current and even some throttle curve tweaks so the motor spins up slower in that short time span. Or maybe more startup to just force through it. Even with an encoder it does it a little but I think that is the spingyness of the belt and the large amount of slack due to hub engagement combined with a low gear ratio.
 
Estou usando um driver Makerbase 75200 baseado em VESC com um motor Cyclone 3000 em uma transmissão de bicicleta normal de 10 velocidades e não consigo suavizar a tração inicial com o controle de corrente ADC. Ajustei o mapeamento do acelerador como quero, mas quando aciono o acelerador, ouço um "estalo" forte na transmissão quando o motor alcança a roda livre do cubo traseiro.

Executar o controle ADC no modo "Ciclo de Trabalho" parece resolver o problema do tranco e a atualização fica muito mais suave. O eixo do motor começa a girar em uma rotação por minuto (RPM) menor em comparação com o modo "Corrente".

Como posso melhorar o comportamento de inicialização ao usar "Current" como tipo de controle do ADC?
View attachment 353623
Você conseguiu fazer uma aceleracao mais suave no seu driver vesc?Estou com o mesmo problema
 
Back
Top