battery-emulator

This revolutionary software enables EV battery packs to be easily reused for stationary storage in combination with solar inverters

https://github.com/dalathegreat/battery-emulator

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.3%) to scientific vocabulary

Keywords from Contributors

medical-imaging distributed transformers optimism energy-system-model packaging projects batteries interactive mesh
Last synced: 10 months ago · JSON representation

Repository

This revolutionary software enables EV battery packs to be easily reused for stationary storage in combination with solar inverters

Basic Info
  • Host: GitHub
  • Owner: dalathegreat
  • License: gpl-3.0
  • Language: C++
  • Default Branch: main
  • Homepage:
  • Size: 31.8 MB
Statistics
  • Stars: 1,682
  • Watchers: 88
  • Forks: 241
  • Open Issues: 113
  • Releases: 79
Created over 3 years ago · Last pushed 10 months ago
Metadata Files
Readme Contributing License Code of conduct

README.md

Battery-Emulator ⚡🔋

GitHub release (with filter) GitHub Repo stars GitHub forks GitHub actions Static Badge

What is Battery Emulator?

Many manufacturers sell home battery systems to enable homeowners to store power collected from the grid, or renewable sources, to use at times when electricity demand is higher. However almost all of these home battery systems charge a high cost for every kilowatt hour (kWh) of capacity you buy.

At the same time, EV manufacturers have been putting high capacity battery packs into their cars, with no firm plan for what should happen to those batteries if the car is damaged in a crash, or reaches the end of its life as a vehicle.

Battery Emulator enables EV battery packs to be repurposed for stationary storage. It acts as a translation layer between the EV battery and the home inverter. This makes it extremely cheap and easy to use large EV batteries in a true plug'n'play fashion!

[!CAUTION] Working with high voltage is dangerous. Always follow local laws and regulations regarding high voltage work. If you are unsure about the rules in your country, consult a licensed electrician for more information.

Quickstart guide 📜

Installation basics 🪛

  1. Connect your Battery Emulator hardware to your EV battery
  2. Connect your Battery Emulator hardware to your inverter
  3. Wire up high voltage cable between the inverter and the battery
  4. Add a low voltage power supply to your Battery Emulator hardware
  5. Configure any additional requirements to allow Battery Emulator to switch on your EV battery (also referred to as 'closing contactors')
  6. Enjoy a big cheap grid connected battery!

For examples showing wiring, see each battery type's own Wiki page. For instance the Nissan LEAF page

How to compile the software 💻

Start by watching this quickstart guide

IMAGE ALT TEXT HERE

  1. Download the Arduino IDE: https://www.arduino.cc/en/software
  2. Open the Arduino IDE.
  3. Click File menu -> Preferences -> Additional Development -> Additional Board Manager URLs -> Enter the URL in the input box: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json and click OK.
  4. Click Tools menu -> Board: "...." -> Boards Manager..., install the esp32 package by Espressif Systems (not Arduino ESP32 Boards), then press Close.

NOTE: The ESP32 version depends on which release of Battery-Emulator you are running! See the Release Notes for more info on which version to use with the current version (Suggested ESP32 version X.Y.Z)

bild

  1. The Arduino board should be set to ESP32 Dev Module and Partition Scheme to Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) (under Tools -> Board -> ESP32 Arduino) with the following settings:

ArduinoSettings

  1. Select which battery type you will use, along with other optional settings. This is done in the USER_SETTINGS.h file.
  2. Copy the USER_SECRETS.TEMPLATE.h file to USER_SECRETS.h and update connectivity settings inside this file.
  3. Press Verify and Upload to send the sketch to the board. NOTE: In some cases, the LilyGo must be powered through the main power connector instead of USB-C when performing the initial firmware upload. NOTE: On Mac, the following USB driver may need to be installed: https://github.com/WCHSoftGroup/ch34xser_macos

NOTE: If you see garbled messages on the serial console, change the serial console to match the baud rate to the code, currently 115200.

