We spent three days on the road this week, with Spotter riding up front in the tow vehicle and Milepost wall-mounted back in the trailer. On the bench, both were ready. On the road, the real world had a few notes for us. None of what tripped us up showed itself sitting on the workbench, which is exactly why we keep doing this.
Why we still bother loading up the rig
Bench testing is fast and cheap. You can poke at a button a hundred times in an afternoon and prove the obvious things work. What it cannot do is hand you a weak cell signal at 60 mph, a CAN bus stuffed with every module in the trailer talking at once, or a cold start in a campground after the WiFi at home is hours behind you.
Those are the conditions where bugs live. So every so often we pack up the trailer, hook to the truck, and go run the system the way an owner actually would. Three days does it. By the end of day one, we usually have a list.
What Spotter showed us
Spotter was the bigger surprise. The Drive screen looked clean on the bench. On the road, a handful of things came loose.
- Dropping the trailer link. The little screen on the dash would sometimes lose its connection to the trailer for no good reason and not come back on its own. The cause was a timeout setting in the messaging layer that was too short for real driving conditions. When you are bouncing between cell towers and the WiFi from the trailer gets briefly noisy, a strict timeout will give up too quickly and stay given up. We loosened it and added a proper reconnect.
- Blank screen on a cold start. Pull into camp, kill the truck, walk away. Come back in the morning, start the truck. Spotter would wake up, see that it had its setup saved but no trailer in range yet, and just sit there. Now it falls back to the clock face with the last numbers it saw from the trailer and a timestamp showing how old they are. When the trailer wakes up and gets in range, the dashboard takes over again on its own.
- Setup screens showing when they should not. If WiFi or the trailer was simply out of range for a moment, Spotter was bringing up the first-time setup wizard, as if you had never configured it. That is fixed. Saved setup stays saved, and a temporary out-of-range gets you the clock view instead.
- Time zone not sticking. The clock on the toolbar was right while connected, then wrong after a power cycle, because the time zone you picked was not being applied to the clock chip that runs while the network is down. It is now.
- Mock data showing through. When connectivity dropped, a few placeholder numbers from development could briefly flash on screen. Cleaned up so a lost connection now shows clean defaults and a clear "no data" state instead.
- A few visual fits and finishes. Settings list scrolls more smoothly, the hours and day label widths on the clock screen no longer jump around when the numbers change, and the WiFi-not-available icon is easier to spot at a glance.
Most of the Spotter list is resolved. A new build is rolling out via the over-the-air updater, so anyone already running Spotter does not need to touch anything to pick the fixes up.
What Milepost is still chewing on
Milepost had a quieter list, but with one stubborn bug that we are still polishing.
- Screen would not wake under heavy traffic. With every module in the trailer talking on the CAN bus at the same time, Milepost was redrawing screen widgets in the background even when the display was supposed to be asleep. That kept one of the chip's two CPUs pinned, which meant the touchscreen would not respond when you tapped it to bring the screen back. We have a fix in place that stops the background redraws while sleeping and we have shipped it, but we want another field run before we call it solved.
- A display flicker on busy screens. Related to the same area of the code. We tracked it down to a conflict in how the screen's two drawing buffers were being handed off. The latest build is much better. We still want to watch it under heavier loads than the bench can produce.
The honest answer is that Milepost is close, not done. We will be back out for another round shortly. Until then, the current build is what is on the public flasher.
The pattern
This is the third or fourth time in the last year that the bench has told us a module is ready and the road has politely disagreed. Every time, the bugs that came back were ones we could not have generated indoors. Weak signal, busy CAN bus, cold morning starts, the kinds of conditions you only get by actually using the thing the way it is meant to be used.
That is the case for continuous improvement. The system is meant to be lived with. The only way to know whether it is good enough to live with is to live with it. We will keep doing that, and we will keep writing it down here when we find something.
If you are running TrailCurrent in your own rig and you hit something we have not seen, the GitHub issues are the fastest way to put it in front of us. Field reports from outside our own driveway are the most valuable signal we get.