Code Monkey home page Code Monkey logo

diybmsv4's Introduction

diyBMS v4

Version 4 of the diyBMS

Do it yourself battery management system for Lithium ion battery packs/cells

More discussion Open Energy Monitor Forum

If you are looking for version 3 (obsolete) of this project take a look here

THIS REPOSITORY CONTAINS THE HARDWARE FOR THE SYSTEM

Videos on how to use and build

YouTube playlist for DIYBMS videos

Building & ordering the PCB from JLCPCB

If you order a PCB, please use my affiliate link to help support this project JLCPCB

Support

If you find the BMS useful, please consider buying me a beer, check out Patron for more information

https://patreon.com/StuartP

HARDWARE

This repository contains the hardware designs, generally in KiCad format. Unless you are changing the design, you don't need to use/install KiCad, just use the precompiled files.

The folder structure in the repository contains:

Controller Designs

  • ControllerCircuit - ESP32 controller board (newest design)
  • ESP8266ControllerCircuit - [legacy] the circuit board for the legacy ESP8266 based controller

Modules for Controller

  • ModuleV490-AllInOne - Latest multi cell monitoring solution, recommended for 8 to 16S cell configurations. No balancing, requires ModuleV490-PassiveBal passive balancer daughterboard if this is needed.
  • ModuleV490-PassiveBal - daughter board for the V490 multi-cell monitoring solution, provides 200mA per cell balance current, heatsink and fan control.
  • ModuleV450 - the latest SINGLE module design, using ATTINY1624 chip. Recommended for both hand soldering or mass production
  • ModuleV440 - [legacy] the module circuit board V4.40, final board using ATTINY841 chip
  • ModuleV400 - [legacy] the module circuit board V4.00, designed for easier hand soldering (larger parts)
  • ModuleV421 - [legacy] the module circuit board V4.21, designed for mass production using JLCPCB assembly service

If you use this coupon code when you place a JLCPCB order

JLC-Stuart

and this link

https://jlcpcb.com/RSZ

you will get a discount and I get a very small amount of credit for every 30 orders, which helps to support the cost of prototyping new designs and adding new features.

ESP32 Controller

The latest version of the controller uses an ESP32 and supports CANBUS, RS485, SD CARD logging, relays, SSR outputs, multiple inputs, AVR programmer and much more.

Although the hardware is complete, not all features are usable from the software, this will be developed and improved over time to make use of the hardware.

Bill of Materials

circuit board

Module V4.50

The latest version of the module hardware uses the ATTINY1624 chip - part of the tinyAVR2 range.

This board requires an UPDI programmer/device - see the instructions in the code repository for how to program the boards once built.

The parts are no smaller than 0805 size (about 2mm!) which is probably the smallest size you want to attempt to hand solder.

circuit board

Specifications are similar to the V4.40 board.

Module V4.40

V4.40 is the last board to use the ATTINY841 chip - V4.50 is the newest design if you are starting fresh.

circuit board

In addition, the hardware has a higher balance current, fuse and TVS diode to help with voltage spikes.
Most importantly, an external crystal has been added to the micro controller (attiny841) which means the device is more reliable in low voltage situations.

The balance current for V4.40 modules is as follows:

  • 1.27A at 4.2V (5.35W)
  • 1.21A at 4.0V (4.84W)
  • 1.13A at 3.75V (4.26W)

The module is physically larger than previous modules, this aids heat dispersal but also features a "snap off" external temperature daughter board for use in cell temperature monitoring.

You will also need to order these parts

CODE/SOFTWARE

Software and code for the modules and controller can now be found in a seperate repo

For the latest controller (ESP32) diyBMSv4ESP32

For the legacy controller (ESP8266) diyBMSv4Code

WARNING

This is a DIY product/solution so don’t use this for safety critical systems or in any situation where there could be a risk to life.

There is no warranty, it may not work as expected or at all.

The use of this project is done so entirely at your own risk. It may involve electrical voltages which could kill - if in doubt, seek help.

The use of this project may not be compliant with local laws or regulations - if in doubt, seek help.

License

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales License.

https://creativecommons.org/licenses/by-nc-sa/2.0/uk/

You are free to:

  • Share — copy and redistribute the material in any medium or format
  • Adapt — remix, transform, and build upon the material The licensor cannot revoke these freedoms as long as you follow the license terms.

Under the following terms:

  • Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
  • Non-Commercial — You may not use the material for commercial purposes.
  • ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
  • No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.

Notices: You do not have to comply with the license for elements of the material in the public domain or where your use is permitted by an applicable exception or limitation.

No warranties are given. The license may not give you all of the permissions necessary for your intended use. For example, other rights such as publicity, privacy, or moral rights may limit how you use the material.

diybmsv4's People

Contributors

actions-user avatar atanisoft avatar czarofak avatar dbainbridge avatar dependabot[bot] avatar mkranjcic avatar pyromaneact avatar stuartpittaway avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

diybmsv4's Issues

LM4040BIM3-2.5/NOPB Missing in BOM

The Part LM4040BIM3-2.5/NOPB is Missing the BOM

Also some parts are mentioned double

R1 C17414 C84376
R2 C95781
R2 C115316

And the pin headers

The BOM and the Schematic is missing for the ESPCircuit (pdf)

Thanks for your work

16 modules in a bank

When 16 modules are connected in a single bank, all the bank disappear.

This is caused by the overflow of the module address in code PacketProcessor::incrementPacketAddress()

Can you add an "cpl" file?

Hello

I would like to try the JLPCB SMT service

Missing .cpl file to proceed.

Tried with kicad but can't view components on 3d view, also on export off cpl (csv) missing

No header row found, please include the below info in the header row. Designator, Mid X, Mid Y, Layer, Rotation.

