类型: GB
作者: bpiphany
发布时间: 2012-08-28
05:25:09
更新时间: 2013-07-02 02:53:05
原链接:
https://geekhack.org/index.php?topic=35065.0
Image courtesy of fruktstund (at least I hope that is
ok..)
Wiki page with instructions
http://deskthority.net/wiki/HID_Liberation_Device_-_Instructions
Solder yourself instruction
http://deskthority.net/wiki/HID_Liberation_Device_-_DIY_Instructions
Please contribute there if you have information to
share =)
What is this all about?
Ever wanted your Filco tenkeyless to have a
programmable controller? Thought it sounded a bit insane to
build a Phantom only for this reason? What if you could just
simply replace the stock controller daughter board in your
keyboard with a programmable one? Why not I say.
With
this replacement daughter board you will basically have a
Teensy that plugs conveniently into your Filco tenkeyless.
There are a number of different keyboard project with code
running on the Teensy that should be easily adopted to work
with this controller.
The ATmega32u4 chip
This is the same chip as on the Teensy2.0. It is a
16MHz 8-bit AVR from Atmel.
It has 32kB of flash to
hold the bootloader, firmware code and key matrix
information. The flash memory is read only during normal
operation, so it can only be altered when loading code onto
it through the bootloader. Both the stock bootloader from
Atmel and the open source bootloader from LUFA take 4kB of
the flash memory. The very basic code for the Phantom with
one single layer key matrix takes almost 9kB. This leaves
more than 18kB for custom layers and macros or whatever.
There
is 2.5kB of SRAM memory, this is used to run the program and
store variables during runtime. It is like normal RAM memory
erased when the power is cut.
There is also 1kB of
EEPROM memory available, this can be used to store data when
the power is off. So any recorded macro or on the fly
remappings should be stored here.
Flashing the firmware
Almost all code for AVRs you will find is written in
c and compiled to hex files. It is these hex files
that are flashed to the chip. The flashing is done through a
program running on your computer, talking to the chip via
the bootloader. I haven’t tried this in Windows but there
are applications to do this that should be easily
maneuvered. I will look into this and make sure there are no
problems. In Linux I’ve got everything under control.
The
TeensyLoader that the Teensys use will unfortunately not be
available since that is PJRC proprietary. This is only a
slight drawback. It may be more user friendly, and their
bootloader is much smaller, but all in all this doesn’t make
a big difference.
Compatibility
I
have based this design on my “gen2” Filco tenkeyless. I
believe there are no differences compared to the “gen1”
keyboard except the higher quality PCB. Electrically
everything is the same. I cannot guarantee that it will work
for everyone though since there may be differences I don’t
know about. If your keyboard turns out to be incompatible
this would of course be handled somehow. Passing it on to
someone else for example, or in the worst case returning it
for a refund.
The Filco main PCB that I have reverse
engineered is a “gen2” marked “CST-F87/88/89/91-MB V1.1”
2010-11-09, and the controller is marked “Tenkeyless PCBA
Rev 2.1-ESD” 2010-08-24.
There are pictures of the
stock controller in this thread
http://geekhack.org/index.php?topic=6557