Image
Image
Image

Published in Guides

Published in Guides

Published in Guides

Image credit by Sophia Tung

Image credit by Sophia Tung

Image credit by Sophia Tung

Image
Image
Image

Sophia Tung

Sophia Tung

Sophia Tung

December 9, 2015

December 9, 2015

December 9, 2015

How To Build Your Own Wireless, Backlit, Mechanical Keyboard

How To Build Your Own Wireless, Backlit, Mechanical Keyboard

How To Build Your Own Wireless, Backlit, Mechanical Keyboard

A terrible guide that seems to be popular for some reason

A terrible guide that seems to be popular for some reason

A terrible guide that seems to be popular for some reason

Wireless, backlit, mechanical. Three words you almost never hear together in one sentence. Yet here I am, with a newly modified Magicforce Smart1 keyboard with Logitech's K800 keyboard controller, and I'm going to teach you how to build one of your very own.

It's important to know what you're about to get into. This is a very involved mod. It took me around a week and a half of constant working to get everything to work. Granted, several hours of each day was spent either planning or undoing mistakes made, but it was still a lot of very tedious work.

The other thing you should know is that you need at least some level of technical skill and knowhow. While I'm going to show you exactly how everything is done, if you're planning on doing this on another keyboard, how certain steps are done will be very different. I did my particular mod on the Magicforce Smart1 68 key keyboard, which can be got on Massdrop for around $70, Amazon for $60 Prime, or Tmall for $30 shipped to the US. I went the Tmall route, but it was on sale at the time and was too good a deal not to pass up. Your mileage may vary.

Now to get started, you need the following supplies:

  1. Lots of time (and I do mean lots)

  2. Soldering iron and lots of solder

  3. Desoldering tape or desoldering pump

  4. Assortment of fine tools like tiny and medium sized screwdrivers

  5. Thin wire. I used wire wrapping wire 30AWG. Multiple colors will also make your life a lot easier!

  6. Mechanical keyboard you're going to perform the mod on (will not work on rubber domes)

  7. Donor Logitech K800 (Technically any other keyboard will work but you won't be able to use the mappings I'm providing)

  8. This key mapping spreadsheet I made

  9. This reversed keyboard image for a better time working on the back of the keyboard

  10. Aqua's Key Tester to keep yourself sane. Remember to constantly test after every step!

Also suggested but not required, somebody willing to help you and keep you honest. Makes things a lot easier.

Well let's get started!

Desolder Existing Switches

The first step you need to complete is desoldering the existing switches from your current keyboard. You also need to desolder any LEDs if you have any on your current keyboard. If you're using a desoldering pump, melt the solder with your iron first and immediately suck it up with the pump. If you're using the desoldering tape then it will stick onto the tape.

Plan Out Your Mod

The second thing you need to do with your now desoldered keyboard is to plan out your mod. Make sure everything will actually fit inside before you do it, otherwise you're going to commit to a lot of man hours and end up with nothing. You might need to cut some pieces of your case off to fit everything inside. A rotary tool (such as a Dremel) with a flexible neck will be your best friend for these situations.

Preparing your case

You'll probably want to go ahead and cut out any sort of support structure from inside the case to make as much room as possible for all the extra wires you're going to be putting inside. Of course, this means that you'll not be able to throw your keyboard around if you're used to doing that, but you shouldn't be doing that anyways and shame on you if you do.

Taking apart Logitech's K800

Now that you have the prep work done, obtain a K800 somewhere. They can be had on Amazon for around $60. They're sort of tricky to take apart if you don't know what you're doing, and don't expect to be able to swap the controller back into the original keyboard after you've done this mod.

First, you need to remove the black back plate. It's held in by clips all around, in a row near the center, and double sided tape. bend the keyboard just a little around the edges and try and get your finger underneath the cover. Once you get a finger in there, pry upwards while bending the edge of the rest of the case. The idea is to try and not break the clips as you pull them off, but you'll probably end up breaking them anyways just like I did.

At this point, you should be able to remove the battery cover and the batteries. Then unscrew all the screws that you see on the back underneath the black back cover. This should enable removal of the front bezel cover. You also need to bend the sides of the case slightly as the front cover is also held in by clips. You should now have something like this.

Next, you need to remove the 6 screws holding the keyboard, membrane, and backlight. No need to remove the screws on the black plastic sides, they're just to hold the clear bezel in. Once you remove the screws holding the keyboard in, you should be able to pull it out by holding top and bottom of the center and pulling gently outwards. Be careful as you will find the ribbon cable for the membrane still attached to the underside of the controller. There's also a metal plate held in by double sided tape that you need to unstick from the bottom.

Go ahead and gently dislocate the controller. Be careful not to pull too hard or you might pull the battery connections off or break the proximity sensor and LED connectors. You'll definitely need those later.

