diff options
Diffstat (limited to 'converter/m0110_usb/README.md')
| -rw-r--r-- | converter/m0110_usb/README.md | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/converter/m0110_usb/README.md b/converter/m0110_usb/README.md new file mode 100644 index 000000000..0ad3631f7 --- /dev/null +++ b/converter/m0110_usb/README.md | |||
| @@ -0,0 +1,124 @@ | |||
| 1 | M0110/M0110A to USB keyboard converter | ||
| 2 | ====================================== | ||
| 3 | This firmware converts the protocol of Apple Macintosh keyboard M0110/M0110A into USB. | ||
| 4 | Target board of this project is [PJRC Teensy](http://www.pjrc.com/teensy/), though, | ||
| 5 | you can use other board with USB AVR like `ATmega32U4` and `AT90USB`. | ||
| 6 | |||
| 7 |  | ||
| 8 | |||
| 9 | M0110A support was contributed by [skagon@github](https://github.com/skagon). | ||
| 10 | |||
| 11 | |||
| 12 | |||
| 13 | Connection | ||
| 14 | ---------- | ||
| 15 | You need 4P4C plug and cable to connect Teensy or other AVR dev board into the keyboard. | ||
| 16 | Teensy port `PF0` is assigned for `CLOCK` line and `PF1` for `DATA` by default, | ||
| 17 | you can change pin configuration with editing *config.h*. | ||
| 18 | |||
| 19 | You can find 4P4C plugs on telephone handset cable. Note that it is *crossover* connection | ||
| 20 | while Macintosh keyboard cable is *straight*. | ||
| 21 | |||
| 22 | [](http://i.imgur.com/vJoVO.jpg) | ||
| 23 | |||
| 24 | In this pic: | ||
| 25 | |||
| 26 | 1. `GND`(Black) | ||
| 27 | 2. `CLOCK`(Red) | ||
| 28 | 3. `DATA`(Green) | ||
| 29 | 4. `+5V`(Yellow) | ||
| 30 | |||
| 31 | Not that wire colors may vary in your cable. | ||
| 32 | |||
| 33 | |||
| 34 | ### Pinout | ||
| 35 | - <http://pinouts.ru/Inputs/MacKeyboard_pinout.shtml> | ||
| 36 | - <http://en.wikipedia.org/wiki/Modular_connector#4P4C> | ||
| 37 | |||
| 38 |  | ||
| 39 | |||
| 40 | |||
| 41 | ### Pull-up Registor | ||
| 42 | You may need pull-up registors on signal lines(`CLOCK`, `DATA`) in particular | ||
| 43 | when you have long or coiled cable. 1k-10k Ohm will be OK for this purpose. | ||
| 44 | In some cases MCU can't read signal from keyboard correctly without pull-up resistors. | ||
| 45 | |||
| 46 | |||
| 47 | |||
| 48 | Building Frimware | ||
| 49 | ----------------- | ||
| 50 | To compile firmware you need AVR GCC. You can use [WinAVR](http://winavr.sourceforge.net/) on Windows. | ||
| 51 | You can edit *Makefile* and *config.h* to change compile options and pin configuration. | ||
| 52 | |||
| 53 | $ git clone git://github.com/tmk/tmk_keyboard.git (or download source) | ||
| 54 | $ cd m0110_usb | ||
| 55 | $ make | ||
| 56 | |||
| 57 | and program your Teensy with [PJRC Teensy loader](http://www.pjrc.com/teensy/loader.html). | ||
| 58 | |||
| 59 | |||
| 60 | |||
| 61 | Keymap | ||
| 62 | ------ | ||
| 63 | You can change keymaps by editing *keymap.c*. | ||
| 64 | |||
| 65 | ### M0110 | ||
| 66 | #### *Default* | ||
| 67 | ,---------------------------------------------------------. | ||
| 68 | | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| | ||
| 69 | |---------------------------------------------------------| | ||
| 70 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | ||
| 71 | |---------------------------------------------------------| | ||
| 72 | |Fn0 | A| S| D| F| G| H| J| K| L| ;| '|Return| | ||
| 73 | |---------------------------------------------------------| | ||
| 74 | |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shift | | ||
| 75 | `---------------------------------------------------------' | ||
| 76 | |Ctr|Alt | Space |Gui |Ctr| | ||
| 77 | `-----------------------------------------------' | ||
| 78 | #### *HHKB/WASD Layer* | ||
| 79 | ,---------------------------------------------------------. | ||
| 80 | |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delet| | ||
| 81 | |---------------------------------------------------------| | ||
| 82 | |Caps |Hom| Up|PgU| | | | |Psc|Slk|Pau|Up | |Ins| | ||
| 83 | |---------------------------------------------------------| | ||
| 84 | |Fn0 |Lef|Dow|Rig| | | | |Hom|PgU|Lef|Rig|Return| | ||
| 85 | |---------------------------------------------------------| | ||
| 86 | |Shift |End| |PgD| |VoD|VoU|Mut|End|PgD|Dow|Shift | | ||
| 87 | `---------------------------------------------------------' | ||
| 88 | |Ctr|Alt | Space |Gui |Ctr| | ||
| 89 | `-----------------------------------------------' | ||
| 90 | |||
| 91 | ### M0110A | ||
| 92 | #### *Default* | ||
| 93 | ,---------------------------------------------------------. ,---------------. | ||
| 94 | | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Gui| =| /| *| | ||
| 95 | |---------------------------------------------------------| |---------------| | ||
| 96 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | 7| 8| 9| -| | ||
| 97 | |-----------------------------------------------------' | |---------------| | ||
| 98 | |Fn0 | A| S| D| F| G| H| J| K| L| ;| '|Return| | 4| 5| 6| +| | ||
| 99 | |---------------------------------------------------------| |---------------| | ||
| 100 | |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shft|Up | | 1| 2| 3| | | ||
| 101 | |---------------------------------------------------------| |-----------|Ent| | ||
| 102 | |Ctrl |Alt | Space | \|Lft|Rgt|Dn | | 0| .| | | ||
| 103 | `---------------------------------------------------------' `---------------' | ||
| 104 | #### *HHKB/WASD/mousekey Layer* | ||
| 105 | ,---------------------------------------------------------. ,---------------. | ||
| 106 | |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delet| |Nlk|Mb1|Mb3|Mb2| | ||
| 107 | |---------------------------------------------------------| |---------------| | ||
| 108 | |Caps |Hom| Up|PgU| | | | |Psc|Slk|Pau|Up | | | |MwD|McU|MwU|MwU| | ||
| 109 | |-----------------------------------------------------' | |---------------| | ||
| 110 | |Fn0 |Lef|Dow|Rig| | | | |Hom|PgU|Lef|Rig|Return| |McL|McD|McR|MwD| | ||
| 111 | |---------------------------------------------------------| |---------------| | ||
| 112 | |Shift |End| |PgD| |VoD|VoU|Mut|End|PgD|Dow|Shif|Up | |MwL|McD|MwR| | | ||
| 113 | |---------------------------------------------------------| |-----------|Mb2| | ||
| 114 | |Ctrl |Alt | Space |Ins|Lft|Rgt|Dn | | Mb1|Mb3| | | ||
| 115 | `---------------------------------------------------------' `---------------' | ||
| 116 | |||
| 117 | |||
| 118 | |||
| 119 | Debug | ||
| 120 | ----- | ||
| 121 | You can use [PJRC HID listen](http://www.pjrc.com/teensy/hid_listen.html) to see debug output. | ||
| 122 | |||
| 123 | The converter has some functions for debug, press `Alt+Gui+H` simultaneously to get help. | ||
| 124 | These function is totally undocumented, tentative, inconsistent and buggy. | ||
