Skip to content

Commit

Permalink
Doehler Haass 2020 update
Browse files Browse the repository at this point in the history
- D&H Definitions Train Decoders: added new family "Train Decoders (2020)" with fw 3.12.050 for the following decoders:
  - DH05C
  - DH10C
  - DH12A
  - DH16A
  - DH18A
  - DH21A
  - DH22A
  - PD05A
  - PD12A
- D&H Definitions Function decoders: added new family "Function Decoders (2020)" with fw 3.12.050 for the following decoders:
  - FH05B
  - FH18A
  - FH22A
- D&H Definitions Train Decoders: added update paths to Fw v3.12.050 for all the following decoder definitions:
  - 3.02 > 3.12.050     Doehler_Haass_fw3.02_DH05-10C_12-16-18A.xml
  - 3.03 > 3.12.050     Doehler_Haass_fw3.03_DH05-10C_12-16-18-21A.xml
  - 3.04 > 3.12.050     Doehler_Haass_fw3.04_DH05-10C_12-16-18-21-22A.xml
  - 3.05 > 3.12.050     Doehler_Haass_fw3.05_DH05-10C_12-16-18-21-22A.xml
  - 3.06/7 > 3.12.050   Doehler_Haass_fw3.06-07_DH05-10C_12-16-18-21-22A_PD12A.xml
  - 3.08/9 > 3.12.050   Doehler_Haass_fw3.08-09_DH05-10C_12-16-18-21-22A_PD05-12A.xml
  - 3.10 > 3.12.050     Doehler_Haass_fw3.10_DH05-10C_12-16-18-21-22A_PD05-12A.xml
  - 3.11 > 3.12.050     Doehler_Haass_fw3.11_DH05-10C_12-16-18-21-22A_PD05-12A.xml
- D&H Definitions Function Decoders: added update paths to Fw v3.12.050 for all the following decoder definitions:
  - 3.05 > 3.12.050     Doehler_Haass_fw3.05_FH05B.xml
  - 3.06/7 > 3.12.050   Doehler_Haass_fw3.06-07_FH05B-22A.xml
  - 3.10/11 > 3.12.050  Doehler_Haass_fw3.10-11_FH05B-18-22A.xml
- D&H Definitions: Added product ID detection for Doehler Haass introduced in CV 261, updated product IDs accordingly in new v3.12.050 defs.
- Modified IdentifyDecoder.java to handle D&H model ID method (using Hornby as model since D&H CV 261 is optional and only implemented in recent fw versions)
  • Loading branch information
PierreMc committed Mar 9, 2021
1 parent 4a68789 commit d32991f
Show file tree
Hide file tree
Showing 15 changed files with 848 additions and 114 deletions.
14 changes: 13 additions & 1 deletion help/en/releasenotes/current-draft-note.shtml
Expand Up @@ -201,7 +201,19 @@

<h4>Doehler &amp; Haas</h4>
<ul>
<li></li>
<li>New - for all new D&amp;H definitions: decoder model (product ID) is now detected automatically thanks to the introduction of CV 261 in updated firmware.</li>
<li>DH05C (fw 3.12.050 - including update path from older fw versions definitions)</li>
<li>DH10C (fw 3.12.050 - including update path from older fw versions definitions)</li>
<li>DH12A (fw 3.12.050 - including update path from older fw versions definitions)</li>
<li>DH16A (fw 3.12.050 - including update path from older fw versions definitions)</li>
<li>DH18A (fw 3.12.050 - including update path from older fw versions definitions)</li>
<li>DH21A (fw 3.12.050 - including update path from older fw versions definitions)</li>
<li>DH22A (fw 3.12.050 - including update path from older fw versions definitions)</li>
<li>PD05A (fw 3.12.050 - including update path from older fw versions definitions)</li>
<li>PD12A (fw 3.12.050 - including update path from older fw versions definitions)</li>
<li>FH05B (fw 3.12.050 - including update path from older fw versions definitions)</li>
<li>FH18A (fw 3.12.050 - including update path from older fw versions definitions)</li>
<li>FH22A (fw 3.12.050 - including update path from older fw versions definitions)</li>
</ul>

