Soldering leads on a keyboard controller board - Page 1
Forum section: electronics / beginners

author: penczoil
author_rank: Newbie
timestamp: May 21, 2014, 07:48:48 pm
content: Hello,This is my first post. I have been viewing the EEVBlog on Youtube for about a year now. Love It! I am new to electronics but am very astute and interested. I want to solder some leads on the pictured board attached. Problem is, the solder is not taking. There appears to be some sort of coating. Does anyone have any ideas of how to clean the black coating off so I can solder the leads? Any help would be great! Thank You

author: rexxar
author_rank: Frequent Contributor
timestamp: May 22, 2014, 03:57:07 am
content: They're coated in carbon. You're not meant to solder anything to them, you're supposed to compress a flat flex circuit against the contacts to connect the FFC to the controller board.I don't know if you can remove the carbon coating without wrecking the entire pad (I've never tried), but you might be able to get away with scraping the solder mask off the traces running up to the pads and solder directly onto the trace. If you do go that route, I'd recommend using thin wire, and then hot gluing the wire down so you don't accidentally rip it and the trace off the board.Actually the traces look too fine to do that reliably.I think what I'd do is tin some relatively thick wire, 22Ga or so, then use some sort of bracket (insulated, of course!) to compress the wires against the carbon contacts.What are you doing, anyway? Building your own keyboard?

author: SeanB
author_rank: Super Contributor
timestamp: May 22, 2014, 04:46:15 am
content: I just did this recently. Take some scouring powder from the kitchen, and use a small amount on a cloth to rub the coating off leaving a shiny copper layer. Then wash it clean and tin the contacts immediately.

author: sachleen
author_rank: Contributor
timestamp: May 22, 2014, 05:25:10 am
content: I did this recently as well. I was able to scrape it off gently with an x-acto blade and I was left with the thin trace below. Careful to not cut the trace, though.

author: penczoil
author_rank: Newbie
timestamp: May 22, 2014, 02:29:24 pm
content: Thanks for the tips. I will try the clamp idea first since it is the least invasive.As for my project, necessity is the mother of invention. I have a KVM switch for my computers. I purchased a new keyboard. The KVM switch does not recognize the new keyboard so it won't allow me to use hotkeys to switch the computers. The KVM is an IOGear 4 computer switch. It does not have buttons built in to switch computers so the only option is a keyboard that reports itself as standard. Right now I have two keyboards on my desk, one for typing and the other for switching the KVM. I want my desk space back! I like the price point of the current KVM So, changing that out is not an option. Plus, I have been dying to do something useful with Arduino besides lighting up LED's in sequence.My first attempt was to use an Arduino directly connected to the KVM using the keyboard libraries. Unfortunately, the KVM does not recognize it as a standard keyboard either. So, I hit the office supply store and picked up an eight dollar keyboard to tear down and re-work.My plan is to connect the relevant contacts for the combination of keystrokes that I need to transistors. Then I will program the Arduino to activate the transistors to give the appropriate hot key sequences.If all goes well, I will have a minimal footprint KVM switch mechanism that will fit nicely next to my typing keyboard.Thanks again for the tips. And if you know of something that might help me solve this problem more efficiently, I am open to suggestions.

author: amyk
author_rank: Super Contributor
timestamp: May 22, 2014, 02:53:54 pm
content: Quote from: penczoil on May 22, 2014, 02:29:24 pmThis might sound like a stupid/obvious question, but have you tested that this keyboard works with the KVM first?My approach would be to check with a logic analyser/oscilloscope to see what exactly it is about the keyboard that the KVM doesn't like. Since you already have one that works and one that doesn't, you can compare the two traces and see what's different. That looks like a PS/2 keyboard controller and that reminded me ofthis threadwhere missing pullup resistors was causing some odd compatibility issues.

author: penczoil
author_rank: Newbie
timestamp: May 22, 2014, 03:13:27 pm
content: amyk, you are on the right path. But according to the documentation for the KVM (I paraphrase) IOGear is only licensed for standard windows keyboard and mac keyboard. The keyboard that I disassembled did affect the KVM as desired prior to disassembly.The Arduino is actually a programmable microcontroller board. It does work well sending keyboard strokes directly to the PC.The KVM looks for a couple of particular identifier codes from the USB keyboard and rejects all others.Thanks for the feedback.

author: rexxar
author_rank: Frequent Contributor
timestamp: May 23, 2014, 02:05:45 am
content: Quote from: penczoil on May 22, 2014, 02:29:24 pmThat seems a bit unnecessarily complicated. The combination is what, two, three keys? I'd just stick some buttons there instead. Plus, it frees your Arduino to do other interesting experiments with.You could use one ofthesecheapo switches, or put one ofthesenicer panel mount ones on a project box.Also, it's BS that the KVM switch doesn't accept standard HID keyboards.

author: penczoil
author_rank: Newbie
timestamp: May 23, 2014, 02:59:49 am
content: Thanks rexxar,It is a bit unnecessarily complicated and expensive compared to hooking up the necessary buttons to that keyboard controller. However, the idea of a single button push to switch computers is very attractive to me. And the most important reason: Its a fun little project.I was also thinking about adding some feedback like a 7 segment LED to indicate the currently selected computer or something like that.With that said, I wonder if I could tap into the USB cable for the keyboard controller to also power the Arduino. That might be a bit of a drain on the main computer USB though since it provides the power for all the devices in that chain (KVM, Keyboard Controller, Arduino with LEDs).I can't tell you how disappointed I was that it did not work after preparing the Arduino and doing the programming. I also thought about finding out if I could tweak the Arduino to send the code for windows or Mac keyboard that the KVM expects. But I think that is on the chip and non-changeable.I am open to more ideas.

author: rexxar
author_rank: Frequent Contributor
timestamp: May 23, 2014, 03:24:11 am
content: Quote from: penczoil on May 23, 2014, 02:59:49 amThat's why I linked in those switches, you could wire four individual "keys" on there and activate them all at the same time. But still, there's nothing wrong with making your project more complicated than it needs to be if you have fun or learn from itQuotePowering the Arduino from the USB line shouldn't be an issue. USB2.0 is rated for 500mA.I'm assuming you have a Leonardo, since you tried to use it as a keyboard. If you bypass the linear regulator, and connect directly to the 5V pin, it will draw something like 6mA idle, and 15mA running full-tilt. You're not in any danger of overloading a USB port with thatQuoteI think the problem is that the Arduino as a keyboard enumerates as a generic HID device. I guess your KVM is expecting something... else. I dunno, it's kind of bizarre.The HID library is just a hunk of code someone's wrote and released to the public. It's not implemented in hardware. You can program the Leonardo to do just about whatever you want with USB, but that's probably a bit over your head.

author: penczoil
author_rank: Newbie
timestamp: May 23, 2014, 04:18:05 am
content: rexxar wrote:QuoteMy thoughts exactly. Every time I do a little project or tutorial I feel a bit more empowered over my electronic world.rexxar wrote:QuoteI actually have the Micro, it's amazing how much computing power can be put in such a small space. Thanks for the info on USB.rexar wrote:QuoteWell, I hold a degree in computer science so I don't think it is conceptually over my head. The challenge is getting back into a lower level language since I have been doing high level database work for the past 20 years. That is why I picked up this hobby. It's the low level stuff that is really rewarding.Thanks for all the guidance rexxar!

author: amyk
author_rank: Super Contributor
timestamp: May 23, 2014, 11:53:03 am
content: It's USB? Sorry I thought it was PS/2 (which is a much simpler protocol).In any case you should be able to use it to capture the sequence of packets coming from the keyboard/KVM that you need for it to detect the keyboard and switch (using it like a logic analyser - low-speed USB is 1.5MHz, which is slow enough for that to work), then reprogram it to send out those same packets via its USB hardware. It doesn't really need to do any of the complex negotiation of a "real" USB device, just hardcode the enumeration and KVM switching packets and send them out at the right time.As for making things too complex, I agree that it's fine if you want to learn but it could also be more fun to make it as simple as possible - I'd say it's doable with a single 8-pin MCU and software USB. You could probably fit everything, including a pushbutton for switching the KVM, right on the USB plug itself. (And you'd still have 3 pins left over!)

