I want to represent my modified BLDC-Tool with modified Firmware.
The main goal of that modification is to have maximum possible control over the board. Because i didn’t like that i can use only 50% of my throttle at higher speeds.
And the second big thought was to have cruise control via PPM with my mini remote. Just simply because it is possible.
And after a while of fine adjustment, i found out that also a throttle-curve adjustment is necessary to have full control for high power boards.
So here are the Features:
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.
There are 3 new Control Modes for Watt Control:
Watt no reverse with Brake (recommended) (also exists for Nunchuk)
Depending on your “Motor max” and “Battery max” settings you will loose throttle range at higher speeds in “Current Control”.
With Watt control, it has the advantage that it uses the entire throttle range at any speed. This makes the board more controllable especially when you like carving at higher speeds.
This works at every speed as long as the Motor settings allow this much Power at this speed. Of course, at close to max speed (motor KV) the efficiency of the motor can’t produce that power anymore. But you can set the real maximum values in the motor settings and just define here how much power you want. So it is very easy to program a beginner mode with maybe 250 Watt.
The maximum Watts that can be reached are defined by the “Battery max” in the motor settings. You can calculate it by 3.6V a cell * cells in series * battery max. E.g. 10S4P battery with battery max set to 25A then you have 3.6V * 10S * 25A = 900 Watts. You can limit the maximum watts in the motor settings which explained further down in this post. If there is no limit set then it will calculate the maximum reachable watts by the actual Battery Voltage.
E.g. maximum reachable watts are 1000 Watt. Then 30% throttle will be 300 Watt, 50% throttle 500 Watt, 80% throttle 800 Watt and 100 % throttle 1000 Watt.
Watt (also exists for Nunchuk)
“Watt” Control Mode works like “Watt 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.
PPM pulse can be precisely adjusted by center position
This way the center position can be adjusted to the real value. And from that position the max throttle values for both directions can be adjusted. So you can use the whole throttle in both directions. With the standard firmware mostly not all the throttle range can be used in one direction. This again gives you more control and sensibility.
If you don’t know how to setup the Pulsewith values you can use the auto wizard which tells you what you have to do. before you use the wizard it is wise to disable the Control Mode first. Otherwise, the motors will start to spin (not really a problem).
Use Max Watts Limit
To limit the maximum watts the motor will output you can do that in the Motor General Tab by enabling “Use max watts limit” and define a watt limit.
you have to do this for each motor
individually, Master and Slave.
If you set this value to 1000 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.
Here you can define the throttle curve. There are 3 different spots you can define along the throttle curve for braking and accelerating.
When you change the values via the boxes then you will see the difference immediately in the Diagram. This is very intuitive and easy to understand.
Please always use the three values and don’t try to set the values to the same value as another spot. That means don’t set the same value for 2 or 3 boxes. Always choose values that make sense.
It works for the modes Watt, Current, PID and Duty Cycle. And also in watt reverse, if you use the ERPM limit.
And it only works for acceleration. Braking is the same as always.
Here you can see the results of the throttle curve adjustments.
The Y values are there to define how much % of the power should be used and the X values define at which throttle position.
So in the picture, you see that the brake curve is normal and the acceleration curve uses
12.5% power at 25% throttle,
30% power at 50% throttle and
60% power at 75% throttle.
With the Edge sharpness Factor you can make the curves rounder. But if you use crazy values then the curves might get stupid. So be careful what settings you use here. But you can always see what happens with the power output in the diagram.
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,00400 for KP and KI and leave KD to 0,00000. You can see my settings in the next screenshot
For cruise control the 2 VESC’s need to be connected via can bus and the Slave VESC needs to send the status via can and the Master VESC needs to enable “Multiple ESCs over Can”
In the picture below 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.
Disable Breaking at Cruise Control
You can disable the breaking at cruise control with the parameter “Braking allowed for Speed Controller” because it is very annoying when you want to carve at cruise control. Whoever tried it knows what i am talking about. The disadvantage is that when you want to maintain a constant speed downhill the cruise control will not brake if it is faster then the speed when you activated the cruise control.
BTW: I changed Cruise Control in BLDC mode from duty cycle Control to Current Control because it enables a much smoother ride. And when the breaking should be disabled at cruise control because you can really switch off the motors. In Duty Cycle Control there are always some small corrections with breaking which are disturbing.
So finally before i upload my code to Github it would be cool if anybody wants to give the whole changes a try. The modified BLDC-Tool only works in Ubuntu (No Windows). And you have to flash the VESCs with my modified Firmware because otherwise, the BLDC-Tool would not work.
I tested the modifications a lot and i didn’t change any safety features of the VESC. So it should not blow up the VESC in any way. But of course, i don’t give any warranty. So the testing is at your own risk. But i think there are some brave members here.
(Only for VESC Hardware Version 4.10 or higher. Actual Version 4.12 and VESC-X is fine.
If anybody wants to test you can download the files here.
Windows BLDC-Tool, Modified Firmware, Ubuntu BLDC-Tool and Android app
App in Google Play Store
Here are some additional install instructions. Read them before please:
Be aware that this is only for Hardware Version 4.10 or above (VESC-X as well).
Important: You have to flash the Firmware with this modified BLDC-Tool.
Open the downloaded BLDC-Tool
Upload (Flash) the new Firmware File “VESC_Ackmaniac_Mod_2_54.bin” which is available in the Dropbox link.
Adjust the settings of your VESC. I would not recommend to use a saved config. It would be better and safer to set the values manually. So you should make screenshots of your old setup or write it down.
It is always possible to flash back to Vedders original Firmware.
This Firmware has the Version 2.54. So don’t be surprised by that. When you start the Modified BLDC-Tool the first time it tells you that the Firmware is not the same. So you have to flash it with my modified firmware. So no mistakes can happen anymore with the Firmware flash.
But please be careful when you test it.
I take no responsibility if something goes wrong. If you don’t except that then please don’t use this software.
It is at your own risk.
Before you take the first ride test acceleration, braking and cruise control (if used) on the bench and at low speed to make sure everything works properly.
I don’t want that anybody gets hurt.
If you have trouble then let me know. And i really would appreciate some feedback.
And if somebody wants to honor all the work. (many hundred hours)
Donations Donations Donations
When you want to send a donation then don’t use dots. (Germany uses commas). So use full numbers or a comma.
Or if you want to buy a Raptor 2 and want to save 100$ and support me with 100$.