Best regards
ArchGalileu

Current specs

Hey devs,

I came across DIY BMS on youtube, the other day. I am going to be starting a project shortly to make an EV go kart. I was contemplating using this BMS for my battery pack.

I am trying to build a 300A 72v battery. Would this BMS be sufficient? I cant seem to find any specs in any issues or docs here.

EDIT: Additionally, would this bms support regenerative braking?

Thanks!

doubled and missing items in bom?

https://ufile.io/ec2kpm55

Ordering is a nightmare because lcsc has many items out of stock so while making a list i found some doubles is that normal?
no labels on the last bom plz check this one that i uploaded i sould be right.
I can follow instruction but get confused easily with that kind of stuff

v4.csv

R17, R18 | 2K2

R23 | 2K2

CellModules_LCSC_BillOfMaterials.xlsx

r1

C17414 | 0805W8F1002T5E | Uniroyal Elec | 0805 |10k

C84376 | RC0805FR-0710KL | YAGEO | 0805 |10k

r2

C115316 | RS-05K1001FT | Guangdong Fenghua Advanced Tech | 0805 | 1k

C95781 | RC0805FR-071KL | YAGEO | 0805 | 1k

Comms Errors on ESP8266 controller - fixed with 1n4007

Hi all
Just wanted to post my problem and solution for others in case they run into it. I had been experiencing comms errors between the controller circuit and the cell modules on and off for some time. I am using around 2m of cat5 running the tx and rx on the blue and green pairs. I tried adding better grounding, more filter capacitance and other things. However I found adding a diode on the rx pin of the pro mini (d7) to the 3.3v line to clamp the serial data voltage coming back to fix the problem. I just used a 1n4007.

Maybe on a future version of this circuit this might be a addition to the hardware.
Hope this may help someone.
Thanks very much to Stuart for his design. I appreciate it.
Jason

Alternative Micro Controller just got compatible with Arduino IDE

Hi @stuartpittaway ,

Thank you for you great work for DIY powerwall community. I wanted to see if attiny can be replaced with this low cost micro which has built in USB.

While searching for suitable micro controller for my other project I came across following repo. It makes this low cost micro controller chip arduino compatible. I think it definitely looks better than Attinys. I think it can make process of programming it simpler. The pros are it has built in USB and it has up to 6 capacitative touch button inputs. Repo is brand new but it claims to make programming this chip easy. Repo is linked below:

https://github.com/DeqingSun/ch55xduino

for hardware design I found this:

https://hackaday.io/project/169671-ch552-dragon

Around 30 cents each and available at LCSC.

https://lcsc.com/search?q=ch552

Following video shows small footprint hardware with 2 touch buttons:

https://www.youtube.com/watch?v=EMDJe7JQ76g

What do you think? Please discuss.

Thanks.

Controller Schematic

I try use KiCAD to can see the controller board , but is complicated for new users , is possible share PDF schematic ?
Missing Schematic

50s configuration possible?

Hi and many thanks for the awesome work everybody, especially stuart!

I am planning to cascade 50 DIY BMS modules. As far as I understand that is possible? The whole pack will be turned on an off via an automotive contractor which is able to handle up to 1000V and a lot more amps then I will ever use...

How many modules can be cascaded? Anything I have to look out for?

Internal temperature reading problem (when splitting packs in multiple banks)

I've also a problem to report, by splitting the packs in to banks (bank0 and bank1).

The internal temperature on bank0 is updating permanent perfectly, while the bank1 is not updating the temperature. When I restart the controller, the current temperatures of both banks are listed correct on the webpage. Afterwards, only the bank0 is updating!

How to recover CellModules?

Hi,
i might have flashed the wrong version on my cell modules (v430 instead of v421). When I try to reflash, the green LED on the module flashes once and i get the error:

avrdude: try to set SCK period to 1.6e-05 s (= 62500 Hz)
avrdude: set SCK frequency to 32000 Hz
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: program enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

How can i revive these modules?

PCF8754 addresses

The PCF8754 comes in two versions for the footprint used in 4.21:
PCF8754T
PCF8754AT

This is so that you can have 16 on one bus, since each can be set to 8 different addresses.

The note in the source code is incorrect, it's not that there's a newer version, just that there are two versions, and the second is designated by "A" not "P".

I've changed my source as follows:
ESPController:main.cpp:90
//PCF8574A has an i2c address of 0x38 instead of the normal 0x20
//PCF857x pcf8574(0x38, &Wire);
PCF857x pcf8574(0x20, &Wire);

Since either chip can be used in any given installation, it might be worthwhile making it so they can both be supported, either through a configuration parameter, or automatically (test if 0x20 responds, if not, test if 0x38 responds).

FWIW, JLCPCB installed the PCF8574T (address 0x20) version on my boards with the default BOM provided in the project.

P indicates DIP16 package
T indicates SO16 package
TS indicates SSOP20 package

Sorry I didn't submit this as a pull request.

BOM Designator

Hi Stuart,

