MRBus - A Model Railroad Control Bus

MRBus - A Model Railroad Control Bus
MRBus Introduction

The official home of MRBus is now over at Many of the designs here are first generation, and have been (or will be) replaced with modern versions in the near future.

MRBus (short for Model Railroad Bus) is my proposed open solution to simply and easily implementing flexible, low wire-count model railroad peripheral control networks for items such as signalling, remote turnout control, occupancy indications, and a whole host of other imaginative uses that haven't even been thought up yet. It consists of a shared, packetized bus of microcontroller-equipped nodes, each powerful enough to collect data and broadcast that to the bus and/or receive data from the bus and process it accordingly. Each node is as flexible as the designer chooses, ranging from all functions needed for a CTC-controlled siding to a computer interface to a simple digital I/O card. The nodes are tied together with a modified RS485 network and a set of power cables. This allows a layout of small-to-medium size to be wired with a minimum only four wires (excluding short feeder runs, because the nodes are near what they serve), and the potential to operate without the need of a computer. This overcomes the problems of previous control systems which either required massive amounts of wiring and/or a centralized control node (such as a computer), but with the downside of additional complexity. Note that MRBus is by no means limited to model railroad application I intend to use it for home automation in the future as well. It's designed to be a robust, multi-purpose peer-to-peer network.

News and Updates

7-Mar-2012 - The MRBus spec has been moved over to its own site -

9-Jan-2005 - Things are actually moving forward again. Michael Prader and Vinnie Moscaritolo have both been independently working on ports of MRBus to the Atmel AVR architecture. One of the big advantages of the AVR architecture is the availability of a robust, free compiler - good old GCC! See the source code section below for Michael's latest firmware and schematics.

6-Apr-2003 - Massive site updates. New source code and hex files, updated schematics, new pages for new components (CTC Panel Control/Indicator Node, ABS/APB/Intermediate Signal Nodes, and the Generic Indicator Module), and a FAQ have been added to the site. Enjoy, and let me know if you find any issues.

1-Apr-2003 - The basic system is done and works quite well. No, that's not an April Fools joke. Last weekend marked a 4-1/2 hour operating session on the Wind River without a single bit of strangeness. I'll post the final v1.0 code this evening at some point.

12-Mar-2003 - No, I'm not dead, and neither is MRBus. I now have a (mostly) fully functional installation on the Wind River, with 6 CTC controlled sidings, 3 other block detectors (soon to be 4), and a functional CTC panel. The best part is, aside from an intermittant lockup issue in the CTC controllers, everything is working perfectly. I think I've got the lockup isolated, too, but won't know until tonight. Also, I've created a mailing list for discussion on MRBus-related issues and announcements - unfortunately it's at YahooGroups, but as much as I hate it, it's the easiest way to go. And, for mailing lists, it seems to be rapidly becoming a de facto standard. So, if you're interested, take a look at the MRBus YahooGroup.

31-Jan-2002 - The first installation is underway, with one siding now under the control of a CTC panel (not a real one - a replica built with some artistic license in its design) on the Wind River layout. I've posted a few photos of the panel itself, a blurb about the soon-to-be-announced Panel Control/Indicator Module, and a few of the layout. Anybody else interested in working with this stuff or just playing around with it? I've contemplated starting a mailing list, if anyone's interested.

19-Dec-2002 - Really the first time the system was publicly announced. I've updated the whitepaper to the latest version as of 1535h MST, and made a few corrections to other pages as well.

31-Oct-2002 - First public posting of the details of the proposed MRBus system. Most of the details have been worked out, and there are now 6 functioning MRBus nodes in existance. Four 4-channel block detectors, a computer interface, and a 30-channel block receiver have been constructed.

Documentation and Source Code

System Documentation

MRBus Website[link]
MRBus Specification[link]
MRBus Mailing List[link]

AVR MRBus Ports

Michael Prader's Firmware
Updated: 10-Jan-2005 Includes block detector, computer interface, and ABS node ports

