Skip to content

A high level logic analyzer for XpressNet.

License

Notifications You must be signed in to change notification settings

se7kn8/XpressNet-Analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XpressNet-Analyzer

(Work in Progress)

A high level logic analyzer for Saleae Logic 2.

Picture of the analyzer

This extension provides support for XpressNet 3.0 a protocol by Lenz which is a protocol used in model railroads for communication. To use this analyzer you first need an Async-Serial low lever decoder.

All packets are based on this documentation: XpressNet-V3.0 and XpressNet-V3.6

This analyzer is not complete, the table shows the current progress

Corrected functions

The function status functions are corrected. They now show if a function is a momentary or toggle function The new status requests and responses report the status as follows:

Char Function Description
M Momentary function When on a device the function button is pressed the function is ON, when the button is released the function is OFF again
T Toggle function When on a device the function button is pressed this function is ON, when the button is pressed again the function is OFF

Picture of the analyzer

Changed address representation

The address representation has changed. If the high byte of the address is 0x00, than the address is between 0 and 99. Only the low byte is used for the address. If the high byte not is 0x00, than the address is between 100 and 9999. The address is shown as a readable address by filtering out the MSB 15 and 14.

From command station to device:

* = Multiple packages of the same type

Name Type Implemented
Normal inquiry Inquiry x
Request Acknowledgment Request x
Normal operation resumed Broadcast x
Track power off Broadcast x
Emergency stop Broadcast x
Service Mode entry Broadcast x
Feedback Broadcast Broadcast
Programming info * Response
Service Mode Response * Response
Software Version Response X
Command station status indication Response X
Transfer Errors Response X
Command station busy response Response X
Instruction not supported Response X
Accessory Decoder information Response X
Locomotive information * Response X
Locomotive is being operated Response X
Function status Response X
Locomotive information (address retrieval) Response X
Double Header * Multiple
MU+DH error Response

From device to command station:

Name Type Implemented
Acknowledgment Response Response X
Resume operations Request X
Stop operations Request X
Stop all locomotives Request
Emergency stop a locomotive Request X
Register Mode read Request
Direct Mode CV read Request
Paged Mode read Request
Service Mode results Request X
Register Mode Write Request
Direct Mode CV Write Request
Paged Mode write Request
Command station software version Request X
Command station status Request X
Set command station power-up mode ?
Accessory Decoder information Request X
Accessory Decoder operation Request X
Locomotive information Request X
Function status Request X
Locomotive speed and direction Instructions X
Function operation Instructions X
Set function state Instructions X
Double header * Multiple
Operations Mode programming byte mode write Request
Operations Mode programming bit mode write Request
Add a locomotive to a multi-unit Request
Remove a locomotive from a multi-unit Request
Address inquiry member of a multi-unit Request
Address inquiry multi-unit Request
Address inquiry locomotive at command station Request
Delete locomotive from command station stack Request

Following ROCONET extensions have been implemented:

  • Track power off: Short circuit

TODOs:

  • Allow setting the accessory decoder address format (turnout, switching decoder, feedback module)
  • Handle other accessory decoders than switching decoders