The problem is the boiler cannot connect to the offshore pump using the third pipe on the side. It has to be one of the other two.
This is because the third pipe has an output only. This output is meant to produce steam. You can see which direction the pipes output/input if you press Alt, like below:
The other two pipes are bidirectional and are suppose to input/output water, allowing you to connect multiple boilers to power multiple steam engines, such as this:
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.
Best Answer
In general, any place train tracks cross — and thus could cause trains to collide — is always one block. Your signal is flashing because the track ahead of it and the track behind it are forced to be the same block by the crossing — it is unable to do its job of splitting one block into two. (You'd get the same flashing if you put exactly one signal on a single loop of track.)
If you put a second signal on the vertical track, just above the crossing, then you will successfully split the track into two blocks: one containing the crossing and the other containing the rest of the loop.
However, it is probably a better idea to not put any signals within the loop at all, because it really isn't long enough for multiple trains to usefully occupy. Instead, just move your signal that's to the right of the crossing to the left of the crossing. That way, a train at the station will occupy a block consisting of all of the track that it's obstructing anyway.
I also suggest you remove the signal just below the crossing. Instead, place a chain signal at the beginning of the station, behind the mine loading — the place where the rear of the train will sit while it's loading. This way, there's one block for the extent of the station-when-in-use.