ATCS Monitor Frequently Asked Questions
Home FAQ Release History Frequencies

Getting the program to work

How do I connect my scanner to the computer so I can decode ATCS data?
Nothing happens when I run the program, what's wrong?
When traffic is received, I get a 3706 error, what's wrong?
I'm getting a run-time error 339, what's wrong?
Where can I get a HamComm-type data slicer?
Where can I get an RM100 decoder?
 

Questions about the program

How can I stop the packet window from updating so I can read it?
How do I enter names for the MCP Addresses?
How can I change the size of the Messages, Active MCP, and Packet windows?
Nothing ever appears in the top window, why is this?
What are rules and how do I set them up?
I monitor more than one railroad, how can I keep my settings separate?
Does ATCS utilize the MDC-4800 protocol?
Why do I see so few messages with intelligible text?
How can I produce my own dispatcher display?
 

Getting the program to work

How do I connect my scanner to the computer so I can decode ATCS data?

To use ATCS Monitor (and most other programs that decode data received by the scanner) you need a high-quality scanner with a discriminator output. Chances are your scanner does not have one of these outputs (most do not). If your scanner doesn't you'll need to take it apart and add one. The late Bill Cheek has written some very good instructions on how to make the modification required.

At this time you can connect the discriminator output to the computer using three methods:

You can plug the output into the microphone or line-in input of your sound card to decode the audio. This method produces the best results if your sound card samples at exactly the rate requested by the program. Not all sound cards will work, some aren't very precise in their sampling of the audio data (there's more on this in the answer to the next question).
You can plug the discriminator output into a decoder made by Cylex, Inc. and then plug the decoder into one of your PC's serial ports. If you're receiving some static this method won't work quite as well as the sound card method but is still very good. This method (and the one below) should work for everyone whether the sound card method works for you or not since the sampling of the audio is taking place in the decoder instead of in the computer.
You can plug the discriminator output into a HamComm-type data slicer (under Windows 95/98 only) and then plug the data slicer into one of your PC's serial ports. Unless you have a perfect signal with absolutely no static you'll see more errors using this method than when using the sound card or an RM100 decoder to decode the data. This is because the program isn't able to recognize and ignore noise in the signal.

Nothing happens when I run the program, what's wrong?

The program will only work with the discriminator output from the scanner, you can't use the audio from the earphone connector.

If you're using the disciminator output and have it connected to your sound card try the following:

