JMRI® connects to...
Supported Hardware
Devices, command stations, networks, and protocols:
By the community of
JMRI tools for working with your layout:
Layout Automation
Use JMRI to automate parts of your layout and operations:

JMRI Help:

Contents Index
Glossary FAQ

Donate to

Hardware Support: Speedometers

JMRI supports the Bachrus MTS-DCC Model train Speedometer, and the KPF-Zeller Speedometer, which are input-only devices, to capture speed information from a locomotive on a running stand.

Supported Hardware

Bachrus MTS-DCC Model train Speedometer

Third Party info

Bachrus has retired as of 2018. Information on the Bachrus Speedometer products stored on the WaybackMachine from the Bachrus website.

KPF-Zeller Speedometer

For more information on the KPF-Zeller hardware, see their web site.


When a speedometer is set as a JMRI Layout Connection Preference, the Speedo Console tool can be used to display scale running speed for any scale from Z to O and beyond.

Speedometer dial display
Left hand side of Speedo panel

When a speedometer is set as a layout connection alongside a DCC hardware system the speedo utility allows automated measurement of a DCC decoder equipped loco's speed profile.

Speedometer speed profile graph
Right hand side of Speedo panel

At the bottom of the right side is a "Speed Matching" section. This configures the Vstart (3) and Vhigh (4) CVs to match the your desired speeds at speed step 1 and 28. The Vmid CV is set to half way between these to attempt to set a straight-line speed curve.

Note that after these CVs have been set by running the matching, you should go to the DecoderPro roster entry for this decoder and do a "Read Full Sheet" of the "Basic Speed Control" pane to capture the new values.

If you are doing this on the the programming track, the process will have set the momentum CVs to zero and restored them on successful completion. This is done to avoid them interfering with the matching process. If you're programming on the main track, this step is skipped. In that case, make sure that you have set the momentum CVs to zero before starting the process, and restore them manually afterwards.