V2 Model S Module Controller

V2 Firmware History:

Version 1.75

  • Added check for Enphase Envoy and to retrieve power values for Enphase if found.
    • E or e toggles Enphase search and data retrieval.

Version 1.79

  • Revised to use EITHER HEATENABLE or CHARGENABLE for frequency shift.
    • If CUTOFF=RESUME use charge enable
    • If neither are equality they operate normally.

Version 2.00

  • Major upgrade adding a clock scheduler for AC grid input control

Version 2.01

  • Fixed bug bricking device if settings.parallel=0.
  • Also attempt connecting to wifi again if first attempt fails.

Version 2.02

  • Added preliminary code to support ShellyEM device
  • Tweaked balancing a bit.

Version 2.03

  • Constrain SOC to between 0 and 100
  • Added code to auto reset serial to Tesla modules if there are comm errors for too long.

Version 2.05

  • Show good/bad packets for each module
  • Add additional mode to toggle module ground with heat enable pin

Version 2.06

  • Added an additional mode (on by default) that will try to freq. shift then open the contactors if the comm to modules is faulty.
    • This will then be reverted and the contactors closed again if communications come back.

Version 2.07

  • Added ability to send UDP frames to a remote host for capture of logging to a persistent place.

Version 2.11

  • Added ability to wirelessly connect with extension boards that are themselves connected to actual modules

Version 2.12

  • Fixed extension code
  • Make S reset extensions too (they’ll automatically come back)

Version 2.13

  • Fixed some additional oddities with extensions
  • Added a setting to expect extensions and fault if they don’t appear.

Version 2.14

  • Added ability to use a full TeslaBMS system as an extension to another full system.
    • This allows redundant contactors, etc but unified display

Version 2.15

  • Changed the way SOC works quite drastically.
    • Now the top and bottom 20% are based on voltage instead of current.
    • It also updates the AH setting to match which helps to reset the current accumulation to match the actual pack.

Version 2.17

  • Added additional debugging output that can be picked up by the RPi units.
  • Added an SOC drifting function which will slowly drift SOC to the proper value when the charge gets to the knees of the charge curve.
    • This can help to cover up current drifting and pack capacity mismatch.

Version 2.18

  • Force CHARGE Enable to LOW any time the freq cycling routine is run.
    • This is run just before the contactors are opened which also has the pleasant side effect of turning charging off at the same time.

Version 2.19

  • Fixed up variance fault detection (along with better status output when it happens)
  • Try to better reset things when the extension system is turned off.
  • Also a few tweaks to pack voltage calcs.

Version 2.20

  • Added ability to fake having modules connected (for testing purposes)
  • Bug fixes
  • Added header showing whether this system is the main or an extension

Version 2.21

  • Added more debugging stuff that can be displayed on the GTK app
  • Added ability to directly send MQTT from this board.
    • This allows a system without relying on the RaspberryPi.

Version 2.22

  • Fixed current blanking glitch
  • Added output to show when current sensor is not responding
  • Added a check for bad_alloc in UDP code that will hopefully prevent random reboots.

Version 2.23

  • Fixed a monitoring issue that could happen after 49 days of continuous uptime.
  • Added additional checks for module comm to be extra sure that things are still working.

Version 2.24

  • Lengthened time required for module timeout from 10 to 20 seconds.
  • Changed wifi init to be asynchronous and instead check periodically.
    • Now there is no waiting when trying to connect to wifi.

Version 2.25

  • More debugging output (shown on Raspberry Pi app)

Version 2.81

  • Added a new supported board (ESP32-S3 version)
  • Added webpage hosting to be able to view stats from any PC, tablet, etc.
    • (In webbrowser go to teslabms.local)
  • Added telnet capability to be able to get text console over the network
    • (also teslabms.local)
  • Better cell balancing
  • Added an output of the reason contactors were opened
    • (viewable in debugging screen of Raspberry Pi app)

Version 2.82

  • Added the ability to set a static IP address instead of requiring a DHCP server.


Raspberry Pi Display Version History:


  • Added functionality to support use of the display with our Model 3 full battery controller.
  • Display voltage and temperature alarms directly on the main screen
  • Fix power log so it uses the set charge and discharge ranges
  • Added the ability to use any MQTT server, not just Amazon.
  • Added a debugging screen to assist in diagnosis.
    • Many useful technical values are found here.
  • Behind the scenes clean up
  • Fixed a mistake in debugging data display.
  • Allow for resolution scaling when used without the normal display
  • Changed the background image
  • Fixed up some display glitches
  • Fixed up a lockup possible when doing DNS look ups
  • Added ability to directly attach USB from the V2 to the Rpi4
  • Added more accurate voltage and current display.
  • Added more debugging info to the debug screen
  • More debugging
    • Addition of reason why contactors last opened
  • Added CPU0/1 reason for reset.
    • This allows for tracking why the reboot occurred.
  • Implemented log file rotation.
    • Previously log files could get excessively large.
    • Made log file loading faster by only loading necessary data.
  • Fixed potential lockup that could happen when displaying zero power
  • Fixed direct USB connection
  • Moved display of average voltage up a little and added more explanation about what it shows.
  • Moved fault display and made it MUCH larger.
    • This will make it very clear when a fault happens.
  • No longer close the app when resetting the log file
  • Made the background image a lot darker to increase visibility
  • Changed text sizes and colors for better visibility.
  • Fixed a crash that could happen in configuration screens
  • Added the ability to turn the cursor on/off.
Verified by MonsterInsights