Maybe the program isn't seeing the audio from your scanner, to see if it is open the View menu, then select Analyze Signal. You should see something that resembles a square wave. If you don't there might be something wrong with the connections. Check to see if the Windows Sound Recorder (in Accessories) sees the audio by using it to record a sample.
Try changing the recording volume of the microphone/line-in input (whichever you're using), if the volume is set too high the audio will become garbled and unintelligable to the program, if it's set too low the program may have trouble "hearing" the signal. Also make sure Windows is setup to listen to the input to which you connected the scanner. To check or change these settings double-click on the speaker symbol in the system tray, then choose Properties from the Options menu, then select Recording in the "Adjust volume for" part of the window. Make sure the Microphone/Line-in checkboxes are checked in the bottom part of the window, then click on OK. The window showing the volume control sliders should change to show sliders for the Microphone and Line inputs. Make sure the one to which you connected the scanner is selected. Change the recording volume by moving the appropriate slider up and down. Use the "Analyze Signal" function under the View menu to take a look at what the signal looks like at different volume settings.
Try repositioning the scanner and the cable connecting it to the computer. Don't let any extra cable dangle around the computer where it can pick up interference.
If you've tried the above and it still doesn't work your sound card may not be cooperating. When the program connects to the sound card it asks the card to sample the data at either 22,050 or 44,100 times per second (whatever you the program set to in Configure|Options|Data Source). Timing is critical in decoding the data, if the card isn't sampling at exactly the rate requested by the program it's not going to be able to decode the 4800 baud data. Instead of using the sound card for decoding you can use a HamComm-type data slicer (under Windows 95/98 only) or an RM100 decoder. The RM100 decoder will produce better results than a data slicer. When using an RM100 decoder the program is able to ignore some noise, not as much as when using a sound card to decode ATCS data though.

If you're using using a HamComm-type data slicer and are not seeing anything, verify that your data slicer is working correctly by downloading this diagnostic program.

When traffic is received, I get a 3706 error, what's wrong?

ATCS Monitor version 2.3 or above requires Microsoft Data Access Components (MDAC) version 2.5 or greater, and the Microsoft.Jet.OLEDB.4.0 provider. MDAC 2.5 includes the Jet component, while later versions require a separate download.

I'm getting a run-time error 339, what's wrong?

It is likely that the ScrWin.ocx control has not been properly registered. This may be fixed by starting an MS-DOS command window, changing to your installation directory, and typing "regsvr32 scrwin.ocx".  It may be necessary to specify the full path to regsvr32  on some systems.

Where can I get a HamComm-type data slicer?

There are several plans on how to build one of these on the web. MDTMon used Spectrum Analyzer's All-In-One interface plans to build his data slicer. I recommend the TL082-based circuit here, since it derives it's power from the PC's RS232C RTS and DTR pins, and therefore requires no external power supply.

Where can I get an RM100 decoder?

You used to be able to get an RM100 decoder from Cylex, Inc., but these may now be found only on the used equipment market.

Questions about the program

How can I stop the packet window from updating so I can read it?

If you see something appear in the packet window which you want to read you can click on the hand icon on the toolbar (or select "Hold MCP display" from the Action menu, or press Control-H) to "hold" the packet window. This will keep the program from writing received traffic to the packet window so you can read it. After you're done reading click on the hand icon again to "unhold" the packet window. The window will be refreshed so that any text received while you were reading will be appended to the end of the window.

How do I enter names for the MCP Addresses?

You can enter names for MCP Addresses in one of two ways:

The first way is to double-click on an MCP Address in the "Active MCP" window (located in the bottom left-hand corner of the main window). This will pop-up a window in which you can enter details for the MCP Address you clicked on.
Another way to enter an alias for a MCP Address is to open the Configure menu and click on "MCP Information". This will allow you to add, edit, and delete MCP details. You can also export/import your MCP information to/from a file, useful if you run ATCS Monitor on two computers.

How can I change the size of the Messages, Active MCP, and Packet windows?

There are two "splitter" bars, one that runs horizontally and one that runs vertically, that can be moved to change the sizes of these three windows. To locate the horizontal one move the mouse around in the grey area just below the Messages window. You should see the mouse cursor change to arrows pointing up and down. When you see this click and hold the left-mouse button and move the mouse up and down to change the size of the windows. To locate the vertical splitter bar move the mouse around in the grey area between the Active MCP and packet windows until the mouse cursor changes to arrows pointing left and right.

Nothing ever appears in the top window, why is this?

The program uses rules which you setup to determine what should be displayed in the top window (the Messages window). When you first install the program there are no rules setup. To setup rules see the next question/answer.  

What are rules and how do I set them up?

Rules allow you to instruct the program to perform various actions when ATCS traffic matching certain conditions is received. You can have the program play sounds, open windows, log received traffic to disk, and/or display summary information in the Messages window (top portion of the main window) based on received traffic.

To setup a rule open the Configure menu and select Rules. To create a new rule click on the "New Rule" button. This will display the following window:

New Rule Window

In the "Name of rule" field enter a name that describes what this rule will fire on or what it is for. This will be displayed in the listbox in the previous window.

The next four fields are used to specify what the program should use to determine whether your rule should be invoked:

If you want your rule to do something when traffic is sent to certain MCP addresses you'll fill in the "Address matches:" field.
If you want your rule to be invoked based on what packet type is received regardless of to which MCP it is sent, you'll fill in the "Packet type matches:" field.
If you want your rule to be invoked based on the Message Type, fill in the "Message Type matches:" field.
If you want your rule to be triggered on an off-to-on Mnemonic state transition, fill in the Mnemonic or Mnemonic mask for the values you wish to track.

If you provide entries for more than one field, the rule will be invoked only if the traffic matches ALL values supplied.

The program allows you to use wildcards (*'s and ?'s) when you're filling in the  fields; a * matches multiple characters, a ? matches any single character, and a # matches any single digit. You can also use ['s and ]'s to match a single occurence of a character in the brackets (examples below). When filling in the "Address matches" field if you don't use any wildcards the rule will trigger only when the MCP Address or alias to which traffic was sent matches exactly what you entered, the same goes for the other "matches" fields. Comparisons between received traffic/MCP Addresses and what you enter are not case-sensitive. Here's some examples of what you might enter in these fields:

