Giter Site home page Giter Site logo

split-ortholinear's Introduction

Table of Contents

{:toc}

Form Factor Research

Before I started on my journey, I had to do some research on just what type of keyboard I would like to build. I had three main criteria:

  1. size: I had grown fond of the compact sizes on r/mechanicalkeyboards and would like to keep the board as smal as would still be practical
  2. cost: I did not want my first foray into mechanical keyboards to cost me a fortune as I would just be trying it out.
  3. cool factor: I didn't want it to just be any old keyboard.

I ended up settling on a split 75% ortho handwired (similar to let's split only with a number row.) with an acrylic mounting and base plate separated by pcb standoffs.

[{a:7},"~","1","2","3","4","5",{x:1},"6","7","8","9","0","Num Lock"],
["Tab","Q","W","E","R","T",{x:1},"Y","U","I","O","P","Back Space"],
["Esc","A","S","D","F","G",{x:1},"H","J","K","L",";","'"],
["Shift","Z","X","C","V","B",{x:1},"N","M",",",".","/","Return"],
["Fn","Ctrl","Alt","Super","⇓","Shift",{x:1},"Space","⇑","←","↓","↑","→"]

Componenents

Case and Plate

The case and plate where generated using swillkb builder I had the case and plate laser cut in 3mm acrylic by my uncle. who graciously didn't charge me.

plate

BOM

Cost

Store Cost
Bangood cart R1450
Aliexpress (just caps) R223
Total R1673

Ciruit Diagrams

Keyboard Firmware Builder proved extremely helpful in working out the layout for this build.

Build Log

hot glue

After Installing the switches and soldering everything in place I realized the switches do not clip in properly to a 3mm plate (1.6mm is the required thickness from the switches datasheet) but a thinner acrylic plate would have way too much flex. The issue this cause was that removingkeycaps would rip out the switch and undo all the hard work that went into soldering. The only solution I could come up with was to hot glue everything in place from unmderneath. I tried my best to be neat and keep the hotglue where the keycaps would cover it.

communication between the two halves

I opted for I2C over a TRRS cable. This required me to solder 2 pull up 4k7 ohm resistors on the sda and scl lines (pin 2 and pin 3). You can see a schematic below.

I2C wiring

firmware

this is how I wired my rows and columns to the Pro-Micro

rows:  
0=b5
1=b4
2=e6
3=d7
4=c6

cols:
0=b6
1=b2
2=b3
3=b1
4=f7
5=f6

For the firmware I initially tried using the Nyquist firmware but ran into issues, I ended up using the Let's Split firmware in the handwire folder and adding a row and adjusting the layout.

These articles helped me to build/flash the pro micros.

  1. qmk building firmware
  2. qmk lets split flashing

NOTE: In order to flash the promicro you should begin flashing on the computer then bridge the GND and RST (ground and reset) pins on the pro micro (or press the reset swiitch if your board has one.)

You also have to flash both pro micros.

6.4. Adding VIA support

After a while I discovered the amazing VIA software and decided to try add support for my build. I followed along with this stream by mechmerlin

although following the documentation on caniusevia.com also proved helpful

I ended up completely rewriting the qmk firmware and removed the rev1/ and rev2/ folders so the firmware is overall much simpler.

After flashing both promicros with this new firmware you should be able to import the via.json file into VIA and the board should be detected.

I have also included a much nicer via layout in the via folder on the github repo for this project

Final Thoughts/Review

Problems that arose

The soldering went quite smoothly apart from the fact that my iron has a really short cable and I ended up using my left hand to solder which resulted in a few burns. I also may have melted the switch housings on a few of the switches when my iron was set too hot (I think I saw it suggested to use 325C and mine was set to 400C)

The firmware was more of a problem since my row and column pins were different than what would be on the nyquist PCB. This meant that I could not use the online configurator and I had to figure out how qmk works. I also didn't bother trying to get it all working on windows and just used my linux laptop to do all the programming and flashing.

All things considered It was quite smooth sailing and the keyboard was up and running in 2 days (4 hours assembly and the rest debugging).

My keycaps also got delayed in post so the keyboard sat on my desk for a few more weeks before I could fully test drive it.

improvements for future

for future builds I may opt for a pcb not because handwiring is difficult but because having the switches be pcb mounted would add to stability without the use of hot glue. the handwirted board looks kinda messy

I have seen cool stuff done using fr4 plates and bottoms this would allow the entire board to be made with the pcb. If I have the plates made using JLCPCB or something similar this could bring the cost down a bit compared to purchasing a pcb and having it shipped.

If I do not adapt to the split I may try my hand at building a plank as they are also a little more portable. If I do not adapt the ortholinear layout I may try a columnar stagger or regular stagger board again (this compact "full" size board has caught my attention).

Some Photos

laser cut plates

soldering

first half done including microcontroller and trrs jack

assembled with bottom (no keycaps yet)

on the desk (still no keycaps ๐Ÿ˜ข)

References

Useful links

handwired qmk guide

9.3. Links that were useful during the build

split-ortholinear's People

Contributors

kevontheweb avatar

Stargazers

Eher avatar

Watchers

 avatar

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.