Individual Components

MRB-CI - MRBus to Serial Computer Interface
Updated: 5-Apr-2003 - The MRBCI allows a user with any computer capable of running terminal software on a serial port (such as Hyperterm on Windows or minicom on Linux) to monitor activity on the bus and issue packets themselves. Additionally, the interface could be used for computer-aided control of certain aspects, though I haven't actually done that yet. An excellent diagnostic tool, and one of the first elements you should probably build.
MRB-BD4 - 4 Channel DCC Block Detector
Updated: 5-Apr-2003 - The four-channel block detector is exactly what it sounds like - a node capable of detecting current flow through four separate channels. Designed to work with DCC, it takes advantage of the squarewave on the track to provide completely isolated detection with current transformers. Many thanks to Rob Paisley for the original inspiration on the detector design.
MRB-CSCN - CTC Siding Control Node
Updated: 5-Apr-2003 - The CTC Siding Control Node provides all the necessary logic to place an entire normal siding under CTC control. Included are four block detectors for main, siding, east OS section, and west OS section, as well as a failsafe capacitive discharge switch motor driver for twin-coil machines, outputs for eight searchlight heads, and inputs for turnout position feedback and manual turnout control switches.
MRB-PCIM - Panel CTC Control/Indicator Module
Updated: 5-Apr-2003 - The Panel Control/Indicator Module is a generic unit capable of controlling enough switch inputs and indicator outputs for 8 CTC control points (eg, 4 sidings). This includes the R/L/Neither clearance direction switch, the turnout position switch, the code switch, clearance and turnout position lights, track lights for OS sections (and main/siding, if used to control full sidings).
MRB-GIM - Generic Indicator Module
Updated: 5-Apr-2003 - The Generic Indicator Module is a 30-output indicator driver designed to attach to the bus and provide the status of thirty arbitrary flags, each individually configurable in EEPROM. Useful for occupancy lights, switch position indicators, CTC panel lights, and even debugging!
MRB-ABS - ABS/APB Signal Node
Updated: 5-Apr-2003 - The APB/ABS module is designed for controlling either non-CTC signal installations (APB/ABS) or intermediate signals between CTC control points. These nodes implement the usual red-yellow-green logic, along with having tumbledown and double approach capabilities. They're also the simplest of all nodes, and a good way to quickly see results from having block detection working.
Attach:in8-thumb.jpg ΔMRB-IN8 - Generic 8 Digital Input Node
Updated: 7-Jun-2011 - The generic 8 digital input node is an easy way to hook any eight on/off inputs to the bus. Handy for monitoring manual switches, toggles on the fascia, breaker status lights, or other such things.
Attach:out8-thumb.jpg ΔMRB-OUT8 - Generic 8 Digital Output Node
Updated: 7-Jun-2011 - The generic 8 digital output node can be used to drive LEDs, relays, or anything else that requires a simple on/off input controlled by something on the bus.
Attach:dccbridge-thumb.jpg ΔMRB-DCCB - DCC/MRBus Accessory Bridge
Updated: 7-Jun-2011 - Used in combination with the DCC To Serial bridge, this allows MRBus commands to be issued by activating DCC accessory addresses. It's a handy way to throw turnouts tied to MRBus.

Installation Examples

Wind River Railroad - Denver, CO
Ron Renner's HO-scale Wind River Railroad was the original inspiration behind developing the MRBus system. I originally built a set of fast clocks for them back in 2001, and then started into the CTC system in late 2002. I've posted a few photos of the initial pieces of the working system, and will be adding to it as more pieces are installed.
-Canadian Arctic Railway
The next installation of an MRBus-based control system will probably be my own N-scale Canadian Arctic Railway, scheduled to be track-complete by mid-summer 2006. Stay tuned for updates.
  Questions? Email Nathan Holmes
© NDHolmes, but freely usable under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.
Last modified on April 08, 2012, at 09:05 PM
Edit Page | Page History