
We started creating Web-based control panels in early 2012, well before JMRI added similar capabilities. We use the control panels with tablets mounted around the layout, as well as the dispatcher screens. Since there is no centralized console or page to drive turnouts, and control points are distributed across the layout it was important for each control point tablet to only show tracks that are in close vicinity of the controlling tablet, but also allow easy navigation to neighboring panels. By limiting the number of elements on each screen, we can keep the track plans large enough that touch navigation is easy even on smaller tablet screens.
All turnouts can be lined by touching the shaded gap. Yards, many sidings, and spurs, are set up so that by touching the yard track the respective turnouts are lined to the lead track.
Our panels are based on Javascript-enhanced SVG files. The Javascript interacts with JMRI’s JSON server to ensure that the turnout state as seen by JMRI and displayed on all panels is consistent. This allows us to have the same panel loaded on multiple tablets, yet still show the layout state consistently on each panel. The panel files render in any Web browser, and therefore can be accessed from laptops, desktops, and even smart phones connected to the club’s Wifi network.
When used via WiThrottle or EngineDriver, a train crew can line turnouts and control their train from one screen using the web view capabilities built into the apps.
Dispatching is also accomplished using SVG-based panels, with appropriate control variables stored in JMRI. The screens were modeled after dispatching systems used by BNSF in the early 2000s.

Our older tablets don’t have the Websocket support that JMRI now requires. We support this older hardware using a Node.js web server available at svl_panel_server. All panel source is available as a subdirectory of this project. Panels are created and maintained using the freeware Inkscape SVG editor.