BMS Firmware Engineer
Role Overview
We are looking for an experienced BMS Firmware Engineer with strong expertise in State-of-X (SoC/SoH/SoP/SoS/SoR/SoE/SoF) algorithms, embedded systems, and battery modelling. The role involves developing, implementing, and optimizing algorithms that estimate battery state parameters, ensuring safety, robustness, and accuracy across varying operating conditions.
Key Responsibilities
1. SoX Algorithm Implementation
·      Convert battery models & equations into embedded-optimized C code.
·      Ensure the implementation is:
o  computationally efficient
o  memory-optimized
o  real-time safe
o  MISRA-C compliant
·       Handle fixed-point math, scaling, quantization, and precision issues.
2. Signal Processing & Data Infrastructure
  • Implement:
  • ADC acquisition filters
  • Sensor calibration (voltage, current, temperature)
  • Noise filtering (moving average, IIR filters)
  • Guarantee the data needed for SoX is clean, calibrated, low noise.
3. Embedded Software Architecture
Own overall BMS firmware, such as:
  • Task scheduling for SoX updates
  • RTOS-based designs
  • Memory & stack management
  • Power management
  • Safety task integration
  • Timing guarantees (1 ms, 10 ms, 100 ms tasks)
4. Hardware & Driver Layer
Need to implement:
  • Cell voltage acquisition drivers
  • Current sensor drivers
  • Temperature sensing drivers
  • Communication stack (CAN, LIN, RS232, BLE)
5. Safety, Protections & Diagnostics
Responsible for integrating:
  • OV/UV, OC, OT/UT protections
  • Fault detection state machines
  • Contactor control / charge-discharge enable logic
  • Functional safety (ISO 26262 compliance)
  • SoX algorithms compatibility check with ASIL A/B/C/D levels.
6. Validation & Testing Support
  • Unit testing of algorithm code after porting
  • HIL/SIL test execution
  • Debugging & fixing integration bugs
  • Ensuring algorithm runs correctly in edge cases
7. Production-Readiness
  • Bootloader updates
  • Flash memory management
  • Diagnostic services (UDS/ISO-TP)
  • Firmware update over CAN or OTA
Firmware Development
  • Develop embedded firmware for BMS microcontrollers (ARM Cortex-M, TI C2000, NXP, Renesas, etc.).
  • Integrate algorithms into production firmware with low-latency and memory-efficient implementations.
  • Write MISRA-C compliant firmware and follow automotive coding standards.
  • Implement communication protocols (CAN, LIN, UDS, ISO-TP).
Cross-Functional Collaboration
  • Work with battery testing teams for data acquisition and characterization.
  • Coordinate with hardware engineers for sensor calibration, ADC accuracy, and signal conditioning.
  • Validate feature engineering through collaboration with data team.
  • Collaborate with IoT / cloud team to collect, process, clean up and validate the data required for battery SoX algorithms.
  • Support system engineers with safety concepts (ISO 26262, functional safety requirements).
Required Skills & Experience
  • Bachelor’s/Master’s in Electrical Engineering, Electronics, Embedded Systems, or related field.
  • 5–8 years of experience in battery management systems or embedded systems.
  • Strong knowledge of:
  • Lithium-ion cell behavior (LFP, NMC, etc.)
  • SoX estimation techniques (EKF, UKF, PF, adaptive algorithms)
  • Battery aging & degradation mechanisms
  • ECM modeling (Rint, Thevenin, PNGV, dual-RC models)
  • Proficiency in C/C++ for embedded systems.
  • Experience with MATLAB/Simulink, Python.
  • Experience with tools like Vector CANalyzer, HIL systems, ALTAIR, etc. on debugging .dbc files to raw battery data.