From the underside of the remaining case, use a flat head screwdriver and pop the battery connections out of the plastic holder. The two additional black leads are temperature sensors; you can safely disconnect and discard them if you wish.

Take out the proximity sensor from the bottom and the controller from the top. Then pry up the plastic bit on the ribbon cable connector and remove the membrane. All you'll need from now on is the controller. If you're easily confused, you should label which connection goes to which connector.

Working With The Controller

Now we get to the hard part. In order to effectively wire the controller for use with mechanical keys, we need to "break out" each pin on the ribbon cable connector. There are a total of 27 pins. Counting from left to right, the first two are duds. The next two are the caps lock LED + and -, and the rest are actual keyboard pins. I've already identified which pins pin out to which for you and noted them down in the excel document linked above so you don't have to do any of that yourself. If you want to know how that's done, though, I'll explain. Basically, you take a length of wire and short each pin to another while watching which character lights up in Aqua's key tester and noting them down. Ideally, you'd completely light up the key tester and have drawn out a matrix of keys. If you're missing a key, then you need to re-check your matrix for "holes" where you may have skipped a pin and retest it.

Next, you need to somehow extend those pins on the connector so they're easily solderable. What I suggest doing is to first cut enough lengths of wire, strip the ends, and loop one end. Something like this.

Note that the parts that are touching are soldered for extra strength. If you don't solder them when you try and pull the wire tight it will just slip out. You'll want around 15 of these, depending on how likely you think you're going to mess up.

Now, pop the black tab on the connector completely off. Use straight lengths of wire and stick it onto the exposed part of the pin near the base of the back of the connector. You'll want to do this for every other pin. Make sure to apply a small amount of solder at every contact point. The best way to do this is to stick the soldering iron's tip between the two contact pins and apply the tiniest bit of solder. It's the best way I've been able to determine of extending the pins effectively. Hot glue these straight out from the contact point onto the PCB. Then, go back and, using your looped wires, thread every other pin that has not already been soldered through the loops in the wires, and pull tight over the top of the connector. Hot glue these alternating between the soldered wires. The end result should look something similar to this.

This method effectively isolates each wire so that they don't contact. I tried many methods of doing the isolation, but none have worked as effectively as this. Here are some examples of failed methods. Learn from my mistakes and DO NOT do these.

Working With Switches & Matrices

Now that you've wired the controller for a better connecting experience, it's time to start wiring your keyboard matrix!

This is the most tedious part of the entire process and will take you the longest. You will need to wire the switches themselves to each other, and the LEDs to each other.

Looking at my chart, you'll see that it's split into rows and columns. Looking at your switches, you'll see that they have two pins. First, you'll want to wire the right pins together, then the left pins. Start with the first column and wire all the switches in the first column together. Then, go to the second column and wire those together. Then third, and so on. Once you're done wiring the columns, do the rows. Make sure to organize your wires properly. I suggest running them along the trenches between the switches and hot gluing corners and turning points. For your convenience, I've written out the order in which I think it's best to wire the switches. The actual order you wire them in doesn't matter. As long as they're on the same line, you're OK.

Halfway done...

Once you get done wiring your switches, It's time to connect your controller! Since one line on the switch matrix runs all over the board, I suggest picking a section where all your wires should come out. It makes deciding controller placement and later assembly much easier.

Go through each row and column in the controller spreadsheet and solder a long wire onto each line in the section you chose. Then, solder the other end of each long wire onto the wires on the controller. Remember to glue down the beginning of each long-wire-to-switch-line point to make it more durable and less likely to break.

Remember to constantly test each line to make sure you didn't make any mistakes earlier!

After you do the switches, you'll need to do the LEDs. You should wire them in parallel to get them all the same brightness. Keep in mind that some LEDs will have lower resistance than others, and that those LEDs should be in a series at the very end of your parallel LED circuit. Otherwise only those LEDs will light up and the rest of them won't!

Other Things

Now that you've completed the most tedious part of this entire endeavor, It's time to consider other things, such as how you're gonna charge the thing when the controller's inside the case. Since this particular Magicforce has a Mini USB (not Micro!) on the bottom, I decided to use an OTG Micro USB cable to extend the port on the controller outside.

I cut the extender in half, stripped the four wires inside, resoldered them through the case, and here's the result.

Next, for better organization, I decided to tape the bunch of cables running to the controller into a tight bundle.

I also highly recommend you wrap the controller itself in paper and tape over it, as the metal pins can (and probably will) short some part of the controller, breaking it. This is from experience. Please wrap your controller. Please.

Working With The Proximity Sensor

Now for the proximity sensor.

