Releases: dalathegreat/Battery-Emulator
v6.0.0
What's Changed ❔
This is a Major release, which requires user action to take into use. The main driver for this release is to get ESP32 v3.0.0 support. Safety has also been increased significantly, with the inclusion of a dedicated Safety code section (Safety.cpp), which performs safety checks every 5 seconds. A significant amount of new safeties and info events have been added to the emulator! 🥳
Taking 6.X.X into use ℹ️
When compiling this latest version, you need to update the ESP32 package by Espressif System, in the Arduino IDE, to the latest v3.0.0 , failure to do this will result in compilation errors. This is the spot:
Batteries 🔋
- Nissan LEAF: Fixed an issue causing automatic contactor closing to not always work, by @dalathegreat in #328
- CHAdeMO support is staging towards stable and ready for testing. Excellent progress made by @smaresca :
- Added skeleton for MG5 battery integration by @dalathegreat in #319
- BMW i3: Remove obsolete codeblocks, by @smaresca in #294
- Kia/Hundai, Make 12V default value reasonable by @dalathegreat in #331
Inverters ⚡
- BYD Modbus: Added info event incase we don't see any Modbus activity. This helps new users troubleshoot wiring, by @dalathegreat in #305
- All inverters: Added info event for when inverter exceeds battert limits, by @dalathegreat in #313
- Tweaked by @amarofarinha in #327
- Tweaked fully charged event, so it does not continously trigger when battery is full, by @amarofarinha in #329
Connectivity 🛜
- Wifi stability improved, by @dalathegreat in #314
- Fixed an issue with CAN-FD getting stuck on startup , by @kukumagi in #317
- MQTT:
- Prevent MQTT to publish cell voltage values before they are populated by @amarofarinha in #321
- Nissan LEAF : Only update cellvoltages after all cells have been sampled, by @amarofarinha in #324
Housekeeping 🧹
- Feature: ESP32 Arduino Core v3.0.0 compatibility by @dalathegreat in #326
- New feature: Safety.cpp handler by @dalathegreat in #301
- Improvement: Move charge/discharge limiting to Safety file by @dalathegreat in #310
- Microfeature: Customizable name on webserver by @dalathegreat in #312
Hardware 💻
- Added initial support for Stark hardware by @dalathegreat in #309
New Contributors
- @amarofarinha made their first contribution in #321
Full Changelog: v5.10.0...v6.0.RC
v6.0.RC
What's Changed ❔
This is a Major release, which requires user action to take into use. The main driver for this release is to get ESP32 v3.0.0 support. Safety has also been increased significantly, with the inclusion of a dedicated Safety code section (Safety.cpp), which performs safety checks every 5 seconds. A significant amount of new safeties and info events have been added to the emulator! 🥳
Taking 6.X.X into use ℹ️
When compiling this latest version, you need to update the ESP32 package by Espressif System, in the Arduino IDE, to the latest v3.0.0 , failure to do this will result in compilation errors. This is the spot:
Batteries 🔋
- Nissan LEAF: Fixed an issue causing automatic contactor closing to not always work, by @dalathegreat in #328
- CHAdeMO support is getting improved. Not marked as stable yet, but excellent progress made:
- Added skeleton for MG5 battery integration by @dalathegreat in #319
- BMW i3: Remove obsolete codeblocks, by @smaresca in #294
Inverters ⚡
- BYD Modbus: Added info event incase we don't see any Modbus activity. This helps new users troubleshoot wiring, by @dalathegreat in #305
- All inverters: Added info event for when inverter exceeds battert limits, by @dalathegreat in #313
- Tweaked by @amarofarinha in #327
Connectivity 🛜
- Wifi stability improved, by @dalathegreat in #314
- Fixed an issue with CAN-FD getting stuck on startup , by @kukumagi in #317
- MQTT:
- Prevent MQTT to publish cell voltage values before they are populated by @amarofarinha in #321
- Nissan LEAF : Only update cellvoltages after all cells have been sampled, by @amarofarinha in #324
Housekeeping 🧹
- Feature: ESP32 Arduino Core v3.0.0 compatibility by @dalathegreat in #326
- New feature: Safety.cpp handler by @dalathegreat in #301
- Improvement: Move charge/discharge limiting to Safety file by @dalathegreat in #310
- Microfeature: Customizable name on webserver by @dalathegreat in #312
Hardware 💻
- Added initial support for Stark hardware by @dalathegreat in #309
New Contributors
- @amarofarinha made their first contribution in #321
Full Changelog: v5.10.0...v6.0.RC
v5.10.0
What's Changed
Batteries
- Renault Kangoo: Rescale SOC, Current and Power values by @dalathegreat in #218
- Kia/Hyundai E-GMP: Better cellvoltage handling by @JorgenSeemann in #282
- BMW i3: Less likely to go into FAULT incase it hasn't had time to read cellvoltages by @odlg in #299
- All batteries: Added CAN-FD USB printout for easier debugging by @kukumagi in #289
Inverters
- Pylon CAN: Add more battery mappings by @dalathegreat in #284
- BYD CAN: Make amp value based on actual voltage by @dalathegreat in #281
- BYD Modbus: Values set in webserver for max charge/discharge in amps is now used by @dalathegreat in #290
- BYD Modbus: Significant performance improvements by @dalathegreat in #290
- Solax: Correct scaling on kWh by @dalathegreat in #297
New Contributors
- @JorgenSeemann made their first contribution in #282
Full Changelog: v5.9.0...v5.10.0
v5.9.0
What's Changed
This release focuses on getting Double LilyGo setups working again. The last version that this feature worked in was 5.5.0. This release also fixes some small bugs and adds minor features.
Batteries
- BMW i3: Added cellvoltage safeties and pack size autodetect by @dalathegreat in #279
Inverters
- Feature: Add Event when automatic contactor opening happens by @dalathegreat in #271
- Bugfix: Serial-link (Double LilyGo) now works again by @Cabooman in #283
Housekeeping
- Microfeature: Add uptime tracking and display by @smaresca in #268
- Improvement: Rename BMS to System in webserver by @dalathegreat in #273
- Improvement/event uptimestamp by @Cabooman in #272
- Bugfix: Make chargers compile and add to workflow 🤖 by @dalathegreat in #274
- Update README.md by @Cabooman in #275
- Consistent library naming by @Cabooman in #278
- Refactor: Inverter handling by @dalathegreat in #276
Full Changelog: v5.8.0...v5.9.0
v5.8.0
What's Changed
This version adds initial support for Pylon 🔋 batteries. It also contains many bugfixes and improvements for different battery types. This version also introduces a datalayer, to make future development easier! ⚡
Batteries
- Support for new battery! Pylon 🔋 #265
- Kia/Hyundai64: Battery max charge/discharge values are now read from CAN instead of estimated. This increases safety significantly when using these batteries, #259
- Kia/Hyundai64: Improved startup reliability. We wait until battery is turned ON before starting to send CAN messages towards it, #264
- Nissan LEAF: Three new events added (EVENT_BATTERY_CAUTION, EVENT_BATTERY_REQUESTS_HEAT and EVENT_BATTERY_WARMED_UP). This alerts users incase the battery does something out of the ordinary #257
- BMW i3: Two new events added, we now alert the user incase high voltage interlock not seated / Capacitor missing on HV side. This simplifies troubleshooting #267
- Fixed an issue causing E-GMP batteries not to compile #258
Inverters
- Fixed an issue where if an inverter would switch to 250kbps instead of 500kbps, it would halt the emulator for 2seconds. The board now recovers in 20ms incase it encounters a baud rate switch #260
Housekeeping
- Refactoring: Introduced datalayer and move events to background task by @Cabooman #254
- Bugfix: Make faulted LED solid red again 🔴 #263
- Cleanup: Removed unnecessary USB debug messages #255
- Cleanup: Removed images from the code repository. All images are now hosted on Github Wiki to save space, makes the .zip file 14 MB smaller #256
- Regression in SERIAL-LINK-RECEIVER #269
- Improvement: SERIAL-LINK-RECEIVER added to workflow #270
Contributors
@Cabooman @smaresca @kukumagi @dalathegreat
Full Changelog: v5.7.1...v5.8.0
v5.7.1
What's Changed
This is a "minor" release, that focuses on performance improvements, bugfixes and some new functionality!
Batteries
- BMW i3: SOH% and cellvoltages now mapped by @odlg in #249
- Bugfix: Remove Volvo battery writing to bms_status by @dalathegreat in #253
- Bugfix: Update header to get EGMP to compile by @dalathegreat in #250
New Features
- The board can now output CAN messages via USB Serial, for easier debugging by @dalathegreat in #248
- Improved LED handling - CLASSIC, FLOW and HEARTBEAT animations with lower frequency (50ms). These can be set via
system_settings.h
file, default is now FLOW - Implementation of micro seconds timing macros for debugging performance - displayed in the web UI if enabled via USER_SETTINGS.h file (
FUNCTION_TIME_MEASUREMENT
)
Housekeeping
- Add platformio serial logging by @kukumagi in #251
- Refactoring: Scalability and performance by @Cabooman in #252
- Introduction of a rudimentary hardware abstraction layer (HAL) to handle other boards
- Untangling of settings - config.h and various other settings have moved to any of: system_settings.h hw_lilygo.h or related implementation files (e.g. WUP_PIN -> BMW i3, for now)
- MQTT handling moved to its own task with slightly lower priority
- Include handling improved, most files can now include "src/include.h" to get the central settings/definitions
- An initial data layer is introduced in a moderate fashion, for Nissan Leaf power values and time measurements
- Mapping functions supporting mapping of some value in one range to the corresponding value in a different range
- Slightly improved compilation times by having preprocessor conditions on inverter code and charger code
Full Changelog: v5.7.0...v5.7.1
v5.7.0
What's Changed
This version of the emulator adds two large new features.
- CAN-FD support 📊
- Initial EGMP battery support 🔋 (Massive thanks to Priit, @kukumagi , Lux and others on the Discord server 🙌 )
Housekeeping
- Bugfix: Further CPU load reductions by @dalathegreat in #241
- Improved support for Platformio IDE by @kukumagi in #246
- Improvement: Increase size for data by @dalathegreat in #247
Batteries
- Feature: CAN-FD + EGMP batteries! by @dalathegreat in #244
- Bugfix: Missing include for Volvo by @dalathegreat in #245
New Contributors
Full Changelog: v5.6.0...v5.7.0
v5.6.0
What's Changed
Massive efforts have been made to reduce CPU load drastically in this version, to improve CAN sending reliability and timing. Some users noticed that BMW i3 batteries opened contactors when Modbus requests were coming in, causing 10ms periodic messages to get delayed to 200ms. This is unacceptable for an embedded realtime system. This new version not only lowers CPU usage, but also warns the user via Events incase the sending of CAN messages start to get delayed.
Housekeeping
- Bugfix: Update libraries used by the project
- Updated eModbus to v1.7.1stable
- Updated ArduinoJSON to v7.0.4
- Updated ElegantOTA to v3.1.1
- Autoupdate of the pre-commit configuration
- CPU load improvements:
- Event added for notifing users incase CAN message timing starts to be affected
- Mainloop now runs as background task with same priority as modbus
- Webserver loads 30% faster
- Pressing "Event" button in webserver caused the sending of 10ms CAN messages to skyrocket to 185ms. This is now fixed
Inverters
- Bugfix: Solax inverters no longer get stuck with open contactors at 0%SOC
- Inverter contactor opening changed from Error -> Info event
- CAN interface is now restarted incase Solax has timed out
Batteries
- Triplet battery:
- Cellvoltages now mapped to the global array, and can be viewed in webserver cellvoltage view
- Temperature values scaled correctly
- Revised safety limits for under/overvoltage
- BMW i3 battery:
- Current value now scaled correctly
- Power value now calculated correctly
- Fixed an issue where max allowed charge/discharge would overflow
- Fixed an issue where CRC check would always complain about 2BD message being broken
New Contributors
Full Changelog: v5.5.0...v5.6.0
v5.5.0
What's Changed
This release adds support for BMW i3 batteries. Massive thanks to odlg over on the Discord server for testing and logging! by @dalathegreat in #224
Batteries
- New batteries supported:
- Tesla: The code autodetects incase you have an LFP battery, but the detection method can take up to 5minutes. Incase you want to speed this up for additional safety, it's now possible to define LFP_CHEMISTRY in the TESLA-MODEL-3-BATTERY.h file @dalathegreat in #216
- Kona 40kWh batteries now have functional cellvoltageview @dalathegreat in #213
- Kia/Hyundai: Current value now signed right way, webserver no longer shows discharging while charging, and vice versa. By @dalathegreat in #217
Inverters
- BYD CAN: Swap discharge/charge limits in CAN mapping. This fixes Sungrow inverters limiting charge incorrectly, by @dalathegreat in #215
Connectivity
- Add mDNS for local device discovery. by @gingofthesouth in #220
New Contributors
- @gingofthesouth made their first contribution in #220
Full Changelog: v5.4.0...v5.5.0
v5.4.0
What's Changed
This version adds support for Volvo SPA / Polestar batteries. Massive thanks to niclashedlund over on the Discord server for this amazing work 🙌
Batteries
- New batteries supported: Volvo XC40 / Polestar 2 78kWh ✅ by @dalathegreat in #211
Webserver
- Auto-refresh settings page on success, alert on error by @smaresca in #209
- Improve visibility on scale_soc setting by @dalathegreat in #208
Full Changelog: v5.3.0...v5.4.0