Let’s use this thread to document our experience with the new firmware and vesc tool, share tricks & tips for programming your esk8, and raising awareness of any new issues people find!
VESC Tool also has a major new feature, which is a scripting page. I will make a video about that, but it you want to start testing it now there are some example scripts included that show how it can be used.
Firmware changelog:
Fixed inductance measurement bug.
Speed tracker windup protection.
Phase filter support.
Phase voltage offset calibration.
Better current offset calibration.
Added power switch commands.
Synchronize observer state when running in open loop.
Force oberver state magnitude above 50% of flux linkage. This prevents the motor from getting stuck and ‘screaming’.
Observer global convergence update. Helps tracking the motor through 0 speed.
Added servo_out_enable appconf option, so that the PPM port can be used to control servos with the default firmware.
Better current controller windup protection.
Field weakening support (experimental, be careful and use at your own risk).
Limit hall sensor angle rate of change based on ERPM.
Added p_pid_gain_dec_angle parameter.
Low pass filter input voltage.
Dual hardware CAN-scan fix.
Use fast speed tracker for current controller.
Disable motor for 5 seconds after flash operations.
Added kill switch support.
Added process derivative term to position controller.
Added position PID-controller angle offset.
Configurable PID controller rate.
Added several AUX port modes.
Added configurable safe start modes.
Added fusion IMU filter.
Added constant torque PAS mode.
Correct scaling for resistance and inductance.
Fixed inductance measurement bug with f_sw > 30k.
Corrected inductance measurement algorithm.
Fixed max power loss calculation.
Better input current estimation.
Added raw sampled data mode.
Compensate inductance for motor saliency in observer.
Added MTPA mode based on measured current.
Faster overvoltage protection.
Added statistics counters.
VESC Tool Changelog:
Fixed simultaneous CAN FW upload when other devices (such as BMS) are on the CAN-bus.
Fixed configuration backup and restore over CAN-bus.
Added test version information to about dialog.
Added scripting page
Syntax highlighting (needs some work).
Recent files.
Example files.
Auto-completion tree (needs some work).
Run in widget, window or full screen.
Debug print output.
Toggle line comment.
Auto-indentation of line or block.
Search, highlight and replace text.
Only capture esc key for stopping the motor when connected.
Fixed FOC detect all no can when connected over CAN.
Added FOC wizard, setup data and profiles from mobile UI to desktop UI.
Added usage page to FOC wizard.
Added support for loading custom UI from firmware.
Dark theme.
Mobile UI refactoring.
Configurable data polling rates.
Better DPI scaling.
Configurable plot line thickness.
Mobile:
– New CAN forwarding bar.
– Setting to disable screen rotation.
– New RT Data page and gauges.
– Upload bootloader before firmware if firmware has bootloader erase support.
– Added motor comparison tool.
Some tips for testing the phase filters:
Make sure that all offsets are calibrated with the voltage you are using. This can be done on Motor Settings → FOC → Offsets. Make sure to calibrate the offsets before running detection.
For motors with temperature sensors, make sure that temperature compensation is activated and that base temperature is set to what the motor had when detection was done. The compensation and base temp is found under Motor Settings → FOC → Sensorless. This should be done automatically when using the FOC-wizards.
The phase filters can be enabled and disabled for comparing their impact.
Also, I believe this firmware version includes fixes for the 2nd UART port on the Stormcore 60D+ and 100D ii
One of the bugs fixed in this release was strange behavior when duty cycle current limit start = max duty cycle. Now, duty cycle current limit start is a value RELATIVE to max duty cycle, not an absolute value, as the hint for it indicates
So if you used to have this value set at 85% before (Start reducing current at 85%, end up with 0 at 95%), then now you should adjust this value to 90% (90% x 95% = ~85%). The default is 85% for electric skateboards now, which results in decreased top speed if you leave it as is.
Remember that the reason you want to do this is because otherwise your current will sharply drop when you reach max duty cycle, and that could throw you off if you’re not expecting it! So you probably want to set this
I’ve put on about 20 miles on an ebike with field weakening and it’s pretty awesome. Brought the top speed up from 22mph (35km/h) to 30mph (48km/h) with 30-40A of field weakening. It uses a TON of power (33wh/mi without to 50wh/mi with FW over a 6 mile test each). It does take a second or so for the motor to start slowing down after you release the throttle which is new and can catch you off guard!
Obligatory safety reminder for field weakening on an esk8:
Other than that the UI for both Android and the desktop tool is much improved.
There is also a motor “comparison” tab which looks promising but I haven’t played with yet.
Yeah, @b264 had a great suggestion. Gear the board to like 10mph top speed and use field weakening to get to 15mph so you can test it out at speeds you can still run off the board.
I will say the esk8 outrunners needed a lot more amps to get much less speed compared to inrunner motors.
Actually @DavidC 's PSYCHOFRAME with those QS2000 IPM motors are actually amazingly efficient performers when it comes to field weakening. They almost require it.
You have to cd (change directory) into the directory containing vesc tool after you have extracted it. Or just clicking on the file in a file browser might open it, if you have enabled “allow executing file as program” in its file properties.
Let’s move this “how to linux” convo to the noob question thread please.