<h4>ESU</h4>
Expand Down
12 changes: 12 additions & 0 deletions java/src/jmri/jmrit/decoderdefn/IdentifyDecoder.java
Expand Up @@ -33,6 +33,7 @@
* <li>DIY: (mfgID == 13) CV47 is the highest byte, CV48 is high byte, CV49 is
* low byte, CV50 is the lowest byte; (CV47 == 1) is reserved for the Czech
* Republic</li>
* <li>Doehler & Haass: (mfgID == 97) CV261 is ID from 2020 firmwares</li>
* </ul>
* <dl>
* <dt>Optional CVs:</dt>
Expand Down Expand Up @@ -135,6 +136,11 @@ public boolean test3(int value) {
statusUpdate("Read decoder product ID #1 CV 47");
readCV("47");
return false;
} else if (mfgID == 97) { // Doehler & Haass
statusUpdate("Read optional decoder ID CV 261");
setOptionalCv(true);
readCV("261");
return false;
}
return true;
}
Expand Down Expand Up @@ -183,6 +189,12 @@ public boolean test4(int value) {
statusUpdate("Read decoder product ID #2 CV 48");
readCV("48");
return false;
} else if (mfgID == 97) { // Doehler & Haass
if (isOptionalCv()) {
return true;
}
productID = value;
return true;
}
log.error("unexpected step 4 reached with value: {}", value);
return true;
Expand Down
20 changes: 11 additions & 9 deletions xml/decoders/Doehler_Haass_fw3.02_DH05-10C_12-16-18A.xml
Expand Up @@ -12,6 +12,8 @@
<!-- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -->
<!-- for more details. -->
<decoder-config xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" showEmptyPanes="no" xsi:noNamespaceSchemaLocation="http://jmri.org/xml/schema/decoder.xsd">
<version version="5" author="Pierre Billon, pierre.bln@me.com" lastUpdated="20210308"/>
<!-- Added update paths to newest fw 3.12.050 -->
<version version="4" author="Pierre Billon, pierre.bln@me.com" lastUpdated="20151018"/>
<!-- Merged DH05C, DH10C, DH12A, DH16A, DH18A def files (same CV characteristics) -->
<version version="3" author="Pierre Billon, pierre.bln@me.com" lastUpdated="20150223"/>
Expand All @@ -21,7 +23,7 @@
<version version="2" author="Pierre Billon, pierre.bln@me.com" lastUpdated="20140220"/>
<!-- 2 2014/02/20 Update: future proofing
This is a complete rewrite of my original submission for many D&H decoders.
This updates ensure a cleaner, more future proof organisation (despite more files).
This updates ensure a cleaner, more future proof organisation (despite more files).
FIRMWARE INFORMATION: from http://doehler-haass.de/cms/pages/haeufige-fragen/decoder-cv-tabelle.php
DECODER VERSION INFORMATION: from the changelog files, downloaded through the D&H Update program.
Please note that the "firmware" and "decoder" versions differ in their numbering, despite a common
Expand All @@ -30,15 +32,15 @@
These definitions include both numbers (Firmware version & Decoder version).
-->
<version version="1" author="Pierre Billon, pierre.bln@me.com" lastUpdated="20130731"/>
<!-- 1 2013/07/31 Creation
<!-- 1 2013/07/31 Creation
First decoder template for the Doehler & Haass decoder range.
This LOCOMOTIVE decoder file creates the corresponding family, and
includes all decoders defs & specs.
This LOCOMOTIVE decoder file creates the corresponding family, and
includes all decoders defs & specs.
It requires variables and panes as defined in the doehler_hass/ folder.
-->
<decoder>
<family name="Train Decoders (firmware 3.02+)" mfg="Doehler und Haass">
<model model="DH05C" lowVersionID="3" highVersionID="3" numOuts="4" numFns="16" productID="DH05C" comment="DH05C-0 / DH05C-1 / DH05C-3" maxInputVolts="18V" maxMotorCurrent="0.5A" maxTotalCurrent="0.5A" connector="Wires/NEM651">
<model model="DH05C" replacementModel="DH05C v3.12.050 (firmware 3.12+)" replacementFamily="query:Train Decoders (2020)" lowVersionID="3" highVersionID="3" numOuts="4" numFns="16" productID="DH05C" comment="DH05C-0 / DH05C-1 / DH05C-3" maxInputVolts="18V" maxMotorCurrent="0.5A" maxTotalCurrent="0.5A" connector="Wires/NEM651">
<output name="1" label="Front|Light" maxcurrent="150mA"/>
<output name="2" label="Rear|Light" maxcurrent="150mA"/>
<output name="3" label="AUX|1" maxcurrent="300mA"/>
Expand All @@ -53,7 +55,7 @@
<protocol>selectrix</protocol>
</protocols>
</model>
<model model="DH10C" lowVersionID="3" highVersionID="3" numOuts="4" numFns="16" productID="DH10C" comment="DH10C-0 / DH10C-1 / DH10C-3" maxInputVolts="30V" maxMotorCurrent="1A" maxTotalCurrent="1A" connector="Wires/NEM651">
<model model="DH10C" replacementModel="DH10C v3.12.050 (firmware 3.12+)" replacementFamily="query:Train Decoders (2020)" lowVersionID="3" highVersionID="3" numOuts="4" numFns="16" productID="DH10C" comment="DH10C-0 / DH10C-1 / DH10C-3" maxInputVolts="30V" maxMotorCurrent="1A" maxTotalCurrent="1A" connector="Wires/NEM651">
<output name="1" label="Front|Light" maxcurrent="150mA"/>
<output name="2" label="Rear|Light" maxcurrent="150mA"/>
<output name="3" label="AUX|1" maxcurrent="300mA"/>
Expand All @@ -68,7 +70,7 @@
<protocol>selectrix</protocol>
</protocols>
</model>
<model model="DH12A" lowVersionID="3" highVersionID="3" numOuts="6" numFns="16" productID="DH12A" comment="DH12A" maxInputVolts="30V" maxMotorCurrent="1.5A" maxTotalCurrent="1.5A" connector="PluX12">
<model model="DH12A" replacementModel="DH12A v3.12.050 (firmware 3.12+)" replacementFamily="query:Train Decoders (2020)" lowVersionID="3" highVersionID="3" numOuts="6" numFns="16" productID="DH12A" comment="DH12A" maxInputVolts="30V" maxMotorCurrent="1.5A" maxTotalCurrent="1.5A" connector="PluX12">
<output name="1" label="Front|Light" maxcurrent="150mA"/>
<output name="2" label="Rear|Light" maxcurrent="150mA"/>
<output name="3" label="AUX|1" maxcurrent="300mA"/>
Expand All @@ -83,7 +85,7 @@
<protocol>selectrix</protocol>
</protocols>
</model>
<model model="DH16A" lowVersionID="3" highVersionID="3" numOuts="6" numFns="16" productID="DH16A" comment="DH16A-0 /DH16A-1 /DH16A-2 /DH16A-3" maxInputVolts="30V" maxMotorCurrent="1.5A" maxTotalCurrent="1.5A" connector="PluX16">
<model model="DH16A" replacementModel="DH16A v3.12.050 (firmware 3.12+)" replacementFamily="query:Train Decoders (2020)" lowVersionID="3" highVersionID="3" numOuts="6" numFns="16" productID="DH16A" comment="DH16A-0 /DH16A-1 /DH16A-2 /DH16A-3" maxInputVolts="30V" maxMotorCurrent="1.5A" maxTotalCurrent="1.5A" connector="PluX16">
<output name="1" label="Front|Light" maxcurrent="150mA"/>
<output name="2" label="Rear|Light" maxcurrent="150mA"/>
<output name="3" label="AUX|1" maxcurrent="300mA"/>
Expand All @@ -98,7 +100,7 @@
<protocol>selectrix</protocol>
</protocols>
</model>
<model model="DH18A" lowVersionID="3" highVersionID="3" numOuts="6" numFns="16" productID="DH18A" comment="DH18A" maxInputVolts="30V" maxMotorCurrent="1.5A" maxTotalCurrent="1.5A" connector="Next18">
<model model="DH18A" replacementModel="DH18A v3.12.050 (firmware 3.12+)" replacementFamily="query:Train Decoders (2020)" lowVersionID="3" highVersionID="3" numOuts="6" numFns="16" productID="DH18A" comment="DH18A" maxInputVolts="30V" maxMotorCurrent="1.5A" maxTotalCurrent="1.5A" connector="Next18">
<output name="1" label="Front|Light" maxcurrent="150mA"/>
<output name="2" label="Rear|Light" maxcurrent="150mA"/>
<output name="3" label="AUX|1" maxcurrent="300mA"/>
Expand Down
14 changes: 8 additions & 6 deletions xml/decoders/Doehler_Haass_fw3.03_DH05-10C_12-16-18-21A.xml
Expand Up @@ -12,6 +12,8 @@
<!-- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -->
<!-- for more details. -->
<decoder-config xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" showEmptyPanes="no" xsi:noNamespaceSchemaLocation="http://jmri.org/xml/schema/decoder.xsd">
<version version="6" author="Pierre Billon, pierre.bln@me.com" lastUpdated="20210308"/>
<!-- Added update paths to newest fw 3.12.050 -->
<version version="5" author="Pierre Billon, pierre.bln@me.com" lastUpdated="20151018"/>
<!-- Merged DH05C, DH10C, DH12A, DH16A, DH18A, DH21A def files (same CV characteristics) -->
<version version="4" author="Pierre Billon, pierre.bln@me.com" lastUpdated="20150223"/>
Expand Down Expand Up @@ -41,7 +43,7 @@
-->
<decoder>
<family name="Train Decoders (firmware 3.03+)" mfg="Doehler und Haass">
<model model="DH05C v3.03 (firmware 3.03+)" lowVersionID="3" highVersionID="3" numOuts="6" numFns="16" productID="DH05C_3_03" comment="DH05C-0 / DH05C-1 / DH05C-3 with update from 15 Jan 2014" maxInputVolts="18V" maxMotorCurrent="0.5A" maxTotalCurrent="0.5A" connector="Wires/NEM651">
<model model="DH05C v3.03 (firmware 3.03+)" replacementModel="DH05C v3.12.050 (firmware 3.12+)" replacementFamily="query:Train Decoders (2020)" lowVersionID="3" highVersionID="3" numOuts="6" numFns="16" productID="DH05C_3_03" comment="DH05C-0 / DH05C-1 / DH05C-3 with update from 15 Jan 2014" maxInputVolts="18V" maxMotorCurrent="0.5A" maxTotalCurrent="0.5A" connector="Wires/NEM651">
<output name="1" label="Front|Light" maxcurrent="150mA"/>
<output name="2" label="Rear|Light" maxcurrent="150mA"/>
<output name="3" label="AUX|1" maxcurrent="300mA"/>
Expand All @@ -58,7 +60,7 @@
<protocol>selectrix</protocol>
</protocols>
</model>
<model model="DH10C v3.03 (firmware 3.03+)" lowVersionID="3" highVersionID="3" numOuts="6" numFns="16" productID="DH10C_3_03" comment="DH10C-0 / DH10C-1 / DH10C-3 with update from 15 Jan 2014" maxInputVolts="30V" maxMotorCurrent="1A" maxTotalCurrent="1A" connector="Wires/NEM651">
<model model="DH10C v3.03 (firmware 3.03+)" replacementModel="DH10C v3.12.050 (firmware 3.12+)" replacementFamily="query:Train Decoders (2020)" lowVersionID="3" highVersionID="3" numOuts="6" numFns="16" productID="DH10C_3_03" comment="DH10C-0 / DH10C-1 / DH10C-3 with update from 15 Jan 2014" maxInputVolts="30V" maxMotorCurrent="1A" maxTotalCurrent="1A" connector="Wires/NEM651">
<output name="1" label="Front|Light" maxcurrent="150mA"/>
<output name="2" label="Rear|Light" maxcurrent="150mA"/>
<output name="3" label="AUX|1" maxcurrent="300mA"/>
Expand All @@ -75,7 +77,7 @@
<protocol>selectrix</protocol>
</protocols>
</model>
<model model="DH12A v3.03 (firmware 3.03+)" lowVersionID="3" highVersionID="3" numOuts="6" numFns="16" productID="DH12A_3_03" comment="DH12A with update from 15 Jan 2014" maxInputVolts="30V" maxMotorCurrent="1.5A" maxTotalCurrent="1.5A" connector="PluX12">
<model model="DH12A v3.03 (firmware 3.03+)" replacementModel="DH12A v3.12.050 (firmware 3.12+)" replacementFamily="query:Train Decoders (2020)" lowVersionID="3" highVersionID="3" numOuts="6" numFns="16" productID="DH12A_3_03" comment="DH12A with update from 15 Jan 2014" maxInputVolts="30V" maxMotorCurrent="1.5A" maxTotalCurrent="1.5A" connector="PluX12">
<output name="1" label="Front|Light" maxcurrent="150mA"/>
<output name="2" label="Rear|Light" maxcurrent="150mA"/>
<output name="3" label="AUX|1" maxcurrent="300mA"/>
Expand All @@ -90,7 +92,7 @@
<protocol>selectrix</protocol>
</protocols>
</model>
<model model="DH16A v3.03 (firmware 3.03+)" lowVersionID="3" highVersionID="3" numOuts="6" numFns="16" productID="DH16A_3_03" comment="DH16A-0 /DH16A-1 /DH16A-2 /DH16A-3 with update from 15 Jan 2014" maxInputVolts="30V" maxMotorCurrent="1.5A" maxTotalCurrent="1.5A" connector="PluX16">
<model model="DH16A v3.03 (firmware 3.03+)" replacementModel="DH16A v3.12.050 (firmware 3.12+)" replacementFamily="query:Train Decoders (2020)" lowVersionID="3" highVersionID="3" numOuts="6" numFns="16" productID="DH16A_3_03" comment="DH16A-0 /DH16A-1 /DH16A-2 /DH16A-3 with update from 15 Jan 2014" maxInputVolts="30V" maxMotorCurrent="1.5A" maxTotalCurrent="1.5A" connector="PluX16">
<output name="1" label="Front|Light" maxcurrent="150mA"/>
<output name="2" label="Rear|Light" maxcurrent="150mA"/>
<output name="3" label="AUX|1" maxcurrent="300mA"/>
Expand All @@ -105,7 +107,7 @@
<protocol>selectrix</protocol>
</protocols>
</model>
<model model="DH18A v3.03 (firmware 3.03+)" lowVersionID="3" highVersionID="3" numOuts="6" numFns="16" productID="DH18A_3_03" comment="DH18A with update from 15 Jan 2014" maxInputVolts="30V" maxMotorCurrent="1.5A" maxTotalCurrent="1.5A" connector="Next18">
<model model="DH18A v3.03 (firmware 3.03+)" replacementModel="DH18A v3.12.050 (firmware 3.12+)" replacementFamily="query:Train Decoders (2020)" lowVersionID="3" highVersionID="3" numOuts="6" numFns="16" productID="DH18A_3_03" comment="DH18A with update from 15 Jan 2014" maxInputVolts="30V" maxMotorCurrent="1.5A" maxTotalCurrent="1.5A" connector="Next18">
<output name="1" label="Front|Light" maxcurrent="150mA"/>
<output name="2" label="Rear|Light" maxcurrent="150mA"/>
<output name="3" label="AUX|1" maxcurrent="300mA"/>
Expand All @@ -120,7 +122,7 @@
<protocol>selectrix</protocol>
</protocols>
</model>
<model model="DH21A v3.03 (firmware 3.03+)" lowVersionID="54" highVersionID="54" numOuts="6" numFns="16" productID="DH21A_3_03" comment="DH21A with release firmware" maxInputVolts="30V" maxMotorCurrent="2A" maxTotalCurrent="2A" connector="21MTC">
<model model="DH21A v3.03 (firmware 3.03+)" replacementModel="DH21A v3.12.050 (firmware 3.12+)" replacementFamily="query:Train Decoders (2020)" lowVersionID="54" highVersionID="54" numOuts="6" numFns="16" productID="DH21A_3_03" comment="DH21A with release firmware" maxInputVolts="30V" maxMotorCurrent="2A" maxTotalCurrent="2A" connector="21MTC">
<output name="1" label="Front|Light" maxcurrent="150mA"/>
<output name="2" label="Rear|Light" maxcurrent="150mA"/>
<output name="3" label="AUX|1" maxcurrent="300mA"/>
Expand Down

0 comments on commit d32991f

Please sign in to comment.