EXTENDED ACKMANIAC-ESC Tool based on VESC-Tool

PPM changes

Current control is like the old Watt control mode

Finally, Watt Mode is made especially to give you much more control at higher speeds. At the beginning, you think the VESC has less power but then you learn that you simply have to pull the trigger a bit more. And when you start to carve at higher speeds you will definitely feel the difference. And another advantage is that when you set a watt limit (motor settings) the power feels the same over the whole battery capacity.

“Current” Control Mode works like “Current no reverse with Brake” with the difference that you also have a reverse. The only problem with the standard reverse function is that when you brake hard the wheels can start to spin backward while you still move forward. . To avoid that i added the parameters "Enable maximum ERPM for direction switch"

When this is enabled and you brake hard then the brakes will work like in “Watt with no reverse”. To drive backward you have to release the throttle and brake again. But this only works when you are below the ERPM (4000 in the picture). If you are above it will brake normally again. When you drive backwards and you are above 4000 ERPM in the backwards direction then it will accelerate backwards and won’t brake. If you are below 4000 ERPM backwards and you accelerated shortly to go forward and brake again then it will enable the normal brake again. To drive backwards you have to release the throttle and brake again. . How do i find the perfect ERPM for that parameter?_ The best is to go down a hill. Then do a full brake. You will see that the motors are not able at very low speed to stop the board from moving. If the value is set correct you can now release the throttle and brake again and the motors should start to accelerate backwards. If that is not the case then the value is too low. In my tests 4000 ERPM worked very well. For most setups that is like 4 km/h.

It sounds complicated but it becomes very intuitive after a short while. If you don’t need it to go backwards then just simply use “Watt no reverse with Brake”

PID speed control no acceleration

This mode is experimental, when you press the throttle then it only activates the Cruise Control and hold the speed. Brakes work as normal. So there is no acceleration. This might be good to legalize the board in some Countries.

Offset for Traction Control

Problem is that the standard firmware always reduces the power at one VESC when traction control is enabled. Because the RPM reading of the VESC is not very precise and can differ by ±400 RPMS. And that means that at 500 updates per second the Current for the VESC bounces a lot. Alos when you make do a curve then the inner wheel is slower than the outer wheel. So the outer wheel will get less power and by this it creates a power steering. To prevent this you can define an offset where the VESC should not reduce the power and deliver the same current to both VESCs. Above that offset, the normal traction control will step in. If you set this to 3000 for the most setups this will not enable traction control if the speed difference between both VESCs is lower than 3 km/h.So the traction control only reduces the power when it is really needed.

Cruise Control for dual setups via steering channel connected to the second VESC:

At the slave Vesc the steering channel can be connected and in the PPM settings the “Cruise Control via Secondary Channel” can be activated. This enables the cruise control when the throttle is not pulled and the steering channel is turned more than 30% to left or right. In this mode braking is always possible, just to avoid stupid reactions in a shocking moment. And when you pull the throttle the cruise control will also be deactivated to avoid that the throttle is accidentally pulled while cruise control is active and then have a big surprise when cruise control is released. So i hope that i can avoid scary situations. I recommend to set the Speed control settings in the Advanced tab to 0,00300 for KP and KI and leave KD to 0,00000. For cruise control the 2nd ESC need to be connected via can bus and the Slave ESC needs to send the status via can. The Master ESC needs have “Multiple ESCs over Can” enabled.

In the picture above you see that you have additional options when you use the steering to activate the Cruise Control. You can define what should happen when the Pulsewidth is negative (lower than 50%) or positive (higher than 50%). If you use the motor settings the behavior will be like you set it up in the Motor advanced tab. Otherwise, you can define if you want to allow the speed controller that it can use the brakes if you go faster or not. For example it is possible when you steer right that cruise control ´doesn’t brake when you are too fast and when you steer left that it dos use the brakes. This way you can use the cruise control for carving and downhill.

Hint: mostly when you steer right it gives lower signal and when you steer left it gives a higher signal.

Nunchuk changes

  • Nunchuk also has the Offset for Traction Control
  • Buttons can be mirrored
  • Cruise control is changed so that for a dual drive the speed of both wheels will be taken into account and adjusted individually
  • When Current without reverse is used then one button is for cruise with brake and the other for cruise without brake.
  • When Current with reverse is used then braking will be disabled during cruise control and can be activated by short brake pulse while cruise control is active.

Timeout Behavior

I spent a lot of time to find a good solution to make the board safer when the connection to the remote is lost. What is the Issue with the standard firmware? When the remote looses the connection the the ESC immediately switches to the defined timeout current after the defined timout time which is mostly 1000ms (1s). in most cases this is 0 A. So if it happens during acceleration then the ESC will continue to accelerate for 1s with the last known throttle position and the cut off the power immediately. If the signal comes back now the power will be back imediately. So it can happen that the ESC acdcelerates with 80A, then goes to 0 and back to 80A. Mostly this was a very good chance for a very bad crash. And it got even worse when a brake current is defined when a timeout happens.

The solution i added is a soft ramping from the actual current to the defined timout current. So a brake current can be defined because it will smoothly change from acceleration to braking. And if the signal comes back it will also ramp smoothly to the actual throttle position. So the times when the board wanted to throw you off should be a thing of the past. And to be able to still push the board the automatic braking will disable itself once the motor comes to a complete stop for 1 second. (Be aware that you should only push the board when the ESC is switched on)

BUT actually this works out of the BOX for Nunchuk and NRF.

For PPM this is also possible. But it is a bit difficult to set it up and it doesn’t work with every remote because the Failsafe signal needs to be adjustable.

