From cdf0fda1231e4524f83f270674cf6e3c1d623df8 Mon Sep 17 00:00:00 2001 From: Ronald Schaten Date: Mon, 3 Nov 2008 20:32:11 +0000 Subject: [PATCH] updated documentation --- Changelog.txt | 7 +++++++ firmware/main.c | 55 ++++++++++++++++++++++++++++++------------------- 2 files changed, 41 insertions(+), 21 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index 38cc86c..465a328 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -7,3 +7,10 @@ $Id: Changelog.txt,v 1.3 2008/07/12 21:23:36 rschaten Exp $ * Release 080712 - fixed usbSendReport() and backslash-key on european keyboards + +* Release TODO + +- ghost key detection and prevention +- support for two different hardware models, added Sun Type 5 +- bootloader hotkey moved to D, to provide consistency on keyboards without + numeric keypad diff --git a/firmware/main.c b/firmware/main.c index b71dedc..239c893 100644 --- a/firmware/main.c +++ b/firmware/main.c @@ -50,19 +50,30 @@ * update the keyboard's firmware without disassembling it, and without the * need for a dedicated programmer. * + * \subsection sec_models Models + * + * Till now, I modified the following keyboard models: + * - IBM Model M: The initial project, hardware as described above. This + * keyboard has a 8x16-matrix, all the lines can be connected directly to + * the controller. + * - Sun Type 5: Another classic. A nice model with many keys. Some of them + * are placed a bit uncommon, but if you think about it the layout is great. + * This model was never intended to work with a PC, it has some kind of + * proprietary connector. The contained matrix has 13 columns and 22 rows, + * which is too big for a naked Mega32. So I had to make a circuit with some + * shift registers. + * + * Included in the package are circuits for both models, and a firmware that + * can be compiled separately for each one. + * * \subsection sec_hardware Other hardware? * * As mentioned, the controller in this project is just connected to an * ordinary keyboard matrix. You can find this kind of matrix in all kinds of * keyboards, from key-telephones over good old hardware like the Commodore - * C=64 or the Schneider CPC, keyboards with non-PC-connectors like those made - * by Sun, to modern hardware that could need a few more features. - * - * Till now, I just made a PCB layout for the IBM Model M, but I intend to - * modify at least a Sun keyboard. In order to do that, I expect having to - * refactor the key-scanning, since the key-matrix is not 16x8. The positions - * of the keys on the matrix will be different, I'll have to re-engineer that. - * And of course, I'll have to make another PCB. + * C=64 or the Schneider CPC, keyboards with non-PC-connectors like -- as + * mentioned -- those made by Sun, to modern hardware that could need a few + * more features. * * \subsection sec_features Features * @@ -91,9 +102,10 @@ * \section sec_install Building and installing * * Both, the bootloader and firmware are simply built with "make". You may need - * to customize both makefiles to fit to your system. If you don't want to add - * new features, you don't need to build the software yourself. You can use the - * hex-files included in this package. + * to customize both makefiles to fit to your system and to the keyboard model + * you want to run the firmware on. If you don't want to add new features, you + * don't need to build the software yourself. You can use the hex-files + * included in this package. * * \subsection sec_boot Bootloader * @@ -123,10 +135,10 @@ * Afterwards you can put the programmer back into the toolbox, you won't need * it from here on. * - * When you plug in the device while holding the minus-key on the number-keypad + * When you plug in the device while holding the D-key (D is for Dulcimer) * pressed, the keyboard indicates that it would like to get a new firmware by - * showing a running light on the LEDs. That firmware will be flashed over the - * normal USB-cable that the keyboard is connected with. + * fading all LEDs on and off. That firmware will be flashed over the normal + * USB-cable that the keyboard is connected with. * * \subsection sec_fw Firmware * @@ -159,11 +171,7 @@ * * \section sec_drawbacks Drawbacks * - * I don't know if and how keyboard manufacturers face the problem of ghost - * keys, I didn't take special measurements for this. I hope that the engineers - * at IBM distributed the keys on the matrix in a way that minimizes this - * problem. Don't misunderstand: I haven't experienced that on this keyboard, - * but I know that it's a common problem on key-matrixes. + * Let me know if you find any. :-) * * \section sec_files Files in the distribution * @@ -175,9 +183,11 @@ * only modified the bootloaderconfig.h and the Makefile. * - \e USBaspLoader.2008-02-05.tar.gz: The unmodified bootloader sources, for * reference. - * - \e circuit: Circuit diagrams in PDF and KiCAD format. KiCAD is a free - * schematic- and layout-tool, you can learn more about it at its homepage: + * - \e circuit_ibm_model_m: Circuit diagrams for the IBM Model M, in PDF and + * KiCAD format. KiCAD is a free schematic- and layout-tool, you can learn + * more about it at its homepage: * http://www.lis.inpg.fr/realise_au_lis/kicad/ + * - \e circuit_sun_type_5: Circuit diagrams for the Sun Type 5 keyboard. * - \e License.txt: Public license for all contents of this project, except * for the USB driver. Look in firmware/usbdrv/License.txt for further info. * - \e Changelog.txt: Logfile documenting changes in soft-, firm- and @@ -197,6 +207,9 @@ * answered many stupid questions about electronics I had during the last few * years. * + * Once again, Thomas Stegemann supported this project. Ghost key + * prevention and the possibility to work on different models are his work. + * * And of course I'd like to thank FaUl of the Chaostreff Dortmund who * gave me the idea for this project. *