This URB (Universal Railway Bus) system lets the modeler create a management system customized to their layout. It is completely expandable as the layout grows. The modeler can start off slowly with a simple system and add to it as he goes along. This system provides the modeler with none of the restrictions that are characteristic of off-the-shelf control systems, such as the DCC, and without the large cash layout.
The URB system is modular. It grows incrementally according to your needs. This reduces cost and provides a true digital upgrade for your existing system. Native support of sensors and automatic train traffic by a schedule or scripts.
The project has been named URB (Universal Railway Bus), consists of three parts — a Android App, rules for applying and writing Arduino's Sketches (Protocol 3), and any Arduino's hardware. You can interconnect any number of Arduino boards in series, or using a URB topology. Thus, there are no hardware restrictions on the number of devices (turnouts, signals, lights, crossing mechanisms, and other railway items).
This is a clear difference to other railway control systems. Data exchange between the application and your layout is carried out through one or several Bluetooth connections or over Serial connection. Using these interfaces you can also integrate my control system with any other equipment (Raspberry Pi, PC, external DCC microcontroller systems, hardware indicate or real buttons and rudders control panels and so one).
There are no restrictions on the size or scales of your railway, a model train manufacturer and layout's complexity. You can apply this system to a small layout with a few turnouts, and then expand your railway world to any size. Reprogramming Arduino gives you almost infinite possibilities for updating the layout. It's like updating the firmware of modern electronic gadgets.
Also, you can add control of lighting using any effects, as well as any mechanical device from a Magnorail to a lifting device for the bridge; integrate any sensors into the system and even build real interlocking. You do not need additional accessories — all you need already available in the big collection of devices for Arduino.
Unlike many other control systems, URB provides for the connection of any types of electronic devices of your layout. The connection of any types of signals, sensors and other elements of the railway infrastructure are already integrated into the project. There are no restrictions on types or electrical specifications.
Without pretending to be the ultimate truth, I want to share your thoughts on history of railway's control. This historical point is important to help us understand the basic principles and advantages of the URB system.
When model trains first arrived an AC powered system was the solution that everyone was used to. It was the time of the famous Lionel company and many modelers now have great respect for these large steam locomotives and cars made from tin. The decision to use alternating current (AC) at the time was due to the lack of powerful miniature DC motors, a shortage of diode rectifiers, and a very simple transformer design with switching of secondary windings, which made it possible to regulate the speed of trains. The problem was reversing the direction of the train’s movement. To change the direction of rotation of the AC motor, it was necessary to physically recommute its windings. This led to an infinite number of such electromechanical switches being invented. Even now, the advantages and disadvantages of E-UNIT from Lionel versus other reverser drum units are frequently discussed on many modeling forums. They were beautiful and original mechanisms, but very unreliable. Now it's more of a heritage than practical usage. Even the Märklin company, which had been supporting AC systems for a very long time, eventually began to distribute the DC Motor Conversion Kit, which allowed replacing AC motors to DC in their locomotives.
If a rectifier is installed after the transformer and a DC motor is used, then the reversing problem is solved by simply changing the polarity. This lead to the directional switch and rotary style variable speed knob on the modern power packs. All modern models of locomotives can work in this mode. However, this principle of management has a significant disadvantage (as in the case of AC): if you put several locomotives on the rails, they start moving simultaneously. For DC systems, this is easier to accomplish than for AC systems. This is solved by isolating individual sections of the rail and blocking them using a relay or by installing separate controllers for each section. So this causes a new challenge in complexity due to the increase in electrical wiring required. Now you have constructed a well-made analog railroad model but with the trade-off of a huge number of wires required to operate it. However, despite the number of wires, the basic principle itself is very obvious and understandable.
In the early 1980s, the concept of DCC was introduced. Initially the voltage on the rails would be constant, and the control signals uses of time modulation were transmitted along the same rails. Accordingly, the consoles changed, now they broadcast a control signal. The decoder installed on the locomotive converted these commands into voltage and polarity to the motor. This solved the problem of dependent train traffic given above — now each train received its own unique address and reacted only to digital commands sent to it. The decoder on the locomotive also added new features — motion sounds, headlight lighting effects and cockpit lighting. Now this is the main principle in railway modeling.
DCC consoles also elegantly solves the problem of switching junctions and light signaling, since there is no need to pull separate wires to the motor points — as they also managed by decoders. But DCC in theory, as well in practice, has generated many new problems: when building several rail lines and using several locomotives, it is necessary to install boosters that properly distribute the load. Because of the difference in the supply voltage of the drives and locomotives, the wires need to be pulled through the entire layout. Each manufacturer has a different command system and compatibility is not at the forefront. Features require programming of consoles and locomotives — this is the primary topic of discussion in model railway forums. And most importantly, DCC is a very incomprehensible, and a very cumbersome solution compared to the classical (DC) one. For example, troubleshooting in decoders, boosters or in the console itself is very difficult for most ordinary users.
I started this project in 2014. At that time I was absolutely not satisfied with the state of affairs in railway modeling. I did not want to use the ready-made DCC system for a variety of reasons, one of which was my old fleet of locomotives. I wanted to control the trains from the Android phone and absolutely did not want to use a computer for this. I needed a simple, and reliable, repeatable solution with a lot of flexibility, as I wanted to make my layout automated.
If you look at DCC it’s just a data bus and microcontrollers installed in the console and decoders. Combinations of DCC and Arduino together are leveraged together frequently, and they work well. But, I'm of the opinion that this way is too complicated. Therefore, I returned to DC concept, only instead of the traditional DC transformer I apply the ready-made unit with Pulse-width modulation (PWM) to control the locos.
Moreover, it seems to me that railway modeling as a hobby is gradually losing popularity precisely because of DCC. Teenagers are getting bored with the concept. Connecting many wires to a variety of disparate strangest devices with strong and incomprehensible rules without the possibility of independent experiments becomes tedious and frustrating. The battery, the loco with a basic DC motor, and the rails are much more interesting than the expensive set with admonishment from the elders: «Do not move, do not touch anything!»
The second problem was the lack of convenient software. All the applications I've found have always come bundled with hardware. And this completely blocked the incredible possibilities of a cooperation of Android and Arduino. I wanted to independently build control algorithms and have a universal wireless console. As a result, I had to begin coding an application by myself. Now this is the sixth version of apps Arduino Train. Gradually, over the last eight years the project has become reliable and perfected, so, now they can be shared. I am especially satisfied in the design and in the concept of URB, I myself did not expect how convenient this would turn out to be.