Martin / Feken
The button code should work with the old buttons. The only real difference with the new joybutton thing is it is consolidated into one device. I use it on all my projects now. The most recent Master software also has a much better debounce routine though which makes it a lot easier to use the menus.
The latest watchdog has the same functions as the picaxe and previous ones, plus Greg added a one second pulse output. That's not used by the master at present as there is no route i/o between them.
The latest slave software probably does not differ much from what you have but if it doesnt work with the latest Master code then you will have to upgrade.
The main problem with the multi slave boards is the voltage drop issue which made all the extra code in slaves and master necessary to get reliable cell voltages. This impacts on the available balancing time, as the number of slaves increases the communication load increases as well. It must affect every other bms with spaghetti wiring and shared cell leads as well.
If we could eliminate or reduce it to less than say 25-50mv then it would be possible to go back to a much simpler and faster version of the slave/master code which would return balancing time to the full 350ma.
The options to improve this are use very short and thick wires from the multislave board to the cells. This is the real killer. It needs someone to do some proper research on what drops are being experienced over what distances and over what gauge wire.
To prevent inter slave interference it is also possible to have one wire for each terminal for each slave but this doubles the number of wires reqd which still need to be a decent gauge.
So I went for the easier software option and turn off all the loads before any voltage readings are taken. This takes time
We really do need an accurate one second timer in the Master i just havent had time to devote the reqd effort to get that working.
Yes the master could time how long it takes to do a loop but the resulting maths would have to be hyper accurate to then keep accurate soc. I think that would be beyond the integer maths of pbpro.
Perhaps we should only take a cell voltage reading every 5 or 10 seconds? That instantly massively increases the balancing time and reduces the comms load. We could then increase the current samples to say every 1/10 second, we can do a timer for that fairly easily which would also make the soc more accurate as long as our maths is correct
Taking a voltage reading every 2-5 seconds or so would reduce the accuracy of the instant display of things like motor kw etc
The good thing is that changing to taking a cell voltage reading every 2-5 seconds can be done without changing the slave code
In my experience using the bms for several years now I can say that although a voltage reading every second is nice you can certainly get away with only taking one every 2-5 seconds in most situations. Heavy regen on a full pack fresh off the charger might lead to an overvoltage scenario for a few seconds though.
EditIn thinking about this it might be possiblke to have variable cell voltage aquisition intervals. For instance when the car is on the mains charger once every 5 seconds would be fine allowing much better balancing time. When the car is in use we don't really care about balancing for regen much as that will be pretty rare so we can go back to getting data once a second when on the road. I'll think about this! Don't know why I havent done it before to be honest. Too many projects not enough time.