Love the look of this BMS and in the process of getting some boards assembled (I know its DIY but I just don't have the time nor patients to do all that soldering!) and when I upload the BOM to the suppliers system it wont allow me to go any further as there is no "Designator" column. Is this something you could send me please or upload to github?

Regards

parts list

Hi, sorry for opening this as a issue.

is there a part list available to buy components at one place? lcsc lists doesn't seems to work in BOM tool

Regards

Not reading all modules

In My configuration, I have 20 modules connected in chain, where first 16 are in bank0 and 4 in bank1.
At some point, data from bank1 stopped being read.
Green led flashes on bank0, and on last module in chain (4th in bank1) in circles.
All modules are in same room (current temp is 14 Celsius), and here you can see them showing different temperature and higher voltage:
image

Part of console log:

S:80/1/2241=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =E6E9/Q:15 # R:80/81/2241=F9B FBA FAF FA8 FB1 FA4 FAD FB4 FB2 FB1 F8E F8E F9B F9B F75 F83  =219F
Rules:000001111=N/F
S:80/3/2242=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =9CCD/Q:14 # R:80/83/2242=3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700  =B76C
S:80/1/2243=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =CE82/Q:15 # R:80/81/2243=F9B FBA FAB FA8 FB1 FA4 FAD FB4 FB2 FB1 F8E F8E F9B F9B F75 F83  =9BA4
Rules:000001111=N/F
S:80/1/2244=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =2A1A/Q:15 # R:80/81/2244=F9B FBA FAF FA8 FB1 FA4 FAD FB4 FB2 FB1 F8E F8E F9B F9B F75 F83  =ED6C
S:80/3/2245=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =7855/Q:14 # R:80/83/2245=3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700  =53F4
Rules:000001111=N/F
S:80/1/2246=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =271/Q:15 # R:80/81/2246=F9B FBA FAF FA8 FB1 FA4 FAD FB4 FB2 FB1 F8E F8E F9B F9B F75 F83  =C507
S:80/3/2247=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =503E/Q:14 # R:80/83/2247=3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700  =7B9F

Rules:000001111=N/F
S:80/1/2248=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =DB60/Q:15 # R:80/81/2248=F9B FBA FAF FA8 FB1 FA4 FAD FB4 FB2 FB1 F8E F8E F9B F9B F75 F83  =1C16
S:80/1/2249=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =4745/Q:15 # R:80/81/2249=F9B FBA FAF FA8 FB1 FA4 FAD FB4 FB2 FB1 F8E F8E F9B F9B F75 F83  =8033
Rules:000001111=N/F
S:80/3/224A=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =3D61/Q:14 # R:80/83/224A=3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700  =16C0
S:80/1/224B=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =6F2E/Q:15 # R:80/81/224B=F9B FBA FAF FA8 FB1 FA4 FAD FB4 FB2 FB1 F8E F8E F9B F9B F75 F83  =A858
Rules:000001111=N/F
S:80/1/224C=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =8BB6/Q:15 # R:80/81/224C=F9B FBA FAF FA8 FB1 FA4 FAD FB4 FB2 FB1 F8E F8E F9B F9B F75 F83  =4CC0
S:80/3/224D=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =D9F9/Q:14 # R:80/83/224D=3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700  =F258
Rules:000001111=N/F
S:80/1/224E=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =A3DD/Q:15 # R:80/81/224E=F9B FBA FAF FA8 FB1 FA4 FAD FB4 FB2 FB1 F8E F8E F9B F9B F75 F83  =64AB
S:80/3/224F=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =F192/Q:14 # R:80/83/224F=3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700  =DA33
Rules:000001111=N/F
S:80/1/2250=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =29B5/Q:15 # R:80/81/2250=F9B FBA FAF FA8 FB1 FA4 FAD FB4 FB2 FB1 F8E F8E F9B F9B F75 F83  =EEC3
S:80/1/2251=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =B590/Q:15 # R:80/81/2251=F9B FBA FAF FA8 FB1 FA4 FAD FB4 FB2 FB1 F8E F8E F9B F9B F75 F83  =72E6
Rules:000001111=N/F
S:80/3/2252=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =CFB4/Q:14 # R:80/83/2252=3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700  =E415
S:80/1/2253=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =9DFB/Q:15 # R:80/81/2253=F9B FBA FAF FA8 FB1 FA4 FAD FB4 FB2 FB1 F8E F8E F9B F9B F75 F83  =5A8D
Rules:000001111=N/F
S:80/1/2254=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =7963/Q:15 # R:80/81/2254=F9B FBA FAF FA8 FB1 FA4 FAD FB4 FB2 FB1 F8E F8E F9B F9B F75 F83  =BE15
S:80/3/2255=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =2B2C/Q:14 # R:80/83/2255=3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700 3700  =8D
Rules:000001111=N/F

Odd thing was that I have connected charger to batteries, and it did start to read from all modules, (this is on image, modules were dissipating power), with green light flashing rounding twice on bank0 + last module in bank1, and rounding twice on bank1. Later ti stopped again.

Let me know if I can somehow debug more.

I have reflashed all with version of firmware after you have fixed part with 16th module not being able to be in bank0.

Thank you

Feature Request

I would greatly appreciate the ability to adjust in the settings the graph size, ie max voltage it shows, for different battery chemistries. thanks

[Kicad] Missing Libraries like: EL3H7-G.lib

I'm tring to open the project but looks like that the libraries are missing.
I'm new on Kicad so I might do something wrong.

Steps to reproduce:

  1. Download & Install Kicad
  2. Open the project
  3. Tell Kicad to add the Simbols to the default library
  4. Open the schematic
  5. Get an error, files open but all symbols are missing

Display

In order to monitor cells voltage and temperature it would be nice to have small display shows total battery voltage, max cell temperature and min&max cell voltage.
I am planing to connect a TFT display to ESP8266 using TXD0 and RXD0 pins, but my knowledge with programming is very limited can you show me where should I make changes to export those values via serial port
thanks

Module repeating packets

I recently had an issue where the controller lost communication with all modules.
All modules appeared to be working except one which did not flash its green light suggesting it was not receiving valid packets. All the down stream modules however were flashing their green lights.

On examining the log the controller was receiving the same packet over and over again with the same payload and sequence number. On resetting the affected module everything worked normally again.

To try to work out how a module could repeat packets I looked in the code and saw in PacketProcessor::onPacketReceived(), that if a packet is received with an incorrect length, then the function exits before having copied the packet from 'receivebuffer' to 'buffer' and then onPacketReceived() will forward the packet contained in 'buffer' to the next module which will be the contents of the last packet received with correct length.

This explains how an old packet can be repeated, but it does not explain how all subsequent packets should fail also. I suspect the answer to that lies in PacketSerial.

I suggest in PacketProcessor::onPacketReceived() moving the memcpy() statement to before the length test will cause the bad packet to be forwarded rather than an out of sequence packet.

Sorry for plaguing you with so many issues :-)

