Skip to main content
Firmware Stable

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 fwp parameter)
  • Voltage modes keep the command-to-voltage equivalence under load when dxc is set (optional vcf flag)
  • MTPA reworked: dxc is now the d-axis current limit/side-selector (re-verify PMSM tunings with dxc below 1)
  • Improved saturation model: identified Da/Dc can be used as-is; better MTPA and torque estimates on saturating motors (configurations with Da = Dc = 0 unchanged)
  • Fix operation at high speeds (re-check tuned edc values)
  • Auto-sensorless thresholds assl/assh accept ratios of the maximum RPM
  • Smoother auto-sensorless handover (hall <-> sensorless fail-safe switching)
  • A reduced uref also shifts the field weakening range; the Range telemetry now streams the resolved voltage
  • Automatic ppr identification 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)
  • stop now also disables beeping; run re-enables it (use run 0 0 to 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 run and stop commands override CAN API.

[4.0.2]

  • Fix command glitch after a driver error
  • [esc3] imult/umult now 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_SPEED replaced by DRIVER_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 dxc feed

[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 ioconf change

[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 psi identification 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 psi identification

[2.2.3]

  • Internal improvements

[2.2.0-2]

  • Added: phase imbalance API, IBNEG/IBPOS mode selectors, vcf 1 (extended d-current priority), ioconf 104 for wheel magnet sensors, printout of the union module version
  • identrun now reports motor sensor errors (returns -3 on a hall sensor error); smoother engagement of the battery current compensator (bcfq); imult/umult/rmult are 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/odo is independent of the application; real KV calculation in the identrun output; higher maximum for tcc; imult can be set to zero; gdin threshold for -1 on AM/AX
  • Fixes: torque estimation with IPM motors; permanents saving reliability; negative ipeak behaviour and limiter priority in BLDC; DIN on SX; shutdown no 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.