Skip to main content
Firmware Stable

Changelog

For ESC module For ESC driver and common block for controllers

[5.0.0]

DRIVER:

  • Major rework of ESCx driver/VECTOR to extend speed range to 150k ERPM, voltage to 120V and low inductances
  • Redesign of the peripheral interconnect to achieve hardware blanking (overall eficiency, less burden)
  • Silencing the ZC-related swithing noise by disabling DTCOMP feature (low inductance silence, vcf 64)
  • Overcurrent and over/under voltage protection acts within cycle with hardware trigger (MV / low inductance safety)
  • Sensorless observer uses esk, eak for high speed operation (solve sudden noise/harsh from certain speed)
  • Enable current loop PI coefficients automatic identification during identlin, non-linear mod is now default
  • Sync spin-up detects motor out-of-sync and proceeds to identification, default acceleration to 200 rad/s/s
  • Beep synth volume and limitation corresponds to the identified dynamics
  • Experimental 'LFI' feature for better sensorless startup (on request)
  • Sensored observer advancing correction, negative 'edc' parameter may not be needed (safety for IPM motors)
  • Init diagnostics better averaging for better reliability (solve ocassional diag false negatives)
  • Redo fet equalization control to quieten and consider overtemperature, speed, etc.
  • Add 'dcr' parameter to filter possible PID to DC coupling, current command decoupled from DC voltage fluctuation
  • Add negative 'esk' constant possibility for direct mapping of MxPx rference (faster response)
  • Better analog signal exposing in esc5: averaged gpios, correct temp, avcc and vcc measurement
  • Set default ipeak value to the current range
  • Fix reinit mctim dependency glitch
  • Short-circuit mode uses 'irefr' as a limiting reference for both axes
  • States for position control stream now synchronized in platformAPI
  • stop command now also disables beeping, run will re-enable it (use run 0 0 to stop motor but keep beeping)

DRIVER CALIB:

  • adjust and unify voltages in defcalib.c:
    • VOLTAGE_ABSMAX is always lower (all ecs5 and 150V esc3-sl) or equal (all esc3 except 150V sl) to transistors breakdown voltage
    • VOLTAGEHI_THRESHOLD was lowered for some esc3 and unified with esc5, where possible
    • VOLTAGE_OPMAX is always 1.02 times the maximum operating voltage given by the series cell count and 4.2V per cell. The 2% margin accounts for the measurement tolerance, to be always sure, that controller will run at maximum operating voltage without limiting power.
  • adjust lsb/V in defcalib.c for esc3-sl1 controller. New value will compensate for error caused by the SAR ADC current draw from the relatively high impedance voltage divider. esc3-sl1 controllers will no report battery voltage about 2.5% higher than before.

CMIO:

  • Refactor and optimize
  • SL fix contactor overcurrent report
  • better consistency in expander error reporting
  • PWM inputs (chX) are distributed alongside the pulse counter together (through CMIO API)
  • fix existing PWM inputs (init when timer not used by driver MSENS), extend PWM input channel count up to 6
  • add new isolated PWM capture on gpio4 - ch5 (needs custom HW variant for threshold at 5V)

[4.1.1]

Fixed

  • [esc5] discont function generating reset during metadata write because of wwdg

[4.1.0]

Changed

  • Driver override levels. From this version the run and stop commands override CAN API.

[4.0.2]

Fix

  • Refactor cmio code
  • Fix mctim glitch after driver error
  • Fix/add missing imult,umult for BLDC driver for esc3
  • Tune calib for ed1 board

[4.0.1]

Fix/Changed

  • ACIM odo calculation
  • beep modulation in VECTOR esc3/esc5: run-time compatible
  • Fix RC (PWM) input for esc3-sc1 and esc3-sl1

[4.0.0]

Added

  • Support for esc6 family
  • encoder msens with PWM homing and reference input

Changed

  • PPM_CAPT is removed from default build configuration
  • DRIVER_STAT_SPEED dropped and replaced by DRIVER_STAT_RANGE (signalizing that an operational range was exceeded)
  • Open contactor on driver error now exclude service mode and 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

  • [auxiliary] refine plot set-up ordering to defeat missed features when using identXXX

