On this page, you find information about:

  • how to build a German H/V light main signal with LEGO bricks,
  • equipping the it with lights,
  • automating the signal with a MattzoLayoutController.


About the signal

The signal was originally designed by Matthias Runte of MattzoBricks in 2021 and refined in 2022 and 2023. Julius Brönner contributed some valueable ideas and details in 2023.

Shape and functionality is based on the German H/V light main signal (Lichthauptsignal im H/V-System) that was common on German railroads since about mid of the 20th century. Even though this type of light signal is being replaced by combination light signals that integrate distant signals into the main signal, the signal is still used on many railway tracks throughout Germany.


The signal can be equipped with various options.

Basic function

The signal always has a green and two red lights.

Third aspect

The signal can be equipped with a third (yellow) aspect. This indicates that the train may pass with “slow speed” (usually 40 km/h in reality).

Shunting clearance

Two white lights indicate the “shunting clearance”. This means that the train main enter the shunting area, but has no clearance to operate on the following main track.

Signal out of order

The signal does not operate normally. Nevertheless, the train may pass a red signal under certain circumstances at a slow speed.

Speed indicators

Speed indicators can be used to indicate the maximum speed from the signal on (white), or indicate that a speed indicator is going to follow shortly (yellow).

Distant signal

At the position of the main signal, a distant signal for the next main signal can be colocated.

Distant signal on short distance

If the distant signal is positioned less than 1000m ahead (on the main line; might be less on side-tracks) of the next main signal, an additional white light indicates the shortened distance. The same light is used if more than one distant signal is located ahead of the main signal.

Combining all options

All options can be combined. If you do that, the signal looks like this:

How to build the signal

(download button to instructions)

(download link to instructions)

The following pictures may also help you building the signal.

(add pictures)

Required Parts

The signal can be built with standard LEGO parts and some extra parts as described below. No printed parts are required for this signal.

Additional parts are:

  • Some white and colored LEDs (3mm). Quantity and type depend on the options of the signal that you like to add to your signal.
  • Thin copper wire with black lace to power up the LEDs (diameter 0,15 mm).


To equip the signal with lights, I have used 3 clear-white 3mm 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 into the mast to become invisible. To prevent the LEDs from burning off and to save electrical power, you may want to add some resistors to limit the current through the LED. At a voltage of 3,3V, 120 Ohm should usually be a good value. Red LEDs usually require larger resistors than others. In question read the data sheet of your LEDs.


The signal is automated with a MattzoLayoutController (MLC). The MLC controls the LEDs.

Find more details about the MLC here.

To use the MLC with signals is described here.

In the firmware, there is an example configuration file called “MLC_conf_Complex_Light_Signals.h”. This is a good starting point for you. Modify the file depending on the features that the variant of your signal has, and the aspects that it should be able to show.



Julius Brönner contributed some details to the design of the signal.

Thank you for your contribution, Julius.

Leave a Reply

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