Job Overview
We are seeking a talented CAN Firmware Engineer to design, develop, and optimize firmware for our lithium battery management systems (BMS). The ideal candidate will have experience working with Controller Area Network (CAN) protocols and embedded firmware development. This role is critical in ensuring seamless communication between battery systems and other electronic components, improving efficiency, safety, and overall system performance.
Key Responsibilities
- Develop and maintain firmware for Battery Management Systems (BMS) with a focus on CAN communication protocols (CANopen, J1939, etc.).
- Implement, debug, and optimize embedded software for real-time battery monitoring and control.
- Manage and maintain firmware version control repositories.
- Thoroughly document and comment firmware source using Doxygen.
- Debug firmware and hardware interactions using logic analyzers, oscilloscopes, and other standard test equipment.
- Assist in generating troubleshooting documents for service and support personnel as needed.
- Assist in configuration of build environments in Visual Studio Code and other industry standard IDE's as necessary for building and debugging embedded applications.
- Ensure compliance with industry standards for CAN communication and safety protocols.
- Work closely with hardware engineers to integrate firmware with battery management hardware.
- Develop and execute test plans to validate firmware functionality and performance.
- Troubleshoot and resolve firmware issues, optimizing reliability and efficiency.
- Participate in code reviews, documentation, and version control practices.
- Stay up to date with advancements in CAN communication, battery technology, and embedded systems.
Qualifications & Experience
- Education: Preferably a Masters or Bachelor's degree in Electrical Engineering, Computer Engineering, or a related field.
- Experience: 5+ years in embedded firmware development, preferably in battery management or power systems.
- Strong experience with CAN protocols (CANopen, J1939, or similar).
- Proficiency in C/C++ programming for embedded systems.
- Proficient with Visual Studio Code and cross compilers for ESP32, STM32, GD32 embedded microprocessors.
- Proficient with debugging embedded applications using various IDEs such as Visual Studio Code, Keil, or IAR.
- Familiarity with FreeRTOS, Doxygen, JSON, Ninja, OpenOCD, Embedded Linux, and Python.
- Experience with debugging tools such as oscilloscopes, logic analyzers, and CAN bus analyzers.
- Basic soldering and PCB rework skills.
- Knowledge of the CAN bus physical layer as well as the associated firmware layers.
- Knowledge of battery management systems (BMS), lithium battery technologies, and safety standards is a plus.
- Ability to work both independently and collaboratively in a fast-paced, small-team environment.
Why Join Eco Battery?
- Work with cutting-edge lithium battery technology in a rapidly growing industry.
- A dynamic and collaborative work environment with a close-knit team.
- Opportunities for career growth and professional development.
- Competitive benefits such as 401K, Lunch Program, Team activities, etc.
If you are passionate about embedded systems, CAN communication, and pushing the boundaries of battery technology, we’d love to hear from you! Apply today and be a part of Eco Battery’s mission to revolutionize the industry.