Keyboard firmwares for Atmel AVR and Cortex-M
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

10 anos atrás
10 anos atrás
10 anos atrás
10 anos atrás
10 anos atrás
10 anos atrás
10 anos atrás
10 anos atrás
10 anos atrás
10 anos atrás
10 anos atrás
10 anos atrás
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. M0110/M0110A to USB keyboard converter
  2. ======================================
  3. This firmware converts the protocol of Apple Macintosh keyboard **M0110**, **M0110A** and **M0120** into USB. Target of this project is USB AVR controller like **ATmega32U2** and **ATmega32U4**. Using this converter you can revive these retro keyboards with modern computer.
  4. Read README of top directory too.
  5. Pictures of **M0110 + M0120** and **M0110A**.
  6. ![M0110+M0120](http://i.imgur.com/dyvXb2Tm.jpg)
  7. ![M0110A](http://i.imgur.com/HuHOEoHm.jpg)
  8. - M0110A support was contributed by [skagon@github](https://github.com/skagon).
  9. - M0120 also is supported. keys(+ * / and ,) on M0120 are recognized as cursor keys.
  10. Update
  11. ------
  12. - 2013/08: Change port for signals `PF` to `PD`
  13. - 2013/09: Change port again, it uses inversely `PD0` for data and `PD1` for clock line now.
  14. - 2014/06: Change keymaps
  15. - 2015/03: Add support for "International"(ISO) keyboard(keymap_intl.c)
  16. Building Hardware
  17. -----------------
  18. You need [TMK converter] or AVR dev board like PJRC [Teensy]. Port of the MCU `PD1` is assigned to `CLOCK` line and `PD0` to `DATA` by default, you can change pin configuration with editing `config.h`.
  19. [![M0110 Converter](http://i.imgur.com/4G2ZOegm.jpg)](http://i.imgur.com/4G2ZOeg.jpg)
  20. ### 4P4C phone handset cable
  21. Note that original cable used with Mac is **straight** while phone handset cable is **crossover**.
  22. <http://en.wikipedia.org/wiki/Modular_connector#4P4C>
  23. Close-up picture of handset cable. You can see one end of plug has reverse color codes against the other. Click to enlarge.
  24. [![4P4C cable](http://i.imgur.com/3S9P1mYm.jpg?1)](http://i.imgur.com/3S9P1mY.jpg?1)
  25. [Teensy]: http://www.pjrc.com/teensy/
  26. [TMK converter]: https://github.com/tmk/keyboard_converter
  27. ### Socket Pinout
  28. - <http://pinouts.ru/Inputs/MacKeyboard_pinout.shtml>
  29. ![Jack fig](http://www.kbdbabel.org/conn/kbd_connector_macplus.png)
  30. ### Pull-up Resistor
  31. You may need pull-up resistors on signal lines(`CLOCK`, `DATA`) in particular when you have long or coiled cable. **1k-10k Ohm** will be OK for this purpose. In that case the converter may not read signal from keyboard correctly without pull-up resistors.
  32. Building Firmware
  33. -----------------
  34. To compile firmware you need AVR GCC. You can edit *Makefile* and *config.h* to change compile options and pin configuration. Also `KEYMAP` option can be used to select keymap.
  35. $ git clone git://github.com/tmk/tmk_keyboard.git (or download source)
  36. $ cd m0110_usb
  37. $ make -f Makefile clean
  38. $ make -f Makefile [KEYMAP={default|plain|intl|spacefn|hasu}]
  39. Use `Makefile.teensy` instead for Teensy.
  40. Keymap
  41. ------
  42. To create your own keymap copy existent keymap file to `keymap_name.c` and edit it. You can build it like this.
  43. $ make -f Makefile clean
  44. $ make -f Makefile KEYMAP=name
  45. Debug
  46. -----
  47. You can use [PJRC HID listen](http://www.pjrc.com/teensy/hid_listen.html) to see debug output. The converter has some functions for debug, press `<Command>+H` simultaneously to get help.
  48. - Command: `Shift+Option+Command`(`Shift+Alt+Gui` or `Shift+Alt+Control`)