Files
JIMRI/help/en/html/hardware/loconet/EnhancedSlots.shtml
T
2026-06-17 14:00:51 +02:00

292 lines
13 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 - Enhanced LocoNet&reg; Slots</title>
<meta name="author" content="B. Milhaupt">
<meta name="keywords" content="Digitrax LocoNet Slot"><!--#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">
<h1>Hardware Support: Enhanced LocoNet&reg; Slots</h1>
<h2>Contents</h2>
<ul>
<li>
<a href="#Introduction">Introduction</a>
</li>
<li>
<a href="#QandA">Enhanced slots described via Questions and Answers</a>
<ul>
<li>
<a href="#generalideas">What is a LocoNet "Slot"?"</a>
</li>
<li>
<a href="#WhatsInIt">What's in a slot?</a>
</li>
<li>
<a href="#whyImportant">Why are slots important?</a>
</li>
<li>
<a href="#whyDifferent">Why is there a difference between "traditional" and
"enhanced" LocoNet slots?</a>
</li>
<li>
<a href="#ExpandEnhanceEtc">Why do you use the term "Enhanced" slots when Digitrax
uses the term "Expanded" slots?</a>
</li>
<li>
<a href="#PrimaryDiff">What are the primary differences between "Traditional" and
"Enhanced" LocoNet slots?</a>
</li>
<li>
<a href="#whatCmdStnsTrad">What command stations implement "traditional" slots?</a>
</li>
<li>
<a href="#whatCmdStnsEnh">What command stations implement "enhanced" slots?</a>
</li>
<li>
<a href="#whatThrotTrad">What throttles can make use of "traditional" slots?</a>
</li>
<li>
<a href="#whatThrotEnh">What throttles can make use of "enhanced" slots?</a>
</li>
</ul>
</li>
<li>
<a href="#whyNot">JMRI does not directly support "enhanced" slots. Why not?</a>
</li>
<li>
<a href="#someSupport">There really is some JMRI support for "enhanced" slots. Why is
that?</a>
</li>
<li>
<a href="#whatItWillTake">What will it take for JMRI to fully support "enhanced"
slots?</a>
</li>
</ul>
<h2 id="Introduction">Introduction</h2>
<p>This help page is presented as a set of "questions and answers". It is hoped that this
presentation will answer the basic questions related to LocoNet "Enhanced" slots.</p>
<h2 id="QandA">Enhanced slots described via Questions and Answers</h2>
<h3 id="generalideas">What is a LocoNet "Slot"?</h3>
<p>LocoNet implements the "slot" as the basic mechanism for:</p>
<ul>
<li>managing locomotives and the information used when sending a DCC signal to that
locomotive;</li>
<li>managing how locomotives may be grouped together into a consist;</li>
<li>other system-specific uses.</li>
</ul>
<p>This discussion focuses on the first two of these items, and ignores the last item.</p>
<h2 id="WhatsInIt">What's in a slot?</h2>
<p>Locomotive control and locomotive consisting slots are those slots which may contain valid
locomotive information. Valid locomotive information includes the slot's status, a DCC mobile
decoder address, the decoder's current speed and direction, some stored information on which
functions are active, the type of DCC packet to be sent to the DCC mobile decoder, the
"Throttle ID" reported by the last throttle to acquire the slot, and position in a consist
(if consisted).</p>
<h2 id="whyImportant">Why are slots important?</h2>
<p>When a LocoNet throttle acquires a locomotive address, it effectively asks the command
station for a slot number with which to control a locomotive address. Once acquired, the
throttle uses that <strong>slot number</strong> reported by the command station.</p>
<h2 id="whyDifferent">Why is there a difference between "traditional" and "enhanced" LocoNet
slots?</h2>
<p>Some guess that limited available memory in the microcontroller devices used in early
Digitrax command stations forced a limit of the available number of slots and amount of
information in each slot.</p>
<p>Some guess that LocoNet designers worried about available data throughput on LocoNet if
locomotive control messages required more bytes.</p>
<p>While both of these arguments are logical, only the architects of LocoNet can really know.
But it is known that the "traditional" slot architecture placed a practical limit of up to
120 addressable locos (whether separately controlled or consisted using "basic" consisting).
The "enhanced" slot architecture has extended that capability to be greater than 120 in cases
where the command station supports more than 120 locomotive-control slots.</p>
<h2 id="ExpandEnhanceEtc">Why do you use the term "Enhanced" slots when Digitrax uses the
term "Expanded" slots?</h2>
<p>Upon its introduction, the primary DCS240 selling point seen by users on the
Digitrax-Users "Yahoo" list (now the Digitrax-Users "groups.io" list) was the ability to use
up to 400 throttles and control up to 400 locomotives. This association was well-established
before the release of the DCS210 and DCS52 command stations.</p>
<p>Why is this significant? Because neither the DCS210 nor the DCS52 could control more
locomotives than a "standard-slot-only" command station, nor could they support any more
throttles than such a command station. But both command stations use and understand the
LocoNet messages which makes it possible for the DCS240 to support as many as 400 throttles
and as many as 400 uniquely controllable locos.</p>
<p>This emphasized that the so-called "expanded" slot is more than simply a mechanism which
allows a LocoNet-based system to use more than 120 throttles, and allow the system to control
more than 120 unique locomotives. Instead, it is an "ecosystem" which allows different
LocoNet messaging for loco control, different throttle "steal" behavior, different command
station memory of function states, etc.</p>
<p>So, for the purposes of this discussion, an "enhanced" slot is one which uses newer
LocoNet messaging to implement the additional features listed in the previous paragraph,
regardless of the slot number value. So-called "enhanced" slot LocoNet messaging may use slot
numbering in the "traditional" slot numbering range, as is done by the DCS210 and DCS52
command stations, or by the DCS240 if it is configured to limit its slots to a maximum of
120. That same "enhanced" slot LocoNet messaging may use slot numbers in the "expanded" slot
numbering range to control those locomotives which are held in a DCS240 in a slot number
which is above the "traditional" slot numbering range.</p>
<h2 id="PrimaryDiff">What are the primary differences between "Traditional" and "Enhanced"
LocoNet slots?</h2>
There are four primary differences between "traditional" and "enhanced" LocoNet slots:
<table border="2">
<tr>
<td style="text-align: center"><strong>Traditional slots:</strong>
</td>
<td style="text-align: center"><strong>Enhanced slots:</strong>
</td>
</tr>
<tr>
<td>use locomotive control slot numbers between 1 and 120 (or less, depending on command
station), using a 4-byte message;</td>
<td>use locomotive control slot numbers between 1 and 400 (or less, depending on command
station), using 6-byte messages;</td>
</tr>
<tr>
<td>remember only F0 thru F8</td>
<td>remember F0 thru F28</td>
</tr>
<tr>
<td>can be "shared" between multiple throttles;</td>
<td>can be "stolen" by another throttle and the first enhanced-slot throttle no longer
has control of the slot ("StealZap");</td>
</tr>
<tr>
<td>can be controlled by "traditional-slot" throttles or by "enhanced-slot-capable"
throttles;</td>
<td>can be controlled only by "enhanced-slot-capable" throttles;</td>
</tr>
<tr>
<td>can be managed by all Digitrax command stations.</td>
<td>can only be managed by newer Digitrax command station models.</td>
</tr>
</table>
<h2 id="whatCmdStnsTrad">What command stations implement "traditional" slots?</h2>
<p>All LocoNet-compatible command stations implement traditional slots.</p>
<h2 id="whatCmdStnsEnh">What command stations implement "enhanced" slots?</h2>
<p>It is believed that a "LocoNet 2.0" specification defines the "enhanced" slot
functionality. As of this writing, the Digitrax DCS52, DCS210, and DCS240 command stations
implement "enhanced" slot functionality.</p>
<h2 id="whatThrotTrad">What throttles can make use of "traditional" slots?</h2>
<p>It is believed that all LocoNet-compatible throttles can make use of traditional slots to
control locomotives and/or consists.</p>
<h2 id="whatThrotEnh">What throttles can make use of "enhanced" slots?</h2>
<p>As of this writing, the Digitrax DT402-series and DT500-series throttles can make use of
"enhanced" slots. It is believed that the throttle must be configured to allow it to request
and use "enhanced" slots - if not configured to use "enhanced" slots, or if the command
station does not support "enhanced" slots, the throttle will make use of "traditional"
slots.</p>
<p>It is believed that those WiFi throttles managed by the Digitrax LNWI device can make use
of "enhanced" slots, assuming that the command station supports "enhanced" slots.</p>
<h2 id="whyNot">JMRI does not directly support "enhanced" slots. Why not?</h2>
<p>It's hard to support "enhanced" slots for a variety of reasons. Primarily, "enhanced"
slots add a large number of "boundary conditions" that are difficult to manage. And different
Digitrax command stations seem to behave differently when "enhanced" slots are used and
certain "boundary conditions" are exercised. Until these boundary conditions are fully
understood, it has been deemed inappropriate to provide enhanced slot support in JMRI. This
means that JMRI will not, at this time, control locomotives or consists using "enhanced" slot
LocoNet messaging.</p>
<h2 id="someSupport">There really is some JMRI support for "enhanced" slots. Why is
that?</h2>
<p>A few JMRI developers have reverse-engineered the apparent behavior of some aspects of
"enhanced" slot functionality. As of this writing, that has been limited primarily to the
"LocoNet Monitor" feature. It has been thought that any improper behavior of the "LocoNet
Monitor" functionality at "boundary conditions" would only give an incorrect display in the
LocoNet Monitor window but cannot cause JMRI to misbehave.</p>
<p>As of this writing, other places where JMRI makes use of "enhanced" slots is limited to
usage where configuration and operations are done via "enhanced" slot messaging. Any improper
behavior due to "boundary condition" cases for these implementations is thought to not affect
the ability of JMRI to control trains.</p>
<h2 id="whatItWillTake">What will it take for JMRI to fully support "enhanced" slots?</h2>
<p>There are a few things at play here. At a minimum, JMRI will require:</p>
<ul>
<li>greater understanding by JMRI developers of the behavior of command stations and
throttles, for various boundary conditions, across different command station and throttle
implementations;</li>
<li>an understanding of proper JMRI behavior when both enhanced and traditional slots are
used;</li>
<li>an understanding of how slots "transition" between traditional and enhanced;</li>
<li>some "refactoring" of JMRI's LocoNet code base, to allow for easy management of the
"enhanced" slot type;</li>
<li>a mechanism to provide the user some level of control of enhanced slot usage (when
enhanced slots are available);</li>
<li>a re-work of the LocoNet "Monitor Slots" tool to handle the potentially huge number of
enhanced slots.</li>
</ul>
<!--#include virtual="/help/en/parts/Footer.shtml" -->
</div>
<!-- closes #mainContent-->
</div>
<!-- closes #mBody-->
<script src="/js/help.js"></script>
</body>
</html>