Various things can go wrong when JMRI tries to work with your DCC command station to program a DCC decoder. This page lists the error message that can result, and describes what they mean.
This can happen if the locomotive isn't making good electrical contact or if there's a wiring fault in the locomotive.
The command station has reported that it's busy doing something else, and can't do any programming right now. This usually means that some other part of the DCC system is doing a programming operation, e.g. a hand-held throttle.
Some DCC systems can't do ops-mode programming (programming on the main) while also using the service mode programming track, in which case they'll return this error message.
This means that JMRI has requested the command station do something that it doesn't support.
This is not supposed to happen, as JMRI should disable programming modes that the command station can't provide. If you do see this message, please report the circumstances on the JMRI users Group.
The user has requested that the read or write operation stop early.
This is considered an error, because the program doesn't know whether the decoder actually saw the operation complete or not.
Some command stations allow you to "confirm" the content of a CV, rather that read the value from it. In general, this is faster than doing a complete read. If the value in the CV doesn't match the expected value, this message is issued. It's considered an error because if the values don't match, we know that we don't know the correct value for the CV contents.
The program did not hear back from the command station when it expected to.
This is by far the most common error message when people first start using JMRI. In that case, it usually means that the connection to the command station isn't correct. This could be a problem with the cable(s) making the connection, or a problem with how the preferences are set. Picking the wrong serial port is particularly common.
Once JMRI is working properly, this error may occasionally happen due to a transient error. DecoderPro generally will retry it successfully in that case.
An error has happened, but JMRI doesn't know enough about it to be able to report more detail.
In general, JMRI is pretty good at deciphering what went wrong, and this message isn't very common. If you do see this message, please report the circumstances on the JMRI users Group.
At the end of a CV read or write operation, the locomotive replies ("acknowledges") to the command station using a pulse of current.
If that pulse isn't seen, some command stations provide this error message. It could be due to poor electrical connections to the programming track or within the locomotive. It could also be that the decoder doesn't support readback.
Some decoders, particularly certain sound decoders, draw so much current that the reply pulse isn't detected by the command station. In that case, one of the various "programming boosters" may solve the problem.
The command station has reported seeing a short circuit on the programming track. That prevents programming operations.
Check the electrical connections to the programming track, and also within the locomotive.
For some reason, the programming operation ended early and the command station returned to normal mode (left service mode) before it should have.
This error can occur when some operations are performed in JMRI during programming. Turning track power on during a programming operation on an XpressNet is one example of how to create this error.
If you haven't performed any operations during your programming sequence, this error, might indicate that you've selected the wrong command station type in JMRI Preferences. Check that. If that's set correctly and error 310 still shows up, ask for help on the JMRI users list.
The data between the PC and the Command Station was corrupted and the corruption was detected before the Command Station processed the request.
If this error occurs frequently, this error might indicate a problem with the connection between your computer and the command station or an issue with your system interface. Wireless connections are more prone to this issue than connections with physically connected cables.