A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

Recent Releases of Battery-Emulator

Battery-Emulator - v8.10.0

What's Changed

This release adds support for the CMFA-EV platform (Dacia Spring, Renault K-ZE), 50kWh BYD Atto3 batteries, tons of bugfixes.

Suggested ESP32 version: 3.2.0

Batteries ๐Ÿ”‹

Inverters โšก

Housekeeping ๐Ÿงน

New Contributors

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v8.9.0...v8.10.0

Energy Storage - Battery - C++
Published by dalathegreat 15 days ago

Battery-Emulator - v8.9.0

What's Changed

This release adds support for Double Pylon batteries, fixes an issue that could crash the board when using MQTT commands, and adds several bugfixes to batteries and inverters

[!NOTE]
Deye inverters, should now use BYD_CAN_DEYE instead of BYD_CAN. Deye offgrid inverters require a specific implementation, that would not play nicely with other BYD_CAN inverters.

Suggested ESP32 version: 3.1.3

Batteries ๐Ÿ”‹

Inverters โšก

Housekeeping ๐Ÿงน

New Contributors

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v8.8.1...v8.9.0

Energy Storage - Battery - C++
Published by dalathegreat about 1 month ago

Battery-Emulator - v8.8.1

What's Changed ๐Ÿ“ฆ

This is a minor update mainly to fix a watchdog reset issue that could happen when using MQTT

[!IMPORTANT]
It is highly recommended to update to this version if you are using MQTT

Suggested ESP32 version: 3.1.3

Battery ๐Ÿ”‹

Inverters โšก

Housekeeping ๐Ÿงน

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v8.8.0...v8.8.1

Energy Storage - Battery - C++
Published by dalathegreat about 1 month ago

Battery-Emulator - v8.8.0

What's Changed

This release focuses on improving performance of the main functions. There was a large performance regression in all releases after 8.5.0.

[!IMPORTANT]
It is highly recommended to update to this version if you are running a version 8.6.0 OR 8.7.0

Batteries ๐Ÿ”‹

Housekeeping ๐Ÿงน

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v8.7.0...v8.8.0

Energy Storage - Battery - C++
Published by dalathegreat about 2 months ago

Battery-Emulator - v8.7.0

What's Changed ๐Ÿ“ฆ

This version adds support for many new battery types, fixes many bugs, and introduces a powerful CAN replay feature for reverse engineering. It is a recommended update, since it also improves safety significantly.

[!IMPORTANT]
This release removes Serial-Link support, the ability to use 2x LilyGo boards together. Learn more why

If you are relying on this feature, consider switching to any of the following options:

Batteries ๐Ÿ”‹

Inverters โšก

Housekeeping ๐Ÿงน

New Contributors ๐Ÿฆธ

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v8.6.0...v8.7.0

Energy Storage - Battery - C++
Published by dalathegreat about 2 months ago

Battery-Emulator - v8.6.0

What's Changed ๐Ÿ“ฆ

This version fixes an issue where the OTA page would crash the board incase the newly released ESP32 v3.1.2 board manager was used. It also adds support for Daly SmartBMS, a new protocol for Ferroamp, and various bugfixes all around.

Batteries ๐Ÿ”‹

Inverters โšก

Housekeeping ๐Ÿงน

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v8.5.0...v8.6.0

Energy Storage - Battery - C++
Published by dalathegreat 2 months ago

Battery-Emulator - v8.5.0

What's Changed ๐Ÿ“ฆ

This release contains a few bugfixes. If you see your battery or inverter listed, it is a good idea to update to this version.

Batteries ๐Ÿ”‹

Inverters โšก

Housekeeping ๐Ÿงน

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v8.4.0...v8.5.0

Energy Storage - Battery - C++
Published by dalathegreat 3 months ago

Battery-Emulator - v8.4.0

What's Changed ๐Ÿ“ฆ

This update fixes a nasty crash issue that could occur when using MQTT. If you are using MQTT, it is highly recommended to update to this version. This release also introduces support for FoxESS OEM batteries, and fixes a few battery integration bugs.

The Wiki has also been updated with a โญ rating system, to help gauge the maturity of specific battery integrations. Be sure to check it out!

[!NOTE]
Some users reported issues with OTA when trying to take the new partitioning scheme into use. From v8.3.0 and onwards it is mandatory to change "Tools, Partition Scheme" to "Minimal Spiffs". This is also explained in the Quickstart video. To get around the OTA failure, you can flash via USB. After successfully deploying the new partitioning scheme with an USB flash, following OTA updates will go smoothly.

Batteries ๐Ÿ”‹

Houskeeping ๐Ÿงน

New Contributors ๐Ÿฆธ

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v8.3.0...v8.4.0

Energy Storage - Battery - C++
Published by dalathegreat 3 months ago

Battery-Emulator - v8.3.0

What's Changed ๐Ÿ“ฆ