author: penczoil
author_rank: Newbie
timestamp: May 23, 2014, 03:19:29 pm
content: Hello Amyk,Thanks for the post. So, from a user interface perspective, the KVM requires the following sequence to change computers:CTL, CTL, #, Enter.Where # is the selected computer number 1-4.From what I gather reading the KVM docs, when a usb device is plugged in, the KVM receives some sort of identifier of the device to determine if it will work or not. If the correct identifier is not present then communication is shut off. As of right now that is a black box to me. And that is fine. I am really interested to get a first pass done so I can see what features I overlooked in my design. This kvm supports switching sound independent of KVM as well. That will have to be in 1.1Ideally, I could create this to be a generic programmable keystroke generator. That way, I could program it to do other interesting things too.Thanks again for the advice. I will look into the MCU.

author: fluxcapacitor
author_rank: Frequent Contributor
timestamp: May 23, 2014, 04:38:17 pm
content: Are you using a multimedia keyboard .This is from the iogear KVM faq`s :The GCS102U and GCS104U are the only KVMs without emulation and are able to support multibutton mice and multimedia keyboards.http://iogear.custhelp.com/app/answers/detail/a_id/2420/~/iogear-kvm-faqs

author: amyk
author_rank: Super Contributor
timestamp: May 24, 2014, 03:20:54 pm
content: Yes, it's probably failing to be recognised by the KVM during USB enumeration due to something in the device descriptors that the KVM doesn't like.Quote from: penczoil on May 23, 2014, 03:19:29 pmYou're not the first to think of this:https://github.com/hak5darren/USB-Rubber-Ducky/wiki

author: penczoil
author_rank: Newbie
timestamp: May 24, 2014, 07:47:50 pm
content: amyk,Thanks for the link. That is interesting indeed. And I am going to buy one just for fun. However, I do need to have a way to trigger unique events at will from my desk chair via some kind of a button or something.

author: fluxcapacitor
author_rank: Frequent Contributor
timestamp: May 25, 2014, 02:46:42 am
content: This might help :http://forum.pjrc.com/threads/23680-%28n00b%29-Switch-ports-on-KVM

author: penczoil
author_rank: Newbie
timestamp: May 25, 2014, 06:13:17 pm
content: Great link flux! I guess I will dive into the USB code for my Arduino Micro before messing with the keyboard controller anymore. It would make a much more elegant solution. After the last comment about the code the OP didn't respond about his success.I will come back with my results.