374 lines
17 KiB
Plaintext
374 lines
17 KiB
Plaintext
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta name="generator" content="HTML Tidy for HTML5 for Apple macOS version 5.8.0">
|
|
<title>JMRI Hardware Support - DCC-EX</title>
|
|
<meta name="author" content="Mark Underwood, Peter Akers">
|
|
<meta name="keywords" content="DCC-EX EX-CommandStation java model railroad JMRI install">
|
|
<!--#include virtual="/help/en/parts/Style.shtml" -->
|
|
</head>
|
|
<body>
|
|
<!--#include virtual="/help/en/parts/Header.shtml" -->
|
|
|
|
<div id="mBody">
|
|
<!--#include virtual="Sidebar.shtml" -->
|
|
|
|
<div id="mainContent">
|
|
<img src="images/DCC-EX-logo.png" width="132" height="95" class="floatRight" alt="DCC-EX logo">
|
|
<h1>Hardware Support: EX-CommandStation (by DCC-EX)</h1>
|
|
|
|
<ul class="snav">
|
|
<!-- TOC -->
|
|
|
|
<li>
|
|
<a href="#hardware">Hardware</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="#Limitations">Limitations</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="#connecting">Connecting</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="#tools">JMRI Tools</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="#documentation">Documentation</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<h2 id="overview">Overview</h2>
|
|
|
|
<p>EX-CommandStation from the DCC-EX team is an Open Source Arduino-based <a href="#documentation">Do-it-Yourself</a> DCC
|
|
Command Station.</p>
|
|
|
|
<p>Within JMRI, select "DCC-EX" as the manufacturer to communicate with EX-CommandStation.
|
|
JMRI also supports older DCC++ Base Stations via the same DCC-EX connection — see
|
|
<a href="../dccpp/index.shtml">DCC++ (deprecated)</a> for historical information about
|
|
the original project.</p>
|
|
|
|
<p>Note: DCC-EX is a separate project from JMRI. If you have questions about building an EX-CommandStation system, operating it, etc, you should get help via their <a href="https://dcc-ex.com/">DCC-EX website</a> or their <a href=
|
|
"https://discord.com/invite/y2sB4Fp">DCC-EX Discord server</a>. There's also information on the <a href="https://github.com/DCC-EX">DCC-EX GitHub repository</a> and <a href=
|
|
"https://dcc-ex.com/">associated documentation</a>. The JMRI discussion groups can only provide limited support for EX-CommandStation itself.</p>
|
|
|
|
<p>Features of DCC-EX CommandStation include:</p>
|
|
|
|
<ul>
|
|
<li>Fully compliant with NMRA DCC standards</li>
|
|
|
|
<li>2-byte and 4-byte locomotive addressing</li>
|
|
|
|
<li>Simultaneous control of multiple locomotives</li>
|
|
|
|
<li>128-step speed control</li>
|
|
|
|
<li>Control all cab functions F0-F28</li>
|
|
|
|
<li>Activate/de-activate all accessory function addresses 0-2048</li>
|
|
|
|
<li>Programming on the Programming Track</li>
|
|
|
|
<li style="list-style: none">
|
|
<ul>
|
|
<li>Write configuration variable bytes</li>
|
|
|
|
<li>Set/clear specific configuration variable bits</li>
|
|
|
|
<li>Read configuration variable bytes</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>Programming on the Main Operations Track</li>
|
|
|
|
<li style="list-style: none">
|
|
<ul>
|
|
<li>Write configuration variable bytes</li>
|
|
|
|
<li>Set/clear specific configuration variable bits</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>Control DCC turnouts and sensors</li>
|
|
|
|
<li>Directly access and control Arduino IO pins for accessory functions and sensors</li>
|
|
|
|
<li>Use the service track as an extension of the MAIN track when not programming to not waste track</li>
|
|
|
|
<li>DriveAway: Place a locomotive on the service track, program it, then drive it off onto the main track</li>
|
|
|
|
<li>Support for direct connection to the EX-CommandStation over WiFi, Serial or Bluetooth using the WiThrottle or Native DCC-EX protocols</li>
|
|
|
|
<li>Support for automation using the EXRAIL feature</li>
|
|
|
|
</ul>
|
|
|
|
<h2 id="hardware">Supported Hardware</h2>
|
|
|
|
<h3>Command Stations</h3>
|
|
|
|
<p>Currently EX-CommandStation can be built on either the Arduino Uno or Arduino Mega (recommended) platforms, with additional microprocessors being investigated.
|
|
JMRI supports connection to the EX-CommandStation using either via USB or WiFi connection.</p>
|
|
|
|
<h3>Computer Interfaces</h3>
|
|
Currently, four interfaces are supported:
|
|
<ul>
|
|
<li>Serial/USB: Direct connection to Arduino via a USB cable</li>
|
|
|
|
<li>Simulator: Simulated EX-CommandStation for off-line operation and testing.</li>
|
|
|
|
<li>Network: TCP/IP connection from JMRI to an EX-CommandStation with an Ethernet or WiFi Shield.</li>
|
|
|
|
<li>DCC-EX Over TCP: Remote network or client connection to a local JMRI instance connected to an EX-CommandStation</li>
|
|
</ul>
|
|
|
|
<h4>Simulator</h4>
|
|
|
|
<p>To use the Simulator, simply choose that option in the JMRI Preferences. Note that some features do not work in the Simulator.
|
|
For example, the Simulator does not (yet) support assigning, storing, and remembering Sensor and Turnout assignments. The Simulator interface
|
|
is functional enough to keep JMRI "happy" while working on offline projects such as Operations or Panel and Logix design, but is not intended to be a full-fledged EX-CommandStation Emulator.</p>
|
|
|
|
<h4>DCC-EX Over TCP</h4>
|
|
|
|
<p>For the DCC-EX Over TCP connection, a host computer must be connected to the EX-CommandStation over a Serial or Network connection (or a simulator). This host computer then runs the DCC-EX Over TCP Server.
|
|
A remote computer (or several remote computers) can then use the DCC-EX Over TCP (Server) interface to remotely access and control the EX-CommandStation.<br />
|
|
Also, clients capable of using the DCC-EX protocol (such as EngineDriver) can connect to this server and thence to the DCC-EX command station. The DCC-EX protocol supports additional client features not supported
|
|
by WiThrottle Server.</p>
|
|
|
|
<h2 id="Limitations">Limitations</h2>
|
|
|
|
<div class="list">
|
|
<dl>
|
|
<dt class="left">JMRI</dt>
|
|
|
|
<dd class="first">
|
|
<p>EX-CommandStation is under constant development, so it is recommended that you use the current Production version of EX-CommandStation for best results with JMRI. The newest features may require using the Devel version of EX-CommandStation..</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
|
|
<h2 id="connecting">Connecting</h2>
|
|
|
|
<h3>Configuring an Arduino for use as an EX-CommandStation</h3>
|
|
|
|
<p>In order to use an Arduino as an EX-CommandStation, you must first assemble the device and download the EX-CommandStation firmware to it. Please follow the <a href=
|
|
"#documentation">instructions linked below under Other Info</a>.</p>
|
|
|
|
<h3>Connecting to an EX-CommandStation via USB</h3>
|
|
|
|
<ol>
|
|
<li>To connect your computer to an EX-CommandStation, first install the appropriate drivers.</li>
|
|
|
|
<li style="list-style: none">
|
|
<ul>
|
|
<li>For the EX-CommandStation with JMRI, you may need to install a device driver on your computer. Please refer to the <a href="https://www.arduino.cc/en/Guide/HomePage"> Arduino Getting Started pages</a> for instructions.
|
|
<ul>
|
|
<li>
|
|
<a href="https://www.arduino.cc/en/Guide/Windows">Windows</a> (See <strong>Step
|
|
4</strong>)
|
|
</li>
|
|
|
|
<li>Mac: No drivers should be required</li>
|
|
|
|
<li>
|
|
<a href="https://playground.arduino.cc/Learning/Linux/">Linux</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
<p><strong>Note:</strong> If you have already installed the Arduino IDE software, the device drivers should already be installed.</p>
|
|
|
|
<p>When the device drivers are installed, connect the Arduino with EX-CommandStation to your computer using a standard USB cable.</p>
|
|
</li>
|
|
|
|
<li>Once the drivers are installed, you are ready to configure JMRI. Start one of the JMRI-based programs, Then go to the preferences panel. This opens automatically the first time a program is run, or you can select it from the "Edit" menu.</li>
|
|
|
|
<li>Select "DCC-EX" from the top selection box ("System Manufacturer").</li>
|
|
|
|
<li>Select "DCC-EX Serial Port" from the second selection box ("System Connection")</li>
|
|
|
|
<li>Select the appropriate USB/Serial port from the third selection box ("Serial Port")</li>
|
|
|
|
<li>Click "Save". You'll be asked if it's OK for the program to quit, click "Yes".</li>
|
|
|
|
<li>Restart the program. You should be up and running.</li>
|
|
</ol>
|
|
|
|
<h3>Connecting to an EX-CommandStation using Network</h3>
|
|
|
|
<ol>
|
|
<li>First, connect the EX-CommandStation to wired or WiFi network and record the IP Address and Port number. You may need to connect the Arduino to a host computer temporarily and use the Arduino Serial Monitor to get this information.</li>
|
|
|
|
<li>Now you are ready to configure JMRI. Start one of the JMRI-based programs, then go to the Preferences panel. This opens automatically the first time a JMRI program is run, or you can select it from the "Edit" menu (from the Application menu on OS X).</li>
|
|
|
|
<li>Select "DCC-EX" from the top selection box ("System Manufacturer").</li>
|
|
|
|
<li>Select "DCC-EX Ethernet" from the second selection box ("System Connection").</li>
|
|
|
|
<li>Input the IP Address or Host Name of the EX-CommandStation.</li>
|
|
|
|
<li>Check the "Additional Connection Settings" and verify that the Port is set to "2560" (DCC-EX default)</li>
|
|
|
|
<li>Click "Save". You'll be prompted to Restart, click "Restart".</li>
|
|
|
|
</ol>
|
|
|
|
<h3>Connecting a 2nd JMRI instance to an EX-CommandStation using DCC-EX Over TCP</h3>
|
|
|
|
<ol>
|
|
<li>First, connect the EX-CommandStation to the host computer via the Serial or Network interface as described above.</li>
|
|
|
|
<li>On the host computer select "Load DCC-EX Over TCP Server" from the DCC-EX Menu. Check the settings, then press the "Start Server" button. If you want the server to automatically start when JMRI is launched, click the checkbox provided.</li>
|
|
|
|
<li>The Host computer must be running with the EX-CommandStation active before launching the Client computer.</li>
|
|
|
|
<li>On the client computer, launch JMRI on the Client computer.</li>
|
|
|
|
<li>In the Connection Preferences, select DCC-EX as the System Manufacturer.</li>
|
|
|
|
<li>Select "DCC-EX Server" as the System Connection Type.</li>
|
|
|
|
<li>Enter the network name or IP address of the host computer and verify that the port number is the same as on the host computer.</li>
|
|
|
|
<li>Save your Preferences and restart.</li>
|
|
</ol>
|
|
|
|
<p>Once both the Host and Client instances of JMRI are configured, you can use the Client JMRI just the same as if it were directly connected to the EX-CommandStation. The client JMRI instance can be on the same computer, in the same house, or across the country from the host.</p>
|
|
|
|
<h3>Connecting a client device to an EX-CommandStation using DCC-EX Over TCP</h3>
|
|
|
|
<ol>
|
|
<li>First, connect the EX-CommandStation to the host computer via the Serial or Network interface as described above.</li>
|
|
|
|
<li>On the host computer select "Load DCC-EX Over TCP Server" from the DCC-EX Menu. Check the settings, then press the "Start Server" button. If you want the server to automatically start when JMRI is launched, click the checkbox provided.</li>
|
|
|
|
<li>The Host computer must be running with the EX-CommandStation active before launching the Client computer.</li>
|
|
|
|
<li>On the client device, launch an app such as EngineDriver or EX-Toolbox which support the DCC-EX protocol.</li>
|
|
|
|
<li>For EngineDriver, enable the "Use native DCC-EX commands".</li>
|
|
|
|
<li>Connect the app to the server using the server IP and the port shown in the DCCppOverTCP server window.</li>
|
|
|
|
</ol>
|
|
|
|
<p>Once both the Host and Client instances of JMRI are configured, you can use the Client JMRI just the same as if it were directly connected to the EX-CommandStation. The client JMRI instance can be on the same computer, in the same house, or across the country from the host.</p>
|
|
|
|
<h3>Connecting to the DCC-EX Simulator</h3>
|
|
|
|
<ol>
|
|
<li>Start one of the JMRI-based programs, Then go to the preferences panel. This opens automatically the first time a program is run, or you can select it from the "Edit" menu.</li>
|
|
|
|
<li>Select "DCC-EX Simulator" from the top selection box. There are no additional configuration steps required to use the DCC-EX Simulator.</li>
|
|
|
|
<li>Click "Save". You'll be asked if it's OK for the program to quit, click "Yes".</li>
|
|
|
|
<li>Restart the program. You should be up and running.</li>
|
|
</ol>
|
|
|
|
<h2 id="tools">JMRI DCC-EX Tools</h2>
|
|
<img src="images/dcc-ex_Menu.png" width="270" height="211" class="floatRight" alt="DCC-EX menu">
|
|
<p>The DCC-EX menu contains 8 tools:</p>
|
|
|
|
<ul>
|
|
<li><a href="#monitor">DCC-EX Traffic Monitor</a></li>
|
|
|
|
<li><a href="#send">Send DCC-EX Command</a></li>
|
|
|
|
<li><a href="#config">Configure Base Station</a></li>
|
|
|
|
<li><a href="#lcd">Open DCC-EX Virtual LCD</a></li>
|
|
|
|
<li><a href="#exrail">EXRAIL Automations</a></li>
|
|
|
|
<li><a href="#meter">Voltage / Current Meter</a></li>
|
|
|
|
<li><a href="#roster">Roster Export to DCC-EX</a></li>
|
|
|
|
<li><a href="#tcp">Load DCC-EX over TCP Server</a></li>
|
|
</ul>
|
|
|
|
<h3 id="monitor">DCC-EX Traffic Monitor</h3>
|
|
<p>Shows all commands and replies passing between JMRI and the EX-CommandStation in
|
|
real time. Useful for troubleshooting.</p>
|
|
<img src="images/dcc-ex_TrafficMonitor.png" width="843" height="414" alt="DCC-EX Traffic Monitor">
|
|
|
|
<h3 id="send">Send DCC-EX Command</h3>
|
|
<p>Lets you type and send a raw DCC-EX command directly to the CommandStation.
|
|
Enter the command without the surrounding <…> brackets.</p>
|
|
<img src="images/dcc-ex_SendCommand.png" width="459" height="216" alt="Send DCC-EX Command">
|
|
|
|
<h3 id="config">Configure Base Station</h3>
|
|
<p>Shows the CommandStation's defined sensors, turnouts, and outputs in tabbed tables.
|
|
Displays the firmware version at the top of the window.</p>
|
|
<img src="images/dcc-ex_ConfigureBaseStation.png" width="629" height="351" alt="Configure Base Station">
|
|
|
|
<h3 id="lcd">Open DCC-EX Virtual LCD</h3>
|
|
<p>Mirrors the OLED display(s) on the EX-CommandStation in a JMRI window,
|
|
showing the same status text the physical display shows.</p>
|
|
<img src="images/dcc-ex_VirtualLCD.png" width="370" height="270" alt="DCC-EX Virtual LCD">
|
|
|
|
<h3 id="exrail">EXRAIL Automations</h3>
|
|
<p>Lists the Routes and Automations defined on your EX-CommandStation and lets you
|
|
trigger them from JMRI. Each entry has a trigger button; active entries show it
|
|
pressed, disabled entries gray it out.</p>
|
|
<img src="images/dcc-ex_ExrailAutomations.png" width="625" height="471" alt="DCC-EX EXRAIL Automations window">
|
|
|
|
<h3 id="meter">Voltage / Current Meter</h3>
|
|
<p>Displays live track voltage and current readings reported by the CommandStation.</p>
|
|
<img src="images/dcc-ex_VoltageCurrentMeter.png" width="505" height="282" alt="Voltage/Current Meter">
|
|
|
|
<h3 id="roster">Roster Export to DCC-EX</h3>
|
|
<p>Generates <code>ROSTER()</code> macro lines for all JMRI roster entries, ready to
|
|
paste into your EX-CommandStation's <code>myAutomation.h</code>.</p>
|
|
<img src="images/dcc-ex_RosterExport.png" width="683" height="269" alt="Roster Export to DCC-EX">
|
|
|
|
<h3 id="tcp">Load DCC-EX over TCP Server</h3>
|
|
<p>Starts a TCP server that lets other DCC-EX clients connect to the CommandStation
|
|
through JMRI over the network.</p>
|
|
<img src="images/dcc-ex_OverTcpServer.png" width="547" height="215" alt="DCC-EX over TCP Server">
|
|
<h2 id="documentation">Documentation</h2>
|
|
|
|
<h3>JMRI Help</h3>
|
|
|
|
<p>Additional documentation will be provided on other pages linked here:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<a href="Sensors.shtml">Configuring Sensors</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="Turnouts.shtml">Configuring Turnouts and Outputs</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<h3>Third Party info</h3>
|
|
For more information on how to construct and program a DCC-EX EX-CommandStation, refer to the following:
|
|
<ul>
|
|
|
|
<li>
|
|
<a href="https://dcc-ex.com/begin/what-to-know.html">EX-CommandStation - Getting Started</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="https://www.arduino.cc/">Arduino Project Site</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="https://www.sparkfun.com/">Sparkfun</a> - one of many places to acquire hardware
|
|
</li>
|
|
</ul>
|
|
<!--#include virtual="/help/en/parts/Footer.shtml" -->
|
|
</div>
|
|
<!-- closes #mainContent-->
|
|
</div>
|
|
<!-- closes #mBody-->
|
|
<script src="/js/help.js"></script>
|
|
</body>
|
|
</html>
|