Some diagnostics to help explain why the forward/reverse state and speed is not tracked between instances of the Cab3 and Cab2.
I have the LCS WiFi AND the Base3 joined to my home network. I bring up two instances of the LCS WiFi Monitor program - one connected to the LCS WiFi, and the other to the Base3.
The LCS WiFi interface echoes all commands sent by the base. Here's a sequence of FWD/REV button press followed by a Roll (speed step=1) press on the Cab2.
TMCC data: F84300 - ENG 33 Forward Direction
TMCC data: F84201 - ENG 33 Absolute speed 1
TMCC data: F843F6 - ENG 33 RS trig: 0x1F6 - Brake Sounds
TMCC data: F84201 - ENG 33 Absolute speed 1
TMCC data: F84303 - ENG 33 Reverse Direction
Here's what was captured from the Base3 interface - the direction commands are NOT echoed by the Base3!
TMCC data: F84201 - ENG 33 Absolute speed 1
TMCC data: F84201 - ENG 33 Absolute speed 1
Note that any passive instances of the Cab3 will not get the direction commands needed to maintain the direction button state.
On the Cab2 (at speed step 4), a direction change generates these commands
TMCC data: F84204 - ENG 33 Absolute speed 4
...
TMCC data: F84300 - ENG 33 Forward Direction
TMCC data: F842FB - ENG 33 Stop Immediate
TMCC data: F84300 - ENG 33 Forward Direction
The Stop Immediate command is not echoed by the Base3 so the Cab3 instances will show the previous speed step 4.
The Cab1 (and Cab1L, I presume, as I don't have one available) send the TMCC1 protocol's Toggle Direction and Relative Speed commands. The Base3 does not echo these.
TMCC data: FE1081 - (S) FE1081 ENG 33 Toggle Dir
TMCC data: FE10C6 - (S) FE10C6 ENG 33 Relative speed 1
If the Cab3 is controlling a TMCC loco (roster settings), it will also transmit Relative Speed commands
Dave Olson told me that the Base3 WiFi interface filters commands that it echos for performance reasons. Observe quilling whistle session commands spewed out on the LCS WiFi interface, multiply those by multiple operators in a club setting, and you'll understand why. The Base3 echos commands that are needed for Cab3s and other software (i.e. the LCS App) to track engine speed, sensor track info, and switch state. The current Base3 command filter is too strict and the absence of forward/reverse command, stop immediate, relative speed, and (TBD) other motion-related command echos is an omission. Lionel needs to correct that.
While we wait for updates to Base3 firmware and the Cab3 App, use a single controller per engine and be patient about some features not working as expected. (This is a target-rich environment for bug hunting ... just found a new one).