This is a pretty interesting piece of technology, and honestly pretty clever on Logitech's part. The proximity sensor is basically just a circuit with a charge flowing through it. When something approaches, such as a steel disk or a hand, the impedance changes. When the impedance passes a certain threshold, the controller will know to turn on/off the backlight. There's also an ambient light sensor on the controller working in conjunction with the proximity sensor, so that even if you get close to the keyboard, if the area the controller is in is bright, the backlight will only flicker briefly very faintly. This won't really matter to us as the controller will be inside the case where it's always dark.

The great thing about how this particular Logitech (Santiago) proximity sensor is designed is that it doesn't matter how long it is. This means if the huge bar won't fit in your case, just cut it down to size. The not so great thing about this sensor is that the impedance threshold is rather low, which means that even the tiny charge in the wires we just wired will trigger the sensor and keep the backlight on forever, wasting the battery. While this might not be of particular concern to some people who might just want the wireless feature for a couple hours at a time, it is of concern to me as I want the wireless features all the time. This meant that I had to end up taking the proximity sensor out. A shame, to be sure, but even without the proximity sensor, the backlight activates as soon as I start typing, and how long it stays on can be controlled via Logitech's SetPoint software suite.

If you're trying to do this wireless mod with something that has an extended armrest, however, you're in luck. If you cut the sensor down small enough, the threshold won't be so easily set off, and it will still work!

Now it's up to you to figure out how to cram all this into your case. I opted to tape as many things down as possible, and isolate wires with hot glue. You may choose to do something else. Whatever you do, make absolutely sure that you don't short any battery power cables or contact any of the capacitors on the controller. You will fry it and you will have to start over. This is from experience.

If all goes well, however, this will be the final result.

Done!

Wrap Up

Now that we're finished, you might notice that I didn't mention some things. What about the Fn keys? What about brightness control? Those are good questions. F key functions can be added in via the use of XOR gates in combination with the Fn key. Brightness control can also be added in via the Fn key and XOR gates, and can be made to work the same way as it did on the original keyboard. Logitech's SetPoint software also takes care of programming certain keys. It's actually pretty good at what it does. I toyed with the idea of putting three RGB LEDs wired to the power LEDs under the space bar to indicate hardware and battery status, but then decided against it as it was too much work. You can theoretically do it, and I don't think it would be too much harder to do it, I just didn't want to do it.

Speaking of LEDs, the K800's original backlighting system relied on one string of LEDs and a plate diffuser. This won't work for mechanical keyboards, so if you're wiring up all your keys with LEDs, keep in mind that they will be on the dimmer side. You can manually turn up the brightness if you decide to wire up the F keys (the keys in question are F5 and F6) which will increase the overall backlight brightness, but if you're using the capslock LED leads for the capslock LED power, that LED will grow dimmer as you turn the brightness up. It should balance out for most setups if you turn the brightness all the way up, though.

Of course, there are other limitations. I couldn't find anywhere that explicitly stated it, but I do believe this is a guaranteed 3 key rollover keyboard. Most key combinations will do around 6 key rollover, but I don't think the controller will do any more than that, so keep that in mind. Other than that, enjoy, and thanks for reading!

This post was entirely typed on the new keyboard with an average of 113wpm

2 Day Update

I've been using my new setup for the past two days, and here's what I've found:

I really like the way this keyboard is laid out. The wireless latency has been pretty good so far, almost as good as wired. Logitech's done a good job with their HID++ protocol.

I unsoldered the insert and delete keys and switched them to F5 and F6. Now I can manually control the backlight as I see fit. I also tested the proximity sensor again, but ran into the same issue as last time. There just simply wasn't enough space. Maybe I'll hook up a super simple analogue transmitter and receiver so I can have a wireless proximity sensor...

1 Month Update

Still going strong! One thing I noticed is that the caps lock light will be very bright or very dim depending on your battery level, so that's a good way to tell if you need to charge your keyboard or not.

Wireless, backlit, mechanical. Three words you almost never hear together in one sentence. Yet here I am, with a newly modified Magicforce Smart1 keyboard with Logitech's K800 keyboard controller, and I'm going to teach you how to build one of your very own.

It's important to know what you're about to get into. This is a very involved mod. It took me around a week and a half of constant working to get everything to work. Granted, several hours of each day was spent either planning or undoing mistakes made, but it was still a lot of very tedious work.

The other thing you should know is that you need at least some level of technical skill and knowhow. While I'm going to show you exactly how everything is done, if you're planning on doing this on another keyboard, how certain steps are done will be very different. I did my particular mod on the Magicforce Smart1 68 key keyboard, which can be got on Massdrop for around $70, Amazon for $60 Prime, or Tmall for $30 shipped to the US. I went the Tmall route, but it was on sale at the time and was too good a deal not to pass up. Your mileage may vary.