This version fixes a few bugs, adds support for some new components, and replaces the MQTT library. We have been using an older version that stopped getting updates in 2020. This is now fixed by switching to the official Espressif ESP-MQTT library for improved cybersecurity and more features

[!IMPORTANT]
The new MQTT library takes up much more program space. It is mandatory to change "Tools, Partition Scheme" to "Minimal Spiffs" from here on. This is explained in the Quickstart video. Failing to change this might result in a Sketch too big compilation error. See the picture below on where to set it:

image

Batteries ๐Ÿ”‹

Inverters โšก

Connectivity ๐Ÿ“ถ

Housekeeping ๐Ÿงน

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v8.2.0...v8.3.0

Energy Storage - Battery - C++
Published by dalathegreat 3 months ago

Battery-Emulator - v8.2.0

What's Changed ๐Ÿ“ฆ

This version adds a new method to handle cell voltage events, for safer operation of the battery. It also contains many battery bugfixes, new inverter protocols, improved performance and more!

Batteries ๐Ÿ”‹

Inverters โšก

Houskeeping ๐Ÿงน

New Contributors

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v8.1.0...v8.2.0

Energy Storage - Battery - C++
Published by dalathegreat 3 months ago

Battery-Emulator - v8.1.0

What's Changed ๐Ÿ“ฆ

This release adds support for Sono Motors batteries, Growatt LV inverters, and a ton of bugfixes. It is especially recommended for Volvo/Polestar users, since it contains some well needed improvements there. Be sure to read thru the release notes before installing this new version!

[!NOTE]
Note, this version drops support for MCP2517 chips in favour of the MCP2518FD chips. This is to ensure proper CAN-FD timing requirements. By removing the hardware workarounds needed to keep a 2517 chip operating, we speed up the 2518FD operation. This change should not affect anyone, since no hardware designs have been made with 2517

[!IMPORTANT]
To take into use a 8.X.X version, Copy/Rename the USER_SECRETS.TEMPLATE.h file to USER_SECRETS.h and update connectivity settings inside this file. This is a new mandatory step to increase cybersecurity, to make it less likely for developers to commit sensitive credentials during software development

image

Batteries ๐Ÿ”‹

Inverters โšก

Connectivity ๐Ÿ“ถ

Hardware ๐Ÿค–

Housekeeping ๐Ÿงน

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v8.0.0...v8.1.0

Energy Storage - Battery - C++
Published by dalathegreat 4 months ago

Battery-Emulator - v8.0.0

What's Changed ๐Ÿ“ฆ

This is a major release. It focuses on adding support for ESP32 v3.1.0 , along with a new and safer way to handle user credentials (USER_SECRETS). It also adds support for many new batteries/inverters/ESP32hardware/shunts and more. It is recommended to read the release notes before updating.

image
The newly supported ESP32 v3.1.0 package, available in Arduino IDE

image

[!IMPORTANT]
To take into use 8.0.0 version, Copy/Rename the USER_SECRETS.TEMPLATE.h file to USER_SECRETS.h and update connectivity settings inside this file. This is a new mandatory step to increase cybersecurity, to make it less likely for developers to commit sensitive credentials during software development

Batteries ๐Ÿ”‹

Inverters โšก

Hardware ๐Ÿค–

Housekeeping ๐Ÿงน

New Contributors

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v7.9.2...v8.0.0

Energy Storage - Battery - C++
Published by dalathegreat 4 months ago

Battery-Emulator - v7.9.2

What's Changed

[!CAUTION]
It is highly recommended to update to this version if you use PWM control

This is another small release, primarily aiming to fix another contactor-PWM related bug

Batteries ๐Ÿ”‹

Inverters โšก

image

Housekeeping ๐Ÿงน

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v7.9.1...v7.9.2

Energy Storage - Battery - C++
Published by dalathegreat 4 months ago

Battery-Emulator - v7.9.1

What's Changed

[!CAUTION]
It is highly recommended to update to this version if you use PWM control

This hotfix resolves a major issue that affected users that had PWM enabled. If PWM controlled contactors were in use, the Precharge pin would never activate. This caused one user to blow two contactors and a fuse:

image

Batteries ๐Ÿ”‹

Housekeeping ๐Ÿงน

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v7.9.0...v7.9.1

Energy Storage - Battery - C++
Published by dalathegreat 4 months ago

Battery-Emulator - v7.9.0

What's Changed

This release adds support for the Volkswagen MEB platform. This platform is used across the brands of the Volkswagen Group (VW/ล KODA/CUPRA/AUDI), used in over 18 different vehicle models.

Batteries ๐Ÿ”‹

Housekeeping ๐Ÿงน

New Contributors ๐Ÿฆธ

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v7.8.0...v7.9.0

Energy Storage - Battery - C++
Published by dalathegreat 5 months ago

Battery-Emulator - v7.8.0

What's Changed

This release adds support for many new inverter protocols, plus heaps of bugfixes. Massive thanks to all contributors! ๐Ÿ™

Batteries ๐Ÿ”‹

Inverters โšก

Housekeeping ๐Ÿงน

