Wayne Roderick, 3rd Division, PNR, NMRA (life)

01/13/98 rev 10/06/11

The HO scale TETON SHORT LINE (TSL) signal system was unique when created in 1969. We developed a LOGIC MODULE using two transistors and a few resistors. The three color signals were completely home-made using the smallest bulbs available. Full automatic, i.e. ABS, they interlocked with switch positions and occupancy. The resulting system was published in Model Railroader, June 1972 and many folks built the circuits. An interesting fact: We never lost one lamp in all those years!

Our original system stayed in operation until 1995 when we upgraded to tiny LED's in scale heads and driven by the computer. The new signals are homemade except for the IHC head castings and a few relay box castings found in the junk box. They include some two headed masts for approaching sidings and some signal bridges. We started off with 48 heads three color heads and then in 2002 we expanded the mainline adding one more siding and enhancing the signal system at the Thunder Mountain crossover. Our old signal supplier, the TSL signal shops, balked at setting up production for the three color heads, so we rummaged around the shop and found a couple old PFM upper quadrant semaphores and fabricated some searchlight signals for the rest. The head count is now up to 64. Click here for some circuit designs to drive three-color LED searchlight signals complete with approach lighting, then Click here to see how we drive a three-position semaphore with an economical model airplane servo.

The resolution of the following drawing leaves a lot to be desired so we'll zoom in at one siding for your examination and explain the signal and block numbering system. If you have a CAD program that can handle .DWG files then the resolution is virtually unlimited and you can download the file and use components for your own drawing(s).

sgnnmbr4.dwg, 209k

Signal plan for the TSL

Signal plan Detail

Wow! Are all those numbers necessary? Probably not, but it might give you some idea(s) for your own numbering system(s). Each number system has some purpose. Track occupancy has only one number system but the switches have two and the signals have three.


The BLACK numbers in circles are the original block numbers for occupancy detection and are a carry-over from the days of ACC. Some numbers have been added out of sequence due to remodeling of the track plan.

The MAGENTA colored numbers, 30-40, in circles are the newer OS sections that are detected for CTC operation


The numbers S1 and S2 are switch numbers, also carried over from the old days and still used by the computer.


The numbers in squares are signal numbers, EVEN for East-bound and ODD for Westbound. There are gaps because the number, like some prototypes represent an approximate milepost. Each head has a number designation.

Smaller numbers, alongside the head or inside a searchlite head identify the HeadNumber that our computer system addresses. These numbers, in unbroken sequence are used to make hardware and software easier to work with.


To emulate prototype practice for the CTC, we had to add another number system. Each OS section has an EVEN number with L or R for a group of signals and an ODD number for a switch. These are shown in MAGENTA.

The arrow and notation, East Node 2, refers to the CMRI terminal that serves this section of track.

Keeping it all in order as you wire the railroad and write the software would be a very difficult task without this drawing. Originally, I used tabulations but this is far better.

SIGNAL GENERAL MECHANICAL: We didn't have to go far to measure the prototype. In our backyard is a 12" to the foot scale, Milwaukee RR three color signal. It works too! Changes color randomly to help us in making important decisions like do/don't/maybe. It seemed as good as any other to model because the TSL does not follow any particular prototype. We looked at the problems involved in making the head out of metal like the old ones, and decided that the IHC plastic ones would be a lot easier to insulate the tight fitting LED's, and the dimensions are right. This time the lights would not be oversize and hang out the rear.

Milwaukee style signals for the TSL

MAST & LADDERS: The mast is 1/16" o.d. brass tube except when two heads are stacked, then the lower mast is 3/32' o.d. The ladder rails are .020 music wire and the rungs are #30 wire-wrap copper wire assembled on a simple wooden jig. The wire is wrapped back and forth around small wood pegs and crossing the rails. A little liquid flux and the junctions are all soldered with a simple wipe of the iron. Trim off the overhang and you got a ladder. The base is epoxy cast around an eight pin dual-in-line (dip) plug. Experience taught us that they must be break-away construction. Knock 'em over and just set 'em back up. Even the signal bridges are knock-over. Mast wiring is done with #30 magnet wire.
Signal in hand Click on the thumbnail for a VGA ( 640x480) close up photo of the completed signal.

LED's: My friend Ron Ferrell with the Railroad Signals SIG identified a sub miniature, high intensity LED made by Industrial Devices Inc, series 4307T. We went together and bought a minimum order of 100 each color. The LED's are BRITE, they have a round lens 1.65mm wide and a square base 2.1mm. The leads come out the side and can be bent back for a width of 2.5mm. That fits nicely in the IHC head. A strip of brass 3/32x9/16x.002 slips alongside to provide an electrical common link to the mast. The back is closed with a strip of styrene.

READY BUILT SIGNALS: For those of you with lots or money and/or oversize thumbs let me suggest a source that I first seen at the CTC symposium in Utah Feb 2003 and again at the Ogden UT show 2007. Pete Hartado is building incredibly gorgeous HO signals in conjunction with Castle Valley Backshop, 12021 Kings Crossing Way in Riverton UT, 84065. Give them a call at 801-446-8558 for a flyer or Pete's number and e-mail. Pete's got many styles, multihead, searchlight and even has lunar Whites. These are meticulously handbuilt and the backorder time might be significant.