Now to get started, you need the following supplies:

  1. Lots of time (and I do mean lots)

  2. Soldering iron and lots of solder

  3. Desoldering tape or desoldering pump

  4. Assortment of fine tools like tiny and medium sized screwdrivers

  5. Thin wire. I used wire wrapping wire 30AWG. Multiple colors will also make your life a lot easier!

  6. Mechanical keyboard you're going to perform the mod on (will not work on rubber domes)

  7. Donor Logitech K800 (Technically any other keyboard will work but you won't be able to use the mappings I'm providing)

  8. This key mapping spreadsheet I made

  9. This reversed keyboard image for a better time working on the back of the keyboard

  10. Aqua's Key Tester to keep yourself sane. Remember to constantly test after every step!

Also suggested but not required, somebody willing to help you and keep you honest. Makes things a lot easier.

Well let's get started!

Desolder Existing Switches

The first step you need to complete is desoldering the existing switches from your current keyboard. You also need to desolder any LEDs if you have any on your current keyboard. If you're using a desoldering pump, melt the solder with your iron first and immediately suck it up with the pump. If you're using the desoldering tape then it will stick onto the tape.

Plan Out Your Mod

The second thing you need to do with your now desoldered keyboard is to plan out your mod. Make sure everything will actually fit inside before you do it, otherwise you're going to commit to a lot of man hours and end up with nothing. You might need to cut some pieces of your case off to fit everything inside. A rotary tool (such as a Dremel) with a flexible neck will be your best friend for these situations.

Preparing your case

You'll probably want to go ahead and cut out any sort of support structure from inside the case to make as much room as possible for all the extra wires you're going to be putting inside. Of course, this means that you'll not be able to throw your keyboard around if you're used to doing that, but you shouldn't be doing that anyways and shame on you if you do.

Taking apart Logitech's K800

Now that you have the prep work done, obtain a K800 somewhere. They can be had on Amazon for around $60. They're sort of tricky to take apart if you don't know what you're doing, and don't expect to be able to swap the controller back into the original keyboard after you've done this mod.

First, you need to remove the black back plate. It's held in by clips all around, in a row near the center, and double sided tape. bend the keyboard just a little around the edges and try and get your finger underneath the cover. Once you get a finger in there, pry upwards while bending the edge of the rest of the case. The idea is to try and not break the clips as you pull them off, but you'll probably end up breaking them anyways just like I did.

At this point, you should be able to remove the battery cover and the batteries. Then unscrew all the screws that you see on the back underneath the black back cover. This should enable removal of the front bezel cover. You also need to bend the sides of the case slightly as the front cover is also held in by clips. You should now have something like this.

Next, you need to remove the 6 screws holding the keyboard, membrane, and backlight. No need to remove the screws on the black plastic sides, they're just to hold the clear bezel in. Once you remove the screws holding the keyboard in, you should be able to pull it out by holding top and bottom of the center and pulling gently outwards. Be careful as you will find the ribbon cable for the membrane still attached to the underside of the controller. There's also a metal plate held in by double sided tape that you need to unstick from the bottom.

Go ahead and gently dislocate the controller. Be careful not to pull too hard or you might pull the battery connections off or break the proximity sensor and LED connectors. You'll definitely need those later.

From the underside of the remaining case, use a flat head screwdriver and pop the battery connections out of the plastic holder. The two additional black leads are temperature sensors; you can safely disconnect and discard them if you wish.

Take out the proximity sensor from the bottom and the controller from the top. Then pry up the plastic bit on the ribbon cable connector and remove the membrane. All you'll need from now on is the controller. If you're easily confused, you should label which connection goes to which connector.

Working With The Controller

Now we get to the hard part. In order to effectively wire the controller for use with mechanical keys, we need to "break out" each pin on the ribbon cable connector. There are a total of 27 pins. Counting from left to right, the first two are duds. The next two are the caps lock LED + and -, and the rest are actual keyboard pins. I've already identified which pins pin out to which for you and noted them down in the excel document linked above so you don't have to do any of that yourself. If you want to know how that's done, though, I'll explain. Basically, you take a length of wire and short each pin to another while watching which character lights up in Aqua's key tester and noting them down. Ideally, you'd completely light up the key tester and have drawn out a matrix of keys. If you're missing a key, then you need to re-check your matrix for "holes" where you may have skipped a pin and retest it.

Next, you need to somehow extend those pins on the connector so they're easily solderable. What I suggest doing is to first cut enough lengths of wire, strip the ends, and loop one end. Something like this.

Note that the parts that are touching are soldered for extra strength. If you don't solder them when you try and pull the wire tight it will just slip out. You'll want around 15 of these, depending on how likely you think you're going to mess up.

Now, pop the black tab on the connector completely off. Use straight lengths of wire and stick it onto the exposed part of the pin near the base of the back of the connector. You'll want to do this for every other pin. Make sure to apply a small amount of solder at every contact point. The best way to do this is to stick the soldering iron's tip between the two contact pins and apply the tiniest bit of solder. It's the best way I've been able to determine of extending the pins effectively. Hot glue these straight out from the contact point onto the PCB. Then, go back and, using your looped wires, thread every other pin that has not already been soldered through the loops in the wires, and pull tight over the top of the connector. Hot glue these alternating between the soldered wires. The end result should look something similar to this.

