How to signal this train junction properly?

I've followed a few videos on train signalling for Factorio but whatever order I do the signals, both trains when in the stations will constantly say "No Path" until I remove all the signals at the junction.

Can anyone tell me how to signal this junction so both trains can use it properly? Or perhaps I need to remake the junction instead?

I've tried having normal signals coming into the junction from all sides but it doesn't seem to work.

Here's a screen shot:

Where do I put the signals?

Building train signals

Train signals are a little bit weird at first, but when you understand them it makes so much sense.

When making signals you need to know whether you want tracks to be one or two-way. I'm going to assume the following:

All tracks except for the top right ones are one-way.

When building rail signaling, here are a few things to keep in mind:

• When a track splits, you need to have a rail chain signal that "predicts" which of the next tracks is empty
• If you want a track to be one-way, you must place a signal only on the right side of the track. Your design is perfect so trains can't get stuck (a common thing with two-way tracks)

How (normal) train signals work

Every train signal defines a "block". When a train enters that block, the signal displays 'red' and other trains can't enter that block.

Because there is a train after the signal, it becomes red. Dark yellow represents the block that the signal creates.

Chain signals work the same way, except they inherit the status of the next signal. If a track splits, it checks both ways. If one of the tracks is not empty, the chain signal becomes blue, signaling the train that only one of the train tracks is empty.

How I would make this work

Lets start with the top right corner - the two-way tracks. Because trains need to be able to pass both ways, these tracks need signals on both sides. Here is what I mean (see 1):

When the train is coming from the left, the chain signal indicates which of the tracks is empty (dark and light blue block). When the train is coming from top/right, the chain signal indicates whether the (dark yellow) block is empty.

The same principle is used for other tracks, for example (see 2):
A train coming from the right can only go down. When coming back (from the left), the chain signal indicates if the (dark yellow) path is clear

Putting all of this together, we get a functioning track where trains should not crash:

If you want, you can place more rail signals on the right side of the top left track so multiple trans can wait in line to leave, but that's just aesthetics.

• I know this is an old answer but I realized I forgot to thank you for the effort put into this answer, so thanks again! I occassionally use this answer as a reference, really helpful. Commented Nov 7, 2019 at 12:50
• @peacemaker Glad I could help :) Commented Nov 7, 2019 at 17:05

General idea - you want chain signals on everything that's two-directional, so trains don't end up coming from both directions at once. So:

• Two-way chain signals on the outbound rails (top and right paths). Just place a signal on both sides of the rail at the same spot to do it.
• One way chain signal on entry to the junction (left path).
• One way standard signal on exit from the junction (bottom path).
• Make sure a train can fit between the exit signal, and the signal after it.
• Make sure entry to the two-way part from the remote stations also has a chain signal.

The other answers focus on the 'how', but for me, the moment it clicked was when I the realised the 'why':

• A train signal (on either side) creates blocks
• Trains will refuse to pass to another block unless explicitly there's a green light (from a signal) saying it's OK.

As a result, placing a signal on one side works like a diode (only one direction), so if you want to allow trains to pass the block boundary in another direction then it needs an explicit signal.

If you then add that a signal turns green if the block on the guarded side is free of trains, then you can use this to build up a train network.