Search The Inn

Thursday, March 12, 2020

Important Information Concerning JMRI And Reading Decoders, Particularly ESU LokSound

Thanks to Dave Heap of Australia for the following:

When using JMRI always select New Loco->Read Type from Decoder to identify an ESU decoder. All modern ESU loco decoders will identify uniquely. Making a guess at the decoder model is a recipe for problems.

Reading the full decoder is essential, particularly with ESU decoders where there are no "standard defaults". Each sound project has its own "factory defaults". All ESU sound decoders are manufactured effectively blank. When a Sound project is loaded to the decoder (using LokProgrammer software) part of the procedure is to write a new set of "factory defaults".

Because of a known (but as yet unresolved) deadlock condition with certain decoder settings variables in JMRI code:
  1. Use "Read Full Sheet" on the CVs pane instead of "Read All Sheets". It is less likely to cause errors when reading a decoder with lots of CVs. Once finished, some may be missed (displayed in red). Use "Read Changes on Sheet" as many times as needed until no red items remain. (Hint: Click on the Status column in the CVs pane until you see a down arrow. All the Red items will then be at the top.)
  2. After you make changes on a programming sheet, don't use Write/Read changes on that programming sheet. Instead, switch to the CVs pane and use Write/Read changes on (the CVs) sheet. The result is the same but it will never trigger the race condition.
You'll also see a number of messages in the JMRI System Log like this:
"ERROR - Variable=xxxxxx; Busy goes false with state IDLE"

Ignore these as they don't indicate a real error, this will be fixed in a later JMRI release.


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.

No comments:

Post a Comment