logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git

readme.md (4850B)


  1. ## Unicomp Mini M with Teensy2.0++ controller & QMK Firmware
  2. ### Overview
  3. #### Goals
  4. The goal of this project was to replace the stock control board of the Unicomp Mini M with a programmable one. The Mini
  5. M was released by [Unicomp](https://www.pckeyboard.com) in Q1 of 2021 and is a re-release of The IBM Model M Space
  6. Saving Keyboard (SSK) with some enhancements.
  7. This guide strives to achieve the following:
  8. * Make completely reversable changes, or in other words, no permanent modifications to the Mini M
  9. * Allow full programmability of the Mini M via QMK
  10. * Be able to flash firmware without having to take the board apart to hit the reset button
  11. * Create a default keymap that works just like the stock keymap shipped from Unicomp, including the toggle-able number
  12. pad
  13. * Support all LEDs as normal
  14. My guide will go a few steps further:
  15. * Convert the wired connection from USB-A to USB-C
  16. * Install a potentiometer to dim the LEDs if desired
  17. #### Credits
  18. The following resources were instrumental to the success of this project:
  19. * Model M 101/102 write-up located in `qmk_firmware/keyboards/converter/modelm`
  20. * [Model M Subreddit](https://modelm.reddit.com)
  21. * Model M Discord
  22. ### Hardware
  23. ##### Parts
  24. For a working Mini M with QMK *without* LEDs working, the following parts are necessary:
  25. * 1 Adafruit Perma-Proto Full Sized Breadboard. Luckily, this board is a perfect fit for the Mini M case!
  26. * 1 Teensy2.0++, with headers soldered on if you can find it
  27. * 2 20-row x 1 column headers, if you can't find a Teensy with headers already soldered on
  28. * 2 16-pin Ribbon connectors, PCB mount
  29. * Hookup wire. I used 30AWG wire and while it worked, I should have used 1 gauge (or more) thicker
  30. * A panel mount male USB-B to female USB-C extender
  31. To get the Mini M working with LEDs, you will need:
  32. * 3 1kOhm through-hole resistors
  33. ##### Tools
  34. The following were absolutely critical for the project:
  35. * Soldering iron, preferably one with a narrow tip for small connections
  36. * Drill, preferably a hand-held rotary tool (such as a Dremel)
  37. * Wire strippers/cutters
  38. * A sharp knife
  39. Optional, but worth having around:
  40. * Helping-hands, PCB holder, preferably both
  41. * Multi-meter for testing continuity of your connections
  42. * Hot-glue gun for mounting the USB extender to the Perma-Proto
  43. ### Assembly
  44. #### Solder Teensy to the Perma-Proto
  45. 1. Solder headers to Teensy
  46. 2. Solder headers to Perma-Proto
  47. #### Solder ribbon connectors
  48. * Rows on the Perma-Proto that line up with membrane ribbons
  49. * Trim excess under board
  50. * Test continuity
  51. #### Solder in hookup wires
  52. * Ribbon connector used for the right ribbon will need hookup wire to establish connections to the Teensy
  53. * 12 required, 16 if you want full functionality
  54. #### Optional: Solder in resistors
  55. #### Caveat: D6 pin on the Teensy
  56. There are a few ways to mount the Teensy to the Perma-Proto board. I chose to connect my 16 pin ribbon connector to the
  57. Teensy pins starting at C7 and ending at D2. If you do this, beware that pin D6 will not work for the purposes of this
  58. project. It is possible to modify it to make it so, but that is beyond the scope of this guide.
  59. Bypassing D6 is necessary if you mount your ribbon connector as I have just described. Luckily, it is a simple process!
  60. First, with a sharp knife, sever the connection between your ribbon connector pin that is connected to Teensy D6 pin. I
  61. would recommend doing this at the closest possible point to the Teensy on the underside of the Perma-Proto board. Once
  62. that is done, use a remaining point on the Perma-Proto bus for that ribbon connection (that was previously connected to
  63. D6) to add a jumper wire connected to pin B7. If you are using the firmware files provided in this repository,
  64. everything is already set for this configuration.
  65. ### Testing
  66. ### Software
  67. #### Build firmware
  68. See qmk documentation on getting your build environment working.
  69. Compile the Mini M firmware files with the default keymap. It allows for the Mini M to be used with the same
  70. functionality as shipped from the manufacturer.
  71. ```bash
  72. $ qmk compile -kb unicomp/mini_m -km default
  73. ```
  74. While plugged in, press the reset button on your Teensy and then:
  75. ```bash
  76. $ qmk flash -kb unicomp/mini_m -km default
  77. ```
  78. If everything works to this point, congratulations! You now have a programmable Mini M. If you are using the default
  79. keymap, you can reset your Teensy by pressing Shift+Pause together, eliminating the need to take apart the case in order
  80. to do so.
  81. #### Keymaps
  82. To build your own keymap, create a new directory in `keyboards/unicomp/mini_m/keymaps/<your name>`, copy the files from
  83. `keyboards/unicomp/mini_m/default` into your new directory, and edit them as you wish. When you are ready to flash your
  84. new keymap to the Mini M, the command will be `qmk flash -kb unicomp/mini_m -kb <your name>`.