Hardware ๐Ÿค–

New Contributors ๐Ÿฆธ

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v7.7.0...v7.8.0

Energy Storage - Battery - C++
Published by dalathegreat 5 months ago

Battery-Emulator - v7.7.0

What's Changed

This release adds support for new batteries, new inverter protocols, and tons of bugfixes. Massive thanks to all contributors! ๐Ÿ™

Batteries ๐Ÿ”‹

Inverters โšก

Connectivity ๐Ÿ“ถ

Hardware ๐Ÿค–

Housekeeping ๐Ÿงน

New Contributors ๐Ÿฆธ

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v7.6.0...v7.7.0

Energy Storage - Battery - C++
Published by dalathegreat 5 months ago

Battery-Emulator - v7.6.0

What's Changed

This update adds support for new batteries and new inverter protocols.

[!IMPORTANT]
Important note for MQTT users. This release contains breaking changes for MQTT parameter naming. See this link for more info on how to migrate to this release

Batteries ๐Ÿ”‹

Inverters โšก

Housekeeping ๐Ÿงน

Connectivity ๐Ÿ“ถ

New Contributors ๐Ÿ™Œ

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v7.5.0...v7.6.0

Energy Storage - Battery - C++
Published by dalathegreat 6 months ago

Battery-Emulator - v7.5.0

What's Changed

The main driver for this release is support for the Foxess protocol. Massive thanks to TheOfficialBatteryMan on Discord for testing this! Foxess H3 inverters are now supported โœ”๏ธ

The release also adds a new way to see more battery info in the Webserver. The "More Battery Info" page is a new way to get info without using USB Debug. More development on this will follow in later releases, for now only Nissan LEAF and Tesla batteries have more info.

image

Batteries ๐Ÿ”‹

Inverters โšก

Housekeeping ๐Ÿงน

Connectivity ๐Ÿ“ถ

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v7.4.1...v7.5.0

Energy Storage - Battery - C++
Published by dalathegreat 7 months ago

Battery-Emulator - v7.4.1

What's Changed

This is a bugfix release, which also improves overall safety due to the addition of mandatory cellvoltage checks.

Inverters โšก

Hardware ๐Ÿค–

Housekeeping ๐Ÿงน

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v7.4.0...v7.4.1

Energy Storage - Battery - C++
Published by dalathegreat 7 months ago

Battery-Emulator - v7.4.0

What's Changed

This is a bugfix release with many small fixes. It is essential for smooth OTA updates.

Batteries ๐Ÿ”‹

Housekeeping ๐Ÿงน

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v7.3.0...v7.4.0

Energy Storage - Battery - C++
Published by dalathegreat 7 months ago

Battery-Emulator - v7.3.0

What's Changed

This version adds support for Gen1 Renault Zoe batteries, plus many small bugfixes.

Batteries ๐Ÿ”‹

Housekeeping ๐Ÿงน

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v7.2.1...v7.3.0

Energy Storage - Battery - C++
Published by dalathegreat 7 months ago

Battery-Emulator - v7.2.0

What's Changed

This release improves OTA behaviour of the Battery-Emulator significantly. We now pause the battery operation before an OTA update is started. This avoids premature contactor wear, and makes inverters less likely to trigger fault codes. You can also manually trigger a pause from the Webserver. Pauses generate events that can be seen in the event log. Bonus, the OTA view also specifies which software/hardware version you are currently on.

This release also improves MQTT functionality , events are now sent via MQTT!

Finally, this release adds authentication to the Webserver. You can now protect it with an username and password!

Batteries ๐Ÿ”‹

Inverter โšก

Connectivity ๐Ÿ“ถ

Housekeeping ๐Ÿงน

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v7.1.1...v7.2.0

Energy Storage - Battery - C++
Published by dalathegreat 7 months ago

Battery-Emulator - v7.1.1

What's Changed

[!IMPORTANT]
It is highly recommended to update to this version.

This release fixes a single issue, event EEPROM writing causing the code to halt for up to 70milliseconds. This caused contactors to open on some battery setups, since CAN message reading/writing was essentially blocked when events were stored to EEPROM. So for now, events wont be stored to persistent memory until we can find a way to do so without halting the program.

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v7.1.0...v7.1.1

Energy Storage - Battery - C++
Published by dalathegreat 8 months ago

Battery-Emulator - v7.1.0

What's Changed

This version introduces support for the SMA-BYD protocol. It is now possible to use SMA Sunny Boy Storage inverters with the Battery-Emulator. This release also contains a few bugfixes.

Taking v7.X.X into use

There are new configurable parameters in the USER_SETTINGS files.

image

The CAN configuration needs to be set incase you are running extra CAN channels attached to the board. Via this new configuration option, you can define what is connected to which CAN channel. Some components are OK with sharing a CAN channel, others need a dedicated channel. The new CAN configuration also allows you to connect normal CAN devices to a CAN-FD interface. Simply enable the USE_CANFD_INTERFACE_AS_CLASSIC_CAN option in the USER_SETTINGS incase this functionality is desired. There is a whole lot more flexibility with the newconfiguration CAN configuration interface!

