I did see that one, yes. It’s based on the samsung/tizen board, and is much more complex than what I was shooting for, because it includes power control which we handle a different way already, and ftdi for switching (which I was trying to get away from in favor of gpio control), and for some reason it also includes a usb hub and usb switching. I’m not sure what those are used for. The primary part I’m concerned with is multiplexing the pins from the microsd. The autohat (which does not seem to actually be a hat, though that would be neat if it was) uses a 6-bit multiplexer. The ground pin is not switched, and VDD is switched using a separate circuit. The one I’m working on uses a pair of very similar 4-bit multiplexer chips to switch all 8 pins. Both use 2x4 IDC cables, but the one I’m working on adds a small breakout board for the microsd side that also uses a 2x4 pin header, so that way I don’t need a custom cable, and can just use readily available 8-pin IDC cables. (See links below for project files and pictures)
I have the latest prototype built, which now works as a RPI hat triggered off of GPIO12 to switch between host and target for the SD. I am currently testing it by inserting a known-good microSD into the hat, and connecting one of the cables/breakouts to a USB-SD converter to my laptop. It “sees” the connection, but right now it fails to see the partitions, or filesystem and usually just gives me a lot of IO errors in dmesg. As I was doing some debugging to ensure everything was properly routed (it was), I connected a sparkfun microSD switcher (link below) to both ends, and to my surprise, it works perfectly when I have it hooked up like this! The sniffer doesn’t really do anything but allow intercepting the pins though, and it works even when I have nothing connected to the sniffer pins. So I’m reasonably confident that this can work, but clearly there are a few more issues to work through. If anyone has any ideas on this, I’d love to hear from you.
Here’s the switcher I’m working on:
And the breakout board is here:
Sparkfun MicroSD Sniffer: