Introduction
I've used what I consider to be the gold standard of model railroad turnout motors for years - the Circuitron Tortoise. That said, when the Wind River built a new yard with 25+ turnouts, my budget just couldn't absorb that many new Tortoises (even at $14+/each in quantity), so I started seeking cheaper options.
The cheaper option turned out to be micro servos from the RC car/plane business. These little guys can be had for $3 in small quantities on eBay. Look for "9g servo" - they're basically cheap knockoffs of the Hitec HS-55.
Circuit Notes
- There are several versions of this circuit, and as much or as little of them can be used as needed. I decided I'd start with the "ultimate" version, and design it in such a way that anything the end user didn't want could be omitted to reduce cost.
- The frog power control relay, transistor, etc. are probably the most optional. It's basically a built-in version of the Overly Complicated Frog/Points Power Controller, and provides for disconnecting the power to Shinohara-style turnouts as the points throw. If you're not energizing your frogs, or if energizing them before the points completely throw won't short out anything, you can omit this part of the circuit.
- Obviously any relay is going to be a significant part of the total cost. If you're not using them somewhere that you need contacts to indicate direction (such as maybe an industrial track), just leave them all out, along with their associated transistors and diodes.
- Likewise, if you have a stable +5V power rail, there's no need to have an individual 5V regulator on each board. If you have a large cluster of these things, you might want to just have a centralized 5VDC supply. Be warned, though - servos can draw substantial current (1A or more) while moving or fighting against a load. Usually at idle they only draw a few milliamps.
- The optoisolator provides an input that's completely isolated from the turnout circuit that mimics the standard input for a Tortoise or Switchmaster. If you're not interested in full isolation, just take it out and switch the PIC input pin, either by driving it off other logic chips or by a toggle switch to ground.
- The PIC10F200-based version is designed to be the dirt cheap version of the circuit. If you left out all the optional stuff, you'd basically be left with the PIC that costs $0.46 from Digikey. That's a pretty cheap servo driver, and you could conceivably create servo-based turnout motors for about $5 apiece (including servo and piano wire). The downside is that the throw angle is not easily adjustable without pulling the part and reprogramming it.
- There's also a full-featured PIC12F629 based version that will cost slightly more, but its throw is adjustable while it's installed using a couple buttons. However, since the PIC10 series has no EEPROM, I can't do that with the cheap version.
- Yes, I could have done it with analog circuitry. However, the PIC10F200 is $0.46 is small quantities. That's hard to beat.
- For those that do want to use it to isolate the frog during the throw, connect 2NOR and 2REV to each of the two rails, connect 2COM to 3COM, and 3PWR to your frog.
- Likewise, the optoisolator can be omitted if you just want to feed in a logic-level signal. It's mainly there to provide an input compatible with every other slow-motion machine on the market.
- The firmware is tunable - the maximum throw each side of center, as well as the rate of throw, can be tuned by parameters at the top of the file. See the code comments for more details. Just grab Microchip MPLAB to compile it - it's written in assembly.
Documentation - The El-Cheapo (PIC10F200 Version)
Actually in my opinion, cheaper is better in this case if you're just driving a turnout. Properly aligned, spring tension in the throw wire will keep the turnout in position. (I strongly recommend 0.025" music wire - 0.032" is too thick and will force the servo around rather than holding the points.)
Installation and use manual
Schematic - v1.0b
Source Code and Binary - v1.0
gEDA Design Files
NEW: Buy MRServo! - Yes, we've product-ized this one. If you don't want to make your own, you can now buy one through Iowa Scaled Engineering over here.
Documentation - The Deluxe (PIC12F629 Version)
Schematic - coming shortly
Source Code and Binary - v0.9
Servo Limit Programming:
- Hold down both buttons for approximately 1 second. The direction relay/LED will start flashing rapidly. Release the buttons - you're now in programming mode.
- First you'll set the maximum throw one direction. The servo should swing to its current setpoint on that end of the throw. Use the buttons as up/down to set the maximum travel. Ideally you want to do this once the servo is installed, and you want to set a limit that holds the points tightly while not having the servo chatter as it applies force.
- When you're happy with it, hold both buttons again for 1 second until you get flashing.
- The servo should swing to its other limit. Again, use the up/down buttons to adjust it.
- Again, hold both buttons for 1 second until flashing. This will save your settings and the servo should return to normal operation.
Installation
See here for installation and mounting instructions
A couple videos:
http://www.youtube.com/watch?v=vINbk5T4LhQ
http://www.youtube.com/watch?v=w3-idMeMRM8