JMRI v5.6
ED v2.37.187
CS DR5000
Linux Mint 21
?
Some time ago I wrote a Python program that acted as a throttle, communicating with JMRI. It worked fine but recently I noticed an anomaly when commanding very low speed steps. Then I verified that the same behavior is observed when using Engine Driver. So I'm thinking that the issue is on the server side.
?
The problem is that when incrementing speed steps by 1 (out of 128) the actual speed step sent to the command station jumps from zero to 16 as soon as the request changes from 0 to 1. It remains at 16 until speed step 6 is requested at which point it changes to 17. Subsequent steps upward result in expected behavior, i.e. monotonically increasing by one although off by 11 with respect to what is requested. In the reverse direction the commanded value sticks at 16 as I step down from 6 to 5, changing to zero only when zero is requested. If I were in 28 step mode then the first step would be 16. So it looks like the system acts like it's in 28 step mode for the first step and then 128 thereafter.
?
The behavior can be observed by monitoring Loconet as shown below. The request was being changed by one each time in this example.
The requests for values 2 through 5 don't even show up.
?
07:29:40.806: [A0 02 10 4D] ?Set speed of loco in slot 2 to 16. Request SS 1 of 128 (from 0)
07:29:46.336: [A0 02 11 4C] ?Set speed of loco in slot 2 to 17. Request SS 6
07:29:47.343: [A0 02 12 4F] ?Set speed of loco in slot 2 to 18. Request SS 7, etc.
07:29:48.370: [A0 02 13 4E] ?Set speed of loco in slot 2 to 19.
07:29:49.212: [A0 02 14 49] ?Set speed of loco in slot 2 to 20.
07:29:51.265: [A0 02 15 48] ?Set speed of loco in slot 2 to 21.
07:29:53.471: [A0 02 14 49] ?Set speed of loco in slot 2 to 20.
07:29:54.959: [A0 02 13 4E] ?Set speed of loco in slot 2 to 19.
07:29:55.970: [A0 02 12 4F] ?Set speed of loco in slot 2 to 18.
07:29:56.954: [A0 02 11 4C] ?Set speed of loco in slot 2 to 17. Request SS 6
07:29:57.827: [A0 02 10 4D] ?Set speed of loco in slot 2 to 16. Request SS 5 (lower values ignored until 0)
07:30:02.515: [A0 02 00 5D] ?Set speed of loco in slot 2 to 0.?? Request SS 0
?
A JMRI throttle in 128 step mode works properly. Of course in that throttle I can specify 128 ss mode directly and the Loconet log verifies that state. When using ED I don't appear to have the option of specifying 128 ss mode. I guess the server has to infer it. The log shows 28 ss mode, even though ED is sending 128 steps and the server seems to figure it out when I get to step 6. But still the log doesn't show 128 ss mode at that point.
?
Clues would be appreciated.
?
Thanks
George