This method effectively isolates each wire so that they don't contact. I tried many methods of doing the isolation, but none have worked as effectively as this. Here are some examples of failed methods. Learn from my mistakes and DO NOT do these.

Working With Switches & Matrices

Now that you've wired the controller for a better connecting experience, it's time to start wiring your keyboard matrix!

This is the most tedious part of the entire process and will take you the longest. You will need to wire the switches themselves to each other, and the LEDs to each other.

Looking at my chart, you'll see that it's split into rows and columns. Looking at your switches, you'll see that they have two pins. First, you'll want to wire the right pins together, then the left pins. Start with the first column and wire all the switches in the first column together. Then, go to the second column and wire those together. Then third, and so on. Once you're done wiring the columns, do the rows. Make sure to organize your wires properly. I suggest running them along the trenches between the switches and hot gluing corners and turning points. For your convenience, I've written out the order in which I think it's best to wire the switches. The actual order you wire them in doesn't matter. As long as they're on the same line, you're OK.

Halfway done...

Once you get done wiring your switches, It's time to connect your controller! Since one line on the switch matrix runs all over the board, I suggest picking a section where all your wires should come out. It makes deciding controller placement and later assembly much easier.

Go through each row and column in the controller spreadsheet and solder a long wire onto each line in the section you chose. Then, solder the other end of each long wire onto the wires on the controller. Remember to glue down the beginning of each long-wire-to-switch-line point to make it more durable and less likely to break.

Remember to constantly test each line to make sure you didn't make any mistakes earlier!

After you do the switches, you'll need to do the LEDs. You should wire them in parallel to get them all the same brightness. Keep in mind that some LEDs will have lower resistance than others, and that those LEDs should be in a series at the very end of your parallel LED circuit. Otherwise only those LEDs will light up and the rest of them won't!

Other Things

Now that you've completed the most tedious part of this entire endeavor, It's time to consider other things, such as how you're gonna charge the thing when the controller's inside the case. Since this particular Magicforce has a Mini USB (not Micro!) on the bottom, I decided to use an OTG Micro USB cable to extend the port on the controller outside.

I cut the extender in half, stripped the four wires inside, resoldered them through the case, and here's the result.

Next, for better organization, I decided to tape the bunch of cables running to the controller into a tight bundle.

I also highly recommend you wrap the controller itself in paper and tape over it, as the metal pins can (and probably will) short some part of the controller, breaking it. This is from experience. Please wrap your controller. Please.

Working With The Proximity Sensor

Now for the proximity sensor.

This is a pretty interesting piece of technology, and honestly pretty clever on Logitech's part. The proximity sensor is basically just a circuit with a charge flowing through it. When something approaches, such as a steel disk or a hand, the impedance changes. When the impedance passes a certain threshold, the controller will know to turn on/off the backlight. There's also an ambient light sensor on the controller working in conjunction with the proximity sensor, so that even if you get close to the keyboard, if the area the controller is in is bright, the backlight will only flicker briefly very faintly. This won't really matter to us as the controller will be inside the case where it's always dark.

The great thing about how this particular Logitech (Santiago) proximity sensor is designed is that it doesn't matter how long it is. This means if the huge bar won't fit in your case, just cut it down to size. The not so great thing about this sensor is that the impedance threshold is rather low, which means that even the tiny charge in the wires we just wired will trigger the sensor and keep the backlight on forever, wasting the battery. While this might not be of particular concern to some people who might just want the wireless feature for a couple hours at a time, it is of concern to me as I want the wireless features all the time. This meant that I had to end up taking the proximity sensor out. A shame, to be sure, but even without the proximity sensor, the backlight activates as soon as I start typing, and how long it stays on can be controlled via Logitech's SetPoint software suite.

If you're trying to do this wireless mod with something that has an extended armrest, however, you're in luck. If you cut the sensor down small enough, the threshold won't be so easily set off, and it will still work!

Now it's up to you to figure out how to cram all this into your case. I opted to tape as many things down as possible, and isolate wires with hot glue. You may choose to do something else. Whatever you do, make absolutely sure that you don't short any battery power cables or contact any of the capacitors on the controller. You will fry it and you will have to start over. This is from experience.

If all goes well, however, this will be the final result.

Done!

Wrap Up

Now that we're finished, you might notice that I didn't mention some things. What about the Fn keys? What about brightness control? Those are good questions. F key functions can be added in via the use of XOR gates in combination with the Fn key. Brightness control can also be added in via the Fn key and XOR gates, and can be made to work the same way as it did on the original keyboard. Logitech's SetPoint software also takes care of programming certain keys. It's actually pretty good at what it does. I toyed with the idea of putting three RGB LEDs wired to the power LEDs under the space bar to indicate hardware and battery status, but then decided against it as it was too much work. You can theoretically do it, and I don't think it would be too much harder to do it, I just didn't want to do it.

