Search This Blog

Tuesday, July 31, 2018

KVM - USB dongle

Projects / KVM Switch  Original post date: ???

This is a summary of several project logs that happened over a period of time, so parts of the boards might be rewired in the build process.

USB connector

Those cheap $0.50 DB-25 hood is an artifact from the 1980's that looks suitable for this hack. I bought a bunch from surplus places a long while ago. This looks to be similar to the USB2LPT project which as a part#: Kappe CG25G, Cinch 40-9725H on Digikey and possibly others. (Mine were made in Taiwan.)

The PCB is installed with solder side facing up. It lines up with the two mounting holes. I made a rectangle hole with a box cutter, nibbler and a small file.


The spacing is just right for the USB connector. I just have to prevent the connector from sliding out.


I clean up the area around the USB connector on an old motherboard. A single USB connector fits the footprint of double USB connector.


Some rough cut with a cutting wheel using a Dremel tool. Remember eyes protection!


After some cleanups, I eyeball the alignment and mark the cuts with a knife.


The "wings" on the sides fits in the cable retainer slot in opposite clam shell. Time for some elbow grease - cut, filing and finally cleanup.


Something like this would probably work. (not tested) There are manufacturing tolerances, (possibly part was designed in metric), so needs to be verified.


I put a strip of PCB material as a shim between the connector and the PCB. This helps to push the PCB a bit higher up to reach the slot on the opposite clam shell.


I was hoping the narrow piece at the top would rest on the cable exit, but I cut a bit too much on the two sides at the top. I fix this by making the shim with the right width.


The cable for the control signals will be escaping from the D shape hole which hopefully would works as a cable clamp/strain relief.

Original post date: 03/29/2017

USB Mux assembly

The PCB finally arrived. After a bit of filing down the rat bites, I solder down the Micro USB connectors. I went into a bit of problem as their alignment pins sort of melted, but aligned it by eyes.

I tinned the UQFN footprint with 0.4mm pitch. (You know it is worse than QFN when they have to add a U in front of it.)  I have done 0.4mm pitch a few times, so I am not intimidated that easily.


Here is a zoomed in picture with the part. The reversed L shaped is pin 1 which goes to the slightly wider pad.


I held it down while applying hot air to reflow the part. It actually takes less efforts than those pesky Micro USB connectors.


I use step 3 from here to test out the connectivity. tl;dr Connect the + terminal of DMM in diode test mode to Ground, and test out all the connections with the - terminal. This forward biased the protection diodes on the ground side inside the MUX, so you should see about 0.6V for all the connections.

I put away the PCB as it's time for a bit more work on the mechanical side. I have to file down one of the standoff on the other half shell as it has an interlocking bit sticking out.


I used a sharp knife and file to work on the standoffs so that the PCB can be mounted flush.


I connected the PCB to the connector with fine wires.  Try to keep the wires to the USB connector very short < 0.5" (1.27mm).  I ran into some signal quality issues.


This is how it looks.


The last couple of USB cables from the dollar store has some really thick connectors. The remaining ones on the shelf were some flimsy pink cables. :(  I found some decent flat USB cables there and bought most of them.


I didn't have the mechanical drawings, so I had to measure everything. I guess I forgot to factor in some mechanical tolerance as everything is a tight fit.

Original post date: 07/19/2017

KVM Controller

I designed a PCB for the KVM controller. It is a tiny board that I am going to fit inside the DB25 hood.

It is a small PCB that snoops the PS/2 signal from the PS/2 dongle and to look for a hotkey sequence to control the HDMI switch. It also reads the currently selected HDMI switch to select the corresponding USB Host port.

The ribbon cable is staggered into two rows to accommodate the 0.050" (1.27mm) pitch.  Regular ribbon cables are not designed for soldering, but there isn't space for proper IDC termination.  To give you a sense of the scale, the black connector (SWIM debugger) is a 3 pin 0.1" pitch connector.


The homemade press fit connector works nicely in the plated through holes.  It can be easily installed for programming/debugging and removed afterwards without using a soldering iron.


Well the lost package of PCB finally showed up today.  At least it is better late than lost for good.   Of course this has to happen.  Just like the big sales for almost all of the new parts after I bought them for my computer.

Putting it together

I connected USB Mux and the STM8 with some 30AWG wires  (stranded one from old SCSI diff cable).  I bundled the wires from the USB Mux with heat shrink tubing to help relief the stress on the wire exiting the through hole.


I stick the STM8 PCB onto the hood with a piece of doubled sided tape.  The jacket from old CAT5 patch cable acts as a strain relief for the ribbon cable.  I ordered some black cable sleeves from China, but they haven't shown up yet. The USB connector wing shaped PCB compresses against the jacket and hold it in place when the hood is assembled.


This is how everything fit together.


This is the side view:

This is how all the pieces are connected.  USB PS2 dongle (blue) is connected to the USB 2.0 hub which plugged into the USB connector.  There is a ribbon cable that connects to the modified PS/2 dongle and another one connect to the modified HDMI Mux.

There are USB signal loss for the extra connector, USB MUX, breakout wiring etc.  It works well with the USB hub shown, but might not work with others with very long cable.  The USB hub restore the signals so downstream device are not affected by the signal degradation.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.