# Speed Curve Decoder Variations

The NMRA has defined two independent ways to implement speed curves in a decoder. A problem has developed over time where some DCC manufactures have chosen to deviate from the NMRA standard and implement what they feel is a better way to do speed curves. The consequence is that these changes have created interdependencies between the two methods.

Basically decoders have two ways of setting speed curves.

1) The Simple method use 3 CV called Start (CV2), Vhigh (CV5) and Vmid(CV6). These 3 CV are designed to cover the entire speed step mode regardless of the mode you are using. They also cover the speed range from slowest possible speed to the maximum possible speed. In other words, these 3 CVs define a virtual speed curve with the decoder. The decoder itself then calculates though straight line interpolation the missing values in between these 3 points to build up a physical speed table compatible with any given speed step mode you are using. It interpolates up to 128 speed steps or down to 14 speed steps or any other speed step range. The resulting curve is actually a crude two line element curve.

2) The more advanced 28 speed table offer more precise speed curve shape and control. It uses 28 CVs instead of 3. Just like the 3 CV table, the decoder again calculated using a straight line interpolation the missing values in between these 28 points to builds up a physical speed table necessary to be compatible with any given speed step mode you are using. It interpolates up to 128 speed steps or down to 14 speed steps or any other speed step range. The resulting curve is very smooth 27 line element curve. In addition to the 28 CV's, there are 2 additional CV's, CV66 and CV95, that adjust the scale of the speed curve for going forward and reverse respectively and independently. These are called "Trim" CV's that allow speed matching in both directions since sometimes the given engine does not go the exact same speed in both directions. CV66 and CV95 do not change the curve itself. Which you use depends on which direction is the fastest. You slow the faster side down.

The decoders configuration CV, CV29, sets which of the two methods is active. If the Bit 4 = 0, then the 3CV method is active. If Bit 4=1, then the 28CV method is active.

What can be said is that if one has chosen to use JMRI Decoder Pro to set the decoder's speed curve, these unique manufacturing introduced complex interdependencies are all accounted for you so you can set the speed table correctly every time.

For those that want to do it manually, Dave Heap has compiled a list of how the following brands of decoder's implement their version of speed tables.

From Dave Heap on 11/11/16 Loksound Yahoo List:

There are some "gotchas" with programming speed curves in various decoders:

- The **NMRA S9.2.2** specifies that all decoders must provide CV2 (Vstart). The provision of CV6 (Vmid) and CV5 (Vhigh) is optional. These three CVs are to be active only when Bit 4 of CV29 is 0. Speed tables are optional and use CVs 66 (Fwd Trim) 67-94 (the actual speed curve) and 95 (Rev Trim). These thirty CVs are to be active only when Bit 4 of CV29 is 1. The disadvantage of this speed table specification is that any tweaking of starting or maximum speeds requires reshaping of the entire speed curve.

- **SoundTraxx Tsunami** **decoders** differ from the standard. When the speed table is active (Bit 4 of CV29 is 1), the value in CV2 is not ignored but is effectively (in the decoder) added to CVs 67-94 in the speed table, pushing it upwards. The advantage of this variation from the NMRA standard is that you can tweak the starting speed without reshaping the whole curve, but the disadvantage is that you can effectively flatten the top end of the speed table it the maximum speed was already high.

- **QSI decoders** differ from the standard. When the speed table is active (Bit 4 of CV29 is 1), the values in CVs 2 and 5 are not ignored. If either of CVs 2 or 5 are non-zero, these become the actual Vstart and/or Vhigh and the effective values in CVs 67-94 are compressed or expanded (scaled) in the decoder so the actual curve starts and/or ends on any non-zero value in Vstart and/or Vhigh. The advantage of this variation from the NMRA standard is that you can tweak both starting and maximum speeds without reshaping the whole curve, but the disadvantage is that if your speed table already covered a restricted range, the curve will be expanded, with possible integer multiplication errors producing glitches in the speed table.

- **ESU V4 and Select decoders** differ from the standard. When the speed table is active (Bit 4 of CV29 is 1), the values in CVs 2 and 5 are not ignored, but ALWAYS specify the actual Vstart and Vhigh of the loco. In addition the value of CV67 is fixed (read only) at 1 and the value of CV94 is fixed (read only) at 255. You therefore need to fit your speed table curve shape between these fixed end points. The effective values in CVs 67-94 are compressed (in the decoder) so the actual curve always starts and ends on the values in Vstart and Vhigh. The advantage of this variation from the NMRA standard is that you can tweak both starting and maximum speeds without reshaping the whole curve and without the possible multiplicative errors in the QSI approach. The LokProgrammer and JMRI DecoderPro software both enforce the restrictions on CVs 67 and 94 so you know what your speed table will actually look like. Also, the minimum value for CV2 is 1, so you cannot set the loco to be stationary at step 1.

The important thing to make very clear is that ALL FOUR DIFFERENT APPROACHES ALLOW FULL CONTROL OF SETTING THE ENTIRE SPEED RANGE OF THE LOCO. There is no limitation on setting of starting or maximum speed. But you MUST be aware of the different ways of setting up different decoders. The other important point is that THIS DOES NOT PREVENT SPEED MATCHING of different brands, you just have to be aware of the different ways of setting up each brand.

The best way of avoiding problems is with any brand or mix thereof is to match speed steps in this order 1, 28, 14, 7, 21,... This will avoid any problems with any brand.