Inverters โšก

Batteries ๐Ÿ”‹

Housekeeping ๐Ÿงน

New Contributors

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v7.0.0...v7.1.0

Energy Storage - Battery - C++
Published by dalathegreat 8 months ago

Battery-Emulator - v7.0.0

What's Changed

The new 7.0.0 version of the Battery-Emulator is now available. The amount of work put in by everyone involved has been massive. We now have official support for the Stark CMR hardware, and a shiny new CAN handler that will make scaling the project up to the next level way more manageable. Massive thanks to everyone that has been reporting bugs, testing, coding and in other ways contributing to make the emulator shine. ๐Ÿ™Œ

Taking v7.X.X into use

There are new configurable parameters in the USER_SETTINGS files.

image

The CAN configuration needs to be set incase you are running extra CAN channels attached to the board. Via this new configuration option, you can define what is connected to which CAN channel. Some components are OK with sharing a CAN channel, others need a dedicated channel. The new CAN configuration also allows you to connect normal CAN devices to a CAN-FD interface. Simply enable the USE_CANFD_INTERFACE_AS_CLASSIC_CAN option in the USER_SETTINGS incase this functionality is desired. There is a whole lot more flexibility with the newconfiguration CAN configuration interface!

Batteries ๐Ÿ”‹

Inverters โšก

Housekeeping ๐Ÿงน

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v6.5.0...v7.0.0

Energy Storage - Battery - C++
Published by dalathegreat 9 months ago

Battery-Emulator - v6.5.0

What's Changed

This version adds support for Double Battery setups. It is now possible to use two EV packs at the same time, to get an even larger battery. See this video for the first install using double battery: https://youtu.be/skBhH_EwBUE

๐Ÿ”‹ Batteries

โšก Inverters

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v6.4.0...v6.5.0

Energy Storage - Battery - C++
Published by dalathegreat 9 months ago

Battery-Emulator - v6.4.0

What's Changed

Batteries ๐Ÿ”‹

Inverters โšก

Housekeeping ๐Ÿงน

New Contributors

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v6.3.0...v6.4.0

Energy Storage - Battery - C++
Published by dalathegreat 9 months ago

Battery-Emulator - v6.3.0

What's Changed

Batteries ๐Ÿ”‹

Housekeeping ๐Ÿงน

New Contributors

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v6.2.1...v6.3.0

Energy Storage - Battery - C++
Published by dalathegreat 10 months ago

Battery-Emulator - v6.2.1

What's Changed โ”

This version focuses on improving CPU load, along with some battery fixes. Flaky Wifi connections could result in contactors opening, so the Wifi task is now moved out of the core task to keep batteries satisfied without any CAN interrupts. Who knew embedded real-time was so hard ๐Ÿ˜…

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 at least v3.0.0 , failure to do this will result in compilation errors. This is the spot in Arduino IDE to do it:

bild

Housekeeping ๐Ÿงน

Batteries ๐Ÿ”‹

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v6.2.0...v6.2.1

Energy Storage - Battery - C++
Published by dalathegreat 11 months ago

Battery-Emulator - v6.2.0

What's Changed โ”

This version focuses on improving CPU load, along with some battery fixes. Flaky Wifi connections could result in contactors opening, so the Wifi task is now moved out of the core task to keep batteries satisfied without any CAN interrupts. Who knew embedded real-time was so hard ๐Ÿ˜…

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 at least v3.0.0 , failure to do this will result in compilation errors. This is the spot in Arduino IDE to do it:

bild

Housekeeping ๐Ÿงน

Batteries ๐Ÿ”‹

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v6.1.0...v6.2.0

Energy Storage - Battery - C++
Published by dalathegreat 11 months ago

Battery-Emulator - v6.1.0

What's Changed โ”

This version fixes a rare reset issue, adds reset reason to Events view, and adds initial support for BYD Atto 3 batteries! It is a highly recommended update.

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 at least v3.0.0 , failure to do this will result in compilation errors. This is the spot in Arduino IDE to do it:

bild

Batteries ๐Ÿ”‹

Inverters โšก

Housekeeping ๐Ÿงน

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v6.0.0...v6.1.0

Energy Storage - Battery - C++
Published by dalathegreat 11 months ago

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:

bild

Batteries ๐Ÿ”‹

Inverters โšก

Connectivity ๐Ÿ›œ

Housekeeping ๐Ÿงน

Hardware ๐Ÿ’ป

New Contributors

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v5.10.0...v6.0.RC

Energy Storage - Battery - C++
Published by dalathegreat 11 months ago

Battery-Emulator - 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:

bild

Batteries ๐Ÿ”‹

Inverters โšก

Connectivity ๐Ÿ›œ

Housekeeping ๐Ÿงน

Hardware ๐Ÿ’ป

New Contributors

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v5.10.0...v6.0.RC

