├── Makefile ├── README.md ├── assembly-sockets.md ├── assembly.md ├── flashing.md ├── getting-pcbs.md ├── images ├── push-button_direction.jpg ├── rst_left.jpg ├── rst_right.jpg ├── rst_right_profile.jpg ├── socket-version │ ├── diodes.jpg │ ├── shorten-headers │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ └── 4.png │ └── sockets.jpg └── speaker.jpg ├── reset-buttons.md ├── rgb-underglow.md ├── speaker.md └── troubleshooting.md /Makefile: -------------------------------------------------------------------------------- 1 | build: 2 | ack -L 'DOCTOC SKIP' | xargs doctoc 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | **Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* 4 | 5 | - [An Overly Verbose Guide to Building a Let's Split Keyboard](#an-overly-verbose-guide-to-building-a-lets-split-keyboard) 6 | - [Contents](#contents) 7 | - [You can contribute to this guide](#you-can-contribute-to-this-guide) 8 | 9 | 10 | 11 | 12 | 13 | # An Overly Verbose Guide to Building a Let's Split Keyboard 14 | 15 | This guide covers building a Let's Split v2. Order your parts and read over this guide while you wait. 16 | 17 | ![](http://i.imgur.com/yuQuNJU.jpg) 18 | 19 | # Contents 20 | 21 | * Introduction _\(this page\)_ 22 | * [Assembly](assembly.md) 23 | * [Flashing](flashing.md) 24 | * [RGB Underglow](rgb-underglow.md) 25 | * [Troubleshooting](troubleshooting.md) 26 | * [Reset Buttons](reset-buttons.md) 27 | * [Speaker](speaker.md) 28 | 29 | ## You can contribute to this guide 30 | 31 | [Open a pull request](https://github.com/nicinabox/lets-split-guide) 32 | -------------------------------------------------------------------------------- /assembly-sockets.md: -------------------------------------------------------------------------------- 1 | # Assembly 2 | 3 | 4 | 5 | 6 | 7 | - [Helpful references](#helpful-references) 8 | - [Parts](#parts) 9 | - [Cost Breakdown](#cost-breakdown) 10 | - [Order the case](#order-the-case) 11 | - [Mount the sockets](#mount-the-sockets) 12 | - [Mount the Diodes](#mount-the-diodes) 13 | - [Mount Header Pins](#mount-header-pins) 14 | - [Mount the Pro Micro](#mount-the-pro-micro) 15 | - [Mount the Pro Micro the Right Way](#mount-the-pro-micro-the-right-way) 16 | - [Assemble the case **PLATE CASE HASN'T BEEN TESTED WITH SOCKET VERSION**](#assemble-the-case-plate-case-hasnt-been-tested-with-socket-version) 17 | - [Finishing touches](#finishing-touches) 18 | - [Troubleshooting](#troubleshooting) 19 | 20 | 21 | 22 | ## Helpful references 23 | 24 | - [/u/wootpatoot's v2 assembly instructions](https://www.reddit.com/r/MechanicalKeyboards/comments/5funsl/guidelets_split_v2_assembly_instructions/) 25 | - [/u/bakingpy's build log](https://www.reddit.com/r/MechanicalKeyboards/comments/5rgj06/lets_split_v2_build_log_with_mini_usb_pro_micro/) 26 | - [/u/tobiasboon's Let's split v2 build log (with I2C)](https://www.reddit.com/r/MechanicalKeyboards/comments/5s3yr2/lets_split_v2_build_log_with_i2c_photos/) 27 | 28 | ## Parts 29 | 30 | At the writing of this guide, the PCBs come with connectors presoldered, and with diodes and sockets provided. 31 | 32 | - [ ] Socket PCB - [You will need a set of (2) PCBs](getting-pcbs.md) 33 | 34 | - [ ] **2** 5V/16MHz Pro Micros ([official](https://www.sparkfun.com/products/12640) or [clone](https://www.ebay.com/sch/i.html?_from=R40&_sacat=0&_nkw=Arduino+Micro+Pro+ATmega32U4+5V&rt=nc&LH_BIN=1)) 35 | - [ ] **48** [Switches of your choice](https://mechanicalkeyboards.com/shop/index.php?l=product_list&c=107) 36 | - [ ] [TRRS cable](https://www.amazon.com/gp/product/B019TRW4HQ/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1) 37 | 38 | ## Cost Breakdown 39 | 40 | | Cost | Part | 41 | |:--|:--| 42 | | $40 | PCB | 43 | | $10-60 | Pro Micros | 44 | | $36 | Plate and case | 45 | | $9 | Standoffs | 46 | | $9 | Screws | 47 | | $7 | TRRS cable | 48 | | $14-50 | Switches | 49 | 50 | **Total cost: ~$125-211**. Yours might be more or less depending on the exact parts you source, what you already have, and shipping costs. 51 | 52 | 53 | ## Order the case 54 | 55 | Section yet to be filled. 56 | 57 | ## Mount the sockets 58 | 59 | First thing to do, is to mount the sockets, as these benefit from having the front side of the PCB entirely flat. 60 | Place the PCB down with the connectors facing up, and begin inserting a socket into each switch position, making sure to like them up with the pads. 61 | ![](images/socket-version/sockets.jpg) 62 | 63 | 64 | ## Mount the Diodes 65 | 66 | Diodes allow current to flow in one direction only. Mount the diodes with the black line facing the square pad. 67 | 68 | ![](images/socket-version/diodes.jpg) 69 | 70 | On the socket version, the connectors are premounted to have two similar connectors on the inside. Usually the TRRS connector 71 | 72 | All parts on the socket version are put on the backside of the PCB. 73 | 74 | If you are getting a plate case lasercut, it can be very beneficial to have a small piece of acrylic cut, that is 7.5mm across. 75 | This can be used to form the diode leads around. One such model is available [here](https://cad.onshape.com/documents/c6e5ae250d1e24fe46c9ef6c/w/d69f7049c0921df3d2b241f9/e/6be47f68dae3db6d2d56add6) 76 | 77 | Otherwise bend the diodes manually by using a small book binding or small pair of pliers to gently make a 90 degree bend on each side of the diode. It might take a few tries to get right, but you'll get the hang of it soon. They should drop easily into the 2 holes. 78 | 79 | **Double check your work**. Black lines should be facing the square pad. 80 | 81 | > *Tip:* **Lightly** tack each diode in from the top. This will keep them snug against the surface once we flip it over and do the real soldering from the bottom. You only need a tiny amount of solder here and you should still be able to see through the hole. 82 | 83 | **SPECIAL NOTE ON THE PROTOTYPE SOCKET BOARDS, THE** The bottom row of the diodes will be poking out right under the switches. Because of this these dioes cannot poke through the PCB, and have to be cut flush with the front of the PCB before final soldering. 84 | 85 | Flip your PCB over and solder the diodes then snip the excess leads. 86 | 87 | ## Mount Header Pins 88 | 89 | You should have received header pins with your Pro Micro. Due to the placement of the headers, these can't stick out the other side of the PCB either, you will therefore have to push down the black plastic that holds the pins together, such that the pins are flush with the front side. 90 | 91 | **Images:** 92 | ![One](images/socket-version/shorten-headers/1.png) 93 | ![Two](images/socket-version/shorten-headers/2.png) 94 | ![Three](images/socket-version/shorten-headers/3.png) 95 | ![Four](images/socket-version/shorten-headers/4.png) 96 | 97 | Insert the short side into the bottom of PCB, again. All components are inserted on the same side of the PCB 98 | 99 | > *Tip:* To keep them aligned you can slip the Pro Micro over the pins but **do not solder the Pro Micro at this time**. 100 | 101 | Tack the pins on the end and inspect. If the pins are not quite aligned with the board, heat one side with your iron and press it in. It should make a satisfactory "click". 102 | 103 | Solder the rest of the pins (it won't take much solder here). 104 | 105 | The long part of the pins should be protruding from the bottom. We'll trim these later after soldering the Pro Micro, but you can leave them be for now. 106 | 107 | ## Mount the Pro Micro 108 | 109 | > *Tip:* Flash your Pro Micro now before you mount it. You can test it by using a multimeter to measure the voltage between VCC and RAW. It should be around 5V. If it's bad it'll be a lot less headache than desoldering. 110 | 111 | ### Mount the Pro Micro the Right Way 112 | 113 | You'll be working from the bottom of the board for this step. 114 | 115 | - On the **left PCB** the Pro Micro should be **smooth side up** (facing you) 116 | - On the **right PCB** the Pro Micro should be **component side up** (facing you) 117 | 118 | The micro USB of the Pro micro should be facing the mini USB of the PCB 119 | 120 | ![](http://i.imgur.com/r4kMBSF.jpg) 121 | 122 | You may need to **Place a bit of tape over the sockets under the pro micro** as they might touch the controller and cause issues. 123 | 124 | On the left PCB, make sure the micro USB cable can fit in the socket, before soldering in the Pro Micro. 125 | 126 | ** Clearance with plates hasn't been tested with this socket version. Feed-back would be much appreciated ** 127 | 128 | Ensure the orientation of your controllers are correct and you've already soldered the 2 sockets underneath, then solder all the pins on the Pro Micro. 129 | 130 | At this point you should be able to plug in and verify that the Arduino is working. 131 | 132 | Trim the excess from the header pins. 133 | 134 | ![](http://i.imgur.com/WOOB0nr.jpg) 135 | 136 | ## Assemble the case **PLATE CASE HASN'T BEEN TESTED WITH SOCKET VERSION** 137 | 138 | 1. Insert the screws on top 139 | 2. Screw the standoffs onto the top screws 140 | 3. Line up the bottom of the case with the standoffs 141 | 4. Screw in the bottom screws to the standoffs 142 | 143 | ![](http://i.imgur.com/coW4MsQ.jpg) 144 | > *Tip:* Finger tight is sufficient, but you can snug them down just a tad with a tool. Be easy, they don't need much! 145 | 146 | ## Finishing touches 147 | 148 | 1. Add some adhesive vinyl pads to the bottom 149 | 2. Install your keycaps and connect the two halves with the TRRS cable. 150 | 151 | You did it! Great job! 152 | 153 | ## Troubleshooting -------------------------------------------------------------------------------- /assembly.md: -------------------------------------------------------------------------------- 1 | # Assembly 2 | 3 | 4 | 5 | 6 | 7 | - [Duckle29's socketed version](#duckle29s-socketed-version) 8 | - [Helpful references](#helpful-references) 9 | - [Parts](#parts) 10 | - [Cost Breakdown](#cost-breakdown) 11 | - [Order the case](#order-the-case) 12 | - [Mount the Diodes](#mount-the-diodes) 13 | - [Mount the TRRS Jack](#mount-the-trrs-jack) 14 | - [Connect Jumpers](#connect-jumpers) 15 | - [I2C Resistors and Jumpers](#i2c-resistors-and-jumpers) 16 | - [Mount the resistors](#mount-the-resistors) 17 | - [Connect the I2C Jumpers](#connect-the-i2c-jumpers) 18 | - [Mount Header Pins](#mount-header-pins) 19 | - [Mount the Pro Micro](#mount-the-pro-micro) 20 | - [Mount the 2 switches under the Pro Micro](#mount-the-2-switches-under-the-pro-micro) 21 | - [Mount the Pro Micro the Right Way](#mount-the-pro-micro-the-right-way) 22 | - [Mount the rest of the switches](#mount-the-rest-of-the-switches) 23 | - [Assemble the case](#assemble-the-case) 24 | - [Finishing touches](#finishing-touches) 25 | - [Troubleshooting](#troubleshooting) 26 | 27 | 28 | 29 | ## Duckle29's socketed version 30 | 31 | - For Duckle29's socketed version of the let's split, refer to these [assembly instructions](assembly-sockets.md) 32 | 33 | ## Helpful references 34 | 35 | - [/u/wootpatoot's v2 assembly instructions](https://www.reddit.com/r/MechanicalKeyboards/comments/5funsl/guidelets_split_v2_assembly_instructions/) 36 | - [/u/bakingpy's build log](https://www.reddit.com/r/MechanicalKeyboards/comments/5rgj06/lets_split_v2_build_log_with_mini_usb_pro_micro/) 37 | - [/u/tobiasboon's Let's split v2 build log (with I2C)](https://www.reddit.com/r/MechanicalKeyboards/comments/5s3yr2/lets_split_v2_build_log_with_i2c_photos/) 38 | - [Visual guide and learnings by Jesper](https://medium.com/p/what-i-learned-while-building-my-own-keyboard-8b3bbc7ac3c3) 39 | 40 | ## Parts 41 | 42 | - [ ] v2 PCB - [You will need a set of (2) PCBs](getting-pcbs.md) 43 | 44 | - [ ] **2** 5V/16MHz Pro Micros ([official](https://www.sparkfun.com/products/12640) or [clone](https://www.ebay.com/sch/i.html?_from=R40&_sacat=0&_nkw=Arduino+Micro+Pro+ATmega32U4+5V&rt=nc&LH_BIN=1)) 45 | - [ ] **48** 1N4148 diodes ([1N4148FS-ND](https://www.digikey.com/products/en?keywords=1N4148FS-ND), just go ahead and get 100) 46 | - [ ] **2** TRRS jacks ([CP-43514-ND](https://www.digikey.com/product-detail/en/cui-inc/SJ-43514/CP-43514-ND/368146)) 47 | - [ ] [Plate & case](http://qmk.fm/keyboards/lets_split/lets_split_laser.svg) (sandwich design) 48 | - [ ] **8** [10mm M3 standoffs](https://www.mcmaster.com/#94868A166) (required for sandwich case) 49 | - [ ] **16** 6mm M3 [button head](https://www.mcmaster.com/#92095a179/=16e985x) or [flat head](https://www.mcmaster.com/#92010a116/=1b5e0r0) screws (required for sandwich case, comes in packs of 100) 50 | - [ ] **48** [Switches of your choice](https://mechanicalkeyboards.com/shop/index.php?l=product_list&c=107) 51 | - [ ] [TRRS cable](https://www.amazon.com/gp/product/B019TRW4HQ/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1) 52 | - [ ] **2** 4.7kΩ through-hole resistors (I2C only) 53 | 54 | **/!\** The M3 screws linked above may have a slight clearance issue with the keycap. You can countersink the head or use a screw with a lower profile head. I'm testing out button head screws to see if they work better. 55 | 56 | ## Cost Breakdown 57 | 58 | | Cost | Part | 59 | |:--|:--| 60 | | $10 | PCB | 61 | | $10-60 | Pro Micros | 62 | | $3 | Diodes | 63 | | $2 | TRRS Jack | 64 | | $36 | Plate and case | 65 | | $9 | Standoffs | 66 | | $9 | Screws | 67 | | $7 | TRRS cable | 68 | | $14-50 | Switches | 69 | 70 | **Total cost: ~$100-186**. Yours might be more or less depending on the exact parts you source, what you already have, and shipping costs. 71 | 72 | ## Order the case 73 | 74 | *Optional if you have your own plate and case.* 75 | 76 | Download the raw plate SVG from Github (Alt-click **Raw** should do it). 77 | 78 | Head over to [Ponoko](https://www.ponoko.com/) and create an account if it's your first time. 79 | 80 | 1. Click **My Designs** > **Overview** > **Add a new design** 81 | 2. Click **Upload your design** and select the `letssplitv2.svg` file 82 | 3. Click **Add this design** 83 | 4. Set the Quantity to 2 (the design is only 1 side) 84 | 5. Click **Add Materials** > **Add a Material** 85 | 6. Select **Choose a material type** > **Plastic** 86 | 7. Select **Choose a material** > **Acrylic - Clear - Antistatic** (You can choose whatever type of material you like. We'll be using Acrylic for this build.) 87 | 8. Select **Choose a thickness** > **0.118 inches** 88 | 9. Select **Choose a size** > **P1 - 7.126 inches long x 7.126 inches wide** 89 | 10. Click **Add this material** 90 | 11. Your total should be around $36 91 | 12. Click **Make it** and complete the order process 92 | 93 | ## Mount the Diodes 94 | 95 | Diodes allow current to flow in one direction only. Mount the diodes with the black line facing the square pad. 96 | 97 | ![](http://i.imgur.com/uJPqbiB.jpg) 98 | 99 | You'll want to determine the orientation of your boards right now. Remember, they're symmetrical, but you can set it up to have your TRRS jacks on the inside or on the same side (right or left). For this build we'll be mounting our TRRS jacks on the inside, closest to one another. 100 | 101 | - The **left PCB** will have the **TRRS jack on the right** 102 | - The **right PCB** will have the **TRRS jack on the left** 103 | 104 | This orientation will determine the top of your PCB. Insert the diodes on the top. Once mounted they will fit between the PCB and the plate. 105 | 106 | > *Tip:* Although it doesn't actually matter which side you mount the diodes on so long as they're in the correct orientation, there are several factors that may influence which side you choose. If you have a 3mm acrylic plate, it is desirable to mount them on the top side to help reinforce the gap and prevent the switches from rising up with the PCB. If you have a 5mm acrylic plate, it is mandatory to mount them on the bottom side for the plate to fit. If it is left up to choice, it can be beneficial to mount them on the bottom side to allow for future desoldering replacement should there be some type of failure. For this build we'll put them on top. 107 | 108 | Use a helping hand tool to hold the PCB above your work surface. 109 | 110 | Use a small book binding or small pair of pliers to gently make a 90 degree bend on each side of the diode. It might take a few tries to get right, but you'll get the hang of it soon. They should drop easily into the 2 holes. 111 | 112 | **Double check your work**. Black lines should be facing the square pad. 113 | 114 | > *Tip:* **Lightly** tack each diode in from the top. This will keep them snug against the surface once we flip it over and do the real soldering from the bottom. You only need a tiny amount of solder here and you should still be able to see through the hole. 115 | 116 | Flip your PCB over and solder the diodes then snip the excess leads. 117 | 118 | ## Mount the TRRS Jack 119 | 120 | Mount the TRRS jack on the side opposite from your diodes. It should be on the bottom. 121 | 122 | > *Tip:* Use masking tape or a spare finger to hold it in place while you solder it. Tack a couple pins and make sure it's snug against the board, then do the rest. 123 | 124 | ## Connect Jumpers 125 | 126 | On the **underside** of the PCB, right below the TRRS jack, you'll see two sets of 3 pads labelled VCC and GND. Jumper them like this: 127 | 128 | ``` 129 | VCC [x] [ ] VCC 130 | [x] [x] 131 | GND [ ] [x] GND 132 | ``` 133 | 134 | Do both PCBs the same. 135 | 136 | ![](http://i.imgur.com/eLRUJxA.jpg) 137 | 138 | ## I2C Resistors and Jumpers 139 | 140 | *Optional if you plan to use I2C.* 141 | 142 | ### Mount the resistors 143 | 144 | On one PCB, mount and solder two 4.7kΩ resistors, one in each of the spaces labeled "R" on the same side of the PCB as you mounted the diodes. Resistors are not polarized and can be mounted in either direction. 145 | 146 | *Note: It doesn't matter which PCB ends up with the resistors. It's OK, but unnecessary, to place them on both.* 147 | 148 | ### Connect the I2C Jumpers 149 | 150 | On the **underside** of the PCB, you'll find the I2C jumper pads located below the D17 diode. Jumper the pads on both PCBs. 151 | 152 | ## Mount Header Pins 153 | 154 | You should have received header pins with your Pro Micro. Insert the short side into the bottom of PCB (same side as the TRRS jack) and solder them in. 155 | 156 | > *Tip:* To keep them aligned you can slip the Pro Micro over the pins but **do not solder the Pro Micro at this time**. 157 | 158 | Tack the pins on the end and inspect. If the pins are not quite aligned with the board, heat one side with your iron and press it in. It should make a satisfactory "click". 159 | 160 | Solder the rest of the pins (it won't take much solder here). 161 | 162 | The long part of the pins should be protruding from the bottom. We'll trim these later after soldering the Pro Micro, but you can leave them be for now. 163 | 164 | ## Mount the Pro Micro 165 | 166 | **Pay special attention on this step**. There are several things that need to be done in the right order and orientation. 167 | 168 | > *Tip:* Flash your Pro Micro now before you mount it. You can test it by using a multimeter to measure the voltage between VCC and RAW. It should be around 5V. If it's bad it'll be a lot less headache than desoldering. 169 | 170 | ### Mount the 2 switches under the Pro Micro 171 | 172 | > *Heads up:* The plate design linked in this build is not symmetrical. One edge is slightly smaller than the other. You probably want the small edge towards the center of the board. 173 | 174 | 1. Grab 2 switches and your top plate (That's 2 switches for each side) 175 | 2. Snap the switches into your plate in the spots that overlay the Pro Micro (on the left side that's column 2, and on the right that's column 5). 176 | 3. Line up your PCB with the switches and solder them between the header pins 177 | 178 | ### Mount the Pro Micro the Right Way 179 | 180 | You'll be working from the bottom of the board for this step. 181 | 182 | - On the **left PCB** the Pro Micro should be **smooth side up** (facing you) 183 | - On the **right PCB** the Pro Micro should be **component side up** (facing you) 184 | 185 | ![](http://i.imgur.com/r4kMBSF.jpg) 186 | 187 | You may need to **trim the pins on the left side switches** as they will likely touch the controller and prevent it from resting flush with the pins. 188 | 189 | **Clearance is going to be tight on the right side** between the USB and the bottom of the plate, so make sure you've got it as snug as possible against the header pins. 190 | 191 | Ensure the orientation of your controllers are correct and you've already soldered the 2 switches underneath, then solder all the pins on the Pro Micro. 192 | 193 | At this point you should be able to plug in and verify the board is working and the two mounted switches should work (if you already flashed). If it is, great job! 194 | 195 | Trim the excess from the header pins. 196 | 197 | ![](http://i.imgur.com/WOOB0nr.jpg) 198 | 199 | ## Mount the rest of the switches 200 | 201 | Home stretch. Gently snap in the rest of the switches and solder them. 202 | 203 | ![](http://i.imgur.com/GFF0sd7.jpg) 204 | 205 | ## Assemble the case 206 | 207 | 1. Insert the screws on top 208 | 2. Screw the standoffs onto the top screws 209 | 3. Line up the bottom of the case with the standoffs 210 | 4. Screw in the bottom screws to the standoffs 211 | 212 | ![](http://i.imgur.com/coW4MsQ.jpg) 213 | > *Tip:* Finger tight is sufficient, but you can snug them down just a tad with a tool. Be easy, they don't need much! 214 | 215 | ## Finishing touches 216 | 217 | 1. Add some adhesive vinyl pads to the bottom 218 | 2. Install your keycaps and connect the two halves with the TRRS cable. 219 | 220 | You did it! Great job! 221 | 222 | ## Troubleshooting 223 | 224 | For common problems and their solutions, see [troubleshooting](troubleshooting.md). 225 | -------------------------------------------------------------------------------- /flashing.md: -------------------------------------------------------------------------------- 1 | # Flashing 2 | 3 | 4 | 5 | 6 | 7 | - [Which side do I flash?](#which-side-do-i-flash) 8 | - [Windows](#windows) 9 | - [OSX, Linux](#osx-linux) 10 | - [Bootloader](#bootloader) 11 | - [Flash](#flash) 12 | - [Troubleshooting](#troubleshooting) 13 | - [Programmer not responding](#programmer-not-responding) 14 | - [Can't open device](#cant-open-device) 15 | - [Your right side has the TRRS on the LEFT and the keymap is reversed](#your-right-side-has-the-trrs-on-the-left-and-the-keymap-is-reversed) 16 | - [Your right side has the TRRS on the RIGHT and the keymap is reversed](#your-right-side-has-the-trrs-on-the-right-and-the-keymap-is-reversed) 17 | 18 | 19 | 20 | ## Which side do I flash? 21 | 22 | See the QMK firmware section on [Flashing](https://github.com/qmk/qmk_firmware/tree/master/keyboards/lets_split#flashing) for an up to date explanation. 23 | 24 | ## Windows 25 | 26 | See [/u/CampAsAChamp's Windows Guide](https://github.com/CampAsAChamp/LetsSplitWindowsGuide) 27 | 28 | ## OSX, Linux 29 | 30 | ### Bootloader 31 | 32 | Connect RST and GND to enter bootloader. If you're using an official Sparkfun Pro Micro (the red one) you need to short this twice quickly. 33 | 34 | You will have 8 seconds to flash before it continues on to the sketch. 35 | 36 | > Tip: If this is the first time the Pro Micro has been flashed it should go directly to the bootloader on start. 37 | 38 | ### Flash 39 | 40 | QMK now includes a very easy way to automatically find the serial port and flash without having to race the bootloader. From the qmk directory type: 41 | 42 | ``` 43 | make lets_split/rev2:YOUR_KEYMAP_NAME:avrdude 44 | ``` 45 | 46 | or for the Kailh hotswap socket version: 47 | 48 | ``` 49 | make lets_split/sockets:YOUR_KEYMAP_NAME:avrdude 50 | ``` 51 | 52 | Be sure to replace `YOUR_KEYMAP_NAME` with the name of your keymap. 53 | 54 | Example: 55 | 56 | ```bash 57 | $ make lets_split/rev2:YOUR_KEYMAP_NAME:avrdude 58 | Reset your Pro Micro now 59 | 60 | Connecting to programmer: . 61 | Found programmer: Id = "CATERIN"; type = S 62 | Software Version = 1.0; No Hardware Version given. 63 | Programmer supports auto addr increment. 64 | Programmer supports buffered memory access with buffersize=128 bytes. 65 | 66 | # [snip] 67 | 68 | avrdude: verifying ... 69 | avrdude: 22286 bytes of flash verified 70 | 71 | avrdude: safemode: Fuses OK (E:CB, H:D8, L:FF) 72 | 73 | avrdude done. Thank you. 74 | ``` 75 | 76 | ## Troubleshooting 77 | 78 | ### Programmer not responding 79 | 80 | The controller isn't in bootloader mode. You may have missed the 8 second window to flash. 81 | **NOTE** Power cycling doesn't work, you have to reset it with the reset pin 82 | 83 | ### Can't open device 84 | 85 | The serial port you specified isn't the one the controller is using. 86 | 87 | ### Your right side has the TRRS on the LEFT and the keymap is reversed 88 | 89 | As of Feb 7, 2017 this should no longer be necessary. The default `rev2` orientation matches the keymap below. 90 | 91 | You need to flip the keymap in QMK to match the orientation of your board. If you have the right side setup with the TRRS on the left you'll need to reverse the keymap for that side. 92 | 93 | Add a new file to your keymap directory named `flip_keymap.h`: 94 | ``` 95 | #undef KEYMAP 96 | #define KEYMAP( \ 97 | k00, k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, k40, \ 98 | k10, k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, k50, \ 99 | k20, k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, k60, \ 100 | k30, k31, k32, k33, k34, k35, k75, k74, k73, k72, k71, k70 \ 101 | ) \ 102 | { \ 103 | { k00, k01, k02, k03, k04, k05 }, \ 104 | { k10, k11, k12, k13, k14, k15 }, \ 105 | { k20, k21, k22, k23, k24, k25 }, \ 106 | { k30, k31, k32, k33, k34, k35 }, \ 107 | { k40, k41, k42, k43, k44, k45 }, \ 108 | { k50, k51, k52, k53, k54, k55 }, \ 109 | { k60, k61, k62, k63, k64, k65 }, \ 110 | { k70, k71, k72, k73, k74, k75 } \ 111 | } 112 | ``` 113 | 114 | Then include this file at the top of `keymap.c` under `#include "lets_split.h"`: 115 | 116 | ``` 117 | #include "flip_keymap.h" 118 | ``` 119 | 120 | ### Your right side has the TRRS on the RIGHT and the keymap is reversed 121 | 122 | Use `rev2fliphalf` instead of `rev2` as the target. 123 | -------------------------------------------------------------------------------- /getting-pcbs.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | **Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* 4 | 5 | - [Getting the PCBs](#getting-the-pcbs) 6 | - [Buying today](#buying-today) 7 | - [Ordering PCBs using Gerber files](#ordering-pcbs-using-gerber-files) 8 | - [History](#history) 9 | - [Helpful references](#helpful-references) 10 | 11 | 12 | 13 | # Getting the PCBs 14 | 15 | ## Buying today 16 | 17 | **If you're getting the V2 boards:** 18 | - [beekeeb.com](https://beekeeb.com/lets-split-v2-pcbs/) 19 | - [mehkee.com](https://mehkee.com/products/lets-split-pcb?variant=44914069775) 20 | - [smashingacrylics.co.uk](https://smashingacrylics.co.uk/product/lets-split-pcb-kits/) (kit) 21 | - [spacecat.design](https://spacecat.design/products/lets-split-pcbs) 22 | - [switchtop.com](http://www.switchtop.com/product/let-s-split-40-percent-pcb) 23 | - Join a group buy ([obligatory PSA](https://www.reddit.com/r/MechanicalKeyboards/wiki/psagroupbuys)) like /u/DeductiveMonkee's [group buy](https://www.reddit.com/r/mechmarket/comments/5ti0g4/gb_lets_split_kits/) (blue PCBs) 24 | - Buy one on [mechmarket](https://www.reddit.com/r/mechmarket/) 25 | - Print your own using the Gerber files from /u/wootpatoot's [let-s-split-v2 github](https://github.com/climbalima/let-s-Split-v2) repo. 26 | 27 | **If you're getting the Kailh socket boards** 28 | - You can make your own using the files from Duckles [socket branch](https://github.com/Duckle29/let-s-Split-v2/tree/socket-reverseable) 29 | - There have been hinting at some store maybe carring the PCBs in the future. Stick around. 30 | 31 | 32 | ## Ordering PCBs using Gerber files 33 | 34 | - Navigate to the [zipped gerber files](https://github.com/climbalima/let-s-Split-v2/blob/master/lets_split/lets%20split/lets%20split.zip) and click DOWNLOAD 35 | - Select the PCB manufacturer based on price using [PCBShopper](http://pcbshopper.com/) or [read more about your options](https://www.reddit.com/r/electronics/wiki/pcb-manufacturers) 36 | - if asked, this is a 2 layer board and the size of the PCB is 112.3mm x 79.2mm (4.42in x 3.12in) for the V2, and 114.25mm x 82mm for the socket version. 37 | - for most cases the default options (color usually defaults to green) is what you want, as it's the cheapest. 38 | - PCB thickness should be 1.6mm 39 | - Surface finish can be anything they offer, usually leaded HASL is cheapest, meaning Hot Air Solder Leveled, and leaded meaing they've used leaded solder. 40 | 41 | ## History 42 | 43 | The let's split v2 PCBs were [sold in Dec 2016](https://www.reddit.com/r/MechanicalKeyboards/comments/5gbp3l/buying_lets_split_40_pcbs_from_uwootpatoot/) by [switchtop](http://www.switchtop.com/product/let-s-split-40-percent-pcb) for $10/pair. They were black. Since then, they sold out quickly, and were [restocked once](https://www.reddit.com/r/mechmarket/comments/5l3ds5/vendor_lets_split_40_pcbs_restocked_at_switchtop/). 44 | 45 | The Let's split socket PCBs were [sold in a groupbuy](https://www.reddit.com/r/MechanicalKeyboards/comments/7cu03j/interest_check_update_lets_split_kailh_socket/) by SmuttenDK in Nov 2017 for $30/pair including connectors, sockets and diodes. 46 | 47 | ## Helpful references 48 | 49 | - [similar easyEDA instructions for order the Gerkin keyboard](http://www.40percent.club/2017/03/ordering-pcb.html) 50 | -------------------------------------------------------------------------------- /images/push-button_direction.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nicinabox/lets-split-guide/adab7307f9d3ecf6701774b7d6e346b50329f227/images/push-button_direction.jpg -------------------------------------------------------------------------------- /images/rst_left.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nicinabox/lets-split-guide/adab7307f9d3ecf6701774b7d6e346b50329f227/images/rst_left.jpg -------------------------------------------------------------------------------- /images/rst_right.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nicinabox/lets-split-guide/adab7307f9d3ecf6701774b7d6e346b50329f227/images/rst_right.jpg -------------------------------------------------------------------------------- /images/rst_right_profile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nicinabox/lets-split-guide/adab7307f9d3ecf6701774b7d6e346b50329f227/images/rst_right_profile.jpg -------------------------------------------------------------------------------- /images/socket-version/diodes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nicinabox/lets-split-guide/adab7307f9d3ecf6701774b7d6e346b50329f227/images/socket-version/diodes.jpg -------------------------------------------------------------------------------- /images/socket-version/shorten-headers/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nicinabox/lets-split-guide/adab7307f9d3ecf6701774b7d6e346b50329f227/images/socket-version/shorten-headers/1.png -------------------------------------------------------------------------------- /images/socket-version/shorten-headers/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nicinabox/lets-split-guide/adab7307f9d3ecf6701774b7d6e346b50329f227/images/socket-version/shorten-headers/2.png -------------------------------------------------------------------------------- /images/socket-version/shorten-headers/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nicinabox/lets-split-guide/adab7307f9d3ecf6701774b7d6e346b50329f227/images/socket-version/shorten-headers/3.png -------------------------------------------------------------------------------- /images/socket-version/shorten-headers/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nicinabox/lets-split-guide/adab7307f9d3ecf6701774b7d6e346b50329f227/images/socket-version/shorten-headers/4.png -------------------------------------------------------------------------------- /images/socket-version/sockets.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nicinabox/lets-split-guide/adab7307f9d3ecf6701774b7d6e346b50329f227/images/socket-version/sockets.jpg -------------------------------------------------------------------------------- /images/speaker.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nicinabox/lets-split-guide/adab7307f9d3ecf6701774b7d6e346b50329f227/images/speaker.jpg -------------------------------------------------------------------------------- /reset-buttons.md: -------------------------------------------------------------------------------- 1 | # Reset Buttons 2 | 3 | 4 | 5 | 6 | 7 | - [Parts](#parts) 8 | - [Assembly](#assembly) 9 | 10 | 11 | 12 | It can be useful to set the Pro Micro in boot loader mode to upload new firmware. This is done by connecting the _Reset_ pin to ground. To simplify this a push button can be connected to _RST_ and _GND_ on each Pro Micro. 13 | 14 | ## Parts 15 | 16 | - [ ] 2 [Tactile Push Button Switch Momentary Tact 6x6x5mm DIP Through-Hole 4pin](https://www.aliexpress.com/item/100pcs-Tactile-Push-Button-Switch-Momentary-Tact-6x6x5mm-DIP-Through-Hole-4pin/1405424572.html?spm=a2g0s.9042311.0.0.27424c4dcX98gi) 17 | - [ ] 4 Diod legs 18 | 19 | ## Assembly 20 | 21 | First verify how to connect the push buttons. The ones in the parts list connects the two pins one each end of the two lines. 22 | 23 | ![](images/push-button_direction.jpg) 24 | 25 | If you bend the two unused legs a bit towards the middle, they will rest against the PCB. Use the diod legs to extend the push button legs directly to the Pro Micro. Since the Pro Micros are mounted different ways the two push buttons both will face right, see the images. 26 | 27 | **Right Hand** 28 | 29 | ![Right Hand reset button](images/rst_right.jpg) 30 | 31 | **Left Hand (before the diod legs have been trimmed)** 32 | 33 | ![Left Hand reset button](images/rst_left.jpg) 34 | 35 | **Right Hand in profile** 36 | 37 | ![Right Hand in profile](images/rst_right_profile.jpg) 38 | -------------------------------------------------------------------------------- /rgb-underglow.md: -------------------------------------------------------------------------------- 1 | # RGB Underglow 2 | 3 | ![](http://i.imgur.com/qFXhuu1.jpg) 4 | 5 | 6 | 7 | 8 | 9 | - [Parts](#parts) 10 | - [Prep the strips](#prep-the-strips) 11 | - [Prep the wire](#prep-the-wire) 12 | - [Connect to the Pro Micro](#connect-to-the-pro-micro) 13 | - [Sync across sides](#sync-across-sides) 14 | - [QMK](#qmk) 15 | 16 | 17 | 18 | ## Parts 19 | 20 | - [ ] [WS2812 LED strip](https://www.sparkfun.com/products/12025) 21 | - [ ] 24 AWG (or smaller) stranded wire (white, red, black are good choices) 22 | 23 | The WS2812B strip is also fine, but avoid the sealed waterproof one for keyboards. 24 | 25 | Look for a strip with spaced, 3-pad connectors. When you cut between them the pads are bigger and it's easier to solder to. Example: 26 | 27 | ![](http://i.imgur.com/bwrhq7p.jpg) 28 | 29 | ## Prep the strips 30 | 31 | 1. Cut 2 5-LED segments from the WS2812 strip (cut between the pads, or in the middle of the pads if you don't have a space between) 32 | 2. Fill the pads on both ends with solder like the picture below 33 | 34 | Avoid buying LED strips like this one where you cut the pad in half. There's just not much left to solder to, but it can be done. 35 | 36 | ![](http://i.imgur.com/70IHyql.jpg) 37 | 38 | ## Prep the wire 39 | 40 | 1. Cut **2 white**, **2 black**, and **3 red wires**, about 5cm (2in) in length (or just 7 pieces if you're using all the same color) 41 | 2. Strip the ends about 2-3mm 42 | 3. Solder the wires on output end of one strip and in input end of the other strip 43 | - White: VCC 44 | - Red: DIN/DO 45 | - Black: GND 46 | 47 | ## Connect to the Pro Micro 48 | 49 | Remember, current only flows one way through diodes so be sure you've got your LED strip in the correct orientation. 50 | 51 | Data goes like this: `--> Data In (DIN) --> Data Out (DO)` 52 | 53 | 1. Select the LED strip you connected wires to the output side. 54 | 2. On the Pro Micro you connect the USB cable to, connect LED **DIN to TX0 pin**. 55 | 56 | > *Tip:* You may need to adjust the length of some of your wiring so it routes snugly to the board. 57 | 58 | ![](https://i.imgur.com/PuChLyP.jpg) 59 | 60 | ## Sync across sides 61 | 62 | Remember those jumpers we did before below the TRRS jack? We're going to use the 3rd pad here. 63 | 64 | On the DO side of the controlled strip: 65 | 66 | 1. Connect LED **GND to GND pad** 67 | 2. Connect LED **VCC to VCC pad** 68 | 3. Connect **DO to Extra Data**. It's a through hole right between the VCC/GND pads. 69 | 70 | > *Tip:* These pads are pretty small so be careful not to mess up your jumpers. 71 | 72 | ![](http://i.imgur.com/qOv7qNQ.jpg) 73 | 74 | On the other side: 75 | 76 | 1. Connect to **VCC, GND, and Extra Data to DIN pad** on the strip. 77 | 2. Don't connect the DO side 78 | 79 | ![](http://i.imgur.com/1IKhZG5.jpg) 80 | 81 | Your wiring should look like this: 82 | 83 | ``` 84 | TX0 -> DIN -> DO -> extra data -> (TRRS to other side) -> extra data -> DIN 85 | ``` 86 | 87 | ![](https://i.imgur.com/zUnvcsr.jpg) 88 | 89 | Since ground and VCC are already routed to the TRRS jumper pads, the wires attached on the data out side will carry the power through the rails along to all the LEDs. Only the data in pad must be connected on the Pro Micro side. 90 | 91 | ## QMK 92 | 93 | - [QMK underglow docs](https://github.com/qmk/qmk_firmware/wiki#rgb-under-glow-mod) 94 | - [LS config for reference (recommended)](https://github.com/nicinabox/qmk_firmware/tree/nic/keyboards/lets_split/keymaps/nic) 95 | 96 | --- 97 | 98 | 1. Add a `Makefile` and `config.h` to your keymap if you don't already have one. 99 | 2. In the Makefile add `RGBLIGHT_ENABLE = yes` 100 | 3. Add a layer to control the RGB lights 101 | 4. In `config.h`: 102 | 103 | ``` 104 | #undef RGBLED_NUM 105 | #define RGBLIGHT_ANIMATIONS 106 | #define RGBLED_NUM 10 107 | ``` 108 | 109 | Now flash that sucker and turn your lights on. 110 | -------------------------------------------------------------------------------- /speaker.md: -------------------------------------------------------------------------------- 1 | # Speaker 2 | 3 | 4 | 5 | 6 | 7 | - [Parts](#parts) 8 | - [Assembly](#assembly) 9 | - [Firmware](#firmware) 10 | 11 | 12 | 13 | ## Parts 14 | 15 | - [ ] 1 [Mini Plug Speaker](https://www.aliexpress.com/item/10Pcs-Mini-Plug-Speaker-For-PC-Interanal-BIOS-Computer-Motherboard-Mini-Onboard-Case-Buzzer-Board-Beep/32839787014.html?spm=a2g0s.9042311.0.0.27424c4d7dYByk) 16 | 17 | ## Assembly 18 | 19 | Cut off the connector and connect one wire from the mini speaker to pin 20 | _5 (C6)_ and the other to _GND_ on the master side. Depending on your case 21 | and how you position it, it might be necessary to remove the cap of the 22 | speaker to make it fit. Secure it with some tape or glue so it doesn't short 23 | circuit anything. 24 | 25 | **Speaker (Left Hand)** 26 | 27 | ![Speaker](images/speaker.jpg) 28 | 29 | ## Firmware 30 | 31 | In QMK you need to enable audio `AUDIO_ENABLE = yes` and `#define C6_AUDIO`, 32 | see [Documentation: QMK Firmware - Audio](https://docs.qmk.fm/#/feature_audio). 33 | You can't both have [RBG Underglow](rgb-underglow.md) and _Audio_ enabled at 34 | the same time since the firmware will be to large to fit in a Pro Micro. 35 | -------------------------------------------------------------------------------- /troubleshooting.md: -------------------------------------------------------------------------------- 1 | # Troubleshooting 2 | 3 | 4 | 5 | 6 | 7 | - [Assembly](#assembly) 8 | - [Column 2 or column 5 doesn't work (under the controller)](#column-2-or-column-5-doesnt-work-under-the-controller) 9 | - [One side isn't working](#one-side-isnt-working) 10 | - [Multiple characters are output when pressing a single key](#multiple-characters-are-output-when-pressing-a-single-key) 11 | - [A single key doesn't work](#a-single-key-doesnt-work) 12 | - [Flashing](#flashing) 13 | - [Programmer not responding](#programmer-not-responding) 14 | - [Can't open device](#cant-open-device) 15 | - [Your right side has the TRRS on the LEFT and the keymap is reversed](#your-right-side-has-the-trrs-on-the-left-and-the-keymap-is-reversed) 16 | - [Your right side has the TRRS on the RIGHT and the keymap is reversed](#your-right-side-has-the-trrs-on-the-right-and-the-keymap-is-reversed) 17 | 18 | 19 | 20 | ## Assembly 21 | 22 | ### Column 2 or column 5 doesn't work (under the controller) 23 | 24 | If you're having trouble with a dead column right over your Pro Micro it could be that you've got a short from the switch pins. Try to get under there and bend them down. 25 | 26 | ### One side isn't working 27 | 28 | - Double check your jumpers are bridged correctly. 29 | - Make sure J1 on the Pro Micro is **not** bridged. 30 | - Make sure you're using a TRRS cable, not a TRS cable. 31 | - Make sure your Pro Micros are in the correct orientation. 32 | 33 | ### Multiple characters are output when pressing a single key 34 | 35 | This usually happens when something is connected that shouldn't be. Check your controller pins and header pins for possible bridging. Check your wiring around the affected column for possible shorts. 36 | 37 | ### A single key doesn't work 38 | 39 | You probably soldered a diode on backwards. Check the diodes near the non-working key. 40 | 41 | ## Flashing 42 | 43 | ### Programmer not responding 44 | 45 | The controller isn't in bootloader mode. You may have missed the 8 second window to flash. 46 | 47 | ### Can't open device 48 | 49 | This can be caused by many different things: 50 | * The serial port you specified isn't the one the controller is using. 51 | * You don't have permissions to access the serial port the controller is using. 52 | * On linux, this can be rectified by adding yourself to the dialout group. Run `sudo usermod -a -G dialout $USER`, then log out and log back in. 53 | 54 | ### Your right side has the TRRS on the LEFT and the keymap is reversed 55 | TODO: Confirm that this information is still relevant. Changes in QMK may have made this obsolete. 56 | 57 | You need to flip the keymap in QMK to match the orientation of your board. If you have the right side setup with the TRRS on the left you'll need to reverse the keymap for that side. 58 | 59 | Add a new file to your keymap directory named `flip_keymap.h`: 60 | ``` 61 | #undef KEYMAP 62 | #define KEYMAP( \ 63 | k00, k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, k40, \ 64 | k10, k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, k50, \ 65 | k20, k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, k60, \ 66 | k30, k31, k32, k33, k34, k35, k75, k74, k73, k72, k71, k70 \ 67 | ) \ 68 | { \ 69 | { k00, k01, k02, k03, k04, k05 }, \ 70 | { k10, k11, k12, k13, k14, k15 }, \ 71 | { k20, k21, k22, k23, k24, k25 }, \ 72 | { k30, k31, k32, k33, k34, k35 }, \ 73 | { k40, k41, k42, k43, k44, k45 }, \ 74 | { k50, k51, k52, k53, k54, k55 }, \ 75 | { k60, k61, k62, k63, k64, k65 }, \ 76 | { k70, k71, k72, k73, k74, k75 } \ 77 | } 78 | ``` 79 | 80 | Then include this file at the top of `keymap.c`: 81 | 82 | ```diff 83 | + #include "flip_keymap.h" 84 | #include "lets_split.h" 85 | ``` 86 | 87 | ### Your right side has the TRRS on the RIGHT and the keymap is reversed 88 | TODO: Confirm that this information is still relevant. Changes in QMK may have made this obsolete. 89 | 90 | Use `KEYMAP_FLIP` in your keymap.c 91 | --------------------------------------------------------------------------------