I just built two new single head semaphore signals for the North end of Watertown yard. I have built several double head semaphores, but these were my first singles. The mast is made from 3/32″ brass tubing with everything else being 3d printed, including the ladder, which I had previously fabricated from brass. I was afraid the resin based 3d printed ladder would be too frail. It turned out to work well and was much easier than the brass alternative.

I used JMRI simple signal logic to set up my signals on the main line which worked very well. For the entrance to the yard, I wanted to control traffic based on the main line, arrival, and departure track occupancy as well as the position of four turnouts, two of which are crossovers. I also wanted to allow traffic into the engine service facility under yellow. I looked at JMRI LogixNG and decided it was more than I wanted to deal with learning, so I turned to the older Logix software for the job.
Using Logix to Control Entry to the Yard

I created three Logix routines that would set the three aspects of the semaphore, one for green, one for yellow, and one for red. The conditions that would allow for a green aspect would be that the turnouts would be set for an unoccupied track, also the main would need to be unoccupied because I got a little silly when creating the blocks. I probably made many mistakes in creating occupancy blocks with the biggest being not dividing the main into two separate blocks. The conditions for a yellow aspect would be basically the same, with the exceptions that the main could be occupied or the engine service turnout could be thrown. This would allow a train to enter the arrival or departure track while the main was occupied, as long as the path was clear to that track. This requires the engineer to be aware of any traffic on the main and be ready to stop. The red aspect would appear if the turnouts were set for any occupied track. So far, this seems to be working as intended.