This time everything worked! In front of the client, even!
And now I have a bit of slack in that project's schedule, since the guy who'll be doing the application software is currently tied up working on hardware (with wrenches and whatnot), so I get to hang onto the test platform for a while yet.
Next priority is some documentation, then some patching-up of hacks made to the hardware. Then... well, there's a fair long list of stuff I really should get done in the next three weeks. Not to mention stuff for other clients.
Oh, and two new gremlins turned up this morning. One I bypassed temporarily; the fix seems to involve adding bulk capacitance (and I sure hope I can avoid electrolytics; this thing is supposed to be reliable). The other is yet another oddity in the Linux USB stack, cured by a reboot. (The long-running oddity is a tendency to decide that, for example, an ACM device should appear as /dev/ttyACM17 instead of the more obvious /dev/ttyACM0; the one that bit today was a sudden belief that the USB port didn't have enough current available to power the same dang collection of peripherals it had been powering all week.)
For now, though: I'm tired, frazzled, and chronically overcaffeinated. Also, it's 90 degrees horribly Fahrenheit. Time to vegetate for a couple of hours, while guzzling ice water.