Train ID recognition is not required with a computer-controlled layout: with simple ON/OFF detectors, the PC follows the trains as it controls them, and always knows where they are. But there is one case where I find Train ID (and the new Railcom technology) useful: if you put a new locomotive on the tracks, you need to tell TC which locomotive it is.

Thanks to Railcom, the locomotive can be automatically recognized by TC.
For people with a  Loconet bus, the Uhlenbrock MARCo module offers a cheap – even if unperfect – solution. Here is a guick guide with Train Controller (Gold, V8).

What this will do

This will allow you to deposit a new locomotive on one track section,  and have TC automatically know which new locomotive is on the layout. You won’t need to tell TC which train it is.

This is a “gadget functionality”, but the Uhlenbrock MARCo only costs about €35 if you already have TC and Loconet.

For this price, it can’t be perfect: this solution has 2 caveats:

  • The direction of the engine won’t be recognized. Once the right locomotive pops up in your block on TC, you still have a direction check to make.
  • Because the MARCo from Uhlenbrock unfortunately refuses to detect anything but Railcom equipped decoders, you can’t use it as a regular detection module on a normal track block. There are two solutions to that:
    • Either you use an isolated block of your layout, that will not support regular traffic and just serve the purpose of adding locomotives manually (say a “launch block”)
    • Or you equip a single block with regular detectors (on/off) and put a marco detection area in the middle. In that case, the block will still be usable with regular traffic.
      This is the solution I went for:
The block I will use to "put" new locomotives on the layout. It will also be a regular dead-end siding in normal traffic.

The block I will use to “put” new locomotives on the layout.
It will also be a regular dead-end siding in normal traffic.


What you need:

  • Train Controller  (from Railroad & Co/Freiwald software) – hereafter “TC”: a popular and advanced PC train control software.
    This guide is only for this specific software, but theoretically, any software fully compatible with the Loconet protocol from Digitrax should work in a similar fashion.
  • A loconet bus (of course)
    I use a Loconet with a Locobuffer USB, without a command station (see here). This should however work with any Loconet connected to your TC
  • Railcom and a Uhlenbrock MARCo module

I strongly advise reading my full overview of the MARCo module. In a nutshell: it detects train IDs using the Railcom technology on the tracks, and it can push the information using standard Digitrax transponding messages over the Loconet.
That’s a good news, because Train Controller knows how to interpret train ID messages in the Loconet language.

Programming the MARCo

We don’t want the MARCo to act as a fancy automation brain, we just want it to send the train IDs over Loconet for our PC to read them. Again, refer to my initial MARCo post to understand its configuration. For the purpose of this guide, here is a summary of my LNCVs (Loconet-CVs):

LNCV #00     (Address of your choice for section 1, in my case: 125)
LNCV #02     =1
LNCV #15     =99

Activating Train Identification

Important: TrainController V8 considers train detection and train identification as two separate things.
Train DETECTION is your regular ON/OFF detector.
Train IDENTIFICATION is the ability for a module to send the train number to TC.

Train Identification needs to be activated in Train Controller, and so as 2 levels:

  • At the interface level

In the options of your DCC system, make sure the Train Identification option is checked. In my case, this is a Locobuffer USB:

  • For each locomotive or car

There are many Train ID technologies, so Train Controller needs a bit more information. You need to activate train identification for each single locomotive you have:

    • First, indicate the Digital System used (Loconet in our case).
    • Then, indicate the train ID. As we are using Railcom, the Train ID will always be similar to the Address of the locomotive.

Configuring the track section

As per the limitations of the MARCo quoted earlier, I will need to split my block in 2 sections: one watched by the MARCo – where I will put my trains – and another watched by a standard ON/OFF Loconet detector – for the block to still be usable as a stop track in normal traffic.


  • Set up your block the usual way. Add 2 sections, and setup train detection in your non-marco section of the block
How to setup a block with a MARCo for auto train ID (for new locomotives on the track) AND for regular traffic.

How to setup a block with a MARCo for auto train ID (for new locomotives on the track)
AND for regular traffic.

  • Configure the MARCo track section for (on/off) train detection
    Again, MARCo won’t detect non Railcom trains, but it will at least send an on/off message to TC when occupied by a Railcom locomotive. My MARCo section is number 125 ( 8*16-3):


  • Configuration train identification for the block

Train identification works for an entire block (not a single detection section), so it doesn’t matter if your section contains several detectors. So go back to the block options, and go to the Train Identification menu. As you now, the MARCo is simulating a transponder from Digitrax (it sends train numbers over the Loconet via the Digitrax protocol). So obviously MARCo is not available in the list, you can select “RX8 transponder zone”. You will need to compute which address your Uhlenbrock MARCo corresponds to in “Digitrax module” numbering. In my case, this is address 8 with input 7.


Testing & troubleshooting

If all goes well, Train Controller will automatically detect which locomotive it is, sparing you the task of selecting the locomotive manually.

If the train isn’t detected, double check your calculation of the reporting address. It is easy to make mistakes. Also, check the blue LEDs of the MARCo when your train goes over the track section: if the train is Railcom compatible, and Railcom is activated, they should blink.

If you are having further trouble, shut down Train Controller and use the excellent Loconet-Checker software. If you don’t see the MARCo talking to the Loconet at all, then you have a problem with the module configuration, not Train Controller.

Also note the MARCo has 2 track sections, you can use the second section for a similar purpose somewhere else on your layout.

Last word

Yes: Train Identification is mostly superfluous with a good PC software such as Train Controller. But still, I like the added functionality of not having to declare new locomotives on the tracks myself.

Let’s be clear: the Uhlenbrock MARCo is not a perfect solution but a cheap one if you already have TC and a Loconet.
If you want to spend more money (about 100€ instead of 35€), you may want to look at the Tams Elektronik RCD-2 detector, along with their RC-Link PC interface. Not only is it supported by TC, but you won’t be facing the 2 limitations of the MARCo: the direction of the locomotive AND non Railcom vehicles should be detected (if you connect the RCD-2 to an external on/off detector). Thanks Jean on the French forum Tout sur TrainController for the precious info !

Copyright notice: screenshots in this post are from Train Controller Gold V8 from Freiwald Software, which you can try in demo mode. No copyright infringement is intended. 

External links