NOTE: If you see the error Sketch too big then check you set the Partition Scheme above correctly.

This video explains all the above mentioned steps: https://youtu.be/_mH2AjnAjDk

Linux Development Environment Setup

In addition to the steps above, ESP32 requires a dependency for a Python module, pyserial install using the cli.\ python3 -m pip install pyserial

If you're using Ubuntu , use apt to manage the dependencies of arduino:\ pyserial install: sudo apt install python3-serial

Arduino AppImage must be set as executable after downloading to run correctly\ example: chmod 775 arduino-ide_2.3.3_Linux_64bit.AppImage

Also you might need to install FUSE to run appimages sudo apt install libfuse2

Dependencies 📖

This code uses the following excellent libraries: - adafruit/Adafruit_NeoPixel LGPL-3.0 license - ayushsharma82/ElegantOTA AGPL-3.0 license - bblanchon/ArduinoJson MIT-License - eModbus/eModbus MIT-License - ESP32Async/AsyncTCP LGPL-3.0 license - ESP32Async/ESPAsyncWebServer LGPL-3.0 license - miwagner/ESP32-Arduino-CAN MIT-License - pierremolinaro/acan2515 MIT-License - pierremolinaro/acan2517FD MIT-License

It is also based on the information found in the following excellent repositories/websites: - https://gitlab.com/pelle8/inverterresources //new url - https://github.com/burra/bydbattery - https://github.com/flodorn/TeslaBMSV2 - https://github.com/SunshadeCorp/can-service - https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3 - https://github.com/dalathegreat/leafcanbusmessages - https://github.com/rand12345/solaxcan_bus - https://github.com/Tom-evnut/BMWI3BMS/ SMA-CAN - https://github.com/FozzieUK/FoxESS-Canbus-Protocol FoxESS-CAN - https://github.com/maciek16c/hyundai-santa-fe-phev-battery - https://github.com/ljames28/Renault-Zoe-PH2-ZE50-Canbus-LBC-Information - Renault Zoe CAN Matrix https://docs.google.com/spreadsheets/u/0/d/1Qnk-yzzcPiMArO-QDzO4a8ptAS2Sa4HhVu441zBzlpM/edit?pli=1#gid=0 - Pylon hacking https://www.eevblog.com/forum/programming/pylontech-sc0500-protocol-hacking/

Like this project? 💖

Leave a ⭐ If you think this project is useful. Consider hopping onto my Patreon to encourage more open-source projects! As a bonus, you will get access to the Discord server, where we hangout, develop, support, share, discuss etc. all things related to DIY EV storage solutions. See you on the server? ;)

<------ Click here to learn more!

image

Owner

  • Name: Daniel Öster
  • Login: dalathegreat
  • Kind: user
  • Location: Vaasa, Finland
  • Company: Dala's EV Repair

📜 Automation Engineer (Bsc), 🌱 Plant based ⚙️ Reverse engineering specialist 🔋🚗 Extending Electric vehicle lifecycles

GitHub Events

Total
  • Fork event: 93
  • Create event: 314
  • Release event: 32
  • Issues event: 478
  • Watch event: 606
  • Delete event: 272
  • Member event: 7
  • Issue comment event: 1,318
  • Push event: 1,247
  • Pull request review comment event: 364
  • Pull request review event: 628
  • Gollum event: 1,062
  • Pull request event: 839
Last Year
  • Fork event: 93
  • Create event: 314
  • Release event: 32
  • Issues event: 478
  • Watch event: 606
  • Delete event: 272
  • Member event: 7
  • Issue comment event: 1,318
  • Push event: 1,248
  • Pull request review comment event: 364
  • Pull request review event: 629
  • Gollum event: 1,062
  • Pull request event: 840

Committers

Last synced: 11 months ago

All Time
  • Total Commits: 2,558
  • Total Committers: 58
  • Avg Commits per committer: 44.103
  • Development Distribution Score (DDS): 0.419
