When diagnosing a problem, it's important not to cling too tightly to initial assumptions, based on past experiences and/or incomplete data.
Back in early June, EDN published my account of (among other things) what I believed to be early indications of a swelling battery in my Microsoft Surface Pro 5 with LTE “hybrid” PC (see “Obsolescence by design hampers computer systems”).
This was manifesting as a white “blotch” in the lower left corner of the screen:
Only a week or so after that write-up appeared on EDN, I received further—and far more disconcerting, at that—apparent confirmation of that original diagnosis. The computer began spontaneously and endlessly streaming out “z” characters on screen.
Why did I think this behavior was related to the earlier display defect, with both related to behind-the-display battery swelling in that region? When the Surface Pro is in “tablet” mode, where it uses—among other available input options, including the Surface Pen, for example—an on-screen pop-up virtual keyboard for text input, the “z” virtual “key” is in roughly the same location as the aforementioned “blotch.” My hypothesis was that the expanding battery was pressing not only on the IPS LCD matrix but also on the intermediary touchscreen circuitry; even when the virtual keyboard wasn’t on screen, the operating system was getting confused and still interpreting what it was sensing as virtual “z” key presses.
A day later, I noticed that the repeating characters had switched from “z” to “c”—still in the same general area as the aforementioned white “blotch” however, so I figured the battery swelling had either migrated or expanded to this altered region. For those of you wondering, while doing initial debugging I’d first tested whether the Surface Keyboard shown in the earlier photo was simply misbehaving, by pulling out its batteries to sever the to-Surface Pro Bluetooth connection. The stream of “z” (later “c”) characters continued unabated, thereby ruling the Surface Keyboard out as a root cause.
Further debugging revealed additional interesting behavior: If I shut down the operating system and completely turned the computer off, let it sit for a while, then restarted it, the Surface Pro would operate normally for a few dozen seconds, until the repeating characters inevitably reappeared. I hypothesized that powering off the computer allowed it (and the battery inside it) to cool, temporarily relieving the swelling of the latter enough to briefly alleviate the errant behavior. But inherent in that same delay was, I realized, the possible path to extending the system’s useful life at least a while longer.
I rarely use the system’s tablet mode, and therefore the touchscreen, and could easily dispense with the touchscreen interface completely. What if I just disabled the touchscreen drivers? The battery swelling would remain, but its effects would then be ignored by Windows 10 and the apps running on it.
So that’s what I did, as quickly as possible after a fresh system boot, while I still had full control of the user interface. And the endless stream of “c” characters still persisted. Clearly, my initial hypothesis was flawed. So what was the root cause? On a hunch, I dove into the system’s Bluetooth settings and found my answer.
I was reminded there that I have multiple keyboards for the Surface Pro. One is the earlier mentioned Surface Keyboard, which I’d already eliminated as the problem. Another is a Type Cover, which connects to (and is powered by) the system via a dedicated physical connector, and therefore can’t generate key presses when it’s detached.
And the third? It’s a Brydge 12.3 Pro+ keyboard:
As the image shows, the Brydge Pro keyboard transforms the Surface Pro into a semblance of a conventional laptop form factor. Like the Surface Keyboard, it wirelessly tethers to the Surface Pro via Bluetooth. Mine, as it turns out, happened to be turned on (I suspect because I’d forgotten to turn it off the last time I’d used it). Sitting on top of it was a soft case, with heavy headphones inside. And the corner of the case was—as many of you have undoubtedly already guessed—pressing down on the Brydge keyboard in the vicinity of the “z” and “c” keys.
I took the case off the keyboard, and the stream of spontaneous characters immediately and perpetually ceased. Yes, I subsequently powered off the keyboard, too. And that earlier-mentioned brief period of system stability on system boot, which I’d originally chalked up to battery re-swell latency? As you’ve probably also already figured out, it ended up just being the initial delay in the Bluetooth connection between the PC and Brydge keyboard.
Although at least some of you may beg to differ after reading this account, I consider myself to be an above-average debugger, whether of hardware or software. But what this situation reminded me of is that it’s important not to cling too tightly to initial assumptions, based on past experiences and/or incomplete data. Zen Buddhists refer to the desired approach as “Beginner’s Mind,” or Shoshin, which Wikipedia defines as “having an attitude of openness, eagerness, and lack of preconceptions when studying a subject, even when studying at an advanced level, just as a beginner would.”
In the beginner’s mind there are many possibilities, in the expert’s mind there are few.
I daresay at least a few of you probably have had similar experiences to mine. Don’t be shy—sound off with your stories in the comments, folks!
This article was originally published on EDN.
Brian Dipert is Editor-in-Chief of the Embedded Vision Alliance, and a Senior Analyst at BDTI and Editor-in-Chief of InsideDSP, the company’s online newsletter.