https://github.com/dschil138/Fulcrum Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code + Explore + All features + Documentation + GitHub Skills + Blog * Solutions + For + Enterprise + Teams + Startups + Education + By Solution + CI/CD & Automation + DevOps + DevSecOps + Case Studies + Customer Stories + Resources * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles + Repositories + Topics + Trending + Collections * Pricing [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} dschil138 / Fulcrum Public * Notifications * Fork 4 * Star 196 The Fulcrum Keyboard is an ergo-mechanical split keyboard with extra thumb functionality. It has 20 keys, two rotary encoders, and two 5-way switches. 196 stars 4 forks Star Notifications * Code * Issues 1 * Pull requests 0 * Actions * Projects 0 * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Security * Insights dschil138/Fulcrum This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 2 branches 0 tags Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/d] Use Git or checkout with SVN using the web URL. [gh repo clone dschil] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @dschil138 dschil138 update README ... bc9fc54 Feb 5, 2023 update README bc9fc54 Git stats * 79 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time STLs update case STLs and add 5x3 beta firmware February 1, 2023 14:08 photos update case STLs and add 5x3 beta firmware February 1, 2023 14:08 src update case STLs and add 5x3 beta firmware February 1, 2023 14:08 .gitignore Add 5x6 files, walnut table photos and edit README January 31, 2023 14:37 README.md update README February 5, 2023 15:56 View code [ ] Leverage the power of opposable thumbs Keyboard Features 5-Way Switch Thumb Joysticks Combos Word Keys Optional Key Risers Rotary Encoders [?] Build Guide Version Files BOM Wiring Placing The Joysticks Hotswap Sockets Layer Keymaps README.md Fulcrum Keyboard Logo Leverage the power of opposable thumbs The Fulcrum is a wireless ergonomic keyboard that features 5-way switch joysticks, which are mounted horizontally to take advantage your thumb's natural range of motion. It runs KMK circuitpython firmware on an nRF52840 microcontroller. There are currently two versions of the Fulcrum: the 20-key version pictured here, and a 40-key version pictured farther below. (These key counts do not include the 5-way switches.) Photo of the Fulcrum Keyboard Keyboard Features 5-Way Switch Thumb Joysticks Our thumbs are criminally underutilized on regular keyboards. Your two most capable fingers, both regulated to just one key - the space bar. Many ergonomic keyboards try to rectify this problem by giving each thumb several keys. This is an improvement, but most people quickly find that it is actually quite difficult for your thumb to stretch over multiple keys and hit something accurately, let alone comfortably. More inefficency! So what's going on with our phones? Look at how well we use our thumbs to type there. On a smartphone, our thumbs are fast, accurate, and dexterous. Incredibly efficient. What's the disconnect? Why are they so nimble over there, and so lumbering and inaccurate on our keyboards? The disconnect is that our thumbs are opposable, but for some reason our keyboards keep insisting on giving them the same type of key as our other fingers. Our thumbs want to move in a different direction! The 5-way switch joysticks on the Fulcrum are mounted sideways, allowing you to use your thumbs in a dimension that is more similar to how they move when you type on a smartphone. This immediately feels comfortable and natural, because it is how you already use your thumbs most other parts of your daily life. Photo of the Fulcrum Keyboard With the regular key switch placed below joystick, this actually puts six different actions at the tip of each thumb with very minimal movement. Most importantly, all of these actions are easily paired with other key presses elsewhere on the keyboard. Note Useful tips to help you choose what functions to assign to the joysticks: 1. Pressing "down" (towards the desk) on the joystick should be a layer switch when held. This is because it is the easiest motion to hold & press other keys. 2. Mod-Tap works well on them, so consider a "hold" & "tap" key for each 3. The first few times you use them, you may find it hard to not move the whole board around a bit when pressing certain directions. This will go away after a day or two of getting used to the movements. Thumb joystick on 20 key Fulcrum Combos A combo is when you press two or more keys at the same time to output a different key. The 20-key version of this keyboard uses a significant number of combos. You don't have to keep them all, but some are important. Here is a guide to most of the important combos. They are generally split into combos that output words, and combos that output keys or actions (like "delete"). Important Combos Diagram Note If you want to add more combos, you will need to delete some that are already defined, as the firmware is basically operating at its limit right now. Thumb joystick on 20 key Fulcrum Word Keys Combos are great, but sometimes it's also nice to just press one key and output multiple. We type the words "[INS:the:INS]" and "[INS:and:INS]" a lot. Even more-so if you include when they appear as a part of another word ( [INS:the:INS]m, [INS:the:INS]y, ano[INS:the:INS]r). So this keyboard just gives them their own keys! It's funny, we never question giving Z or Q their own key, but the trigram "the" is more common than either of those letters (2-3 times as common!). Using a single key to type "the" just makes sense. Optional Key Risers Most keys have optional risers to help them conform to the shape of your hand. Every key gets them except the thumb keys and the bottom two middle finger keys. The top middle finger key gets a slanted riser. Photo of the Fulcrum Keyboard Detail To use them, print the top plate of the case as normal, and superglue the risers on top. The switches should friction fit into the risers. Note The four thumb keys are low profile choc switches, as opposed to the rest which are MX. This is to accommodate the fact that your thumb sits on lower plane than the rest of your fingers, helping to further reduce hand strain. The custom angled keycaps for the thumb keys can be found in the STLs folder. Thumb joystick on 20 key Fulcrum Rotary Encoders By default, the left rotary encoder scrubs through history (undo/ redo) and the right side controls volume. Some other uses include tab switching, scrolling, and tool adjustment in apps like photoshop. Similarly to the key risers, the encoders use a slanted riser to tilt the encoders into a more ergonomic position. [?] Build Guide Thumb joystick on 20 key Fulcrum Version Files There are currently two versions of the Fulcrum - the 20-key version you see in most of the photos above, and a 40-key version pictured below. 40 key version This repo contains the STLs and firmware files for both versions. The 40-key version is newer - the keymap layouts are not as well-developed. But it is fully functional! (NOTE: there is now a 36-key "beta" version as well) Thumb joystick on 20 key Fulcrum BOM Part Quantity Notes nRF52840 1 Recommended: Adafruit nRF52340 Itsy Bitsy or Microcontroller Feather version. Choc key 4 For thumb keys switches MX key switches 16 (36 if making the 40% version) For non-thumb keys 1N4148 Diodes 22 (42 for the 40% version) Only one is needed for each 5-way switch Rotary Encoders 2 Recommended: EC11, but you do you - These are cheap and ubiquitous 5-Way Switches 2 - SKRHACE010 are better (lower operateing force & rated for longer use) On/Off switch 1 USB-C Breakout 1 (optional) Board Lipo battery 1 At least 500 mAh, this thing chews batteries TP4056 Lipo Not needed if your microcontroller has Charger 1 built-in lipo charging, like the Feather nRF52840 Wire Recommend 30AWG or 28AWG Thumb joystick on 20 key Fulcrum Wiring While this is a split keyboard, I have chosen to hard-wire the halves together. You can follow my wiring if you'd like, or if you want to use a TRRS cable to connect the halves, KMK does offer I2C connection functionality. Note that the top key is wired as if it were part of the thumb key row. Wiring Diagram Thumb joystick on 20 key Fulcrum Placing The Joysticks The 5-way switches are mounted using an angled platform. It consists of two pieces which clamp around the base of the switch. The whole assembly is then superglued to the top of the case. There is no precise place to glue this little platform. There is meant to be flexibility there so that you can mount it where it feels comfortable to you. You may want to consider lengthening or shortening the joystick as well, with a longer joystick providing extra leverage on the switch. There is a small hole in the bottom of the platform piece. When you find the placement of the switch that you want, drill a small hole in the top of the main case to line up with that hole so you can feed the wires through. They connect into the rest of the matrix as if they were regular keys. Hotswap Sockets There is no PCB for this keyboard, it is a hand-wired build. But of course we all still want to be able to swap out different switches. So I've made printable hot-swap socket holders that allow you to do that. You can find the MX & Choc versions here --------------------------------------------------------------------- Thumb joystick on 20 key Fulcrum Layer Keymaps (blank spaces on joystick directions inherit the key from the previous layer) All Fulcrum Layers About The Fulcrum Keyboard is an ergo-mechanical split keyboard with extra thumb functionality. It has 20 keys, two rotary encoders, and two 5-way switches. Topics keyboard keyboard-layout mechanical-keyboard circuitpython nrf52840 split-keyboard ergonomic-keyboard wireless-keyboard kmk-firmware ergomechkeyboards Resources Readme Stars 196 stars Watchers 4 watching Forks 4 forks Releases No releases published Packages 0 No packages published Languages * Python 100.0% Footer (c) 2023 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.