Speaking of LEDs, the K800's original backlighting system relied on one string of LEDs and a plate diffuser. This won't work for mechanical keyboards, so if you're wiring up all your keys with LEDs, keep in mind that they will be on the dimmer side. You can manually turn up the brightness if you decide to wire up the F keys (the keys in question are F5 and F6) which will increase the overall backlight brightness, but if you're using the capslock LED leads for the capslock LED power, that LED will grow dimmer as you turn the brightness up. It should balance out for most setups if you turn the brightness all the way up, though.

Of course, there are other limitations. I couldn't find anywhere that explicitly stated it, but I do believe this is a guaranteed 3 key rollover keyboard. Most key combinations will do around 6 key rollover, but I don't think the controller will do any more than that, so keep that in mind. Other than that, enjoy, and thanks for reading!

This post was entirely typed on the new keyboard with an average of 113wpm

2 Day Update

I've been using my new setup for the past two days, and here's what I've found:

I really like the way this keyboard is laid out. The wireless latency has been pretty good so far, almost as good as wired. Logitech's done a good job with their HID++ protocol.

I unsoldered the insert and delete keys and switched them to F5 and F6. Now I can manually control the backlight as I see fit. I also tested the proximity sensor again, but ran into the same issue as last time. There just simply wasn't enough space. Maybe I'll hook up a super simple analogue transmitter and receiver so I can have a wireless proximity sensor...

1 Month Update

Still going strong! One thing I noticed is that the caps lock light will be very bright or very dim depending on your battery level, so that's a good way to tell if you need to charge your keyboard or not.

Wireless, backlit, mechanical. Three words you almost never hear together in one sentence. Yet here I am, with a newly modified Magicforce Smart1 keyboard with Logitech's K800 keyboard controller, and I'm going to teach you how to build one of your very own.

It's important to know what you're about to get into. This is a very involved mod. It took me around a week and a half of constant working to get everything to work. Granted, several hours of each day was spent either planning or undoing mistakes made, but it was still a lot of very tedious work.

The other thing you should know is that you need at least some level of technical skill and knowhow. While I'm going to show you exactly how everything is done, if you're planning on doing this on another keyboard, how certain steps are done will be very different. I did my particular mod on the Magicforce Smart1 68 key keyboard, which can be got on Massdrop for around $70, Amazon for $60 Prime, or Tmall for $30 shipped to the US. I went the Tmall route, but it was on sale at the time and was too good a deal not to pass up. Your mileage may vary.

Now to get started, you need the following supplies:

  1. Lots of time (and I do mean lots)

  2. Soldering iron and lots of solder

  3. Desoldering tape or desoldering pump

  4. Assortment of fine tools like tiny and medium sized screwdrivers

  5. Thin wire. I used wire wrapping wire 30AWG. Multiple colors will also make your life a lot easier!

  6. Mechanical keyboard you're going to perform the mod on (will not work on rubber domes)

  7. Donor Logitech K800 (Technically any other keyboard will work but you won't be able to use the mappings I'm providing)

  8. This key mapping spreadsheet I made

  9. This reversed keyboard image for a better time working on the back of the keyboard

  10. Aqua's Key Tester to keep yourself sane. Remember to constantly test after every step!

Also suggested but not required, somebody willing to help you and keep you honest. Makes things a lot easier.

Well let's get started!

Desolder Existing Switches

The first step you need to complete is desoldering the existing switches from your current keyboard. You also need to desolder any LEDs if you have any on your current keyboard. If you're using a desoldering pump, melt the solder with your iron first and immediately suck it up with the pump. If you're using the desoldering tape then it will stick onto the tape.

Plan Out Your Mod

The second thing you need to do with your now desoldered keyboard is to plan out your mod. Make sure everything will actually fit inside before you do it, otherwise you're going to commit to a lot of man hours and end up with nothing. You might need to cut some pieces of your case off to fit everything inside. A rotary tool (such as a Dremel) with a flexible neck will be your best friend for these situations.

Preparing your case

You'll probably want to go ahead and cut out any sort of support structure from inside the case to make as much room as possible for all the extra wires you're going to be putting inside. Of course, this means that you'll not be able to throw your keyboard around if you're used to doing that, but you shouldn't be doing that anyways and shame on you if you do.

Taking apart Logitech's K800

Now that you have the prep work done, obtain a K800 somewhere. They can be had on Amazon for around $60. They're sort of tricky to take apart if you don't know what you're doing, and don't expect to be able to swap the controller back into the original keyboard after you've done this mod.

