Coder Social home page Coder Social logo

nickcoutsos / dactyl-deskmount Goto Github PK

View Code? Open in Web Editor NEW
65.0 4.0 3.0 4.09 MB

A dactyl inspired ergonomic keyboard attached to the front of my desk for a lower profile and more desk space.

OpenSCAD 99.21% Shell 0.79%
dactyl ergonomic-keyboard low-profile split-keyboard

dactyl-deskmount's Introduction

dactyl-deskmount


dactyl-deskmount.jpg

(3D Preview of assembled keyboard)

(More photos of the finished product)

Goal

Essentially, make a variant of the dactyl-keyboard that doesn't impose significant extra height above my desk surface.

I previously designed and built the "dactyl-flatpacked", a Dactyl made from slotted acrylic pieces instead of 3D printed, and ended up loving the keyboard. Like most non-planar keyboards it has an issue with overall height. The lowest row requires my wrist/palm needs to clear around 4cm, and unfortunate combinations of desk-chair-user height can exacerbate things. Ultimately it has taught me to properly float my wrists while typing, but I still wanted to see what else could be done.

Another goal I had was to have a pure and simple OpenSCAD version of the dactyl that wouldn't require the complexity of compiling and executing Clojure to generate unreadable OpenSCAD code. This part started out pretty well but over time I got tired of limitations around code organization and stopped trying so hard to keep features modular while still having something aesthetically pleasing.

I still stand by working directly in OpenSCAD, but if I were to start over or dedicate significant time to refactoring I would look into more of the community OpenSCAD libraries for things like generating hulls from profiles instead of mimicking triangle hulls and such that I saw in the origin dactyl code.

Inspiration

Through the mechanical keyboard subreddit I came across a couple of keyboard mounting designs that helped me see the possibility of using ball-and-socket mounts.

ElliotCable: Ergovox

This ergodox keyboard uses RAM mounts screwed into the bottom of a standing desk allowing for a fully vertical (or any angle, really) keyboard orientation.

Martin Körner: Georgi stand with trackball

This georgi uses ball camera mounts attached to a tripod, removing the desktop from the equation altogether. With the tripod you can precisely control height and the trackball mount is a nice bonus as well.

Design Considerations

Desk mounted via clamps

The tripod stand is cool but I work at a desk. Unfortunately when I'm in the office it isn't my desk so stability is sacrificed to avoid drilling holes.

Camera ball mounts

I don't want to go to all the trouble of building a keyboard only to wonder if a steeper tenting angle would be better. I also get to control the pitch and yaw if I like. I had a lot of misgivings about this. Ideally it would be positioned so that the majority of the the force put into the keyboard goes straight through the ball to avoid torque causing the ball to slip.

Unfortunately putting the ball mount directly underneath my hand would take up room underneath the keyboard and cause problems for the sitting position. I made the concession of offsetting the mount a little with the hope that by the time I begin to see obvious slippage I will have found an angle I like and print static arms to clamp onto my desk. Worst case scenario, I can print a more traditional base and use the keyboard on my desktop like an animal.

Keycaps and layout

I use choc low-profile switches because I had them leftover from an earlier iteration I didn't end up liking. I designed and printed custom variations of the 2u keycaps (because, quite simply, I like the Dactyl's thumb cluster) and deep-dished homing keycaps.

The same positioning algorithm from the original Dactyl is used but with a slight outward pivot of the pinky columns, and removed keys:

  • no number row because I hate it
  • pinky keys removed from row 4

Were I a braver person I would remove even more keys (the entire pinky columns) and learn to love QMK combos but I never properly made sense of the config options like PERMISSIVE_HOLD and IGNORE_MOD_TAP_INTERRUPT which made for a bad experience in the past.

LEDs

I want to have visual indicators for things like Caps Lock (because I find caps lock useful) and potentially notifications pushed from the host via Raw HID. Admittedly I do think a few subtle lights can add to the keyboard's aesthetics.

Mounting hardware

  • 3d printed desk clamps
    • I include a cutout for 1/4"x5/16" tee-nut.
    • a 1/4"-20 x 1 1/4" hex bolt (with 3d printed knob and swivel plate) are used for tightening.
  • 1/4" ball mount (I used a ball mount tripod adapter from AliExpress)
    • This attaches to my 3d printed clamp via a couple of m4 screws
  • 3d printed keyboard bottom mount attached to the top of the ball mount via another tee-nut.
    • at the beginning I set out to use heat-set inserts like I've seen on many other projects but couldn't find a source for the right kind in a useful quantity.
    • I'm finding tee-nuts to be incredibly useful in 3d printed projects when I want to securely fasten things to a single screw.
  • 3d printed keyboard plate attaches to 3d printed mount via m3 screws.
    • the design uses three m3 mounting holes on the keyboard plate matching up with three holes on the mount (one on the far edge of the thumb cluster and two at the top and bottom of the index finger column).
    • there are two more unused screw holes on the pinky finger column in case I want to re-design a more robust bottom mount.
  • another 3d printed mount hanging underneath the thumb cluster holds a 24-pin wide IC socket for the pro micro controller. Ribbon cables conned the socket pins to the keyboard matrix and TRRS socket. A stripped micro USB connector connects from a sturdier micro USB socket breakout board to the pro micro.

Pre-rendered parts

All printable pieces are pre-rendered (for my specific setup) and available in outputs/pre-rendered/:

dactyl-deskmount's People

Contributors

nickcoutsos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

dactyl-deskmount's Issues

Build materials and keymaps

Kudos on the ingenuity of this project, it's a superb idea. I really like the caseless, multi-pronged mounting bracket and the custom arm mount.

  1. Do you have any recommended materials for the different printed components?
  2. I was going to use the default firmware provided under handwired/dacyl in the qmk repo and just add a custom keymap on top of that. Did you make any modifications to the firmware itself, or just the keymap? If so, can you share it?

Thanks!

are you open to commissions?

Dear Mr. Coutsos

Would you be open to a commission? I would be interested in the following

  • modifications of the design,
  • set of 3d printed parts
  • a completed keyboard

And if so how much would you charge and long would that take?

The design modification would be so that the thumb cluster would be removed and another one would be created in a different location.
my current thinking would be for it to be positioned below the index column.
It would be repositioned to be angled about 95° to 100° from the plate plane, like some kind of italic t, and it would be a 2 rows of 1.5 + 1 unit keys and a 1.5u key at the bottom about 100 degrees from the thumb plane.
Given my uncertainty with regard to the best placement and orientation for the thumb cluster i think the best thing would be If it was attached with a stiff but flexible wire of some kind on mounting points under the middle finger column.

please let me know if you would be interested in this commission.

Best regards,

Nicolas

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.