ATTINY programming

HI Stuart,

I am building your DIY bms but got stuck on the programming of the attiny.
i programmed the wemos alread that worked great. but for the cellmoduel i do not have an usb isp programmer.
i tried using an arduino and already look at several place on how to doe this but i did not have any luck.
Do you have an instruction on how to program the cellmodule with an arduino or someone that explains this very clearly.

Kind Regards

What is stability of design, want to place large order of assembled boards

Hi Stuart. I have a hobby project and we want to use this board design. I ordered a small number from OSHPark that was based on master about a month ago. I just order parts from digikey and hand assembled 3 so I could test them. The only change on master I dont have is the opto resistor change to 220ohm. However I notice you have a branch with a lot of commits that looks optimized for ordering from jlcpcb, and judging from comments in the commit messages I think you placed an order at some point.

My question is, how stable is this design now? Is there a point (commit number) that in your opinion is stable enough and known working that I could use it to place an order? I would like to use as much of your design "off-the-shelf" as possible. I would like to avoid the need to make any changes using kicad if possible.

I understand you can make no guarantees etc. Just trying to get your opinion about the maturity or stability. For example if you think there is still some problem area being worked on and you want to warn me off. I can make another small board order and hand assemble some more but am really looking to doing a larger order of assembled boards at this point.

Thanks for sharing your work on this!

How much charging current can the BMS handle?

Hi Stuart,

thanks for all the work.

I know this project started with 18650 cells but Adam Welsh posted some weeks ago a video where he uses Calb battery cells. I was looking to build a bigger system and there are cells sold that can handle (up to and above) 176 A charging current.

I'm wondering how much current those resistors on the board can handle reliably over a long period of time in your experience. I think it doesn't make sense to buy big cells and then be limited by the bms. I couldn' find any info.

And if you don't mind me asking:
Is there a low temperature charging cut off in the sofware?

Thanks

NTC value

hello,
Can I use different NTC type (10k) for external temperature readings?
If not, I would like to change both the external and internal sensors, what changes should I make to read the temperature correctly using 10k NTC?

Export temperature data of external sensor with one decimal to mqqt and influxdb

In order to track your cells/packs it would be nice to get one decimals for the external probe temperature.