If you enter "734050402220202" in the "Address matches" field and leave the "Packet type matches" field blank the rule will trigger anytime traffic is received that was sent to MCP Address 734050402220202.
If you enter "7340*" in the "Address matches" field the rule will trigger anytime traffic is sent to an MCP Address that startes with "7340*".
If you enter "7?0101" in the "Address matches" field the rule will trigger anytime traffic is sent to an MCP Address that begins with "7" and ends with a "0101".
The "Packet type matches" field will trigger the rule when packets are received of the selected type - see the tool tip for packet type values.
If you enter "9*" in the "Message Type matches" field the rule will trigger anytime traffic with a Message type that begins with "9" is received.
For the "Mnemonic matches" field,  "*AK" would match any approach at a CP, "*LAK" would match any left approach, "1LAK" would match only that approach.

The bottom portion of the window is used to specify what you want the program to do if a rule matches what you've entered in the "matches" fields...

 
If you have more than one rule that triggers on similar traffic you may want to check the "Do not process further rules" checkbox. This tells the program to not compare the received traffic to any rules that come after this one if this rule matches.
Check the "Display message in pop-up window" checkbox if you would like the program to open up a separate window containing the traffic received.
Check the "Log message in Messages window" checkbox if you want an entry added to the Messages window (the window at the top of the main window) anytime this rule is triggered. The "Configure" button to the right of the checkbox is used to specify what should be displayed in the Messages window.
Check the "Log message to file" checkbox to have traffic triggering this rule appended to a file on disk. The traffic is formatted like it appears in the packet window before it's written to the file. Click on the "Filename" button to the right of the checkbox to specify the file to which traffic should be appended.
Check the "Play sound" checkbox if you want the program to play a wave sound anytime the rule is invoked. Sounds will be played only if your sound card supports capturing and playing of audio at the same time, not all sound cards can do this. If your sound card doesn't support simultaneous playing and recording you must use one of the other available data sources for ATCS data decoding and then use the sound card for wave file playback. Click on the "Filename" button to the right of the checkbox to specify the file sound file that should be played.
Check the "Emit beep through computer's speaker on match" option to cause the computer's speaker to beep when the rule is invoked. It's possible this won't work for everyone, since some computers may intercept the beep and send it to the sound card instead.

I monitor more than one railroad, how can I keep my settings separate?

If you monitor more than one railroad you should create one Windows short-cut for each system you monitor.

First load ATCS Monitor and configure the settings for one of the systems, then save these settings to a profile using the "Save Profile As..." menu item under the File menu. Repeat this for each railroad you monitor.

Now create a Windows short-cut for each railroad. In the "Command Line" field enter:

"C:\Program Files\ATCS Monitor\ATCSMon.exe" Profile.ini
where Profile.ini is the name of each profile created via "Save Profile As..."

Does ATCS utilize the MDC-4800 protocol?

Although ATCS Monitor is an adaptation of a program that decodes MDC-4800 protocol, ATCS protocol is entirely different with the exception that the frame synchronization values and baud rate are the same. For example:

MDC-4800 uses 112-bit blocks, ATCS uses 85-bit blocks
MDC-4800 uses bit interleaving, ATCS does not
MDC-4800 uses convolutional error correction, ATCS employs Reed-Solomon FEC (forward error-correction), CRC-16, and CRC-32 checksums.

Why do I see so few messages with intelligible text?

The bulk of ATCS messages take the form of digital commands which are meaningful when translated by the receiving equipment. The information displayed in the packet window is the result of translation of the received data into text via internal tables. Transmissions observed that do contain textual data include:

 
Diagnostic messages issued by wayside equipment. These frequently contain textual descriptions of a specific problem.
Work Order transmission and train crew reporting. Union Pacific in particular uses the ATCS system for this purpose. Currently, the program does not attempt to reformat these messages as they may be seen on a crew or locomotive terminal.