ELECTRICAL: In spite of the fact that I recently received a call from a long time user of the 1972 circuits, informing me that his club was going to re-use them again, I opted for a little higher technology and encouraged him to do so also. The TSL uses +12v DC for nearly everything except track. Like your automobile, that's the standard and it's available all around the layout. We put the 12 volts on the mast as a common source and pull the LED's to ground to activate them. They should work at about .010amps, so we needed about 1000 ohms to limit the current.

Safety tip: I split the resistance, putting part of it right at the signal socket buried in the plaster scenery and the rest in the circuit card. This makes the signal AND electronics almost invulnerable to wiring errors. Accidently contacting Ground, +12V or even your DCC with the interconnecting wire(s) unlikely to hurt a thing. It would be a major effort to change a lamp.

Should the mast go to ground or track, no problem, the 12V source has a very fast electronic circuit breaker and in vulnerable areas we put an automtive bulb between the 12 volts and the mast. Multiple heads, as might be found on a bridge use a 16 pin dip connector. Misaligning or reversing the plug does no damage- uh- electrical that is!

Schematic, Signal Drivers

DRIVER CARDS: Six circuit cards, each plugging into a 44 pin connector, drive eight heads each for a total of 48. The driver chips are common TTL7400, nominally rated at 5V & .016A sink (not the LS type). What? switching 12 volts and not using open collector? You bet! We even had 'em switching the .050 ma bulbs during the changeover. If you dig into the extended operation characteristic of TTL, you find they can do it very nicely and we had lots of TTL in the junk box.

SOFTWARE: The computer has had occupancy and switch position information inputted since its infancy, so all we had to do was write some simple QBASIC statements to perform the logic. It started pretty simple with ABS signalling, got a little messier with APB and CTC added even more. Start off assuming a DARK signal, then light it up and start adding restrictions. One step at a time makes it really quite simple.

Let's look at signal#18 in our picture:

Signal18:    'Eastbound at block 4/31/5- exit Wormwood main
   SgnlHdNmbr = 56
   SgnlClr$ = "DRK'
   IF ocupy(4) or Ocupy(13) THEN SgnlClr$ = "GRN"
   IF Sig$(20) = "RED" THEN SgnlClr$ = "YEL"
   IF Ocupy(5) OR Ocupy(31) THEN SgnClr$ = "RED"
   IF Swtch(2) THEN SgnlClr$ = "RED"
   IF APB$(2) = "West" THEN SgnlClr$ = "RED"     'from APB SUB
   IF OSd$(22) = "West" THEN SgnlClr$ = "RED"    'from CTCtiming & OSknockdown 
   IF OSd$(22) = "Stop" THEN SgnlClr$ = "RED"
   Sig$(18) = SgnlClr$
   CALL SgnlClrCode(SgnlClr$, SgnHdNmbr)

SUB SgnlClrCode(SgnlClr$, SgnHdNmbr)
      'come here with SgnlClr$ and SgnlHdNmbr(1-64). Store the
      'color as a binary code in a SIGNAL GROUP array for output

   IF SgnlClr$ = "GRN" THEN
      SigClr = 2
   ELSEIF SgnlClr$ = "YEL" THEN
      SigClr = 1
   ELSEIF SgnlClr$ = "RED" THEN
      SigClr = 3
   ELSE SigClr = 0   
      'in most cases, if its dark - let's make it green
   IF (SgnlHdNmbr <> 18 and SigClr = 0) THEN SigClr = 2  'flash #18

The resultant code is two bits per head that provides four possible light conditions including DARK. We combine 4 heads for an 8 bit byte and poke it out to the driver cards. Sixteen bytes does the whole railroad, so we just tack it onto an existing I/O card.

'assemble groups of 4 heads into  8 bit words
     SgnlHdNmbr = SgnlHdNmbr - 1   'logical numbers range 0 to 63
    a = SgnlHdNmbr \ 4 + 1  'ranges from 1 to 16
     IF SgnlHdNmbr MOD 4 = 0 THEN
       SgnlGrp(a) = SigClr OR (SgnlGrp(a) AND &HFC)        'xxxx xx--
     ELSEIF SgnlHdNmbr MOD 4 = 1 THEN
       SgnlGrp(a) = (SigClr * 4) OR (SgnlGrp(a) AND &HF3)  'xxxx --xx
     ELSEIF SgnlHdNmbr MOD 4 = 2 THEN
       SgnlGrp(a) = (SigClr * 16) OR (SgnlGrp(a) AND &HCF) 'xx-- xxxx
     ELSEIF SgnlHdNmbr MOD 4 = 3 THEN
       SgnlGrp(a) = (SigClr * 64) OR (SgnlGrp(a) AND &H3F) '--xx xxxx
     END IF

SUB LCBwrite:  'CMRI users will recognize this OUTPUT format.

     '8 bytes for signals at Node0 
     OB(33) = SgnGrp(1)     
     OB(34) = SgnGrp(2)
     '4 bytes for signals at Node1
     OB(57) = SgnGrp(9)

Why do I use QBASIC? because I'm not a programmer, I just do what has to be done and I learned BASIC long ago. It's Fun- It works!

Teton Short Line Home Page