First, you need to remove the black back plate. It's held in by clips all around, in a row near the center, and double sided tape. bend the keyboard just a little around the edges and try and get your finger underneath the cover. Once you get a finger in there, pry upwards while bending the edge of the rest of the case. The idea is to try and not break the clips as you pull them off, but you'll probably end up breaking them anyways just like I did.

At this point, you should be able to remove the battery cover and the batteries. Then unscrew all the screws that you see on the back underneath the black back cover. This should enable removal of the front bezel cover. You also need to bend the sides of the case slightly as the front cover is also held in by clips. You should now have something like this.

Next, you need to remove the 6 screws holding the keyboard, membrane, and backlight. No need to remove the screws on the black plastic sides, they're just to hold the clear bezel in. Once you remove the screws holding the keyboard in, you should be able to pull it out by holding top and bottom of the center and pulling gently outwards. Be careful as you will find the ribbon cable for the membrane still attached to the underside of the controller. There's also a metal plate held in by double sided tape that you need to unstick from the bottom.

Go ahead and gently dislocate the controller. Be careful not to pull too hard or you might pull the battery connections off or break the proximity sensor and LED connectors. You'll definitely need those later.

From the underside of the remaining case, use a flat head screwdriver and pop the battery connections out of the plastic holder. The two additional black leads are temperature sensors; you can safely disconnect and discard them if you wish.

Take out the proximity sensor from the bottom and the controller from the top. Then pry up the plastic bit on the ribbon cable connector and remove the membrane. All you'll need from now on is the controller. If you're easily confused, you should label which connection goes to which connector.

Working With The Controller

Now we get to the hard part. In order to effectively wire the controller for use with mechanical keys, we need to "break out" each pin on the ribbon cable connector. There are a total of 27 pins. Counting from left to right, the first two are duds. The next two are the caps lock LED + and -, and the rest are actual keyboard pins. I've already identified which pins pin out to which for you and noted them down in the excel document linked above so you don't have to do any of that yourself. If you want to know how that's done, though, I'll explain. Basically, you take a length of wire and short each pin to another while watching which character lights up in Aqua's key tester and noting them down. Ideally, you'd completely light up the key tester and have drawn out a matrix of keys. If you're missing a key, then you need to re-check your matrix for "holes" where you may have skipped a pin and retest it.

Next, you need to somehow extend those pins on the connector so they're easily solderable. What I suggest doing is to first cut enough lengths of wire, strip the ends, and loop one end. Something like this.

Note that the parts that are touching are soldered for extra strength. If you don't solder them when you try and pull the wire tight it will just slip out. You'll want around 15 of these, depending on how likely you think you're going to mess up.

Now, pop the black tab on the connector completely off. Use straight lengths of wire and stick it onto the exposed part of the pin near the base of the back of the connector. You'll want to do this for every other pin. Make sure to apply a small amount of solder at every contact point. The best way to do this is to stick the soldering iron's tip between the two contact pins and apply the tiniest bit of solder. It's the best way I've been able to determine of extending the pins effectively. Hot glue these straight out from the contact point onto the PCB. Then, go back and, using your looped wires, thread every other pin that has not already been soldered through the loops in the wires, and pull tight over the top of the connector. Hot glue these alternating between the soldered wires. The end result should look something similar to this.

This method effectively isolates each wire so that they don't contact. I tried many methods of doing the isolation, but none have worked as effectively as this. Here are some examples of failed methods. Learn from my mistakes and DO NOT do these.

Working With Switches & Matrices

Now that you've wired the controller for a better connecting experience, it's time to start wiring your keyboard matrix!

This is the most tedious part of the entire process and will take you the longest. You will need to wire the switches themselves to each other, and the LEDs to each other.

Looking at my chart, you'll see that it's split into rows and columns. Looking at your switches, you'll see that they have two pins. First, you'll want to wire the right pins together, then the left pins. Start with the first column and wire all the switches in the first column together. Then, go to the second column and wire those together. Then third, and so on. Once you're done wiring the columns, do the rows. Make sure to organize your wires properly. I suggest running them along the trenches between the switches and hot gluing corners and turning points. For your convenience, I've written out the order in which I think it's best to wire the switches. The actual order you wire them in doesn't matter. As long as they're on the same line, you're OK.

Halfway done...

Once you get done wiring your switches, It's time to connect your controller! Since one line on the switch matrix runs all over the board, I suggest picking a section where all your wires should come out. It makes deciding controller placement and later assembly much easier.

Go through each row and column in the controller spreadsheet and solder a long wire onto each line in the section you chose. Then, solder the other end of each long wire onto the wires on the controller. Remember to glue down the beginning of each long-wire-to-switch-line point to make it more durable and less likely to break.

Remember to constantly test each line to make sure you didn't make any mistakes earlier!

