Simple balise reader for the measuring train

Eurobalises are installed on all railway lines and clearly identify train tracks. First and foremost, of course, for train protection, but this is also important information for diagnostic trains. However, the balise should be easy to read here, independently of the complex and expensive train protection system.

  • Initial situation

    Among other things, measuring trains read balises in order to determine the location and the exact track so that the recorded diagnostic data can be localised. Special balise readers that work independently of the train control system are used for this purpose. However, only a handful of these devices still exist. They are no longer manufactured and the original manufacturers no longer offer support.

  • SCS solution

    SCS reverse-engineered one of the existing balise readers and developed a low-cost device based on a standard radio module (software-defined radio) and a customised RF board. This is used to excite the balise and receive the returned signal. A Python application transmits the data to the higher-level positioning system of the measuring train via a web socket.

  • Added value

    Thanks to open source code, production data and IP rights, the availability of balise readers is now guaranteed for SBB as a customer. The new balise reader also consists of significantly fewer components and is only one unit high in the 19" rack instead of three. Thanks to the FPGA SoC and the software-defined radio, the balise reader can be flexibly expanded.

Project insights

The rail network is equipped with balises, i.e. magnetically coupled transponders, which are mounted between the rails of a track. Each of these has a unique identification number. An antenna under the locomotive excites the balise with a 27 MHz RF field, whereupon the balise returns the identification number at 4 MHz. The identification number is used to reliably localise the train for the ETCS train protection system.

Diagnostic train reads balises

To monitor and maintain the infrastructure, SBB uses diagnostic trains that record the condition of the tracks with various sensors and cameras. In addition to odometry and GPS, the balises are also used as fixed objects for locating the diagnostic data on the topology of the infrastructure, as they are entered in the database with their position. For this purpose, SBB has a handful of non-safety-related balise readers in use that are not connected to the train control system.

The balise readers currently in use cannot be reordered as the two current manufacturers of these devices no longer offer support and the devices are no longer in production. For reasons of cost-effectiveness and availability, a new balise reader should be developed that can be produced in a small series at a low price.

Reverse engineering

No documentation exists for the existing balise readers, which is why a supplier’s type was analysed by reverse engineering and compared with the specification of the Eurobalises. The key components are

  • a TX transmitter at 27.095 MHz as a telepower source, the exact power is unknown, but is around 3 to 5 watts due to the power consumption.
  • an RX amplifier with a low-pass filter (DC to 5MHz) with an attenuation of -50dB at 27MHz.
  • a duplexer to separate transmitter and receiver at the antenna.
  • a Software Defined Radio (SDR) to switch on the transmitter and demodulate the balise signal.
  • an industrial PC that decodes the signal.

Retrofit: Not just a copy

A retrofit should not only produce a copy, but also learn from the existing system. In the existing balise reader, for example, the transmitter is switched on and off via a USB-attached relay from the software, but could also be controlled directly via the SDR board. In addition, the SDR board is only used for sampling (and demodulation) of the received signals – the data is then decoded on the integrated PC. Many different supply voltages (+5V, +15V, -15V, 24V) are also used. The system architecture is quite complex and takes up valuable space in the measuring train (4U height units in a 19-inch rack).

The new system is to be significantly simplified:

  • TX control directly on the SDR board
  • Reduced number of supply voltages (amplifier not symmetrically supplied)
  • Decoding directly on the SDR board, without a separate PC

The new design has been reduced in size by a factor of 4 (to one height unit in a 19-inch rack) without making any relevant compromises in terms of functionality. Less complexity also means greater reliability and better maintainability.

New system design

In the new balise reader, the 27 MHz signal is generated directly in the SDR board and only amplified by the RF module. As the SDR board works with a clock frequency of 125 MHz, the harmonics are filtered out after the amplifier for a clean output signal.
The received signal is decoded directly in the SDR board. This means that the new system consists of just three essential elements: a power supply unit, the SDR board and the RF front end. The latter was customised for the balise reader.

RF front end

The TX, RX and duplexer paths are integrated in the RF front end. The picture (below) shows the TX path at the bottom and the RX path at the top. On the right is the connection for the antenna. The output power of 35dBm (3.2W) is sufficient to reliably read the balises. The power consumption of the RF module is 700mA/12V.

Software Defined Radio (SDR)

The SDR platform is based on a Red Pitaya board with 125MHz clock and a resolution of 14bit. It is equipped with a Xilinx Zynq 7010 FPGA. The operating system is a Yocto-based Linux with a U-Boot bootloader. Secure software updates are possible at any time via the web interface. The application (decoder) is written in Python3.
During the early development phase, various algorithms for demodulation and decoding were evaluated with the help of GNU Radio and a hardware-in-the-loop setup. In the finished product, the FPGA handles the computationally intensive demodulation, while the subsequent decoding is performed in the Python application.

Websocket application

The application is designed as a web socket server. Compared to an HTTP server, a web socket can also send data on its own when a connection is open without waiting for a new connection from the client. As soon as a balise is recognised, the server sends the identification number and a time stamp. Because the balise is detected several times during the crossing, it is possible to determine very precisely when the balise is in the centre under the reader. The accuracy (jitter) of the time stamp is better than 200 microseconds if the time is synchronised using the Network Time Protocol.

The new balise reader was implemented for SBB and integrated into the OpenTLS measurement application in the diagnostic vehicle. Thousands of balises are reliably read every day. The status or the live log can be called up via a web interface. And thanks to open source code, production data and IP rights, the availability of balise readers for SBB is now guaranteed.

Related projects

Show all projects
David Gschwend High Performance Systems How can I help you?