This file is being used to consolidate the command reference information. General points: - Commands below have a single character opcode and parameters. Even <JA> is actually read as <J A> - Keyword parameters are shown in upper case but may be entered in mixed case. - value parameters are decimal numeric (unless otherwise noted) - [something] indicates its optional. - Not all commands have a response, and broadcasts mean that not all responses come from the last commands that you have issued. Startup status <s> Return status like <iDCC-EX V-4.2.22 / MEGA / STANDARD_MOTOR_SHIELD G-devel-202302281422Z> also returns defined turnout list: <H id 1|0> 1=thrown Track power management. After power commands a power state is broadcast to all throttles. <1> Power on all <1 MAIN|PROG|JOIN> Power on MAIN or PROG track <1 JOIN> Power on MAIN and PROG track but send main track data on both. <0> Power off all tracks <0 MAIN|PROG> Power off main or prog track Basic manual loco control <t locoid speed direction> Throttle loco. speed in JMRI-form (-1=ESTOP, 0=STOP, 1..126 = DCC speeds 2..127) direction 1=forward, 0=reverse For response see broadcast <l> <F locoid function 1|0> Set loco function 1=ON, 0-OFF For response see broadcast <l> <!> emergency stop all locos <T id 0|1|T|C> Control turnout id, 0=C=Closed, 1=T=Thrown response broadcast <H id 0|1> DCC accessory control <a address subaddress activate [onoff]> <a linearaddress activate> Turnout definition Note: Turnouts are best defined in myAutomation.h where a turnout description can also be provided ( refer to EXRAIL documentation) or by using these commands in a mySetup.h file. <T id SERVO vpin thrown closed profile> <T id VPIN vpin> <T id DCC addr subaddr> <T id DCC linearaddr> Valid commands respond with <O> Direct pin manipulation (replaces <Z commands, no predefinition required) <z vpin> Set pin HIGH <z -vpin> Set pin LOW <z vpin value> Set pin analog value <z vpin value profile> Set pin analog with profile <z vpin value profile duration> set pin analog with profile and value Sensors (Used by JMRI, not required by EXRAIL) <S id vpin pullup> define a sensor to be monitored. Responses <Q id> and <q id> as sensor changes Decoder programming - main track <w cab cv value> POM write value to cv on loco <b cab cv bit value> POM write bit to cv on loco Decoder Programming - prog track <W cabid> Clear consist and write new cab id (includes long/short settings) Responds <W cabid> or <W -1> for error <W cv value> Write value to cv <V cv predictedValue> Read cv value, much faster if prediction is correct. <V cv bit predictedValue> Read CV bit <R> Read drive-away loco id. (May be a consist id) <D ACK ON|OFF> <D ACK LIMIT|MIN|MAX|RETRY value> <D PROGBOOST> Advanced DCC control <M packet.... > <P packet ...> <f map1 map2 [map3]> <#> <-> <- cabid> <D CABS> <D SPEED28> <D SPEED128> EEPROM commands These commands exist for backwards JMRI compatibility. You are strongly discouraged from maintaining your configuration settings in EEPROM. <E> <e> <D EEPROM> <T> <T id> <S> <S id> <Z> <Z id> Diagnostic commands <D CMD ON|OFF> <D WIFI ON|OFF> <D ETHERNET ON|OFF> <D WIT ON|OFF> <D LCN ON|OFF> <D EXRAIL ON|OFF> <D RESET> <D SERVO|ANOUT vpin position [profile]> <D ANIN vpin> <D HAL SHOW> <D HAL RESET> <+ cmd> <+> <Q> User defined filter commands <U ....> <u ....> Track Management <=> <= track DCC|PROG|OFF> <= track DC|DCX cabid> <JG> <JI> Turntable interface <D TT vpin steps [activity]> Fast clock interface <JC> <JC mins rate> Advanced Throttle access to features <t cab> <JA> <JA id> <JR> <JR id> <JT> <JT id> ******************* EXRAIL Commands ******************* </> </PAUSE> </RESUME> </START cab sequence> </START sequence> </KILL taskid> </KILL ALL> </RESERVE|FREE blockid> </LATCH|UNLATCH latchid> </RED|AMBER|GREEN signalid> Obsolete commands/formats <c> <t ignored cab speed direction> <T id vpin thrown closed> <T id addr subaddr> <B cv bit value obsolete obsolete> <R cv obsolete obsolete> <W cv value obsolete obsolete> <R cv> V command is much faster if prediction is correct. <B cv bit value> V command is much faster if prediction is correct. <Z id vpin active> (use <z) Define an output pin that JMRI can set by id <Z id activate> (use <z) Activate an output pin by id Broadcast responses Note: broadcasts are sent to all throttles when appropriate (usually because something has changed) <p0> <p1> <p1 MAIN|PROG|JOIN> <l cab slot dccspeed functionmap> <H id 1|0> <jC mmmm speed> Diagnostic responses These are not meant to be software readable. They contain diagnostic information for programmers to identify issues. <X> <* ... *>