This hack replaces the firmware in a Kinesis Advantage with an AVR (Teensy 2) running TMK in such a way that it's completely reversible. I'm using this hack to redefine the keyboard layout in ways that aren't possible with the stock firmware.
The Teensy 2 was used because It supports USB, there are many TMK keyboards using it (including two I'm already using -- Ergodox and my Ergo60), and I had one lying around.
Hey Warren, thanks for putting this together! I have everything in front of me to do this thing myself, but I'm having a few issues reading the diagrams. This is my first real project like this, so this might be a newbie mistake.
I'm looking at the pin layout of the AT90S8515 and the Teensy 2.0, and I'm trying to match it up with the schematic. I'm using the VCC and GND to orient myself, and using a simple example, the BUZZ on the AT90S8515 pin 32 ("top row 9th conn header socket") which should go somewhere (?) to the Teensy isn't connected if I'm looking at your picture of the connection header soldering.
I'm really not making any sense of the labels in the diagram, I can't see them reflected in either of the pin layouts. Is there maybe a mistake in the schematic, or do you maybe have another way of showing the same information in a way that might make more sense for newbies?
If I manage to get this working I have a second keyboard to do the same thing on, so after practicing on the first keyboard I can take pretty pictures and notes for the second keyboard and share them, if anybody is having the same issues as me.
Thanks for putting this up. I'm not familiar with TMK, would I be able to remap one of the "normal" keys, say a letter, to put me on a different layer, but ONLY while I'm holding the key? It sounds like the Ergodox keyboard has something like what I'm describing.
Yes, I completely bypass the USB board in the Kinesis. The incoming USB signal lines are redirected to the Teensy. This means that the USB hub ports on the underside are not connected. I guess I should add a photo of that connection.
I don't have foot pedals so I did not connect the three extra wires to the Teensy or write any of the software to read those pins, however there are spare pins available so it could be done.
OK, photo added. You can see the 7-pin connector that used to connect to the dis-used USB board shown in the background. You can see the 4 wires from the sacrificial USB cable that goes to the Teensy, and you can see the 3 extra pins on that connector that are for the three foot switches. I opted to buy a mating 7 pin connector rather than cutting it apart so that everything could be restored to stock condition if needed.
Cool -- good luck. Let me know if you need an help with anything. If you fork my project on GitHub I'd be happy to merge any changes you make. I use the dvorak layout so feel free to do whatever you want to the qwerty layout.
Well, I got it going. Everything's living on a breadboard with a ribbon cable coming out of the back of the keyboard at the moment; I'll tidy it up once I've got round to ordering a new MCU board. I found an old IDE ribbon cable and a 40 way insulation displacement connector worked well to plug into the socket.
I've made a couple of changes to your firmware, including syncing it up with the upstream TMK. Will send pull requests soon.
Thanks again. It's great having the extra options to remap the keyboard, and stuff like mousekeys useful too.
That's right, the keyboard is a a Kinesis Advantage (http://www.kinesis-ergo.com/shop/advantage-for-pc-mac/). I'm using a Teensy 2 (Atmega32u4), not a Teensy 3. The chip that was in the keyboard in the first place was an Atmel chip as well, an AT89S8253 so I was wrong to call that an AVR -- I'll change the description.
Hey Warren, thanks for putting this together! I have everything in front of me to do this thing myself, but I'm having a few issues reading the diagrams. This is my first real project like this, so this might be a newbie mistake.
I'm looking at the pin layout of the AT90S8515 and the Teensy 2.0, and I'm trying to match it up with the schematic. I'm using the VCC and GND to orient myself, and using a simple example, the BUZZ on the AT90S8515 pin 32 ("top row 9th conn header socket") which should go somewhere (?) to the Teensy isn't connected if I'm looking at your picture of the connection header soldering.
I'm really not making any sense of the labels in the diagram, I can't see them reflected in either of the pin layouts. Is there maybe a mistake in the schematic, or do you maybe have another way of showing the same information in a way that might make more sense for newbies?
If I manage to get this working I have a second keyboard to do the same thing on, so after practicing on the first keyboard I can take pretty pictures and notes for the second keyboard and share them, if anybody is having the same issues as me.
Thanks again!