Sensor Orientation
Somewhere along the line a thought hit me, the only difference between the two range sensors was they were mounted 180° from each other. This was done so both connectors faced inward and kept the wiring neat. In case you're not familiar with this type of sensor, it has an IR emitter on one end and an IR receiving matrix on the other end. The right sensor has the emitter on the down side, shooting upward, while the receiver is on the upper side looking slightly downward.

Here is the orientation of the sensor on the left side of the robot.
And here is the sensor orientation on the right side, the one acting up.
Could the sensor be seeing reflections off the actual arena surface? There was just enough extra wire to allow me to rotate the right sensor such that the receiver was now on the bottom side, looking slightly up, just like the left side. A quick run and a log dump showed perfect readings, no noise or junk, or whatever was going on.
Apparently whatever the right sensor was seeing would only occur while the robot was moving, probably a reflection of overhead lights or sunlight through the windows and off the arena surface, even though the surface is flat black.
Conclusion
Rather then leave both sensors mounted vertically, I think I will make a new bracket and mount the sensors horizontally like I did with FlatSpat. In this manner the sensor won't see anything from above or below and hopefully be more reliable.
How did it work for 5 or so events without failing? A look back over my code changes shows that at some point I had changed the range threshold from 0x30 to the current 0x2C. I suspect the reflections rarely gave a reading greater then 0x30, so I never saw the problem. There was one time we had it running outdoors at a swap meet, and it did act up a lot. May have |