Coder Social home page Coder Social logo

ergomax's Introduction

Ergomax Keyboard

ErgoMax

The ErgoMax is a split ergonomic keyboard.

It is based on the ErgoDox, a popular split ergonomic keyboard (learn more).

Its main features/differences are:

  • extra top row for F1-F12 keys
  • hot-swappable switches
  • uses 2 ProMicro controllers (one for each side)
  • QMK firmware
  • 2 versions of the PCBs:
    • a reversible left+right combined
    • 2 separate PCBs, one for each side
  • either side can be master/slave
  • both sides can be master (both sides need to be connected via USB in that case), allow for a 1 side only setup
  • 2 input pins left (perfect for a rotary encoder!)
  • DIY friendly: it's really super easy to assemble yourself. The hardest part is probably the ProMicro. But it's still very accessible for beginners.
  • multi layer acrylic case

Layout

While a lot of mechanical keyboard users seem to prefer simplistic, minimal keyboards, the ErgoMax goes the opposite way.

The layout is the same as the ErgoDox, with an extra top row for F1 to F12 keys, adding more room for activities.

Here's an example:

ergomax-default -layout

Hotswap - change switches whenever you want

The keyboard PCB has been designed to use Kailh MX hotswap sockets. You won't be able to solder the switches directly on the PCBs, you must use Kaihl MX sockets.

Switches will plug into the sockets, meaning no solder required for them, and most importantly, meaning that you can remove them and change them easily (hence the hotswap...).

Controller

Each side of the keyboard is controlled via a ProMicro, which is a cheap, small Arduino compatible board running on an ATmega32u4.

The 2 sides can be connected via a 3.5mm jack, just like the original ErgoDox. However, as the 2 sides possess their own ProMicro, that means they can also be working totally independently if needed.

There are 2 pins free on each of the ProMicros, which can be used for whatever you want. I believe it would be possible to drive a RGB strip from it, since it requires only 1 drive pin (you would need to get GND and +5V from somewhere on the PCB). I was able to use both pins to add a rotary encoder.

Jack connector

I tried to use the same 3.5mm TRRS jack socket as the original ErgoDox, which is a CP-43514. But it's not super common, so I changed it for a PJ320A (same as MJ-4PP-9).

Firmware

Check the guides

Third Party Libraries

We are using several libraries in this project.

3D models

Kicad can generate nice 3D previews of PCBs and their components.

As we're using components that are not included in KiCad 3d templates, you'll need to add the next models into your KiCad template folder. On Windows, it's C:\Users\YOURNAME\kicad\template, on OSX it's /Users/YOURNAME/kicad/template. If the folder doesn't exist, create it.

The 3D models of the hotswap sockets can be found there: https://github.com/qmk/qmk_hardware. Copy kailh_socket_mx.stp into your KiCad template folder.

I couldn't find a 3D model for the PJ320A jack connector. The closest I found is this https://www.cui.com/product/resource/3dmodel/sj2-3574a-smt-tr, which gives a good preview of a real PJ320A. Copy CUI_SJ2-3574A-SMT-TR.step into your KiCad template folder.

I modified this MX Switch 3D model https://grabcad.com/library/cherry-mx-switches-mx-1 and included it in the libs/3dmodels folder of the project as MX-clean-ergomax.step.

I also modified a 2U stabilizer model that I found there https://grabcad.com/library/cherry-mx-stabilizer-mx-1. The file is also included in the libs/3dmodels folder of the project as Stabilizer-closed-ergomax.step.

I once again modified a ProMicro 3D model https://grabcad.com/library/arduino-pro-micro-1. The file is called Pro-micro-clean-ergomax.step and is stored in libs/3dmodels.

Print the PCBs

Here are some manufacturers that can print PCBs for you. They are not in any particular order and I don't have any partnership of any sort either.

Assembly

Check the guides

Case

See Case readme

ergomax's People

Contributors

benmmclean avatar louwii 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  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  avatar  avatar

ergomax's Issues

VIA Support

While i found a mention of the right half supporting VIA, the software3 doesn't seem to recognize either half of the keyboard.

Are there any steps required except for adding the via_right.json?

Also it seems kbfirmwarebuilder reach EOL, which might make VIA or a keymap.json for QMK configurator a good addition to the repo.

Thank you in advance :)

Soldering Tips / Suggestions - Reversible PCB

Has anyone built the keyboard using reversible PCB?
Would be great if you can share some helpful tips.

To keep the pricing low and nobody to share the cost of PCB printing, I decided to go this route of printing reversible boards. Only after the prints were delivered, l found out that the component markings are only visible on one side.

PXL_20230127_212327464

By now you'd already know my level of skills with electronics, lol. I want to do my best efforts in 1st attempt as redoing would be a whole new level of complexity for me.

Any help or tips are welcome.

Side note - I am located in Vancouver, BC region and have spare prints in case interested in building this KB. We can split the cost, saves you printing and shipping time.

Thank you.

Question: switch plate needed?

Hi, I love this layout and am planning to order parts and give it a shot. I'm considering it a prototyping effort to find zero-in on the right switch and layout, so am planning to do a minimal build without a case.

One question: do the MX switches stay secure enough in the socket for daily use without a switch plate securing them? The Gerber file doesn't have an FR4 switch plate so hoping this is the case.

Case Information

A friend of mine wants my help building this board and i'm a little lost on the case part of the keyboard.

The included STEP / STL file would be suitable for 3D printing if i'm not mistaken, but it seems to be lacking the cutouts for the connectors, if i assume correctly.

On the acrlyic version i fail to understand if multiple middle layers are needed to acommodate the distance between switches and PCB, or alternatively a thicker middle part.

Sorry to bug if those are things that should be self-explanatory.

Thanks :)

kbfirmware.com warning: 'Not every key has a unique position in the wiring matrix.'

I'm in the process of mapping keys and ran into a problem.

I grabbed raw data from http://www.keyboard-layout-editor.com/#/gists/19051a469164c7ed1d6c813b2fb81ad2 and loaded it up in https://kbfirmware.com, then started changing some keys. I'm ready to test out the result, but can't download the firmware, which seems to be due to the following error:

Not every key has a unique position in the wiring matrix.

Any idea how I might fix this?

[question] Does the PCB work with Kailh Low Profile Choc Switches?

Hi there,

I am new to the whole mechanical keyboard topic so maybe this question is a bit stupid, but I wanted to ask if the PCB is compatible with Kailh Low Profile Choc Switches? I want to use those and find the extra F-keys on this layout intriguing.

Thanks in advance

Ground plane is disconnected on reversible PCB

First off, great project! This board is exactly what I was looking for.

On the reversible PCB, the ground plane is not connected to the microcontroller. This condition allows each half to operate individually but they cannot operate together over a TRRS cable, as the microcontrollers will not share a ground. This could be fixed by adding a ground plane on both sides of the PCB.

Having assembled the board, everything else appears to function correctly (although it would be nice to have a 5 pin switch footprint).

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.