]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/ymd96/README.md
869dfb1018726e0cfe726258db883a2358d0a00f
[qmk_firmware.git] / keyboards / ymd96 / README.md
1 YMD96 
2 ==========================
3
4 This is a port of the QMK firmware for boards that are based on the
5 ps2avrGB firmware, like the [ps2avrGB
6 keyboard](https://www.keyclack.com/product/gb-ps2avrgb/), for use on the YMD96. 
7
8 Note that this is a complete replacement for the firmware, so you won't be
9 using Bootmapper Client to change any keyboard settings, since not all the
10 USB report options are supported.  
11
12 Here is the default layout, it is fairly simple with a few function keys: 
13 ![YMD96 Layout](https://i.imgur.com/qCwE2ns.png)  
14 If you have a different layout (since there were many options during the GB), please feel free to contribute!  
15
16 Keyboard maintainer: [Andrew](https://github.com/sparkyman215)  
17 Hardware Supported: YMD96 with the ATmega32a chip.  
18 Hardware Availability: The GB was run June 2017, [in this thread](https://www.reddit.com/r/mechmarket/comments/6hu3yx/vendor_ymd96_gb_is_now_live_68_an_universal_and/). The vendor has stated that they plan on selling more rounds.
19
20 ## Finding your specific matrix
21
22 This firmware was modified from [ps2avrGB](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ps2avrGB), also found on this qmk repo, to work with the YMD96 keyboard. However, I only have one board to test with, which might have a different layout than yours. To get qmk working with your specific layout, you'll need to follow these steps:  
23
24 1. Follow the [guide here](https://www.massdrop.com/talk/1392/programming-kbd-keyboards-via-bootmapper-client) to get Bootmapper Client setup. While you won't need it after you get qmk working, you need to use Bootmapper Client to figure out how the matrix is laid out. In the end, here's an example of what it should look like: ![BMC](https://i.imgur.com/wNihDwn.png)  
25 2. Next is the tricky part: editing the `ymd96.h` file. Here, you have to figure out how the keys are laid out physically and assign each key the right keycode. Study how the codes in brackets correspond to the BMC columns. Consider the first column: K000 corresponds to Col 1 Row 1, and K100 corresponds to Col 2 Row 1. K111 = Col 2 Row 10.  
26 3. First, you need to define the codes that are actually used in the brackets. KC_NO is used whenever a cell isn't used, such as col 1 row 4-6 in BMC.  
27 4. Once you have all those set up, you need to put the keycodes where they physically are in the KEYMAP( area. Since the columns aren't all uniform (e.g. col2row6 is B, but col2row7 is the numpad 1), the keycodes will be all over the place.  
28 5. Finally! Hard part is pretty much done. Next, you simply have to edit the `keymap.c` file to actually assign the keycodes to do something. You essentially replace the keycodes (e.g. K000) with actual codes that do something, e.g. KC_ENTER. Modify these to your hearts content, and of course this is where all the extra functionality of QMK shines. I won't get into it here, but hopefully you've made it this far!
29
30 ## Installing and Building
31
32 First, install the requirements. These commands are for OSX, but all you
33 need is the AVR toolchain and `bootloadHID` for flashing:
34
35 ```
36 $ brew cask install crosspack-avr
37 $ brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb
38 ```
39
40 In order to use the `./program` script, which can reboot the board into
41 the bootloader, you'll need Python 2 with PyUSB installed:
42
43 ```
44 $ pip install pyusb
45 ```
46
47 Build the keyboard with  
48 ```
49 $ make ymd96-default  
50 ```  
51 If you make your own layout, change the `default` word to whatever your layout is.  
52
53 ## Troubleshooting
54
55 From my experience, it's really hard to brick these boards. But these
56 tricks have been useful when it got stuck in a weird scenario.
57
58 1. Try plugging the board in while pressing `L_Ctrl`. This will force it
59    to boot only the bootloader without loading the firmware. Once this is
60    done, just reflash the board with the original firmware.
61 2. Sometimes USB hubs can act weird, so try connecting the board directly
62    to your computer or plugging/unplugging the USB hub.