Files
JIMRI/xml/decoders/SoundTraxx_OEM_Bachmann_v3.xml
2026-06-17 14:00:51 +02:00

403 lines
23 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../XSLT/decoder.xsl"?>
<!-- Copyright (C) JMRI 2003, 2004. 2007 All rights reserved -->
<!-- -->
<!-- JMRI is free software; you can redistribute it and/or modify it under -->
<!-- the terms of version 2 of the GNU General Public License as published -->
<!-- by the Free Software Foundation. See the "COPYING" file for a copy -->
<!-- of this license. -->
<!-- -->
<!-- JMRI is distributed in the hope that it will be useful, but WITHOUT -->
<!-- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -->
<!-- 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" xsi:noNamespaceSchemaLocation="http://jmri.org/xml/schema/decoder-4-15-2.xsd">
<version author="Bob Jacobsen" version="4" lastUpdated="20190727"/> <!-- xinclude for CV19 -->
<version author="Nigel Cliffe" version="3" lastUpdated="20100906"/>
<version author="Peter Ulvestad" version="2" lastUpdated="20100816"/>
<version author="Marc Fournier" version="1" lastUpdated="20091230"/>
<!-- Version 1 - Created from Soundtraxx Tsunami definition -->
<!-- Version 2 - Moved to Soundtraxx based on mfg ID-->
<!-- Version 3 - created function mapping for outputs and features, added reset -->
<decoder>
<family name="OEM Bachmann E-Z Command decoders" mfg="SoundTraxx (Throttle-Up)" lowVersionID="1">
<model model="2 function decoder (36-558)" numOuts="2" numFns="14" maxMotorCurrent=".5A" formFactor="HO, N" connector="NMRAmedium">
<output name="1" label="White"/>
<output name="2" label="Yellow"/>
<output name="LD" label="Light Dimming"/>
<output name="Bk" label="Brake Key"/>
<size length="13.3" width="10.0" height="3.5" units="mm"/>
</model>
</family>
<programming direct="yes" paged="yes" register="yes" ops="yes"/>
<variables>
<xi:include href="http://jmri.org/xml/decoders/nmra/shortAndLongAddress.xml"/>
<variable CV="2" item="Vstart" default="1" comment="Range 0-31">
<decVal min="0" max="31"/>
<label>Start Volts</label>
<label xml:lang="it">Volt Partenza</label>
<label xml:lang="fr">V démarr.</label>
<label xml:lang="de">Startspannung</label>
</variable>
<variable item="Accel" CV="3" default="1" comment="Range 0-31">
<decVal max="31"/>
<label>Accel</label>
</variable>
<variable item="Decel" CV="4" default="1" comment="Range 0-31">
<decVal max="31"/>
<label>Decel</label>
</variable>
<variable CV="7" item="Decoder Version" readOnly="yes">
<decVal/>
<label>Version ID</label>
<label xml:lang="it">Versione Decoder: </label>
<label xml:lang="fr">Version décodeur: </label>
<label xml:lang="de">Decoder Version: </label>
</variable>
<variable CV="8" readOnly="yes" item="Manufacturer">
<decVal/>
<label>Manufacturer ID</label>
<label xml:lang="it">ID Costruttore: </label>
<label xml:lang="fr">ID constructeur: </label>
<label xml:lang="de">Hersteller ID: </label>
</variable>
<variable CV="10" item="EMF Feedback Cutout" default="0" tooltip="&lt;html&gt;Up to 127, this sets the speed step above which the intensity of BEMF control will be reduced&lt;br&gt; to zero. Values over 127 cause the BEMF to decrease as a percentage (up to 50%).&lt;/html&gt;">
<decVal/>
<label>BEMF Cutout (0-127 or 128-255)</label>
</variable>
<variable CV="11" item="Packet Time-out Value" default="0" tooltip="&lt;html&gt;Sets the time period that is allowed to elapse between receipts of a valid packet&lt;br&gt; addressed to the decoder before a throttle shutdown occurs. Enter zero to disable.&lt;/html&gt;">
<decVal/>
<label>Packet Time Out Value (0-255)</label>
</variable>
<variable CV="15" mask="XXXXXVVV" item="Advanced Group 1 Option 1" default="0" tooltip="&lt;html&gt;Enter the Lock ID Code to unlock access to the decoder CVs.&lt;br&gt; (Tip: Establish the unlock code with CV Lock ID Code)&lt;/html&gt;">
<decVal/>
<label>CV Unlock Register (0-7)</label>
</variable>
<variable CV="16" mask="XXXXXVVV" item="Advanced Group 1 Option 2" default="0" tooltip="Sets the unlock code that must be entered into the CV Unlock Register in order to access the decoder CVs">
<decVal/>
<label>CV Lock ID Code (0-7)</label>
</variable>
<!-- Consisting Information follows -->
<xi:include href="http://jmri.org/xml/decoders/nmra/consistAddrDirection.xml"/>
<variable CV="21" mask="XXXXXXVX" item="Consist Address Active For F2" default="0" minFn="2">
<enumVal>
<enumChoice choice="Respond to locomotive address only"/>
<enumChoice choice="Respond to consist address"/>
</enumVal>
<label>Consist Address Activation for F2</label>
</variable>
<variable CV="21" mask="XXXXXVXX" item="Consist Address Active For F3" default="0" minFn="3">
<enumVal>
<enumChoice choice="Respond to locomotive address only"/>
<enumChoice choice="Respond to consist address"/>
</enumVal>
<label>Consist Address Activation for F3</label>
</variable>
<variable CV="21" mask="XXXXVXXX" item="Consist Address Active For F4" default="0" minFn="4">
<enumVal>
<enumChoice choice="Respond to locomotive address only"/>
<enumChoice choice="Respond to consist address"/>
</enumVal>
<label>Consist Address Activation for F4</label>
</variable>
<variable CV="21" mask="XXXVXXXX" item="Consist Address Active For F5" default="0" minFn="5">
<enumVal>
<enumChoice choice="Respond to locomotive address only"/>
<enumChoice choice="Respond to consist address"/>
</enumVal>
<label>Consist Address Activation for F5</label>
</variable>
<variable CV="21" mask="XXVXXXXX" item="Consist Address Active For F6" default="0" minFn="6">
<enumVal>
<enumChoice choice="Respond to locomotive address only"/>
<enumChoice choice="Respond to consist address"/>
</enumVal>
<label>Consist Address Activation for F6</label>
</variable>
<variable CV="21" mask="XVXXXXXX" item="Consist Address Active For F7" default="0" minFn="7">
<enumVal>
<enumChoice choice="Respond to locomotive address only"/>
<enumChoice choice="Respond to consist address"/>
</enumVal>
<label>Consist Address Activation for F7</label>
</variable>
<variable CV="21" mask="VXXXXXXX" item="Consist Address Active For F8" default="0" minFn="8">
<enumVal>
<enumChoice choice="Respond to locomotive address only"/>
<enumChoice choice="Respond to consist address"/>
</enumVal>
<label>Consist Address Activation for F8</label>
</variable>
<variable CV="22" mask="XXXXXXXV" item="Consist Address Active For FL in Forward" default="0">
<enumVal>
<enumChoice choice="Respond to locomotive address only"/>
<enumChoice choice="Respond to consist address"/>
</enumVal>
<label>Consist Address Activation for F0(f) in Forward</label>
</variable>
<variable CV="22" mask="XXXXXXVX" item="Consist Address Active For FL in Reverse" default="0">
<enumVal>
<enumChoice choice="Respond to locomotive address only"/>
<enumChoice choice="Respond to consist address"/>
</enumVal>
<label>Consist Address Activation for F0(r) in Reverse</label>
</variable>
<variable CV="22" mask="XXXXXVXX" item="Consist Address Active For F9" default="0" minFn="9">
<enumVal>
<enumChoice choice="Respond to locomotive address only"/>
<enumChoice choice="Respond to consist address"/>
</enumVal>
<label>Consist Address Activation for F9</label>
</variable>
<variable CV="22" mask="XXXXVXXX" item="Consist Address Active For F10" default="0" minFn="10">
<enumVal>
<enumChoice choice="Respond to locomotive address only"/>
<enumChoice choice="Respond to consist address"/>
</enumVal>
<label>Consist Address Activation for F10</label>
</variable>
<variable CV="22" mask="XXXVXXXX" item="Consist Address Active For F11" default="0" minFn="11">
<enumVal>
<enumChoice choice="Respond to locomotive address only"/>
<enumChoice choice="Respond to consist address"/>
</enumVal>
<label>Consist Address Activation for F11</label>
</variable>
<variable CV="22" mask="XXVXXXXX" item="Consist Address Active For F12" default="0" minFn="12">
<enumVal>
<enumChoice choice="Respond to locomotive address only"/>
<enumChoice choice="Respond to consist address"/>
</enumVal>
<label>Consist Address Activation for F12</label>
</variable>
<variable CV="23" mask="XVVVVVVV" item="Consist Acceleration Adjustment" default="0" comment="Additional consist acceleration (combined with CV3)" tooltip="When loco is in a consist, it's base acceleration rate is modified by this amount">
<decVal max="127"/>
<label>Consist Acceleration Rate (0-127)</label>
</variable>
<variable CV="24" mask="XVVVVVVV" item="Consist Deceleration Adjustment" default="0" comment="Additional consist braking (combined with CV4)" tooltip="When loco is in a consist, it's baseline braking rate is modified by this amount">
<decVal max="127"/>
<label>Consist Braking Rate (0-127)</label>
</variable>
<variable item="Speed Table Selection" CV="25" mask="XXXVVVVV" default="0" tooltip="Select a manufacturers speed curve, or use a curve you define yourself">
<enumVal>
<enumChoice choice="Disabled, Speed Curves not used"/>
<enumChoice choice="Disabled, Speed Curves not used"/>
<enumChoice choice="Linear Speed Curve (Straight Line)"/>
<enumChoice choice="Logarithmic Curve 1"/>
<enumChoice choice="Logarithmic Curve 2"/>
<enumChoice choice="Logarithmic Curve 3"/>
<enumChoice choice="Logarithmic Curve 4"/>
<enumChoice choice="Logarithmic Curve 5"/>
<enumChoice choice="Logarithmic Curve 6"/>
<enumChoice choice="Logarithmic Curve 7"/>
<enumChoice choice="Exponential Curve 1"/>
<enumChoice choice="Exponential Curve 2"/>
<enumChoice choice="Exponential Curve 3"/>
<enumChoice choice="Exponential Curve 4"/>
<enumChoice choice="Exponential Curve 5"/>
<enumChoice choice="Exponential Curve 6"/>
<enumChoice choice="User Defined Speed Table"/>
</enumVal>
<label>Speed Table Selection</label>
</variable>
<!-- CV=29 -->
<xi:include href="http://jmri.org/xml/decoders/nmra/cv29direction.xml"/>
<xi:include href="http://jmri.org/xml/decoders/nmra/cv29speedSteps.xml"/>
<xi:include href="http://jmri.org/xml/decoders/nmra/cv29analog.xml"/>
<xi:include href="http://jmri.org/xml/decoders/nmra/cv29table1-28.xml"/>
<!-- Function Mapping follows -->
<!-- <variable label="FL(r) controls Backup Light" CV="34" mask="XXXXXXVX"
item="FL(r) controls output 2" minOut="2" default="1">
<enumVal> <enumChoice choice="No"/> <enumChoice choice="Yes"/> </enumVal>
</variable>
<variable label="F7 controls output Dimming" CV="41" mask="XXXVXXXX"
default="1">
<enumVal> <enumChoice choice="No"/> <enumChoice choice="Yes"/> </enumVal>
</variable>
<variable label="F11 controls output Braking" CV="45" mask="XVXXXXXX"
default="1" minFn="11">
<enumVal> <enumChoice choice="No"/> <enumChoice choice="Yes"/> </enumVal>
</variable>
-->
<variable item="FL(f) controls output 1" CV="33" mask="XXXXXXXV" minOut="1" default="1">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>FL(f) controls output 1</label>
</variable>
<variable item="FL(f) controls output 2" CV="33" mask="XXXXXXVX" minOut="2">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>FL(f) controls output 2</label>
</variable>
<variable item="FL(r) controls output 1" CV="34" mask="XXXXXXXV" minOut="1">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>FL(r) controls output 1</label>
</variable>
<variable item="FL(r) controls output 2" CV="34" mask="XXXXXXVX" minOut="2" default="1">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>FL(r) controls output 2</label>
</variable>
<variable item="F1 controls output 1" CV="35" mask="XXXXXXXV" minOut="1" minFn="1">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F1 controls output 1</label>
</variable>
<variable item="F1 controls output 2" CV="35" mask="XXXXXXVX" minOut="2" minFn="1">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F1 controls output 2</label>
</variable>
<variable item="F2 controls output 1" CV="36" mask="XXXXXXXV" minOut="1" minFn="2">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F2 controls output 1</label>
</variable>
<variable item="F2 controls output 2" CV="36" mask="XXXXXXVX" minOut="2" minFn="2">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F2 controls output 2</label>
</variable>
<variable item="F3 controls output 1" CV="37" mask="XXXXXXXV" minOut="1" minFn="3">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F3 controls output 1</label>
</variable>
<variable item="F3 controls output 2" CV="37" mask="XXXXXXVX" minOut="2" minFn="3">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F3 controls output 2</label>
</variable>
<variable item="F3 controls output LD" CV="37" mask="VXXXXXXX" minOut="2" minFn="3">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F3 controls output LD</label>
</variable>
<variable item="F4 controls output 4" CV="38" mask="XXXXXXXV" minOut="4" minFn="4">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F4 controls output 4</label>
</variable>
<variable item="F4 controls output LD" CV="38" mask="VXXXXXXX" minOut="2" minFn="4">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F4 controls output LD</label>
</variable>
<variable item="F5 controls output LD" CV="39" mask="VXXXXXXX" minOut="2" minFn="5">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F5 controls output LD</label>
</variable>
<variable item="F6 controls output LD" CV="40" mask="VXXXXXXX" minOut="2" minFn="6">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F6 controls output LD</label>
</variable>
<variable item="F7 controls output LD" CV="41" mask="XXXVXXXX" minOut="2" minFn="7" default="1">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F7 controls output LD</label>
</variable>
<variable item="F7 controls output Bk" CV="41" mask="VXXXXXXX" minOut="2" minFn="11">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F7 controls output Bk</label>
</variable>
<variable item="F8 controls output LD" CV="42" mask="XXXVXXXX" minOut="2" minFn="8">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F8 controls output LD</label>
</variable>
<variable item="F8 controls output Bk" CV="42" mask="VXXXXXXX" minOut="2" minFn="11">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F8 controls output Bk</label>
</variable>
<variable item="F9 controls output LD" CV="43" mask="XXXVXXXX" minOut="2" minFn="9">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F9 controls output LD</label>
</variable>
<variable item="F9 controls output Bk" CV="43" mask="VXXXXXXX" minOut="2" minFn="11">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F9 controls output Bk</label>
</variable>
<variable item="F10 controls output LD" CV="44" mask="XXXXVXXX" minOut="2" minFn="10">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F10 controls output LD</label>
</variable>
<variable item="F10 controls output Bk" CV="44" mask="XVXXXXXX" minOut="2" minFn="11">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F10 controls output Bk</label>
</variable>
<variable item="F11 controls output LD" CV="45" mask="XXXXVXXX" minOut="2" minFn="11">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F11 controls output LD</label>
</variable>
<variable item="F11 controls output Bk" CV="45" mask="XVXXXXXX" minOut="2" minFn="11">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F11 controls output Bk</label>
</variable>
<variable item="F12 controls output LD" CV="46" mask="XXXXVXXX" minOut="2" minFn="12">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F12 controls output LD</label>
</variable>
<variable item="F12 controls output Bk" CV="46" mask="XVXXXXXX" minOut="2" minFn="11">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>F12 controls output Bk</label>
</variable>
<!-- Lighting Configuration follows -->
<variable CV="49" mask="XXXXXXXV" item="Function F0F effect generated" default="1" tooltip="Determines the effect generated from the headlight">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>Headlight F0(f) Effect Selection</label>
</variable>
<variable CV="50" mask="XXXXXXVX" item="Function F0R effect generated" default="1" tooltip="Determines the effect generated from the backup light">
<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
<label>Backup Light F0(r) Effect Selection</label>
</variable>
<variable CV="59" mask="XXXXVVVV" item="Global lighting option 2" default="3" comment="0 is fast, 15 is slow, 4 is recommended for start" tooltip="Sets the overall flash rate of the Hyperlight effects">
<decVal max="15"/>
<label>Hyperlight Flash Rate (0-15)</label>
</variable>
<variable CV="61" mask="VVVVVVVV" item="Advanced Group 1 Option 6" default="0" comment="Additional braking when Fll activated (combined with CV4)" tooltip="When F11 is pressed, locos baseline braking rate is modified by this amount">
<decVal max="255"/>
<label>F11 Braking Rate (0-255)</label>
</variable>
<variable CV="66" item="Forward Trim" default="128" tooltip="&lt;html&gt;Allows the decoders overall throttle response in the forward direction to be adjusted up or down.&lt;br&gt; Values 1-127 will decrease motor voltage, 129-255 will increase it. A value of zero will disable.&lt;br&gt; Tip: this feature only active when speed tables are enabled.&lt;/html&gt;">
<decVal/>
<label>Forward Trim (0-255)</label>
</variable>
<xi:include href="http://jmri.org/xml/decoders/nmra/cv67speedTableBasic.xml"/>
<variable CV="95" item="Reverse Trim" default="128" tooltip="&lt;html&gt;Allows the decoders overall throttle response in the reverse direction to be adjusted up or down.&lt;br&gt; Values 1-127 will decrease motor voltage, 129-255 will increase it. A value of zero will disable.&lt;br&gt; Tip: this feature only active when speed tables are enabled.&lt;/html&gt;">
<decVal/>
<label>Reverse Trim (0-255)</label>
</variable>
<variable CV="105" item="User Id #1">
<decVal/>
<label>User Private ID #1</label>
</variable>
<variable CV="106" item="User Id #2">
<decVal/>
<label>User Private ID #2</label>
</variable>
<!-- Advanced Motor Control Features follow -->
<variable CV="209" mask="VVVVVVVV" item="Advanced Group 2 Option 1" default="25" tooltip="Specifies a gain factor for the proportional part of the PID motor control equation">
<decVal/>
<label>Motor Kp Coefficient (0-255)</label>
</variable>
<variable CV="210" mask="VVVVVVVV" item="Advanced Group 2 Option 2" default="20" tooltip="Specifies a gain factor for the integral part of the PID motor control equation">
<decVal/>
<label>Motor Ki Coefficient (0-255)</label>
</variable>
<variable CV="212" mask="VVVVVVVV" item="Advanced Group 2 Option 3" default="50" tooltip="The CV value is interpreted as n/32 that is fed back from the control loop">
<decVal/>
<label>Motor Control Intensity (0-255)</label>
</variable>
<variable CV="213" mask="VVVVVVVV" item="Advanced Group 2 Option 4" default="8" tooltip="Specifies the time period in mS (milliseconds) between measurements">
<decVal max="31"/>
<label>Motor Control Sample Period (0-31)</label>
</variable>
<variable CV="214" mask="VVVVVVVV" item="Advanced Group 2 Option 5" default="8" tooltip="Specifies a gain factor for the derivative part of the PID motor control equation">
<decVal/>
<label>Motor Control Sample Aperture Time (0-255)</label>
</variable>
<variable CV="216" mask="VVVVVVVV" item="Advanced Group 2 Option 6" default="160" tooltip="Bachmann Specific. No availlable details at this time.">
<decVal/>
<label>BEMF Reference Voltage</label>
</variable>
<variable CV="217" mask="VVVVVVVV" item="Advanced Group 2 Option 7" default="2" tooltip="Bachmann Specific. No availlable details at this time.">
<decVal/>
<label>Motor Control Register</label>
</variable>
</variables>
<resets>
<factReset label="HARD RESET all CVs reset to default values" CV="8" default="8"/>
</resets>
</decoder>
</decoder-config>