Changed

  • [vector] cmd 0 disables DXC feed

[3.2.0]

Added

  • Getter for /permanents/err_counter

[3.1.1]

Added

  • [msgconf] enable umsg DMA reception fifo for all ESC3 controllers

Changed

  • [msg_pool] make fifo free space variable (if-dependent) to prioritize messages from ioexp's over CAN
  • [limiter] separate positive and negative battery current multipliers and corresponding api

[3.1.0]

Added

  • [CMIO] invalidate inputs for while, after ioconf is changed (only for ioexp)

Fix

  • [CMIO] fix ioexp problems - random cmio inputs invalid

[3.0.0]

Changed - BREAKING CHANGE

  • remove default support for HALL sensors and sensoreless mode. Now it is necessary to define HALL or SENSORLESS compile flag in application.
  • Some work on ioexp

[2.3.0]

Added

  • add getters for imult, umult, rmult

Fixed

  • fix uabc_gain correction application (for psi calculaion)
  • add back scope scrolling flag reset during idents
  • fix sensor error reporting when duing sensorless identrun

[2.2.6]

Fixed

  • esc3 BLDC - fix RThermistor and VThermistor - move them to /driver/motor

[2.2.5]

Fixed

  • msgpool - limit print of rx fifo ovf

[2.2.4]

Fixed

  • OBD2:
    • Signal OBD2 support
    • Fix message lenght of extended messages (CALID, CVN,...)
  • fix emulator compilation for Linux
  • make emulator to support all controllers
  • ESC5/BLDC low speed commutation problem (late measurement in phase ON-state due to MCU ADC bug patch)
  • measure coeff and apply correction to phase voltage measurement (to better PSI measurement)

[2.2.3]

Fixed

  • Remove ioexp_tim state from common block

[2.2.0-2]

Added

  • phase imbalance API
  • IBNEG, IBPOS modesels
  • ioexp add ack from ioexp, after receive config
  • vcf 1 (extended d current priority)
  • motor sensor error reported from identrun
  • fix bcfq preload (now with filtered current)
  • mctim now remembers imult, umult and rmult
  • printout of the union module version
  • ioconf 104 for wheel magnet sensors

Changed

  • bcfq compensator is now preloaded with measured q current
  • identrun return -3 in case of HALL sensor err
  • [esc3] MCU temp is now using factory calibrated data (more precision of MCU temp reading)

Removed

  • some unnecessary driver debug outputs during init

Fixed

  • PARAM_ALIGNMENT 4 for driver params (VMS unaligned warning fix)
  • CCTL compensator in BLDC causing limiters not to work when motor backdriven
  • ioexp allow unexpected msg
  • identX fixes of crash, better scope control, shared identification data

[2.1.1]

Added

  • phase-specific i2r limiter in all controllers
  • motor mode 7: battery current control

Changed

  • a0 diag - motor state decission new thresholds
  • turn off mosfet equalization at CMD_SHORT
  • unify compile flags. SENSORED -> HALL
  • /driver/motor/odo is independent from application
  • change to real KV calculation in identrun output
  • set higher maxval for the tcc param
  • driver_aux_set_command() allow set imult to zero
  • GDIN treshold for -1 on AM/AX

Fixed

  • compilability with the emulator/SX
  • torque estimation calculation with IPM motors
  • DMA shutdown in process_safe callback - solve permanents saving problem
  • negative ipeak wrong behavior in BLDC
  • setprm_indirect() spurious behaviour caused by acceess rights
  • driver_get_epos() now works comparably in both BLDC and VECTOR
  • high priority limiter problem in BLDC
  • problem with DIN on SX
  • do not log IOvolt error from expander
  • ioexp message timeouts behavior revert back to original logic
  • fix fwc api when FW is not defined
  • shutdown() function doesn't force 100ms delay, aux api supports argument

[2.1.0]

Added

  • AX controller
  • Add support for new revision of AMP board
  • ebmult - external battery current multiplier

Changed

  • Removed warnings
  • Unify driver compile flags

[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.