I guess changes are needed in Main.cpp (but I am actually a noob with programming...)
Line 518
poststring = poststring + ",exttemp=" + String(cmi[bank][i].externalTemp)+"i";
and
Line 644-647
if (cmi[bank][i].externalTemp!=-40) {
sprintf(buffer, "diybms/%d/%d/exttemp", bank,i);
sprintf(value, "%d", cmi[bank][i].externalTemp);
mqttClient.publish(buffer, 0, true, value);

Maybe also in packet_processor.cpp of the cell modules...

In v4.2 R19 and R20 are in the wrong place

R19 (thermistor) and R20 (47k resistor) in the v4.2 branch are in the wrong location.

They should be reversed as the R19 part is near the ATTINY instead of in the shunt resistors.

missing components JLCPCB

Hi

It's possible change this items outs of stock to other ones ?
R19
Original -> C86142 ( 4,7K +- 1% 4050 K +-1% 100 mW )
Remplace -> C77128 ( 4,7K +-0.5%. 4050 K +-5% 100 mW )
D1
Original -> C84139 ( 1,25V 18V 100 mA 20ppm/Cº )
Remplace -> C171461 (1,25V 15V 50 mA 50 ppm/Cº )

Thanks in advance

Packets out of sequence

With one cell module attached to my controller packets are received out of sequence. The packet received is always the response to the previous packet sent.

If in onPacketReceived() in the cell module I comment out
hardware.FlushSerial0();
and replace with
delay(8);
then packets are received in the correct sequence. It appears as if FlushSerial() is not working correctly.

Since no one else has had the same problem I assume there must be something about my environment that is different. I am compiling in PlatformIO with up to date master, although I have ported the controller to ESP32.

Placement file for controller

Hi Stuart,

Where is the component placement file for the controller please?

Ideally need it in an excel document.

Regards

Request for new relay rule

Many battery chargers/inverters have inputs which can be connected to a BMS.
Typically over voltage and over temperature of single packs is used for these AUX channels.
Also under voltage of a single pack is missing as a rule.

So it would be nice to have a new rule.

I would recommend the following rule:
"4. Individual cell under voltage (mV)"
Standard value : 3000

Also it would add unit for 2. (mV) and 3. (°C)

Thanks,
Sebastian

Please add polarity markings to silkscreen

After placing an order with jlcpcb, I received a request to confirm polarity of diodes and other parts. I checked the schematic and confirmed this with them, but it would be nice if the silkscreen included polarity, particularly for two pin polarized parts such as D2, D3, and D4.

“ Well got your order with many thanks~

Sorry to bother you, but there is one thing that we want to confirm with you about your SMT order before proceeding.

As shown below, we are not so sure about the polarity for the components below is correct or not, could you please kindly have a check?

Can we just make it as shown in the picture?”

8AC76F45-C961-4B5C-83BD-A99B04C58A1D

Cannot reset wifi on ESP bootup

When I try and use the wifi reset functionality my Wemos D1 mini isn’t rebooting.

After googling I found this https://forum.arduino.cc/index.php?topic=575737.0

Which states that “D3 is io 0 a boot configuration pin which should be HIGH for normal boot and LOW to start bootloader flashing mode -Juraj”

I’m guessing your controller is slightly different?

I think I’m going to add a delay to the setup code so I have a window in which to jumper the connection. I will let y’all know how it works.

-Derek

I added a 4 second delay right before it reads the GPIO. Worked like a charm.

delay(4000);
uint8_t clearAPSettings=digitalRead(D3);

-Derek

voltage referance

hello,

Its not realy a problem more a suggestion.
the voltage divider u use to measure the voltage of the cell can this be changed by (example REF5040AIDR )? the 2 resistor you use to measure the voltage will change when the temperature changes. and this will be the case when you put the pcb on the battery. this chip would be a much more stable reference ( REF5040AIDR ) and will not change when the temperature changes.

pleas tell me what you think of this.

Kind regard

Cell module brownouts

Two out of my twelve cell modules suffered with brownouts during bypass. Symptoms were, communication errors, sluggish or no response to commands, and EEPROM corruption. The corrupted EEPROM would have a good CRC implying RAM was corrupted and then written to EEPROM. I know the CRC must be good, because on the next power up it did not load default config and all parameters were random values.
The hardware was carefully checked, and fuses and flash memory reburned, and EEPROM cleared, with no change in behaviour. On starting a bypass it would fail again.

The brownouts were resolved by;
A/ Increasing the BOD threshold to 2.7V - This stopped the EEPROM corruption, but continual brownout resets during bypass made the module still unusable.

B/ Increasing the load resistance by inserting an additional 2R2 in each leg of the chain, making a total resistance of 5R5. This worked, but of course will reduce the effectiveness of bypass.

C/ Commoning the centre point of the 2 load resistor chains together and adding a 10uF ceramic cap from there to ground. This smooths off the rising and falling edges of the PWM, and worked effectively.

I settled on using solution 'C' as well as removing the line 'Settings::WriteConfigToEEPROM((uint8_t*)&myConfig, sizeof(myConfig),EEPROM_CONFIG_ADDRESS);' in the setup function. This statement is unnecessary since it is just writing default config, and during a brownout there is a potential this statement could be randomly executed to write bad data with a good CRC into the EEPROM which is the only way I can explain how the EEPROM got corrupted yet still had a good CRC.

Problems during charging

Hello,
While charging is turned on, controller does not read modules.
I have power of ESP connected from PC USB port, and 20S3P modules are connected to charger for this setup. Charger detects voltage difference and starts charging at 1A, at which point controller stops reading values from modules. Whole time leds on modules flash.
At begining they flash as they do not get packets (randomly timeouts),than 4 leds are cashing each other for some time, than 2 leds are chasing each other all the time (first two over bank0, than 2 over bank1) with delay of cca 5-6 modules distance between green light.
After turning charger off, packets start to flow in single instance (no double green lights), and it captures both bank0 and bank1, and after some time, bank1 is excluded (reported separate bug for this)

Here is console capture:

R:80/81/13D=EBE EF2 EC9 EEE EEA ED9 EE2 F02 F00 EF8 E77 E80 E99 E8E E96 EC7  =F837
S:80/1/13E=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =3446/Q:15 # R:80/81/13E=EBE EF2 EC9 EEE EEA EDD EE2 F02 F00 EF8 E77 E80 E99 E8E E96 ECC  =37C2
S:80/3/13F=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =6609/Q:14 # Rules:000001111=N/F
R:80/83/13F=3E00 3E00 3E00 3E00 3E00 3E00 3D00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00  =3C8C
S:80/1/140=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =4519/Q:15 # R:80/81/140=EBE EF2 EC9 EEE EEA EDD EE2 F02 F00 EF8 E7C E80 E99 E8E E96 EC7  =8450
S:80/1/141=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =D93C/Q:15 # Rules:000001111=N/F
R:80/81/141=EBE EEE EC9 EEE EEA ED9 EE2 F02 F00 EF8 E7C E80 E99 E8E E96 EC7  =4240
S:80/3/142=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =A318/Q:14 # R:80/83/142=3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00  =8B9D
S:80/1/143=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =F157/Q:15 # Rules:000001111=N/F
R:80/81/143=EBE EF2 EC9 EEE EEA ED9 EE2 F06 F00 EF8 E7C E80 E99 E8E E96 ECC  =BB02
S:80/3/144=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =DBA5/Q:14 # Rules:010001111=N/F
====== Here is charging turned on ========
Rules:010001111=N/F
S:80/1/145=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =89EA/Q:15 # S:80/1/146=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =3DA4/Q:14 # S:80/3/147=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =6FEB/Q:13 # S:80/1/148=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =E4B5/Q:12 # S:80/1/149=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =7890/Q:15 # S:80/3/14A=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =2B4/Q:14 # Rules:010001111=N/F
S:80/1/14B=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =50FB/Q:13 # S:80/3/14C=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =7A09/Q:12 # S:80/1/14D=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =2846/Q:11 # S:80/1/14E=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =9C08/Q:10 # S:80/3/14F=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =CE47/Q:9 # S:80/1/150=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =1660/Q:8 # S:80/1/151=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =8A45/Q:11 # S:80/3/152=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =F061/Q:10 # S:80/1/153=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =A22E/Q:9 # S:80/3/154=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =88DC/Q:8 # Rules:010001111=N/F
S:80/1/155=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =DA93/Q:7 # S:80/3/156=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =A0B7/Q:6 # S:90/1/157=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =46AA/Q:5 # S:90/3/158=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =CDF4/Q:4 # S:80/1/159=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =2BE9/Q:7 # S:80/3/15A=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =51CD/Q:6 # S:90/1/15B=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =B7D0/Q:5 # S:90/3/15C=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =9D22/Q:4 # S:80/1/15D=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =7B3F/Q:3 # S:80/3/15E=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =11B/Q:2 # Rules:010001111=N/F
S:90/1/15F=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =E706/Q:1 # S:90/3/160=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =99D3/Q:0 # S:80/1/161=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =7FCE/Q:3 # S:80/3/162=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =5EA/Q:2 # S:90/1/163=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =E3F7/Q:1 # S:90/3/164=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =C905/Q:0 # Rules:010001111=N/F
S:80/1/165=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =2F18/Q:3 # S:80/3/166=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =553C/Q:2 # S:90/1/167=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =B321/Q:1 # S:90/3/168=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =387F/Q:0 # S:80/1/169=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =DE62/Q:3 # S:80/3/16A=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =A446/Q:2 # Rules:010001111=N/F
S:90/1/16B=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =425B/Q:1 # S:90/3/16C=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =68A9/Q:0 # S:80/1/16D=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =8EB4/Q:3 # S:80/3/16E=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =F490/Q:2 # S:90/1/16F=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =128D/Q:1 # S:90/3/170=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =CAAA/Q:0 # Rules:010001111=N/F
S:80/1/171=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =2CB7/Q:3 # S:80/3/172=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =5693/Q:2 # S:90/1/173=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =B08E/Q:1 # S:90/3/174=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =9A7C/Q:0 # Rules:010001111=N/F
S:80/1/175=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =7C61/Q:3 # S:80/3/176=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =645/Q:2 # S:90/1/177=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =E058/Q:1 # S:90/3/178=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =6B06/Q:0 # Rules:010001111=N/F
S:80/1/179=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =8D1B/Q:3 # S:80/3/17A=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =F73F/Q:2 # S:90/1/17B=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =1122/Q:1 # S:90/3/17C=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =3BD0/Q:0 # S:80/1/17D=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =DDCD/Q:3 # S:80/3/17E=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =A7E9/Q:2 # Rules:010001111=N/F
S:90/1/17F=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =41F4/Q:1 # S:90/3/180=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =D96E/Q:0 # S:80/1/181=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =3F73/Q:3 # S:80/3/182=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =4557/Q:2 # S:90/1/183=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =A34A/Q:1 # S:90/3/184=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =89B8/Q:0 # Rules:010001111=N/F
S:80/1/185=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =6FA5/Q:3 # S:80/3/186=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =1581/Q:2 # S:90/1/187=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =F39C/Q:1 # S:90/3/188=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =78C2/Q:0 # Rules:010001111=N/F
S:80/1/189=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =9EDF/Q:3 # S:80/3/18A=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =E4FB/Q:2 # S:90/1/18B=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =2E6/Q:1 # S:90/3/18C=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =2814/Q:0 # Rules:010001111=N/F
S:80/1/18D=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =CE09/Q:3 # S:80/3/18E=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =B42D/Q:2 # S:90/1/18F=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =5230/Q:1 # S:90/3/190=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =8A17/Q:0 # S:80/1/191=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =6C0A/Q:3 # S:80/3/192=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =162E/Q:2 # Rules:010001111=N/F
S:90/1/193=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =F033/Q:1 # S:90/3/194=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =DAC1/Q:0 # S:80/1/195=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =3CDC/Q:3 # S:80/3/196=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =46F8/Q:2 # S:90/1/197=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =A0E5/Q:1 # S:90/3/198=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =2BBB/Q:0 # Rules:010001111=N/F
S:80/1/199=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =CDA6/Q:3 # S:80/3/19A=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =B782/Q:2 # S:90/1/19B=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =519F/Q:1 # S:90/3/19C=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =7B6D/Q:0 # Rules:010001111=N/F
S:80/1/19D=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =9D70/Q:3 # S:80/3/19E=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =E754/Q:2 # S:90/1/19F=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =149/Q:1 # S:90/3/1A0=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =7F9C/Q:0 # Rules:010001111=N/F
S:80/1/1A1=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =9981/Q:3 # S:80/3/1A2=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =E3A5/Q:2 # S:90/1/1A3=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =5B8/Q:1 # S:90/3/1A4=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =2F4A/Q:0 # S:80/1/1A5=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =C957/Q:3 # S:80/3/1A6=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =B373/Q:2 # Rules:010001111=N/F
S:90/1/1A7=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =556E/Q:1 # S:90/3/1A8=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =DE30/Q:0 # S:80/1/1A9=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =382D/Q:3 # S:80/3/1AA=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =4209/Q:2 # S:90/1/1AB=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =A414/Q:1 # S:90/3/1AC=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =8EE6/Q:0 # Rules:010001111=N/F
S:80/1/1AD=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =68FB/Q:3 # S:80/3/1AE=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =12DF/Q:2 # S:90/1/1AF=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =F4C2/Q:1 # S:90/3/1B0=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =2CE5/Q:0 # Rules:010001111=N/F
S:80/1/1B1=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =CAF8/Q:3 # S:80/3/1B2=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =B0DC/Q:2 # S:90/1/1B3=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =56C1/Q:1 # S:90/3/1B4=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =7C33/Q:0 # Rules:010001111=N/F
S:80/1/1B5=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =9A2E/Q:3 # S:80/3/1B6=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =E00A/Q:2 # S:90/1/1B7=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =617/Q:1 # S:90/3/1B8=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =8D49/Q:0 # S:80/1/1B9=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =6B54/Q:3 # S:80/3/1BA=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =1170/Q:2 # Rules:010001111=N/F
S:90/1/1BB=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =F76D/Q:1 # S:90/3/1BC=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =DD9F/Q:0 # S:80/1/1BD=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =3B82/Q:3 # S:80/3/1BE=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =41A6/Q:2 # S:90/1/1BF=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =A7BB/Q:1 # S:90/3/1C0=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =84AB/Q:0 # Rules:010001111=N/F
S:80/1/1C1=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =62B6/Q:3 # S:80/3/1C2=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =1892/Q:2 # S:90/1/1C3=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =FE8F/Q:1 # S:90/3/1C4=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =D47D/Q:0 # Rules:010001111=N/F
S:80/1/1C5=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =3260/Q:3 # S:80/3/1C6=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =4844/Q:2 # S:90/1/1C7=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =AE59/Q:1 # S:90/3/1C8=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =2507/Q:0 # Rules:010001111=N/F
S:80/1/1C9=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =C31A/Q:3 # S:80/3/1CA=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =B93E/Q:2 # S:90/1/1CB=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =5F23/Q:1 # S:90/3/1CC=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =75D1/Q:0 # S:80/1/1CD=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =93CC/Q:3 # S:80/3/1CE=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =E9E8/Q:2 # Rules:010001111=N/F
S:90/1/1CF=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =FF5/Q:1 # S:90/3/1D0=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =D7D2/Q:0 # S:80/1/1D1=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =31CF/Q:3 # S:80/3/1D2=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =4BEB/Q:2 # S:90/1/1D3=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =ADF6/Q:1 # S:90/3/1D4=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =8704/Q:0 # Rules:010001111=N/F
S:80/1/1D5=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =6119/Q:3 # S:80/3/1D6=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =1B3D/Q:2 # S:90/1/1D7=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =FD20/Q:1 # S:90/3/1D8=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =767E/Q:0 # Rules:010001111=N/F
S:80/1/1D9=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =9063/Q:3 # S:80/3/1DA=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =EA47/Q:2 # S:90/1/1DB=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =C5A/Q:1 # S:90/3/1DC=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =26A8/Q:0 # Rules:010001111=N/F
S:80/1/1DD=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =C0B5/Q:3 # S:80/3/1DE=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =BA91/Q:2 # S:90/1/1DF=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =5C8C/Q:1 # S:90/3/1E0=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =2259/Q:0 # S:80/1/1E1=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =C444/Q:3 # S:80/3/1E2=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =BE60/Q:2 # Rules:010001111=N/F
S:90/1/1E3=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =587D/Q:1 # S:90/3/1E4=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =728F/Q:0 # S:80/1/1E5=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =9492/Q:3 # S:80/3/1E6=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =EEB6/Q:2 # S:90/1/1E7=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =8AB/Q:1 # S:90/3/1E8=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =83F5/Q:0 # Rules:010001111=N/F
S:80/1/1E9=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =65E8/Q:3 # S:80/3/1EA=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =1FCC/Q:2 # S:90/1/1EB=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =F9D1/Q:1 # S:90/3/1EC=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =D323/Q:0 # Rules:010001111=N/F
S:80/1/1ED=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =353E/Q:3 # S:80/3/1EE=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =4F1A/Q:2 # S:90/1/1EF=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =A907/Q:1 # S:90/3/1F0=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =7120/Q:0 # R:80/81/1ED=F9B FF4 F71 FAC F8A FBA F92 FCF FD1 FC3 F28 F28 F30 F1B F37 F7E  =BCBF**FAILED PROCESS REPLY**
====== Here is charging turned off ======

R:80/83/1EE=3D00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00  =E5C5**FAILED PROCESS REPLY**

R:94/81/1EF=F62 F36 F46 F3D 0 0 0 0 0 0 0 0 0 0 0 0  =6EBF**FAILED PROCESS REPLY**

R:94/83/1F0=3E00 3E00 3E00 3D00 0 0 0 0 0 0 0 0 0 0 0 0  =5058
Rules:000001111=N/F
S:80/1/1F1=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =973D/Q:3 # R:80/81/1F1=F1F F5D F14 F35 F2D F2D F28 F49 F3A F3E EB5 EBE ED3 EC7 EDE F13  =948C
S:80/3/1F2=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =ED19/Q:2 # R:80/83/1F2=3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00  =C59C
Rules:000001111=N/F
S:90/1/1F3=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =B04/Q:5 # R:94/81/1F3=F31 F24 F3D F34 0 0 0 0 0 0 0 0 0 0 0 0  =8AD4
S:90/3/1F4=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =21F6/Q:4 # R:94/83/1F4=3E00 3E00 3E00 3D00 0 0 0 0 0 0 0 0 0 0 0 0  =8E
Rules:000001111=N/F
S:80/1/1F5=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =C7EB/Q:7 # R:80/81/1F5=F0E F4B F0B F27 F24 F1F F1F F40 F2D F36 EB1 EBA ECF EC3 ED5 F0A  =5927
S:80/3/1F6=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =BDCF/Q:10 # R:80/83/1F6=3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00  =954A
Rules:000001111=N/F
S:90/1/1F7=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =5BD2/Q:9 # R:94/81/1F7=F28 F1B F34 F2B 0 0 0 0 0 0 0 0 0 0 0 0  =49C1
S:90/3/1F8=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =D08C/Q:12 # R:94/83/1F8=3E00 3E00 3E00 3D00 0 0 0 0 0 0 0 0 0 0 0 0  =F1F4
Rules:000001111=N/F
S:80/1/1F9=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =3691/Q:15 # R:80/81/1F9=F05 F42 F07 F23 F1F F17 F1B F3C F28 F31 EAD EB5 ECA EBE ED0 F06  =EE0
S:80/3/1FA=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =4CB5/Q:14 # R:80/83/1FA=3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00  =6430
Rules:000001111=N/F
S:90/1/1FB=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =AAA8/Q:15 # R:94/81/1FB=F1F F17 F30 F27 0 0 0 0 0 0 0 0 0 0 0 0  =2799
S:90/3/1FC=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =805A/Q:14 # R:94/83/1FC=3E00 3E00 3E00 3D00 0 0 0 0 0 0 0 0 0 0 0 0  =A122
Rules:000001111=N/F
S:80/1/1FD=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =6647/Q:15 # R:80/81/1FD=F00 F3E F02 F1E F1B F12 F17 F37 F28 F2D EAD EB1 EC6 EBA ECC F01  =E1BB
S:80/3/1FE=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =1C63/Q:15 # R:80/83/1FE=3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00  =34E6
Rules:000001111=N/F
S:90/1/1FF=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =FA7E/Q:14 # R:94/81/1FF=F1B F12 F2B F22 0 0 0 0 0 0 0 0 0 0 0 0  =228D
S:90/3/200=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =E4A1/Q:15 # R:94/83/200=3E00 3E00 3E00 3D00 0 0 0 0 0 0 0 0 0 0 0 0  =C5D9
Rules:000001111=N/F
S:80/1/201=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =2BC/Q:15 # R:80/81/201=EFC F39 EFE F1A F17 F0E F12 F33 F24 F28 EA8 EAD EC6 EBA ECC EFD  =C9BB
S:80/3/202=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =7898/Q:14 # R:80/83/202=3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00  =501D
Rules:000001111=N/F
S:90/1/203=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =9E85/Q:15 # R:94/81/203=F16 F0E F27 F22 0 0 0 0 0 0 0 0 0 0 0 0  =DBDE
S:90/3/204=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =B477/Q:14 # R:94/83/204=3E00 3E00 3E00 3D00 0 0 0 0 0 0 0 0 0 0 0 0  =950F
Rules:000001111=N/F
S:80/1/205=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =526A/Q:15 # R:80/81/205=EF8 F35 EF9 F1A F17 F0E F12 F2F F24 F28 EA4 EAD EC1 EB5 EC7 EFD  =8673
S:80/3/206=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =284E/Q:15 # R:80/83/206=3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00  =CB
Rules:000001111=N/F
S:90/1/207=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =CE53/Q:14 # R:94/81/207=F16 F09 F27 F1E 0 0 0 0 0 0 0 0 0 0 0 0  =BFD0
S:90/3/208=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =450D/Q:15 # R:94/83/208=3E00 3E00 3E00 3D00 0 0 0 0 0 0 0 0 0 0 0 0  =6475
Rules:000001111=N/F
S:80/1/209=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =A310/Q:15 # R:80/81/209=EF8 F31 EF9 F16 F12 F09 F0E F2F F1F F28 EA4 EA8 EC1 EB5 EC3 EF8  =60BC
S:80/3/20A=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =D934/Q:14 # R:80/83/20A=3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00  =F1B1
Rules:000001111=N/F
S:80/1/20B=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =8B7B/Q:15 # R:80/81/20B=EF3 F31 EF5 F16 F12 F09 F0E F2F F1F F24 EA4 EA8 EBD EB1 EC3 EF8  =5E6A
S:80/3/20C=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =A189/Q:14 # R:80/83/20C=3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00  =890C
Rules:000001111=N/F
S:80/1/20D=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =F3C6/Q:15 # R:80/81/20D=EF3 F2C EF5 F16 F12 F05 F0E F2A F1F F24 E9F EA8 EBD EB1 EC3 EF8  =6C0F
S:80/1/20E=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =4788/Q:15 # R:80/81/20E=EF3 F2C EF5 F16 F12 F05 F0E F2F F1F F24 E9F EA8 EBD EB1 EC3 EF8  =D8D7
Rules:000001111=N/F
S:80/3/20F=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =15C7/Q:14 # R:80/83/20F=3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00  =3D42
S:80/1/210=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =CDE0/Q:15 # R:80/81/210=EF3 F2C EF5 F11 F12 F05 F09 F2A F1F F24 E9F EA8 EBD EB1 EC3 EF4  =EA19
Rules:000001111=N/F
S:80/1/211=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =51C5/Q:15 # R:80/81/211=EF3 F2C EF5 F11 F12 F05 F09 F2A F1F F24 E9F EA8 EBD EB1 EC3 EF4  =763C
S:80/3/212=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =2BE1/Q:14 # R:80/83/212=3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00  =364
Rules:000001111=N/F
S:80/1/213=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =79AE/Q:15 # R:80/81/213=EEF F2C EF5 F11 F0E F05 F09 F2A F1F F24 E9F EA4 EBD EB1 EC3 EF4  =D6C1
S:80/3/214=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =535C/Q:14 # R:80/83/214=3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00  =7BD9
Rules:000001111=N/F
S:80/1/215=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  =113/Q:15 # R

(here is also visible at the end of log how controller starts skipping reading from bank1)

Crash of controller with more then 12 cell modules, influxdb turned on and ext. temperature NTCs on all boards

After the last changes in the code in order to export 3 decimals for "v" to influxdb and also in order to send the external temperature to influx the controller hungs up after ca. 1 minute. This only happens with more than 12 cell modules (took me 2 hours to figure that out. I thought I had a hardware problem). After the hung up I cannot reach the interface anymore.
I guess that some timeout occurs. No data will be send to my db.
Maybe some buffer overflow or similar happens now after the changes.
(With the old code everything works fine, but ofcourse only 2 demecimal and no ext. temp.)

Missing BOM and whatever that other file is

So I am trying to order the PCB for the V4 since I am pretty sure thats the one I should be getting, but the zip file doesnt contain the files you mention in the walkthrough video. there IS a bom on the root folder of that zip but it has a different name (CellModules_LCSC_BillOfMaterials.xls)
Id really like to order these ASAP so can you please provide the files I need to place my order?
[email protected]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.