Releases: dalathegreat/Battery-Emulator
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
v5.3.0
What's Changed
The Webserver now has an improved Cellmonitor page, with a nice graph view. Massive thanks to @Cabooman 🙌
Inverters
- New inverter protocol: Added base for SMA Tripower by @dalathegreat in #182
- SMA CAN H: Bugfix for charge allowed message by @dalathegreat in #183
Batteries
- Tesla: Raise LFP max cell voltage by @dalathegreat in #184
- Tesla: Add cellamount LFP autodetect by @dalathegreat in #189
- Tesla: Tweak plausable SOC% limits by @dalathegreat in #191
- Tesla: Add top balancing for batteries by @dalathegreat in #199
- Kangoo: Fix battery voltage scaling by @dalathegreat in #167
Connectivity
Housekeeping
- Refactor: Battery interface streamlining by @Cabooman in #188
- Bugfix: OTA timeout improvement by @Cabooman in #175
- Refactor: All batteries: Voltage limits as variables by @dalathegreat in #190
- Bugfix: Remove char_dis_status variable by @dalathegreat in #186
- Refactor: Variable naming + RealSOC by @dalathegreat in #195
- Bugfix: Fix wrong contactor variable by @dalathegreat in #197
- DoubleLilyGo: Fix u32 Wh values getting corrupted by @dalathegreat in #200
- Increase cellvoltagearray for 800V batteries in the future by @dalathegreat in #204
- Feature/cell bars by @Cabooman in #206
Full Changelog: v5.2.0...v5.3.0
v5.2.0
What's Changed
New features
- This release adds event handling. The webserver can now display a list of events that have triggered in the system. For instance anything out of the ordinary; cell overvoltage, overheating, CAN failures etc. all get logged to the event list. The events are also stored to EEPROM for an additional layer of security. Event handling makes troubleshooting a problematic situation much easier. Massive thanks to @Cabooman for implementing most of it 🙌
The event log can show you how many events have occured, when the last event of this type happened, severity of event and data. Events get stored to EEPROM, so if you later on power on the board, it will spit out the last events via serial on bootup. How neat is that? 👍
Note for devs: Events should be used for further development of all battery handlers, since it centralizes the writing of BMS status and handling of LED color and serial printouts.
Inverters
- Add SMA CAN H findings by @dalathegreat in #174
Batteries
- Kia/Hyundai 64kWh: Fix negative temp handling by @dalathegreat in #162
- Kia/Hyundai 64kWh: Add cellvoltage mappings by @dalathegreat in #168
- Bugfix: Clear battery events properly by @dalathegreat in #177
Connectivity
- Wifi connections are now even more robust, and better error handling.
- Wifi channel can now be configured if desired
- Wifi channel is now shown in Webserver UI
- Add MQTT autoconfig for homeassistant for other data than just cell voltages by @kharnt0x in #166
Misc
- Feature: Webserver cleanup + Event timestamps by @dalathegreat in #169
- Bugfix: Beautify eventsview by @dalathegreat in #171
- Bugfix/mqtt cell voltage by @Cabooman in #173
- Polishing the EEPROM handling by @Cabooman in #176
Housekeeping for repository
- Unit tests! by @Cabooman in #170
- Add Dependabot by @lenvm in #163
- Bump actions/checkout from 3 to 4 by @dependabot in #165
- Bump pre-commit/action from 3.0.0 to 3.0.1 by @dependabot in #164
New Contributors
- @dependabot made their first contribution in #165
Full Changelog: v5.0.1...v5.2.0