.. | ||
CMakeLists.txt | ||
endoftraindemod.cpp | ||
endoftraindemod.h | ||
endoftraindemodbaseband.cpp | ||
endoftraindemodbaseband.h | ||
endoftraindemodgui.cpp | ||
endoftraindemodgui.h | ||
endoftraindemodgui.ui | ||
endoftraindemodplugin.cpp | ||
endoftraindemodplugin.h | ||
endoftraindemodsettings.cpp | ||
endoftraindemodsettings.h | ||
endoftraindemodsink.cpp | ||
endoftraindemodsink.h | ||
endoftraindemodwebapiadapter.cpp | ||
endoftraindemodwebapiadapter.h | ||
endoftrainpacket.cpp | ||
endoftrainpacket.h | ||
readme.md |
End-of-Train Demodulator Plugin
Introduction
This plugin can be used to demodulate End-of-Train packets. These are packets transmitted by an End-of-Train Device, that can be found on some trains. It transmits information about whether motion is detected, brake pressue, whether the marker light is on and battery information.
- Frequency: 457.9375 MHz (North America, India), 477.7 MHz (Australia) and 450.2625 MHz (New Zealand).
- Modulation: FSK, 1800Hz space, 1200 mark, +-3kHz deviation.
- Baud rate: 1200 baud.
The End-of-train packet specification is defined in: AAR Manual of Standards and Recommended Practices - S-9152 End of Train Communication - Section K Part II Locomotive Electronics and Train Consist System Architecture. If anyone has a copy, please get in touch.
Interface
The top and bottom bars of the channel window are described here
1: Frequency shift from center frequency of reception
Use the wheels to adjust the frequency shift in Hz from the center frequency of reception. Left click on a digit sets the cursor position at this digit. Right click on a digit sets all digits on the right to zero. This effectively floors value at the digit position. Wheels are moved with the mousewheel while pointing at the wheel or by selecting the wheel with the left mouse click and using the keyboard arrows. Pressing shift simultaneously moves digit by 5 and pressing control moves it by 2.
2: Channel power
Average total power in dB relative to a +/- 1.0 amplitude signal received in the pass band.
3: Level meter in dB
- top bar (green): average value
- bottom bar (blue green): instantaneous peak value
- tip vertical bar (bright green): peak hold value
4: RF Bandwidth
This specifies the bandwidth of a LPF that is applied to the input signal to limit the RF bandwidth.
5: Frequency deviation
Adjusts the expected frequency deviation in 0.1 kHz steps from 1 to 6 kHz. Typical value is 3 kHz.
6: Filter Address
Entering a regular expression in the field displays only packets where the unit address matches the regular expression.
7: UDP
When checked, received packets are forwarded to the specified UDP address (8) and port (9).
8: UDP address
IP address of the host to forward received packets to via UDP.
9: UDP port
UDP port number to forward received packets to.
10: Start/stop Logging Packets to .csv File
When checked, writes all received packets to a .csv file. The filename is specified by (11).
11: .csv Log Filename
Click to specify the name of the .csv file which received packets are logged to.
12: Read Data from .csv File
Click to specify a previously written .csv log file, which is read and used to update the table.
13: Clear table
Pressing this button clears all packets from the table.
Received Packets Table
The received packets table displays the contents of the packets that have been received. Only packets with valid CRCs are displayed.
- Date - Date the packet was received.
- Time - Time the packet was received.
- Battery condition - Whether the battery charge is OK, low, very low or not monitored (N/A).
- Type - Message type identifier.
- Address - Unit address, which uniquely identifies the end-of-train unit.
- Pressure - Brake pipe pressure in Pounds per Square Inch Gauge (PSIG).
- Charge - Battery charge in percent.
- Disc - Discretionary bit that is used for varying data by different vendors.
- Valve - Valve circuit status (Ok or Fail).
- Conf - Confirmation indicator.
- Turbine - Air tubine equiped.
- Motion - Whether motion is detected (i.e. is the rear of the train is moving).
- Light Batt - Marker light battery condition (Ok or Low).
- Light - Marker light status (On or off).
- CRC - Whether the calculated CRC matches the received CRC.
- Hex - The packet data displayed as hexadecimal.
Attribution
Based on code and reverse engineering by Eric Reuter