Energy Storage - Battery - C++
Published by dalathegreat 11 months ago

Battery-Emulator - v5.10.0

What's Changed

Batteries

Inverters

New Contributors

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v5.9.0...v5.10.0

Energy Storage - Battery - C++
Published by dalathegreat 12 months ago

Battery-Emulator - 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

Inverters

Housekeeping

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v5.8.0...v5.9.0

Energy Storage - Battery - C++
Published by dalathegreat 12 months ago

Battery-Emulator - 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

Inverters

Housekeeping

Contributors

@Cabooman @smaresca @kukumagi @dalathegreat

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v5.7.1...v5.8.0

Energy Storage - Battery - C++
Published by dalathegreat about 1 year ago

Battery-Emulator - v5.7.1

What's Changed

This is a "minor" release, that focuses on performance improvements, bugfixes and some new functionality!

Batteries

New Features

  • The board can now output CAN messages via USB Serial, for easier debugging by @dalathegreat in https://github.com/dalathegreat/Battery-Emulator/pull/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 )

bild

Housekeeping

  • Add platformio serial logging by @kukumagi in https://github.com/dalathegreat/Battery-Emulator/pull/251
  • Refactoring: Scalability and performance by @Cabooman in https://github.com/dalathegreat/Battery-Emulator/pull/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: https://github.com/dalathegreat/Battery-Emulator/compare/v5.7.0...v5.7.1

Energy Storage - Battery - C++
Published by dalathegreat about 1 year ago

Battery-Emulator - v5.7.0

What's Changed

This version of the emulator adds two large new features.

bild

Housekeeping

Batteries

New Contributors

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v5.6.0...v5.7.0

Energy Storage - Battery - C++
Published by dalathegreat about 1 year ago

Battery-Emulator - 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.

317531654-444c20b1-c2bf-45ff-8e0c-cc180169ddcc

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: https://github.com/dalathegreat/Battery-Emulator/compare/v5.5.0...v5.6.0

Energy Storage - Battery - C++
Published by dalathegreat about 1 year ago

Battery-Emulator - 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 https://github.com/dalathegreat/Battery-Emulator/pull/224

Batteries

  • New batteries supported:
    • BMW i3 60AH (2014 - 2016) โœ…
    • BMW i3 94AH (2017 - 2018) โœ…
    • BMW i3 120AH (2019 - 2022) โœ…

Inverters

Connectivity

New Contributors

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v5.4.0...v5.5.0

Energy Storage - Battery - C++
Published by dalathegreat about 1 year ago

Battery-Emulator - 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

Webserver

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v5.3.0...v5.4.0

Energy Storage - Battery - C++
Published by dalathegreat about 1 year ago

Battery-Emulator - v5.3.0

What's Changed

โš ๏ธ This update brings some mandatory charging safety updates for Tesla batteries. If you use a Tesla battery, please update to this version asap!

The Webserver now has an improved Cellmonitor page, with a nice graph view. Massive thanks to @Cabooman ๐Ÿ™Œ
bild

Inverters

Batteries

Connectivity

Housekeeping

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v5.2.0...v5.3.0

Energy Storage - Battery - C++
Published by dalathegreat about 1 year ago

Battery-Emulator - 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 ๐Ÿ™Œ

bild
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

Batteries

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 https://github.com/dalathegreat/Battery-Emulator/pull/166

Misc

Housekeeping for repository

New Contributors

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v5.0.1...v5.2.0

Energy Storage - Battery - C++
Published by dalathegreat about 1 year ago

Battery-Emulator - v5.0.1 release

What's Changed

This is a minor stability update, that fixes the following:

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v5.0.0...v5.0.1

Energy Storage - Battery - C++
Published by dalathegreat about 1 year ago

Battery-Emulator - v5.0.0 release

What's Changed

โ„น๏ธ Note, this release has so many new features and functions, that it is mandatory to start over fresh with the USER_SETTINGS file!

New features

  • MQTT support added. See the wiki for more info on how to use MQTT, for example with home automation systems

  • Cellmonitoring added. It's now possible to see each cells voltage in the webserver page. The voltages also change color incase a deviation is noticed. Now you can keep a much more watchful eye on each cell!
    bild

  • Battery Settings saved in the webserver page are now stored permanently to flash, and reused on every reboot.

  • The emulator now supports connecting external chargers to the battery, for use with emergency generator charging.

Improvements

  • Application starts 500ms faster on bootup
  • Wifi now reconnects incase network connection is lost
  • Webserver values are now shown in kW instead of W when they go over 1000 (ex 12300W -> 12.3kW)
  • Tesla S/3/X/Y battery:
    • Temperature values are more accurate, decimal is no longer discarded!
    • Error debug message added incase inverter blocks contactor closing sequence
    • Fixed an issue where some LFP packs would show high voltage outputs as thousands of volt instead of 350
    • Reworded SOH% calculation unavailable as a warning instead of error
  • Nissan LEAF battery:
    • CAN sending route optimized for lower CPU usage
    • Added safety for LB_Empty signal. Discharging is now stopped incase this flag is set.
  • Protocol, BYD CAN
    • The announced inverter brand is now stored into memory, and printed out to USB
  • Protocol, Pylon CAN
    • Fixed an issue where Sofar inverters would be blocked from charging/discharging