How can I produce my own dispatcher display?

Dispatcher displays used by ATCS Monitor are produced with the "Track Builder"  (henceforth TB for short) program for the Train Dispatcher simulation game available from Signal Computer Consultants at www.signalcc.com.  Check out the free and for-sale track (.trk) library at their website, since someone may have already developed a track file for the territory you want to display. Refer to the excellent TB documentation for detailed instructions if you intend to design your own territory from the ground up.  (Note:   TB 3 versions contain "Remote Monitor or Control" track element name fields specifically designed for ATCS Monitor.)  Details on adapting TB layouts for use by ATCS Monitor follow:

  
You may wish to load the METRLASA.lay file included in the ATCS Monitor distribution into TB at this point, and print out the track data listings for reference.  The CP names mentioned by example below refer to this file.
If you downloaded a .trk file, use the TB program to convert the .trk file to a layout (.lay) file, since ATCS Monitor only works with TB layout files.
Make sure each Control Point ("CP") on the layout is assigned a TB "Station Name" and unique "Station Call-up Letter". When sending data to the display routine, ATCS Monitor looks for a match between the MCP Name field in the MCP Information dialog and the Station Name field. (Actually, it matches only on the characters in the MCP name, so that an MCP Name of "Aliso" will match a Station Name of "Aliso MP 177.2"). The station call-up letter will link the various signals, switches, etc. to this CP, as you will see below.
Define the switch, signal, and track occupancy mnemonics in the ATCS Monitor MCP Information dialog for the CP's you wish to display, where x="Z" for Control or x="K" for Indication, and n=optional number if multiple items present:

 
Mnemonic Description
nNWx Normal Switch
nRWx Reverse Switch
nTK Interlocking occupancy (indication only)
nRAK Right-approach occupancy (indication only)
nLAK Left-approach occupancy (indication only)
nRGx Right clear
nLGx Left clear

The "Plot MCP Data" option activated by a right-click in either the Active MCP or Messages windows is very useful in determining mnemonic bit assignments during trackside CP observations.  See the Screen Captures link on the home page for sample display.

 
In TB, link the switches to CP's by setting the Switch (or Control/Monitor) Name field in the TB Switch Information dialog to Station-call-up-letter:nNW. Use the same name for crossover switches operating in pairs (see Aliso). 
Similarly, link the TB signals to CP's by setting the Signal (or Control/Monitor) Name field in the TB Signal Information dialog to the appropriate CP and signal mnemonic in the format Station-call-up-letter:nRG (or nLG). In the case of a standalone switch, where the CP is sent a single (non-track-specific) clear command and the signal to be affected is determined by the current switch setting (see CP Lincoln, for example), use the following naming convention Station-call-up-letter:{nRG|nLG}/{NW|RW}. So, if a signal is named F:1LG/NW, then it gets the clear if switch F:1NW is in the NW state, and if a signal is named F:1LG/RW, then it gets the clear if switch F:1NW is in the RW state.  In version 3.0.5 and above, the switch designation may also contain the switch number, i.e. F:1LG/2RW. 
ATCS Monitor will automatically determine the interlocking boundary block names and approach blocks for on each side where possible.  ("Interlocking" blocks are those blue "dummy" blocks in TB.) If for aesthetic purposes you wish to lengthen the default approaches, you may manually add adjacent blocks by naming them in the TB Track Block Information dialog in the format Station-call-up-letter:nRA (or nLA).  Note that it will be necessary to manually name at least one of the two same-side approach blocks of a stand-alone switch.  Also note that at least two blocks should separate CP's, since a single block can carry only one approach designation.
Before saving the layout file in TB, use the Renumber option in the Tools menu, then use the "Create Track Execute file" option in the File menu, which checks the integrity of the design. If any errors are indicated, you'll need to fix them before attempting to use the layout in ATCS Monitor.
After loading the display into ATCS Monitor, use the Dispatcher Display mouseover feature to review the program-assigned default names.