/
index.shtml
393 lines (289 loc) · 13.1 KB
/
index.shtml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta name="generator" content=
"HTML Tidy for Mac OS X (vers 31 October 2006 - Apple Inc. build 15.17), see www.w3.org">
<title>JMRI Hardware Support - DCC++</title>
<meta name="author" content="Mark Underwood">
<meta name="keywords" content=
"DCC++ java model railroad JMRI install">
<!-- Style -->
<meta http-equiv="Content-Type" content=
"text/html; charset=us-ascii">
<link rel="stylesheet" type="text/css" href="/css/default.css"
media="screen">
<link rel="stylesheet" type="text/css" href="/css/print.css"
media="print">
<link rel="icon" href="/images/jmri.ico" type="image/png">
<link rel="home" title="Home" href="/">
<!-- /Style -->
</head>
<body>
<!--#include virtual="/Header.shtml" -->
<div id="mBody">
<!--#include virtual="Sidebar.shtml" -->
<div id="mainContent">
<h1>Hardware Support: DCC++</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>
<a name="overview" id="overview"></a><h2>Overview</h2>
<p>DCC++ is an Open Source Arduino-based <a href=
"#documentation">Do-it-Yourself</a> DCC Command Station.</p>
<p>
Note: DCC++ is a separate project from JMRI.
If you have
questions about building a DCC++ system, operating it,
etc, you should get help via
<a href="https://www.trainboard.com/highball/index.php?threads/dcc-update-project-2020.130071/">the DCC++ TrainBoard thread</a>
and the
<a href="https://www.trainboard.com/highball/index.php?threads/dcc-2020-update-project-documentation.130401/">the DCC++ Documentation TrainBoard thread</a>.
There's also information on the
<a href="https://github.com/DCC-EX">DCC++ GitHub repository</a>
and
<a href="https://dcc-ex.github.io/">associated documentation</a>.
There was also an older
<a href="https://sites.google.com/site/dccppsite/home">DCC++ Website</a>
and the
<a href="https://www.trainboard.com/highball/index.php?forums/dcc.177/">DCC++ Trainboard discussion</a>.
The JMRI discussion groups can only provide limited
support for DCC++ itself.
</p>
<p>Features 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>
</ul>
<a name="hardware"></a>
<h2>Supported Hardware</h2>
<h3>Command Stations</h3>
<p>Currently DCC++ Base Stations can be built from either the
Arduino Uno or Arduino Mega platforms. JMRI should support
either platform via USB or Network 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 Base Station for off-line
operation and testing.</li>
<li>Network: TCP/IP connection from JMRI to a Base Station
with an Ethernet or WiFi Shield.</li>
<li>DCC++ Over TCP: Remote network connection to a local
JMRI instance connected to a Base Station</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 Base Station Emulator.</p>
<h4>DCC++ Over TCP</h4>
<p>For the DCC++ Over TCP, a host computer must be connected
to the Base Station over a Serial or Network connection (or a
simulator). This host computer then runs the DCC++ Over TCP
Server. A remote computer (or several remote computers) can
then use the DCC++ Over TCP (Server) interface to remotely
access and control the Base Station.</p>
<a name="Limitations"></a>
<h2>Limitations</h2>
<div class="list">
<dl>
<dt class="left">JMRI</dt>
<dd class="first">
<p>JMRI currently supports the V1.1 Base Station
Interface. Some V1.0 commands may not work.</p>
</dd>
</dl>
</div><a name="connecting"></a>
<h2>Connecting</h2>
<h3>Configuring an Arduino for use as a DCC++ Base
Station</h3>
<p>In order to use an Arduino as a Base Station, you must
first assemble the device and download the Base Station
firmware to it. Please follow the <a href=
"#documentation">instructional videos linked below under
Other Info</a>.</p>
<h3>Connecting to a DCC++ Base Station via USB</h3>
<ol>
<li>To connect your computer to a DCC++ Base Station, first
install the appropriate drivers.</li>
<li style="list-style: none">
<ul>
<li>For the DCC++ Base Station 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=
"http://playground.arduino.cc/Learning/Linux">Linux</a></li>
</ul>page<br>
</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 Base Station 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++" from the top selection box ("System
Manufacturer").</li>
<li>Select "DCC++ 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 a DCC++ System using Network</h3>
<ol>
<li>First, connect the DCC++ Base Station 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++" from the top selection box ("System
Manufacturer").</li>
<li>Select "DCC++ Ethernet" from the second selection box
("System Connection").</li>
<li>Input the IP Address and Port Number of the DCC++ Base
Station.</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 a DCC++ System using DCC++ Over TCP</h3>
<ol>
<li>First, connect the DCC++ Base Station to the host
computer via the Serial or Network interface as described
above.</li>
<li>On the host computer select "Load DCC++ Over TCP Server"
from the DCC++ 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 DCC++ Server
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++ as the
System Manufacturer.</li>
<li>Select "DCC++ 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 Base Station. 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++ 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++ Simulator" from the top selection box.
There are no additional configuration steps required to use
the DCC++ 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><a name="tools"></a>
<h2>JMRI DCC++ Tools</h2><img src="images/DCCppMenu416.png"
width="138" height="70" align="right">
<p>The DCC++ menu contains 5 tools:</p>
<ul>
<li>DCC++ Traffic Monitor</li>
<li>Send DCC++ Command</li>
<li>Track Current Meter</li>
<li>Configure Sensors and Turnouts</li>
<li>Load DCC++ over TCP Server</li>
</ul><img src="images/DCCppGeneratePack.png" width="117"
height="47"> <img src="images/DCCppTrackCurrent.png" width=
"89" height="43"> <img src="images/DCCppConfigTO.png" width=
"186" height="101"> <img src="images/DCCppOverTCPIP.png"
width="219" height="47"> <a name="documentation"></a>
<h2>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++ Base Station, refer to the
following:
<ul>
<li>DCC++ <a href="https://github.com/DccPlusPlus">GitHub
Repository</a></li>
<li><a href=
"https://www.youtube.com/channel/UCJmvQx-fe0OMAIH-_g-_rZw/feed">
YouTube Channel</a></li>
<li><a href=
"http://www.trainboard.com/highball/index.php?threads/introducing-dcc-a-complete-open-source-dcc-station-and-interface.84800/">
Trainboard.com Discussion</a></li>
<li><a href="http://www.arduino.cc">Arduino Project
Site</a></li>
<li><a href="http://www.sparkfun.com">Sparkfun</a> - one of
many places to acquire hardware</li>
</ul>
<!--#include virtual="/Footer.shtml" -->
</div><!-- closes #mainContent-->
</div><!-- closes #mBody-->
</body>
</html>