New Contributors

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v4.4.0...v5.0.0

Energy Storage - Battery - C++
Published by dalathegreat about 1 year ago

Battery-Emulator - v4.4.0 release

What's Changed

Batteries

  • Added support for new batteries:
  • Nissan LEAF: Improved accuracy on Watt, Voltage & Amperate values
  • Nissan LEAF: Added heated battery handling
  • Tesla: Added SOH% value and kWh remaining value now shows correctly

Hardware

  • Access point wifi broadcasting can now be turned off
  • OTA updates are more stable (CAN communication stopped while OTA in progress)
  • Webserver can now show more info
    • Version number
    • Wifi signal strength added (dBm value)
    • Reboot button added
    • Settings page added, Battery settings can be edited on the fly!
      296858176-d0c27a72-94a2-46d2-8926-a26c4f88759e
      296858077-1aa6a828-0eb1-4f6d-b94b-eae83e3c8cb9

All Pull Requests to this version:

New Contributors

Full Changelog: https://github.com/dalathegreat/Battery-Emulator/compare/v4.3.0...v4.4.0

Energy Storage - Battery - C++
Published by dalathegreat over 1 year ago

Battery-Emulator - v4.3.0 release

What's Changed

The 4.3.0 release brings some stability fixes for Tesla packs and improvements to Webserver.

Full Changelog: https://github.com/dalathegreat/BYD-Battery-Emulator-For-Gen24/compare/v4.2.0...v4.3.0

Energy Storage - Battery - C++
Published by dalathegreat over 1 year ago

Battery-Emulator - v4.2.0 release

What's Changed

The Battery-Emulator can now act as a Webserver! You can now remotely check in on what the LilyGo is reporting, and also update software over the air! How cool is that? ๐Ÿ˜Ž When the setting 'WEBSERVER' is enabled, Wifi settings can be tweaked in the 'USER_SETTINGS.cpp' file. For more info on what this feature brings, see the pull request description

Got a tricky inverter that doesn't like to see automotive CAN messages on the same bus as inverter messages? No worries, you can now use two LilyGo's at the same time! One connected to the battery, the other to the inverter, these then share data between each other via the RS485 pins. Elegant solution to a tricky problem! For more info on how to use this feature, see the pull request description

Inverters

Batteries

  • Tesla
    • Misleading min/max voltages removed from USB printout
    • Accuracy improved on Amperage value reported by battery
    • Contactor closing skipped if inverter says not OK to proceed

New Contributors

Full Changelog: https://github.com/dalathegreat/BYD-Battery-Emulator-For-Gen24/compare/v4.1.0...v4.2.0

Energy Storage - Battery - C++
Published by dalathegreat over 1 year ago

Battery-Emulator - v4.1.0 release

What's Changed

This update fixes some bugs for Solax & Fronius inverters, along with some battery fixes for Tesla & Nissan packs.

Inverters

Batteries

  • Added a compilation warning incase user tries compiling without a battery specified in USER_SETTINGS.h
  • Tesla: Tweaked LFP cell voltage limits from user feedback
  • Tesla: Charge power now ramped down when SOC% approaches 100%
  • Nissan LEAF: Added SOC% plausibility detection. Incase SOC% sent by battery no longer makes sense, charge/discharge stops.

Full Changelog: https://github.com/dalathegreat/BYD-Battery-Emulator-For-Gen24/compare/v4.0.0...v4.1.0

Energy Storage - Battery - C++
Published by dalathegreat over 1 year ago

Battery-Emulator - v4.0.0 release

What's Changed

โš ๏ธ NOTE: Due to the refactoring and addition to new parameters in USER_SETTINGS.h, it is required to start with a fresh user settings file when taking this release into use! โš ๏ธ

  • The code now has been refactored to be more user friendly (Thanks to @lenvm ๐Ÿ‘)
  • The entire project now has pre-commit code formatting checks in place (Thanks to @lenvm ๐Ÿ‘)
  • Github Actions added, all possible combinations of inverters/batteries now tested so that they compile, by @lenvm in https://github.com/dalathegreat/BYD-Battery-Emulator-For-Gen24/pull/84 This improves code quality in the long run.
  • Min/Max voltage now uses global value for all inverters to save memory

Inverters

  • BYD CAN: This PR adds a new parameters (MAXCHARGEAMP & MAXDISCHARGEAMP) to the USER_SETTINGS.h file
    281544935-08cb6d76-f384-4eb4-b08b-7a674d012362
    • You can now specify the max charge A and discharge A that will be sent over BYD CAN protocol. Some inverters did not like having over 30.0A available, so now you can restrict the value!
    • Also removed the blocking of some CAN messages in BYD can when the FAULT state is active. This was not needed.