Past Year
  • Commits: 1,529
  • Committers: 42
  • Avg Commits per committer: 36.405
  • Development Distribution Score (DDS): 0.506
Top Committers
Name Email Commits
Daniel Öster d****t@g****m 1,485
Jaakko Haakana j****o@h****t 189
Cabooman 8****n 101
amarofarinha 1****a 89
lenvm l****m 88
mvgalen m****n@g****m 76
josiahhiggs 7****s 55
rha r****o@o****g 52
wjcloudy 5****y 34
Brett Christensen b****n@r****m 33
Jakob Löw j****b@m****e 31
pre-commit-ci[bot] 6****] 27
laughingguffly e****m@g****m 27
No-Signal m****t@h****d 26
Steven Maresca s****a@g****m 23
LevinSwe l****m@h****m 21
nmainil 1****l 20
Ole o****d@l****k 18
Jonny j****y@j****m 15
Christopher Obbard o****c@g****m 15
Bernhard Urban-Forster l****m@g****m 13
rjsc r****t@g****m 13
freddanastrom f****k@l****e 10
itpr-gwis2 b****2@i****e 9
Paul Brand p****d@g****m 8
József Nagy 1****o 7
James Brookes jb@j****m 5
Jamie Jones j****e@j****k 5
mathl79 m****l@g****t 4
Gerwaz3 g****z@p****l 4
and 28 more...

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 442
  • Total pull requests: 1,231
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 4 days
  • Total issue authors: 230
  • Total pull request authors: 62
  • Average comments per issue: 1.8
  • Average comments per pull request: 0.72
  • Merged pull requests: 994
  • Bot issues: 0
  • Bot pull requests: 14
Past Year
  • Issues: 329
  • Pull requests: 923
  • Average time to close issues: 16 days
  • Average time to close pull requests: 4 days
  • Issue authors: 167
  • Pull request authors: 45
  • Average comments per issue: 1.28
  • Average comments per pull request: 0.73
  • Merged pull requests: 733
  • Bot issues: 0
  • Bot pull requests: 11
Top Authors
Issue Authors
  • dalathegreat (39)
  • havrla (13)
  • pmajor021 (8)
  • jakub8109 (7)
  • GoSmartEV (7)
  • Jaywatts (6)
  • pazdzierzz (6)
  • dvbhannes (6)
  • obbardc (6)
  • lenvm (6)
  • malcolmputer (6)
  • StarkJohan (5)
  • DeadmaroZ-TLOTL (5)
  • HansNetcom (5)
  • yngndrw (5)
Pull Request Authors
  • dalathegreat (691)
  • kyberias (80)
  • lenvm (63)
  • mvgalen (43)
  • amarofarinha (37)
  • No-Signal (31)
  • wjcloudy (22)
  • Cabooman (20)
  • obbardc (14)
  • jonny5532 (13)
  • StarkJohan (13)
  • josiahhiggs (12)
  • M4GNV5 (12)
  • greenoem (11)
  • gwk1 (11)
Top Labels
Issue Labels
Feature request (80) bug (72) Triage (34) Troubleshooting install (27) question (19) enhancement (18) help wanted (11) crash (9) Connectivity (6) hardware (2) invalid (1) dependencies (1) good first issue (1) documentation (1) wontfix (1)
Pull Request Labels
enhancement (8) dependencies (5) help wanted (4) hardware (4) github_actions (2) bug (1) documentation (1)

Packages

  • Total packages: 2
  • Total downloads: unknown
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 144
proxy.golang.org: github.com/dalathegreat/battery-emulator
  • Versions: 72
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 10 months ago
proxy.golang.org: github.com/dalathegreat/Battery-Emulator
  • Versions: 72
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 10 months ago

Dependencies

.github/workflows/compile-arduino-sketch.yml actions
  • actions/checkout v4 composite
  • arduino/compile-sketches v1 composite