Many operations-oriented model railroad layouts and clubs base their schedule around fast clocks, which tick off a 24-hour day in the course of only a few real hours. These are handy for keeping those fast freights running on scale time, and for making sure the local's out of the way before the flagship passenger train shows up. These clocks feature adjustable starting times, programmable time scaling (1:1 - 60:1), a pause function, a real clock that runs in the background, and, best of all, networkability, so you can have as many clocks as you need without having to deal with each one individually. They were designed to be simple to construct and low-cost, based on a single PIC16F874 (or PIC16F877A), two dual seven-segment displays, and a handful of other small parts.
The first model railroad to implement these (and the group that got me on the project in the first place) is Ron Renner's Wind River Railroad. They're currently running one v2.0 master and four v1.1 slave units. To my knowledge, v2.0 is bug-free. If you happen to find one, or there's a feature missing you'd like to see added, drop me an email.
5-May-2008: Since I had to create a pair of new slave clocks for the Wind River to accommodate our new South Yard operators, I decided to revisit the code and try to make a cheaper slave unit with a smaller component count. The result will be posted shortly, but basically it's now based on new code running on a PIC16F628A. I'm also working on an updated version of the master clock, suitable for use on a PIC16F887, since these are the replacement for the PIC16F877A currently being specified, and are much cheaper. I should have schematics and binaries out within the next couple of weeks.
19-Dec-2005: Finally, the long-awaited firmware upgrade is out. The master code was completely rewritten to hopefully get rid of all the weird, nagging bugs in the first version.
30-July-2002: I've posted new stable firmware (v1.1) fixing a bug when rolling over in 24-hour time. The clock would roll from 22:59 straight to 00:00. As they say, that's bad. I've also posted an alpha (pre-release) version of new firmware that fixes several more bugs in addition to adding support for a real-time clock chip. This will allow the clocks to keep real time in addition to acting as fast clocks. Once the operating session is over, just set them back to real time and they'll automatically reset to the real time.
29-July-2002: Is anyone other than me actually using these things? If so, I'd love to at least know about it, or possibly, if you have a few photos, post them here to give others ideas. Also, on a related but different note, if I were to sell tested and assembled units, kits, preprogrammed microcontrollers, or just unpopulated circuit boards, would anybody actually be interested in buying such things? (Of course they would include support in assembly and debugging for kits...) The designs will always remain free, I just thought this might make it easier for some of you (and allow me to partially recoup development costs).
Documentation
Operators Manual - Version 2.0 Last updated 9-Jan-2006 | [link] |
Operators Manual - Version 1.0 (obsolete - for reference only) | [link] |
Fast Clock FAQ Last updated 9-Jan-2006 | [link] |
Fast Clock Serial Protocol Last updated 9-Jan-2006 | [link] |
Schematics
There are two versions - the original and the "improved" 2.0 version, which goes with the 2.0 firmware below. Really, there aren't any differences other than the DS1306 Real Time Clock. If you build the 2.0 version and leave off the real time clock, it will still work, just that "real" mode won't work.
Version 2.0 Released: 19-Dec-2005 | [png] |
Version 1.1 Released: 1-Oct-2001 | [png] |
Firmware
Version 2.0 Note: Compiled with C2C 5.97 compiler, targetted for PIC16F877A with bootloader | [src] - [hex] |
Version 1.1 (obsolete for masters) Targetted for PIC16F874, schematic v1.1 Requires Tech Tools CVASM16 6.0 or higher to assemble | [src] - [hex] |
Version 1.0 (obsolete) Targetted for PIC16F874, schematic v1.1 Requires Tech Tools CVASM16 6.0 or higher to assemble | [src] - [hex] |
Photos
 | First Prototype 11-Sep-2001 - The first working prototype, with the scope still helping me work out a few bugs. | [640x960] |
 | First Slave Unit 30-Sep-2001 - A few weeks later, I have the first slave prototype also running. | [960x640] |
 | Both Units 30-Sep-2001 - Both units, running together on my desk. | [960x640] |
 | WRRR Units Under Construction 7-Nov-2001 - The first hand-built production units, two running, two needing a little love yet. | [640x512] |
 | WRRR Master Unit 7-Nov-2001 - The Wind River's master unit, without the DS1306 RTC yet... | [640x512] |
 | WRRR Installed Slave 5-Dec-2001 - One of the Wind River's slave units, just after being installed. | [960x640] |
 | WRRR Installed Slave 5-Dec-2001 - Another of the Wind River's slave units, just after being installed. | [640x960] |
 | New WRRR Master 12-Dec-2005 - The WRRR master, after being upgraded to v2.0 and put in a separate case to sit on the CTC panel. | [960x640] |
 | New WRRR Master on Panel 12-Dec-2005 - The WRRR master installed on top of the CTC panel | [960x640] |