@Atani and anyone else who may remember. Looking through the JMRI source code, we found that JMRI sends the <s> status command every 30 seconds. But it doesn't do this for a direct USB connection. Why? My guess is that it has something to do with picking up turnout and sensor changes, but I don't know that. Maybe a heartbeat of some kind or to account for a dropped connection?