A USB MUXer, For All Your Programming Needs

What if there were something like a KVM switch for your micro programmer, logic analyzer, and other various tools? There was a time when KVM switches (keyboard, video, and mouse, by the way) were metal enclosures surrounding an absurdly complicated rotary switch. This fact has a few applications if you ever want to switch a whole lot of stuff; if you ever need a bazillion-pole, two-way rotary switch, don’t spend your money at Mouser or Digikey, just look at eBay for some really old KVM or parallel port switches. Modern times require modern solutions, so here’s a 16-channel, bi-directional switched bus multiplexer. It connects wires to other wires with USB control, and if you need something like this, you really need something like this.

The SensorDots Port MuxR is a crowdfunding project for a project that began as a programming jig for another project. The MappyDot is a micro LIDAR unit that’s about the size of a postage stamp and has a microcontroller. Obviously, programming those microcontrollers was a pain (and don’t get me started on buying pre-programmed microcontrollers from the manufacturer), but there was a solution: a custom programming rig with dozens of pogo pins that automated the programming of an entire panel of boards. It was a useful tool, and now it’s a good idea for a Kickstarter project.

The Port MuxR takes a set of eight pins, and sends that out to one of eight ports. Alternatively, it can take a set of four pins, and send that to sixteen ports. All of this is controlled via USB, and it works with 0-5V signaling. If you know what this means, you probably have a reason to be interested in it.

Is it a sexy project? No, not at all. It’s an 8-pole, 8-throw rotary switch, controllable over USB. It is interesting, and it’s something a lot of us are going to need eventually.

Looks like they need SWD programmers, you can get those for under $15. Not sure where they are getting the $100 to $1000 each. You can pay a lot of money for a high speed JTAG interface, but then if you put it behind a big mux, it’s not offering you much of and advantage vs several much cheaper low speed interfaces.

You’re definitely right, for larger projects this is the right way to go about it. This product is more aimed at makers, enthusiasts, test engineers and small scale production (the image of multiple programmers in the campaign is from the SparkX guys for example), as it makes it easier to scale in the lower end with next to no retooling from a test and dev environment.

As for programmers, check out the pricing on a J-Link cable, they set you back a fair bit (which includes the software licencing costs as well) and at the lower end, the Atmel/Microchip debuggers can be about $100USD or more (you probably already have one if developing a product). The Port MuxR is one way around compounding these these costs without having to develop a separate programming setup.

This is by no means the best solution to the above, but it was made to be an easy, flexible tool to solve not only that sort of issue, but any other port switching requirement you might have.

Is that from the manufacturer or a disti? Arrow will program parts, as will several others. I know specifically that Arrow does, as we have used them in the past. I do not know what it cost or what the lead time was, but I know it wasn’t 32 weeks (less than 4, as I recall).

Yeah, the one I’ve used through work is Lewmax in the UK which seems to be happy with relatively small volume (100s I think rather than 10,000s) and something close to a 4-week lead time. They were waaay more convenient than Arrow who insisted we also pay for the programmer adapter because they didn’t have one and require us to bulk programme ~50k units at a time.

My method is to add a small microcontroller to the panel that implements SWD or whatever programming standard is needed. I then provide one USB connector that will flash an entire panel. Afterwards the individual modules are removed from the panel. This is of course only worth it if you make large panels containing small boards.

How do you pull this off?
1. what software are you using to make the panel?
2. How are you muxing the line between different panels
3. Doesn’t your ICT fixture take care of this for you? Is this in replacement of an ICT?
4. How do you program a micro to program the rest of the boards?

For the video I think you run into signal degradation issues at greater than SVGA resolutions but you can make it work. There can also be some issues with hot plugging PS/2 and PC keyboards, and synchronizing the keyboard controllers, so for simplicity you can use a switch like this on machines where you’ll have one on and one off at a time. If however you want hot switching then you have to cope with faking monitor presence and ID signals (Depends also on OSes, driver and vid hardware involved and how much configuring you want to do that end, or whether you wanna make it 100% plug and play) Also need to sync up keyboard uC with KBC each time and suppress surges that might blow the keyboard port power fuse.

I believe I have seen some discussion of it in older online sources, such as Tomi Engdahls e-panorama pages or one of the old usenet faqs like repairfaq or comp.sys,ibm.pc