Dear Mark -
I have a CS2 protocol packet sniffer that I used to troubleshoot some problems with Marklin digitally controlled turnouts. Briefly, they show that the turnouts are aware of their position. How you make an S88 or M83 aware of this, I don't know - others might relate their experience.
Technical details follow..
The packet sniffer prints out packets from the controller (in this case,
Rocrail), the Gleisbox, and the accessory (turnout) on the rails.
TCP -> CAN prefixes the packet contents (CS2 format, in hexadecimal) sent by the
controller.
CAN -> TCP similarly prefixes the packet contents sent by either the Gleisbox
or the accessory.
After each line is a decoding into English of the packet's contents.
An important part of the hexadecimal codes is the second group of digits, which
is the CAN hash. This is unique to every agent on the CAN bus capable of
generating a command or a response. Key codes are:
4322 - Rocrail; 4f20 - Gleisbox; 0300 - Turnout (DCC accessory ID 1).
TCP -> CAN 0016 4322 08 0000 3801 0101 0032
C ACC 0B (00003801): posn 1 current 1 switch time 50x10 ms
CAN -> TCP 0017 4f20 06 0000 3801 0101 0000
R ACC 0B (00003801): posn 1 current 1
CAN -> TCP 0017 0300 06 0000 3801 0100 0000
R ACC 0B (00003801): posn 1 current 0
These three packets show 1) Rocrail telling the accessory to move the points;
2) The Gleisbox forwarding the command to DCC signalling on the rails; 3) the
turnout acknowledging the command. The three commands move the points.
TCP -> CAN 0016 4322 08 0000 3801 0001 0032
C ACC 0B (00003801): posn 0 current 1 switch time 50x10 ms
CAN -> TCP 0017 4f20 06 0000 3801 0001 0000
R ACC 0B (00003801): posn 0 current 1
CAN -> TCP 0017 0300 06 0000 3801 0000 0000
R ACC 0B (00003801): posn 0 current 0
Next, these three packets show 1) Rocrail telling the accessory to move the
points back to its original position; 2) The Gleisbox forwarding the command
to DCC signalling on the rails; 3) the turnout acknowledging the command.
(Added later) It turns out the same packet sequence is given even if a turnout is not present, so the Gleisbox is generating the acknowledgement from the turnout. There is apparently no determination of its present state.
How you make an S88 or M83 pay attention to it, I have no idea.
Osoraku
Edited by user 27 April 2025 17:34:42(UTC)
| Reason: Updated info after tests