Changelog
For ESC module For ESC driver and common block for controllers
[6.0.0] - unreleased
- Smoother, more precise measurement (no more current-reading steps or intermittent temperature dropouts)
- Torque modes deliver the full torque also at low speed; soft limits now cap the torque instead of rescaling the command map
- New command flags: fixed rated command scale (bit 7) and sign-locked speed loop (bit 6)
- Voltage modes work through field weakening - no-load speed proportional to the command over the whole range (new
fwpparameter) - Voltage modes keep the command-to-voltage equivalence under load when
dxcis set (optionalvcfflag) - MTPA reworked:
dxcis now the d-axis current limit/side-selector (re-verify PMSM tunings withdxcbelow 1) - Improved saturation model: identified
Da/Dccan be used as-is; better MTPA and torque estimates on saturating motors (configurations withDa=Dc= 0 unchanged) - Fix operation at high speeds (re-check tuned
edcvalues) - Auto-sensorless thresholds
assl/asshaccept ratios of the maximum RPM - Smoother auto-sensorless handover (hall <-> sensorless fail-safe switching)
- A reduced
urefalso shifts the field weakening range; the Range telemetry now streams the resolved voltage - Automatic
ppridentification for encoders/resolvers - New diagnostics: bus-voltage measurement fault at init, idle over-speed detection
- More robust settings storage (fixes an occasional reset while saving settings)
- PID parameters accessible through the driver API
- New advanced sensorless tuning parameter
ssa(contact siliXcon before use) - Parameter table extended (new entries appended); verify parameter IDs if you address driver parameters numerically over the API
- Driver API: the maximum-speed values now derive from the flux linkage - reported values change on IPM motors; the relative voltage readback is the plain modulation factor also on advancing-angle (AAC) configurations (scale change)
- CMIO: new MCU-driven fan output with temperature hysteresis (
/common/fantemp)
[5.3.1]
CMIO:
- Fix: only the first contactor was being driven (contactors 2 and 3 were not controlled), and the second contactor's current reading (
ccnt2) showed the first contactor's current
[5.3.0]
- Add over-speed detection while idle
- Reduced flash footprint
- Add esc3 sl2 board
- Contactor overcurrent threshold and PWM period are now adjustable at runtime (enables embedded fan control)
- SL/SC: the motor temperature (
ptc) reading is invalidated on expander timeout (no stale value)
[5.2.1]
- Improved measurement accuracy for high-inductance motors
- Several encoder homing reliability fixes
- Fix position-loop behaviour during freewheel
[5.2.0]
- Fix seamless transition between motor modes
- Encoder fixes for esc5
[5.1.1]
- Add flux-weakening retrieval and over-speed (no-margin) detection
- More robust motor temperature sensor handling
- More beeper songs available
- Increase precharge voltage to 120V for MV controllers
- Add esc3-am2 board variant
[5.1.0]
- Add simplified sensorless mode - alternative low-complexity startup/estimation option (no zero-speed torque)
- Fix ACIM speed readout error on esc5
- Adjustable contactor timing on the main MCU, with a safety option to force-close on driver errors
- esc6: add block-commutation (BLDC) motor support
- More flexible PWM input handling, refined help strings
Parameters
- Added:
dcr,lfamp,lfreq
[5.0.0]
- Major driver rework: extends speed range to ~150k ERPM, supports up to 120V and low-inductance motors
- Quieter operation at low inductance and high speed
- Faster overcurrent and over/under-voltage protection (safer on MV / low-inductance setups)
- More reliable startup and identification, with automatic current-loop tuning during identification
- Beeper volume now adapts to the identified motor dynamics
- Better analog monitoring on esc5 (motor temperature, supply voltages)
stopnow also disables beeping;runre-enables it (userun 0 0to stop the motor but keep beeping)- Default peak current set to the controller current range
- Calibration: voltage limits unified/adjusted across controllers; esc3-sl1 now reports battery voltage ~2.5% lower (corrected measurement error)
- More PWM input channels (up to 6), new isolated PWM capture on ch5 (gpio4, needs custom 5V-threshold HW); improved expander error reporting
[4.1.1]
- [esc5] Fix occasional reset while saving settings
[4.1.0]
Changed
- Driver override levels. From this version the
runandstopcommands override CAN API.
[4.0.2]
- Fix command glitch after a driver error
- [esc3]
imult/umultnow work with the BLDC driver - Calibration update for the ed1 board
[4.0.1]
- Fix ACIM odometer (
odo) calculation - Beep modulation improvements on esc3/esc5 vector drivers
- Fix RC (PWM) input for esc3-sc1 and esc3-sl1
[4.0.0]
- Support for the esc6 family
- Encoder motor sensor with PWM homing and reference input
- PPM (RC) capture is no longer enabled in standard applications
DRIVER_STAT_SPEEDreplaced byDRIVER_STAT_RANGE(signals that an operational range was exceeded)- Contactors are no longer opened on driver error while in service mode or on a CMIO error
[3.3.0]
Fix/Changed
- For esc5, fix problem with disconnected motor temperature sensor (power is limited)
- Changed - Now doesnt matter if motor temp sensor is disconnected or shorted, power is limited always.
[3.2.1]
- Fix scope traces occasionally missing during identification
- [vector] Command 0 now disables the
dxcfeed
[3.2.0]
Added
- Getter for
/permanents/err_counter
[3.1.1]
- Improved communication robustness under heavy CAN load (esc3)
- Separate positive and negative battery current multipliers (limiter API)
[3.1.0]
- [CMIO] Fix random invalid inputs from the I/O expander; inputs are briefly invalidated after an
ioconfchange
[3.0.0]
Changed - BREAKING CHANGE
- Hall-sensor and sensorless support are no longer included by default; each application enables the modes it needs
- I/O expander improvements
[2.3.0]
- Getters for
imult,umult,rmult - Improved
psiidentification accuracy - Fix sensor error reporting during sensorless
identrun
[2.2.6]
Fixed
- esc3 BLDC - fix RThermistor and VThermistor - move them to /driver/motor
[2.2.5]
- Internal improvements
[2.2.4]
- OBD2: signal support; fix message length of extended messages (CALID, CVN, ...)
- Fix low-speed commutation on ESC5 BLDC
- Improved accuracy of
psiidentification
[2.2.3]
- Internal improvements
[2.2.0-2]
- Added: phase imbalance API,
IBNEG/IBPOSmode selectors,vcf1 (extended d-current priority),ioconf104 for wheel magnet sensors, printout of the union module version identrunnow reports motor sensor errors (returns -3 on a hall sensor error); smoother engagement of the battery current compensator (bcfq);imult/umult/rmultare kept across command updates- Fixes: limiters not acting when the motor is back-driven (BLDC), identification crashes and scope control, [esc3] more precise MCU temperature reading
[2.1.1]
- Added: phase-specific I2R limiter on all controllers; motor mode 7 (battery current control)
- Changed: improved motor-connection diagnostics at init;
/driver/motor/odois independent of the application; real KV calculation in theidentrunoutput; higher maximum fortcc;imultcan be set to zero;gdinthreshold for -1 on AM/AX - Fixes: torque estimation with IPM motors; permanents saving reliability; negative
ipeakbehaviour and limiter priority in BLDC; DIN on SX;shutdownno longer forces a 100 ms delay (accepts an argument)
[2.1.0]
- Added: AX controller; support for the new AMP board revision;
ebmult(external battery current multiplier)
[2.0.0]
- Complete refactored. ESC3, ESC4 and ESC5 driver and common block unified.
Added
- SX controller
Changed
- Permanents changed to integer values, instead of float
- RThermistor and VThermistor moved to /driver/motor
- Default values:
- By default all contactors are open on startup
- /common folder:
- States names and type is unified
- ichg and uchg moved and renamed: /powerswitch/ps_curr and /powerswitch/ps_volt
- Parameter rename:
- gpio_thr [lsb] -> pulsethr [mV]
- gpio_thr2 [lsb] -> adin_thr [10mV]
- State rename:
- ccnt1-3 -> contactor1-3/current
[1.2.0]
Init commit. Changelog starts.