Before you guys rush another rev of the sensor mezzanine board, you really need to get to grips with the fundamental inadequacies of the auto-bidirectional level-shifter chips as interfaces to random external electronics over random cables.
Chips like the TXB0108 or FXMA108 are intended for interfacing between two well-defined logic domains (of differing voltage swings) communicating over short distances on a PCB with traces designed for high-speed signals, properly terminated, into high DC input impedance receivers.
They are not intended for GPIOs. They have neither substantial DC output current as outputs, nor high input impedance as inputs, and a high tendency to oscillate.
The fundamental problem is that their direction-switching feature depends on the ability of a connected chip to override the level-shifter’s output sufficiently to tell the level shifter to change direction. This means that the level shifter output has a relatively weak output current (ie: easily over-ridden, and thus not adequate for driving any significant load, such as even many Grove devices. And that is the root of the LED problem on earlier revs.) So, they provide poor mezzanine outputs.
Further, because they require significant current to switch and maintain direction (up to 750uA), that means that as mezzanine inputs they are poor too.
Worse, this problem is compounded by a “special feature” on these bidir drivers: Such a low output drive current working into bus capacitance would result in slow lo-hi or hi-lo transitions. To mitigate, when transitioning, these drivers emit a brief high-current pulse in the appropriate direction. That’s fine into a controlled PCB run with termination. Into random wiring, it will create oscillations which not only bounce the signal, but those bounces cause the direction-detect to think it should reverse direction. Result: the driver has a high tendency to oscillate at some high frequency (10s of MHz).
FWIW, the FXMA108 you’re talking about replacing the TXB0108 with is no different. Sure (@jean-marc) the data sheet says IOH/IOL -/+ 50mA. However, that’s not the spec for the driver I/Os. The relevant spec is IIODH and IIODL, up to 750uA. In other words, the actual DC output drive capability is less than that. More detail in the Fairchild FXMA108 datasheet in the section “Lower Power Consumption”.
In short, mezzanine I/Os implemented with auto-bidirectional bus level shifter do not have satisfactory DC behavior, and in the role in the Sensor board, are highly likely to generate high-frequency transient or ongoing oscillations, leading to very puzzling symptoms. Instead, hardware experimenters need inputs and outputs that have zero hassle and no surprise instability, while in any particular application, experimenters almost never need bidirectionality. To actually use the existing Sensor board realistically requires the user to supply an additional layer of hardware I/O buffers external to the mezzanine, rather defeating the merit of the Sensor board in the first place.
A useful mezzanine card would break out completely separate hi-Z inputs and hi-current outputs, using unidirectional level-shifters, either to separate connector pins, or jumper-selected.
(And FWIW, I concur with recent discussions on OpenHours: Don’t need both 3.3 and 5V I/Os simultaneously, make that a jumper to control all I/Os at once). And DO need a way to connect to and program the onboard Arduino directly (not just through the low-speed connector from the DB).
I hope this prompts some discussion and redesign, because without it, the DB410c is rather stuck in a limbo of hocus pocus hearsay when it comes to end users trying to hook it up to external things in the relatively carefree way they may be accustomed to on Arduino or RPi.