On this page, you will find instructions of:

  • how to build a German semaphore distant signal with LEGO bricks,
  • how to equip it with lights,
  • how to make the disk, the blade and the spectacles move, and
  • how to automate of all that it with a MattzoLayoutController.
German distant semaphore signal
German distant semaphore signal

About the signal

The signal was designed by Matthias Runte of MattzoBricks in 2021. Shape and functionality is based on the German semaphre main signal (Formhauptsignal) that was common on German railroads since the 19th century. Even though form signals are being replaced since the 1970s by light signals, the signal is still used in many train stations and on smaller main tracks in Germany.

The distant signal is usually placed 1000m ahead of the main signal. On a scale of 1:38, this equals about 206 standards straight tracks or roughly 3290 studs. 🙂

How to build the signal

Designing fully functional, lighted and realistic semaphore signals for the LEGO train system is a very challenging task.

Find below some pictures of the signals that help you to build the signal yourself. Given I have enough time and my attention span is long enough, I might also compile some piece-by-piece building instructions including a registry of the required parts for the signal in the future.

German distant semaphore signal with 3 aspects
German distant semaphore signal with 3 aspects

Required Parts

The signal requires the following parts:

  • A couple of standard LEGO bricks
  • A few printed parts
  • Decal foil and transparent acrylic spray paint
  • 2 LEDs (5mm)
  • Thin copper wires with black lace to power up the LEDs
  • A servo to motorize the blade

Printed parts

The distant signal could theoretically be build with standard LEGO parts completely, but it would not look as good as on the pictures. That’s why I designed a few parts to be printed with a 3D printer. These parts are the spectacle holders and the blade with the orange arrow.

Printed semaphore distant signal parts
Printed semaphore distant signal parts

The stl files are available for download. Enjoy!

Attention: you may need to scale the parts down with a factor of 0.254 before printing!


I have designed some decals for the signal.

MattzoBricks semaphore distant signal decals
MattzoBricks semaphore distant signal decals

The decals can be downloaded as Microsoft Word and pdf document.

The decals can simply be printed out on paper, cut out and glued to the brick. If you would like to create professional, water-proof and long lasting decals, you should print the decals on decal foil and fix it with transparent acrylic spray paint.


To equip the signal with lights, I have used 2 white 5mm LEDs. The LEDs fit perfectly into the holes of the LEGO parts as shown on the pictures. The wires are very thin, black copper wires used for model scale train layouts. The wires can be put between the mast parts. This way they are almost completely hidden and very hard to spot at all. The lights are connected to the MattzoLayoutController on some plus (3,3V) and minus (ground) terminals.


To make the disk, the blade and the spectacles move, you need a servo used. I have used a 270° servo from a maker shop. This servo is available under different brands and can be ordered e.g. on Ali Express for a reasonable price.

Servo 270°
Servo 270°

The idea is that the servo rotates to a specific angle when the MattzoLayoutController gets a signal command for the different aspects.

The servo is placed in the little brown house behind the signal.

Small signal servo house
Small signal servo house

If you want the assembly to be fully autonomous, you may build a larger house that also covers the MattzoLayoutController and a rechargeable battery.

If you build your layout with MILS or similar techniques, you can place the servo under the tracks instead.

Please note that you control both blades and the spectacle holders of the signal with a single servo only.

I used the following servo angles:

  • Vr0 (stop = yellow/yellow): 8°
  • Vr1 (clear = green/green): 70°
  • Vr2 (restricted = slow = green/yellow): 113°

The servo angles will vary depending on a couple of factors. If the servo angles don’t fit, just play around with them in the MattzoLayoutConfiguration until they fit to your needs.


The signal is automated with a MattzoLayoutController (MLC). The MLC controls the servo for the blades, and provide current for the LEDs. For the three aspect signal, you may also use the controller to switch on the yellow light only if it is used (when showing the slow aspect).

Find more details about the MLC here.

To use the MLC with signals is described here.

In firmware 0.5, there is an example configuration file called “MattzoLayoutController_Configuration_FormSignals.h” that should help you to easily configure your signals.


Leave a Reply

Your email address will not be published. Required fields are marked *