The Randall Museum in San Francisco hosts a large HO-scale model model railroad. Created by the Golden Gate Model Railroad Club starting in 1961, the layout was donated to the Museum in 2015. Since then I have started automatizing trains running on the layout. I am also the model railroad maintainer. This blog describes various updates on the Randall project and I maintain a separate blog for all my electronics not directly related to Randall.
2020-03-07 - Automated Single Loop RunCategory Randall
Just a little brainstorming session here. One thing I’d like to add to the automation is an automated single loop run; that is place an engine which is not under normal automation, and let the computer run it for one loop, without deactivating the automation. It would have to coordinate between the two, to make sure the transient engine can only run on the shared mainline when available.
The JMRI program has block detection for both blocks B310 and B311. B310 is the “first track” and B311 is the “second track”, and the blocks start in front of the Stockton Station.
We have the Automated Freight Train parked and waiting on B311. Saturday Operators use the B310 track to run on the mainline.
In this example, I place my TGV #537 on the outside mainline track and I want it to run. Today, we have some provision for that, using the “manual” mode. It works by bringing a train to block B320 and waiting for both automated mainline trains to go in wait/idle mode. The automation changes to “manual” mode, aligns the Sonora turnout, and it is up to the operator to start and run its train. Once a train reaches Summit block B370 and then clears it by entering B380, it releases the manual mode, and automation can start again.
What I want is the same, except the run would be automated.
I can see this working in a full automated fashion as such:
- Enter the DCC address to run in the automation computer; that could be done for example by selecting it using the tablet and entering a 537 address somewhere along with a desired initial speed, e.g. “12 out of 28”.
- I manually prepare turnout T30 to be aligned for the outside mainline so that the train can be ready when it completes its loop. I also manually check all other mainline turnouts.
- I manually bring my train to block B310 and stop it. That’s the signal this is “ready to go”.
- If an automated train is running on the mainline, the automation would wait for it to come back at the main station and enter idle mode.
- Once automated mainline engines are idle, the TGV starts at the desired speed automatically.
- Once the TGV reaches blocks B370/B380 as of today, it releases the automated engines who can start running.
- The automation would only set the initial speed, not enforce it for the whole duration. The operator has full control of the train and it’s his responsibility to ensure it runs properly
- It is also the responsibility of the operator to make sure turnout T30 is aligned for the outside mainline when going back to the station.
- Once a train reaches B310 again, the automation kicks in and stops it.
- At that point, the cycle starts over, e.g. the automation waits for any automated mainline trains to go back till the transient loop train can run. If there are none, it can start again.
There are a few caveats here. First only one such train can run on the loop. Mostly because the automation operates in a “blind” mode. There’s no transponding, so it’s impossible to read an engine number on a block. And there are currently no block sensors for anything except the automated part of the mountain.
Another issue is potentially overrunning the block when stopping a train like the TGV with long momentum. Luckily, block B310 is fairly long (easily 4 yards probably or more), so that probably works fine.
Last by not least, this can encourage sloppy behavior from operators not monitoring their trains. We already have too much of that during Saturday Ops, and bringing in automated runs make that even worse. In particular here, I can see the train going too fast when reaching back to the Stockton Yard.
This is another case that in Conductor 2 I’d hope to adjust with profiles. In my ideal scenario, the automation would have a complete coverage of the mainline blocks, could adjust the train speed for every block, and could monitor when a train fails to move to the next block in a timely fashion (meaning a derailment or stall occured). There could even be a “record mode” here where the automation records the speed of a train in each block as driven by a manual operator, thus creating a “profile” and then replicates it.