Here are some best practices for naming conventions in JMRI when working with LCC: General Principles Use a consistent hierarchical structure that reflects your layout’s physical or logical organization. A common pattern is: ∙ Location/Area → Device Type → Specific Device → State/Action Keep names readable but concise — you’ll be looking at these in tables and dropdowns frequently. Suggested Naming Conventions Signals: ∙ Format: Sig.Location.Direction or Sig.Block.Head ∙ Examples: Sig.Yard.East, Sig.MainWest.A, Sig.CP42.N1 Turnouts: ∙ Format: TO.Location.Number or use prototype designations ∙ Examples: TO.Yard.1, TO.MainEast.12, SW.CP42.1 Block Detectors: ∙ Format: BD.Location.Track or Det.Subdivision.MP ∙ Examples: BD.Yard.Track3, BD.Main.East1, Det.Valley.MP42 Buttons/Fascia Controls: ∙ Format: Btn.Location.Function ∙ Examples: Btn.Yard.RouteA, Btn.CP42.CallOn, Btn.Main.EmergStop LCC Event Naming For the event descriptions (the human-readable part in JMRI’s LCC tools): Use verb-noun pairs for clarity: ∙ TO.Yard.1 Thrown / TO.Yard.1 Closed ∙ BD.Main.East1 Occupied / BD.Main.East1 Clear ∙ Sig.CP42.N1 Stop / Sig.CP42.N1 Clear Group related events with consistent prefixes so they sort together in lists. Practical Tips 1. Document your scheme before you start — create a reference sheet with your abbreviations and structure. 2. Use leading zeros if you have numbered items (e.g., TO.Yard.01 through TO.Yard.12) so they sort correctly. 3. Consider future expansion — leave room in your numbering scheme for additional devices. 4. Match prototype terminology if you’re modeling a specific railroad, which helps with realism and can make operations more intuitive. 5. Use JMRI’s user names consistently — the system name is assigned by JMRI/LCC, but the user name is where your naming convention lives. 6. Keep a spreadsheet or database mapping physical node IDs, event IDs, JMRI system names, and your user names — invaluable for troubleshooting.