After you do the switches, you'll need to do the LEDs. You should wire them in parallel to get them all the same brightness. Keep in mind that some LEDs will have lower resistance than others, and that those LEDs should be in a series at the very end of your parallel LED circuit. Otherwise only those LEDs will light up and the rest of them won't!

Other Things

Now that you've completed the most tedious part of this entire endeavor, It's time to consider other things, such as how you're gonna charge the thing when the controller's inside the case. Since this particular Magicforce has a Mini USB (not Micro!) on the bottom, I decided to use an OTG Micro USB cable to extend the port on the controller outside.

I cut the extender in half, stripped the four wires inside, resoldered them through the case, and here's the result.

Next, for better organization, I decided to tape the bunch of cables running to the controller into a tight bundle.

I also highly recommend you wrap the controller itself in paper and tape over it, as the metal pins can (and probably will) short some part of the controller, breaking it. This is from experience. Please wrap your controller. Please.

Working With The Proximity Sensor

Now for the proximity sensor.

This is a pretty interesting piece of technology, and honestly pretty clever on Logitech's part. The proximity sensor is basically just a circuit with a charge flowing through it. When something approaches, such as a steel disk or a hand, the impedance changes. When the impedance passes a certain threshold, the controller will know to turn on/off the backlight. There's also an ambient light sensor on the controller working in conjunction with the proximity sensor, so that even if you get close to the keyboard, if the area the controller is in is bright, the backlight will only flicker briefly very faintly. This won't really matter to us as the controller will be inside the case where it's always dark.

The great thing about how this particular Logitech (Santiago) proximity sensor is designed is that it doesn't matter how long it is. This means if the huge bar won't fit in your case, just cut it down to size. The not so great thing about this sensor is that the impedance threshold is rather low, which means that even the tiny charge in the wires we just wired will trigger the sensor and keep the backlight on forever, wasting the battery. While this might not be of particular concern to some people who might just want the wireless feature for a couple hours at a time, it is of concern to me as I want the wireless features all the time. This meant that I had to end up taking the proximity sensor out. A shame, to be sure, but even without the proximity sensor, the backlight activates as soon as I start typing, and how long it stays on can be controlled via Logitech's SetPoint software suite.

If you're trying to do this wireless mod with something that has an extended armrest, however, you're in luck. If you cut the sensor down small enough, the threshold won't be so easily set off, and it will still work!

Now it's up to you to figure out how to cram all this into your case. I opted to tape as many things down as possible, and isolate wires with hot glue. You may choose to do something else. Whatever you do, make absolutely sure that you don't short any battery power cables or contact any of the capacitors on the controller. You will fry it and you will have to start over. This is from experience.

If all goes well, however, this will be the final result.

Done!

Wrap Up

Now that we're finished, you might notice that I didn't mention some things. What about the Fn keys? What about brightness control? Those are good questions. F key functions can be added in via the use of XOR gates in combination with the Fn key. Brightness control can also be added in via the Fn key and XOR gates, and can be made to work the same way as it did on the original keyboard. Logitech's SetPoint software also takes care of programming certain keys. It's actually pretty good at what it does. I toyed with the idea of putting three RGB LEDs wired to the power LEDs under the space bar to indicate hardware and battery status, but then decided against it as it was too much work. You can theoretically do it, and I don't think it would be too much harder to do it, I just didn't want to do it.

Speaking of LEDs, the K800's original backlighting system relied on one string of LEDs and a plate diffuser. This won't work for mechanical keyboards, so if you're wiring up all your keys with LEDs, keep in mind that they will be on the dimmer side. You can manually turn up the brightness if you decide to wire up the F keys (the keys in question are F5 and F6) which will increase the overall backlight brightness, but if you're using the capslock LED leads for the capslock LED power, that LED will grow dimmer as you turn the brightness up. It should balance out for most setups if you turn the brightness all the way up, though.

Of course, there are other limitations. I couldn't find anywhere that explicitly stated it, but I do believe this is a guaranteed 3 key rollover keyboard. Most key combinations will do around 6 key rollover, but I don't think the controller will do any more than that, so keep that in mind. Other than that, enjoy, and thanks for reading!

This post was entirely typed on the new keyboard with an average of 113wpm

2 Day Update

I've been using my new setup for the past two days, and here's what I've found:

I really like the way this keyboard is laid out. The wireless latency has been pretty good so far, almost as good as wired. Logitech's done a good job with their HID++ protocol.

I unsoldered the insert and delete keys and switched them to F5 and F6. Now I can manually control the backlight as I see fit. I also tested the proximity sensor again, but ran into the same issue as last time. There just simply wasn't enough space. Maybe I'll hook up a super simple analogue transmitter and receiver so I can have a wireless proximity sensor...

1 Month Update

Still going strong! One thing I noticed is that the caps lock light will be very bright or very dim depending on your battery level, so that's a good way to tell if you need to charge your keyboard or not.