Batteries

  • Added a new Test Mode. Now you can enable a fake battery to test your inverter without a real battery on CAN bus. This can be enabled in USER_SETTINGS.h , by uncommenting the line #define TEST_FAKE_BATTERY

    • When enabled, the values set in TEST-FAKE-BATTERY.cpp will be sent towards your inverter of choice.
    • While in this test mode, the LED on the board will cycle thru all RGB values, letting you know you are in a special mode.
      VID20231115190406(1)
  • Tesla batteries

    • Fixed a bug where Amp value was scaled incorrectly, causing inverters to report wrong W
    • Fixed contactor opening for fault scenarios, the known working delay for sending 0x221 messages copied from pelle_c!
    • Debug printout made easier to readd

Full Changelog: https://github.com/dalathegreat/BYD-Battery-Emulator-For-Gen24/compare/v3.5.0...v4.0.0

Energy Storage - Battery - C++
Published by dalathegreat over 1 year ago

Battery-Emulator - v3.5.0 release

What's Changed

  • The entire project now has a proper folder structure, instead of having all files in one messy folder. See link for more info
  • A GitHub Action is now added, to check that the Arduino sketch compiles. This action is performed on each push/pull request.

Inverters

  • Luna2000 Modbus RTU protocol added. This is still work in progress, but testing with Huawei inverters can now begin!
  • Inverters using BYD CAN should now show correct kWh size (BYD 19.3 instead of 5.1 for example)
    bild
  • Alternate Pylon CAN "-1" message sending added, needed for some Sofar inverters
  • Sofar CAN protocol added! Testers welcome :) ( Sofar CAN, extended protocol V1.0.001 20201106 )

Batteries

  • iMIEV battery support improved, all values now mapped ๐Ÿ’ช
  • Tesla Model 3 battery support improved
    • Autodetect LFP or NCA/NCM chemistry. ๐Ÿ”‹ These two battery types have different voltage limits, and the code now can select the correct limits automatically
    • 50 new fault codes added! โš ๏ธ The error matrix from 0x3AA is now fully decoded, and the software will alert you if one of them is triggered. Example, "ERROR: Pack discharge current is above the safe max discharge current limit!" and another example, "ERROR: shunt current reading is not available"
    • RealSOC now visible in the USB printout. Previously this value was overwritten instantly by the rescaled value heading towards inverter

Pull requests included

New Contributors

Full Changelog: https://github.com/dalathegreat/BYD-Battery-Emulator-For-Gen24/compare/v3.4.0...v3.5.0

Energy Storage - Battery - C++
Published by dalathegreat over 1 year ago

Battery-Emulator - v3.4.0 release

What's Changed

  • New inverter protocol added! ๐ŸพBYD Battery-Box H, 7x modules. This CAN protocol can be used with the SMA Sunny Boy Storage inverter
  • USB Serial printout now runs much faster! ๐Ÿš€ 9600 -> 115200 , remember to set the new baud rate in the serial monitor window!
    bild
  • Tesla batteries
    • Improved serial printout for Tesla batteries
  • Nissan LEAF batteries:
    • Fixed an issue where signed values wouldn't be handled properly
    • USB printing made more user friendly with correct scalings
    • Fixed an issue where the Charging/Discharging/Idle field would show wrong values

Pull requests included

Energy Storage - Battery - C++
Published by dalathegreat over 1 year ago

Battery-Emulator - v3.3.0 release

This update fixes some LEAF issues, and improves value scaling on Solax inverters

What's Changed

  • Solax inverters:
    • Current on screen now scaled properly
    • Power value now scaled properly
    • Improved CAN mappings and sending routine
  • Nissan LEAF batteries:
    • Current value (A) now shows real current, previously value was 2x
    • Power value (W) now shows real power, previously value was 2x
    • Fixed an issue where using Leafspy at the same time could cause Yellow LED on the board, active polling is now paused 100seconds incase it detects Leafspy in use.
    • USB output only shows the actual min/max temperature values sent towards inverter

Example of Solax inverters, previous software version and newest one:
bild

Full Changelog: https://github.com/dalathegreat/BYD-Battery-Emulator-For-Gen24/compare/v3.2.0...v3.3.0

Energy Storage - Battery - C++
Published by dalathegreat over 1 year ago

Battery-Emulator - v3.2.0 release

This update fixes some issues for Tesla Model 3/Y batteries. Model Y batteries are now marked as stable! โœ…

What's New

  • Tesla: CAN still alive now read from BMS message
  • Tesla: Add contactor opening incase of a FAULT situation
  • Tesla: Added aditional HVIL safety
  • Tesla Charge max value for Tesla Model3/Y now estimated
  • Tesla & Nissan LEAF: Cell voltages now mapped to inverter values

Energy Storage - Battery - C++
Published by dalathegreat over 1 year ago

Battery-Emulator - v3.1.0 release

This update adds support for Tesla Model 3 batteries. These batteries are now marked as stable! โœ…

