BMSBattery S-LCD3 <--> S06s serial data protocol?

x-speed

10 W
Joined
Aug 24, 2011
Messages
67
Does anybody perhaps know details of the serial data protocol used by the newer bmsbattery S-LCD3, which would allow transfer of those extended "C-Parameters"? This protocol should be equal to that of the latest S-LCD5, but should certainly be different/longer than that of the old S-LCD1.

Or does somebody have the option to binary-log some S-LCD3/5 serial transfer, at least one outgoing transmission from S-LCD3 to S06s/S06p/S12s.. with default C-Parameters, in order to have a valid and safe starting point for trial and error experiments?
I'd expect transfer to happen at 9600/8-N-1 baud as is the case with S-LCD1. Just somehow more bytes than the old protocol with 7 bytes forth + 7 bytes back some 10x per second.



Background: I do not want to have those huge embarrassing displays on a bicycle, particularly on the folding bike. Anyway I already run my own meta controller build since years on power controllers for more sophisticated control and for having a "natural" stealth UI without any need to ever look down on a display, on switches or so - just a Bluetooth option for rare general setup & log tasks.
I do not own a S-LCD3 or S-LCD5 so far, and would never need one - except for possibly extracting that new protocol info.
I'm using a S06s controller, built summer 2014, on a folding bike which should understand not just the S-LCD1 protocol, which I used so far, but the new S-LCD3 protocol as well.
Things work overall. Anyway I just set up the S06s with rather free unlimited settings (as far as possible with S-LCD1 protocol), and everything else is measured/controlled by the metacontroller via the controllers throttle input.
But there are 2 of the C-Parameters which can not be substituted and which I'm eager to screw:

Protocol issues / parameters needed mainly:
* C12 Undervoltage level 0..7 (3bits) : The S06s does undervoltage protection switch off at N*3.0V (30V on a 36V battery) by default, which is rather high! This hides almost some 10% capacity of the modern 10s AlNiCo batteries according to my Smartbms logs and comparison with other controllers doing UV <= 27.5V ! AlNiCo have discharge curves flatter than ICR / Lipo. I had several situations where I missed those 10%.
* C2 Sine Wave Motor Phase Classification Coding Mode 0..7 (3bits): I observed in freewheeling experiments that the S06s (sine wave) consumes significantly more power than the KU63 during freewheeling at the same speed on the same motor&wheel. Some +20% ! I didn't make full load comparisons so far, but would still expect a significant inefficiency of the S06S. It is known that the "firing angle" fine tuning is crucial with efficient sine wave control - small angle errors can produce significant blind currents - its more critical than with rectangle control - and I don't think this angle tuning is possible automatically with hardware as simple as in S06S. Possible this "C2" parameter allows manual tuning of that?

And on another bike with direct drive motor I'd like to play with "C13 ABS brakes of the controller and parameters of anti-charge control" 0..5 (3bits)


 
Hi x-speed,
I am glad to hear you decoded the lcd-1 protocol and i think it would be a dream come true if we were able set the angle tuning on our controllers.
I intend to buy the lcd-3 and find out how it works, but in the meantime I am stuck with a different problem.
I bought the basic LED panel hoping to get rid of the s06 speed limiter, but I ended up setting the te limit to 6kmh. Is there any chance you could share the lcd-1 protocol? I don't think I have anything I can contribute with in return, but I would gladly do it if I could
 
It is possible to correct the LVC of S06S controller by locating resistors marked 153 (15kohm) and 122(1.2kohm). Those are simple voltage dividers located close to the LM317 voltage regulator. Maybe not as elegant solution as hacking the communication, but it is tested solution and it works well. More info about S06S LVC is to be found further down on my singnature link page.
 
fellow said:
It is possible to correct the LVC of S06S controller by locating resistors marked 153 (15kohm) and 122(1.2kohm).

I'll consider that as last option, when I don't get a data log - the latter would provide many more options in addition.
Its not overly urgent; and also want avoid to open and solder the controller again just for that. Its always a rather tricky task mechanically - with µC/wiring/BT-connector and some bypass resistors (for overheat reduction) already fiddled into this extremely small controller, and with that wobbly isolation of case vs FET.

emilx said:
I bought the basic LED panel hoping to get rid of the s06 speed limiter, but I ended up setting the te limit to 6kmh.

I don't know the LED panel directly, and whats involved specially regarding such problem and possibly special protocol.
Strange: How can you set the limit to 6kmh at all with just S-LED ? Minimum nominal speed limit is 10kmh (when wheel + magnet number settings are correct) and the minimum is certainly not a preset. Maybe there is another problem with the hardware?
Reading the LED ad description I think you'd need a special copy process from a S-LCD1 to change the speedlimit setting etc in the LED (or order it with reasonable setting). Otherwise as soon as the LED is connected with high probability things are changed again back - if its a setting problem at all.

When you deal with the serial interface:
What data string is the LED sending out periodically e.g.? (yellow cable vs black=GND, TTL 5V, baud 9600/8-n-1)
Is there a special packet sent from the LED when you press "ON/OFF" + "MODE" simultaneously for 5 seconds? (Copy operation)

If you obtain a S-LCD3 anyway: There is obviously a option in the settings to configure it using the old S-LCD1 protocol, which should also allow copying from S-LCD3 to S-LED.
 
fellow said:
Are there any news on this subject? Is it possible to get rid of the speed limit (34km/h in 26") when used without the display? By the way, does S06S have regen function (with or without the LCD)?

Do you really observe a fall back to a lower (digital) speed limit after removing the display? I cannot confirm such behavior. The S06S should retain permanently (beyond OFF+ON) the speed limit of the display, which was active last.
Max limit is 10 + 63 = 73 km/h with correct wheel size set. (A very very old variant of the protocol must have allowed max 10 + 31 (5bits) = 41km/h unless tweaking wheel size setting)


Regarding the C-parameter functions & protocol: Is Nobody out there with a S-LCD3, S-LCD5 (or KT-LCD3 and ...) who could record some serial data sent out before and after a parameter change (of e.g. C12 or C2) by the display on the yellow cable vs black/GND - simple 9600/8-n-1 Baud, TTL 5V ?
 
Thanks a lot! He obviously decoded quite everything. I'll see if it works.
 
x-speed said:
* C2 Sine Wave Motor Phase Classification Coding Mode 0..7 (3bits): I observed in freewheeling experiments that the S06s (sine wave) consumes significantly more power than the KU63 during freewheeling at the same speed on the same motor&wheel. Some +20% ! I didn't make full load comparisons so far, but would still expect a significant inefficiency of the S06S. It is known that the "firing angle" fine tuning is crucial with efficient sine wave control - small angle errors can produce significant blind currents - its more critical than with rectangle control - and I don't think this angle tuning is possible automatically with hardware as simple as in S06S. Possible this "C2" parameter allows manual tuning of that?
I am starting develop OpenSource firmware for S series controllers of BMSBattery, please join the efforts and then we will be able to add advanced features not available on original controller: https://endless-sphere.com/forums/viewtopic.php?f=2&t=87870

I developed FOC firmware for electric unicycles. S06S should not be able to do FOC but we should try to do the best possible to optimize motor power usage. Without FOC, the "firing angle", we need to find ways to improve it. I know it should change with motor speed and I also believe it change with motor load. Maybe we can profile a motor for different speeds and loads...
 
Back
Top