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 also optional and use CVs 66 (Forward Trim), 67-94 (the actual speed curve) and 95 (Reverse 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. Here we'll look at Soundtraxx, QSI, ESU LokSound and BLI decoders and how CVs 2, 5 and 6 effect user defined speed tables.
Soundtraxx
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
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
ESU V4 and Select decoders differ from the standard (except in some early firmware versions). 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.
BLI Paragon 2 & 3
BLI Paragon decoders v3 & 4 follow the NMRA standard. If CV29 bit 4 is set to 1, CVs 2, 5 and 6 have absolutely no effect on the speed curve. However, CVs 66 & 95 (forward and reverse trim) do have an effect on both the 3-point speed curve and the speed table speed curve regardless of the value in CV29 bit 4. In other words they ignore that value.
Moral Of The Story
Know which decoder you are working with, and what effects CVs 2, 5 and 6 have on it when working with speed tables.
If you have an idea for a blog post here, let me know. If I can comment on it, I will or I'll see if someone else can and post it.