Instructions for PPM with adjustable Failsafe: At the mini remote the failsafe is adjustable by removing the bind plug while the throttle is in idle. By this the receiver knows what signal it should send as default if the connection to the remote is lost. But this looks like a idle position for the ESC. So we need to tell the ESC that the signal is lost an this can be achieved by adjusting a failsafe signal that is far below or above the min or maximum signal.

So for example when your remote is adjusted then min and max is like in the next 2 pictures Minimum

Maximum

To set a failsafe signal that is far off i attach the bind plug and turn the potentiometer on the remote totally to the left and pull the throttle 100%. That gives me a signal of

In that moment i remove the bind plug to tell the receiver to send this signal if the connection is lost. Afterwards i turn the poti back to the normal position (best is to adjust min, max and center again).

When you switch off the remote now you should see the signal that is far off. In my case it shows 170% in brackets (in the picture above). If the signal is above 120% the ESC knows that the signal is lost. Now you can define a timeout current in the General settings. Safe the settings and let the motor spin with the remote. When the motor spins switch of your remote. Now the motor should brake automatically. On the bench it seems that it brakes hard but test it on the street at low speed. You will feel that the bakes apply gently. If you test this during acceleration you will also feel that the acceleration power is ramped down gently and brake increases. The ramp current is 50A /s decreasing and 20A/s increasing. So from 50A to -15 it would need 1 second to decrease to 0 and then from 0 to -15 it woulkd take 0,75s to -15. If you have dual drive connected via CAn the slave will do the same as long as the same timeout brake current is adjusted.

I recommend to set a brake current of -10A or -15A which will slow you down even downhill. And also the timeout ms should be set to 500ms so that the ramping starts very soon when the connection is lost.

It would be cool if you would send me a donation if you think that this timout behavior saved your skin and bones.

Watts Limit usage

IMPORTANT you have to do this for each motor individually, Master and Slave. If you set this value to 1000 Watts then 25 % throttle will be 250 watts and 100% throttle will be 1000 watts. Of course, the throttle curve will have an influence. The battery max has the higher priority, So if the battery max is set to 10A and your battery has 36V then you can only produce 360W maximum. If you set the value to 1000 Watts then you can only use 36 % of your throttle because afterward the battery max blocks a higher power output. So just make sure that the battery max allows the VESC to produce that many watts. You can also easily limit the VESCs power output with this parameter so that it would be very easy for the kids to ride the board.

Other changes

  • Hall sensor in BLDC mode has a hysterysis which results in a smoother switch from sensor to sensorless mode
  • Cruise control works different and smoother than in the standard or previous 2.54 firmware
  • FOC for FOXBOX works
  • My app is supported
  • Brakes can be stronger than acceleration. This way a weak acceleration but strong brakes can be defined which should be safe for kids.
  • For a 4WD different settings can be used for the front and back axle
  • ESC-Tool shows in the realtime data graph also the speed and distance based on the settings in the additional information tab.
  • Throttle curves shows more grid lines to better see the effect on the power curve.
  • Throttle cuves have one more mode which is called “Expo-Natural”

ACKMANIAC-ESC Tool Link

App in PlayStore

And if somebody wants to honor all the work. (many hundred hours) :point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down: Donations :money_mouth: Donations :money_mouth: Donations :point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2:

When you want to send a donation then don’t use dots. (Germany uses commas). So use full numbers or a comma.

66 Likes

SWEEEETTT! Maybe I’ll send a couple dollars over later

Stage 2 failsafe? Wishlist item crossed off my wishlist without even asking :slight_smile: So awesome, gotta try this! Only the arming procedure missing now (for Nano-X and Nano v2).

BTW, I clicked on donations link but it throws up the error on PayPal side. Might check that out.

Thanks, would give you 10 likes if I could.

AMAZING!!! You’ve been very quick considering everything you’ve done! The timeout behavior looks like what I was dreaming about ! Looks like the time to switch to Vesc-tool has come. Will definitely give a few bucks when I get the chance! Thanks

Think i fixed the Donations button

Wow! @Ackmaniac does it again!!!

I’m broke but was able to scrounge up 1 euro for you. Great job!

1 Like

Yes, you did :wink:

1 Like

Nice, does it work with VESC 6? And the updates that Benjamin make on the main branch also get included or you have to manually add them if they are worth?

Sweet

Regarding “FOC for FOCBOX work” What did you do ? And why do Benjamin not understand whats wrong, when you do :slight_smile: ??

Do the Metr app work, with this FW ?

It should also work with VESC 6 (don’t have one). All the firmware files are added to the ACKMANIAC-ESC Tool.

1 Like

When you install the failsafe you should make sure that it works by testing it first on the bench and then at low speed on the street. Be aware that the same failsafe current should be set for Master and Slaves if you have more than one motor.

You should accept BTC donations as well, for people who don’t have shitty paypal :smiley:

Thanks for your contribution once more, you’re a legend!

2 Likes

“cruise control via second…” is also current mode right ??

“Cruise Control via Secondary Channel” is only used at the slave ESC. It doesn’t give any power commands. It only tells the master if cruise control (tempomat) is active and if enabled that braking is allowed or not at cruise. The master controls the power so it depends which mode is active at the master.

@Ackmaniac Could you add the sources of your new ESC-tool and firmwares to the dropbox ?

I wanna run this firmware! (must recompile versions adapted to my VESCs by myself)

Thanks for your hard work!

Amazing ,thanks Ackmaniac! …any chance of a Mac version ?

@rpasichnyk :pray:t2::pray:t2::pray:t2::pray:t2:

3 Likes

@Deckoz @pshaw

So you finally figured out what was wrong ? Does Vedder know the bug ?

Anyway, nice job ! Can’t wait to look at your sources.