Tunnel 8 bit bytes over LocoNet: Generic 8

 FREMO Inhalt   FREMO-STW   ZNF800   Protocol overview   

About

A lot of people are complaining about the fact, that LocoNet message payloads may not have the 8th bit set. This message is a generic container to carry any sequence of bytes over LocoNet, as long as it fits into the maximum size LocoNet packet.
Status: Proposal

Message format

The message uses a not defined opcode. This is not communicated to Digitrax, so if you use it, you will not be guarantied interoperabillity with any commercial devices. The opcode is likely to change in the future.
Byte Index 0 1 2 3 4 5 6 7 8 9 10 11 12   LEN-1
Mnemonic 0xFF LEN PXCT0 D00 D01 D02 D03 D04 D05 D06 PXCT1 D10 D11 ... CHK

Usage of data fields

Mnemonic Usage
LEN This is the length byte of the LocoNet packet. The value may be in the range [5..127]. A packet of length 5 carries just a single byte of payload; a packet of length 127 is the biggest that LocoNet can handle and it carries 108 bytes of payload.
PXCTN
Most significant bits of DN[0..6].
Bit index Value
0 MSB of DN0
1 MSB of DN1
2 MSB of DN2
3 MSB of DN3
4 MSB of DN4
5 MSB of DN5
6 MSB of DN6
7 0 (required by LocoNet)
The LocoNet message carries a sequence of 8 byte groups: each group consists of one byte carrying the MSBs of 7 payload bytes followed by 7 payload bytes with stripped MSB. The last group does not have to be complete, it can contain 1..7 bytes of payload.
The naming of the mnemonic PXCT is derived from similar fields in the Digitrax specification.
DNB 7 lower significant bits of the N*7+Bth byte of the payload

Examples

Smallest possible message with 1 byte of payload: 0x99
Byte Index 0 1 2 3 4
Field Opcode Length PXCT0 D00 XOR-Check
Value 0xFF 0x05 0x01 0x19 0x1D
Payload 0x99
Biggest possible message with 108 bytes of payload with incremental data [1..108]:
Byte Index 0 1 2 3 4 5 6 ... 121 122 123 124 125 126 127
Field Opcode Length PXCT0 D00 D01 D02 D03 ... D146 D147 PXCT15 D150 D151 D152 XOR-Check
Value 0xFF 0x7F 0x00 0x01 0x02 0x03 0x04 ... 0x68 0x69 0x00 0x6A 0x6B 0x6C CHK
Payload Index 1 2 3 4 ... 104 105 106 107 108
 FREMO Inhalt   FREMO-STW   ZNF800   Protocol overview   
Author of this page: Stefan Bormann. Valid HTML 4.01 Transitional SourceForge.net Logo