What's changed

  • Fixed a bug where Tesla Model 3 limits were sent as Amperage instead of Watts
  • Added cell voltage monitoring and safeties for Tesla Model 3 packs
  • HVIL state is now human readable for Tesla Model 3 packs

Energy Storage - Battery - C++
Published by dalathegreat over 1 year ago

Battery-Emulator - v3.0.0 release

This update improves usability. This update adds a new file, 'USER_SETTINGS.h' that now contains all the user configurable settings. You will no longer need to change individual header files when compiling for your setup, all changes are localized to one place! This also makes it easier to update to newer versions in the future, just make a backup of your 'USER_SETTINGS.h' file!

What's changed

  • Added 'USER_SETTINGS.h' for easier configuration
  • Fixed an issue that caused SOLAX_CAN not to compile
  • Tesla Model 3 batteries: Fixed an issue that contactors would not close. Also fixed an issue with board getting stuck in error state.

Energy Storage - Battery - C++
Published by dalathegreat over 1 year ago

Battery-Emulator - v2.6.0 release

This update adds support for Solax and FoxESS inverters. This is a highly recommended update!

What's changed

  • Added support for Solax X1 / X3 inverters โœ…
  • Added support for FoxESS H1/H3 inverters โœ… (note, second CAN channel needed)
  • Added support for dual channel CAN using secondary MCP2515 chip, thanks @rjsc ๐Ÿฅณ https://github.com/dalathegreat/BYD-Battery-Emulator-For-Gen24/wiki/FoxESS-H1---H3
  • Added support for PWM control over contactors, thanks @rjsc ๐Ÿฅณ
  • Nissan LEAF: Fixed a bug that caused the available charge power to overflow, causing slow charging

Energy Storage - Battery - C++
Published by dalathegreat over 1 year ago

Battery-Emulator - v2.5.0 release

This release adds support for Tesla Model 3 packs โœ… (also HVIL bypassing which is NOT recommended, see wiki)

What's changed

Energy Storage - Battery - C++
Published by dalathegreat over 1 year ago

Battery-Emulator - v2.4.0 release

This release improves safety by reducing the risk for crashes, plus some minor tweaks. This is a highly recommended update!

What's changed

Energy Storage - Battery - C++
Published by dalathegreat over 1 year ago

Battery-Emulator - v2.3.0 release

This release adds basic compatibility for new batteries. It also improves support for Nissan LEAF batteries

What's changed

Known issues

Energy Storage - Battery - C++
Published by dalathegreat over 1 year ago

Battery-Emulator - v2.2.0 release

This release adds compatibility for a new inverter!

New features:

  • GoodWe models "ET/BT & EH/BH & EHB" are now marked as compatible after getting user feedback โœ…

Known issues:

  • Disconnecting CAN cables while system is running will result in board freezing #27

Energy Storage - Battery - C++
Published by dalathegreat over 1 year ago

Battery-Emulator - v2.1.0 release

This release adds the following features:

  • Sungrow SH-##-RT/RS inverters are now marked as stable โœ… ๐Ÿฅณ
  • BYD CAN now stops transmitting CAN messages incase BMS raises a fault. This is done to signal to the inverter that charging/discharging needs to stop. CAN mapping scaling for BYD CAN also adjusted after user testing
  • The supported inverter list has been expanded with more inverters that most likely work with the code
  • Automatic contactor closing via LilyGo now implemented โœ… Added a wiki section on how to use this feature with LEAF batteries
  • Basic Chademo support added
  • Updated images on how to power the LilyGo board. Recommended way now is via USB port, the external 5-12V connector can cause the board to crash. So USB will be the only recommendation from now on!
  • The LED on the board now lights up blue ๐Ÿ”ต , incase CAN wiring is incorrect on startup. Possible causes are swapped High/Low pair, wire disconnected, or wrong terminating resistance. Check CAN wiring if you see this blue LED!
    bild

Energy Storage - Battery - C++
Published by dalathegreat almost 2 years ago

Battery-Emulator - v2.0.0 release

This is a recommended update for all users. It adds the following functionality

  • LEAF batteries: CRC checking for CAN messages. Status LED goes yellow if too many CAN messages get corrupted
  • LEAF batteries: Cell voltage monitoring. If a cell goes too low or too high, the inverter stops charge/discharge. The voltage limits can be customized, default 2700mV min, 4250mV max
  • Sungrow Inverter support (โš ๏ธ Untested)
  • Solax Inverter support (โš ๏ธ Untested)
  • Tesla Model 3 Battery support (โš ๏ธ Untested)
  • Renault Zoe/Kangoo Battery support (โš ๏ธ Untested)

Energy Storage - Battery - C++
Published by dalathegreat almost 2 years ago

Battery-Emulator - Initial release

Initial release ๐Ÿ”‹

  • Supports LEAF batteries with Fronius Gen24

Energy Storage - Battery - C++
Published by dalathegreat almost 2 years ago