Git Product home page Git Product logo

kbic65's Introduction

KBIC65

A 65% mechanical keyboard with a ProMicro controller footprint. Repository contains KiCad PCB design files and 2D drawings in SVG of PCB, bottom plate, switch plate and acrylic window.

Bottom of keyboard has two alternatives. A design with glass rims inspired by my grandfather's glasses and a dithered image of the sun from the NASA Solar Dynamics Observatory. Included below is also a guide on creating dithered PCB art.

More photos

Main features/focus

  • Intended to be portable and wireless, but with a through-hole technology (THT) style
  • 65%/70 key layout with spaced arrow keys and right-side navigation row in the style of Satistifaction75 and many others
  • ProMicro footprint to allow upgrade of the microcontroller, intended to be used with the nice!nano and ZMK firmware for my personal build
  • Designed to be mountable in both an open PCB stack or in a plate-mounted case (not yet designed)
  • 8x9 wiring duplex matrix requiring only 17 pins on a ProMicro compatible controller

Some design choices

  • Reduced copper coverage on top of PCB and bottom plate, and no copper switch plate to improve Bluetooth signal
  • Plate mounted with screws, the PCB contains drilled holes large enough to fit M2 spacers. I.e. the PCB is only connected to the plate via the switches.
  • Tried to avoid vias, but have one (that I probably could have skipped)
  • Since the bottom is symmetrical, there are two alternative design two choose from

How to create your own

See the v1.0 release to find the files and list of parts to create your own.

  • Gerber zip-files are used to order the PCB, bottom plate and top plate from a PCB manufacturer, I used JLCPCB.
  • The acrylic window can be ordered from any laser cutting firm working with acrylic, I live in Sweden and used TechStation.
  • For keycaps, switches and ProMicro-compatible controller (possibly also diodes) use a keyboard company in your region, I got my keycaps from KBDfans, diodes from a local electronics supplier and the rest from Splitkb.
  • Screws and stand-offs can be sourced from various places but are probably easiest to find on AliExpress.

I do not have dedicated assembly instructions, but if you are comfortable soldering you can probably make do using my build log.

Firmware

I decided to use ZMK for my build of this keyboard. Compared to the most common open source mechanical keyboard firmware QMK, ZMK is tailored for wireless keyboards. The two main reasons you should care to use ZMK instead of a bluetooth QMK fork are (1) much better power efficiency, i.e. longer battery life, and (2) the most commonly used Bluetooth chip uses drivers that are not compatible with the QMK copyleft license.

You can find my ZMK shield for the KBIC65 in my ZMK config repository.

If you want to use a non-wireless controller (like a ProMicro, Elite-C etc.), I have created a QMK fork that has been tested on the KBIC65 using an Elite-C rev 4.

Layout options

Components

PCB Front

Plate

Bottom Option 1 (PCB Front)

Bottom Option 2 (PCB Back)

Making dithered PCB art for KiCad

When I decided to make an alternative design for the bottom I eventually settled on trying my hand at a dithered image. This was a little trickier than I expected to get looking like I wanted (and still not sure how the end result will appear).

But generally here is the workflow I used in the end, and would recommend

  • Settle on an image to use, crop it to only the part you want to place on the PCB. I settled on a NASA SDO image.

  • JLCPCB and probably other PCB manufacturers can print at a resolution of about 0.15 mm which is equivalent to about 169 DPI. This means you should try to use 169 DPI or less, I used 169 DPI. Resize your image so that the resolution of the image at your selected DPI gives you the size you want on the board. I wanted my sun to be approximately 90 mm high so I resized to 600px high, which results in an image 90.2 mm high at 169 DPI.

  • Use a dithering tool to dither your image and create a dithered copy. I strongly recommend Ditherlicious but you can look around for other tools you have handy.

  • Open your KiCad project and then open Convert Image, a.k.a. the bitmap2component tool.
  • Import your dithered image, select Negative if necessary, pick either Front Silk Screen or Front Solder Mask and enter your chosen DPI. Click export and put into a new folder that will become a new KiCad library for you.
  • In Pcbnew or your KiCad project, open Preferences > Manage footprint libraries
  • Add your new folder as a footprint library
  • Import your new PCB art footprint onto your PCB

  • Iterate, I played a lot with different dithering tools, changing the image histogram etc. The bitmap2component tool does not import dithered image exactly but blends pixels together, therefore I would recommend generating a few variants and comparing them in KiCad and possibly the 3D viewer. Please note that these images requires quite a bit of processing from KiCad. Updating the 3D view especially, which took about 1-2 min for me.

  • Final result after ordering from JLCPCB with black solder mask and ENIG finish

Comparison to similar keyboards

Discipline65

The Discipline65 is the original inspiration for this keyboard, along with the case making community that has been born around it. In the spirit of CFTKB the board design will also be open source.

Some of the main differences

  • KBIC65 will use a dedicated ProMicro footprint instead of all the THT components in the Discipline65, a believe this makes the board more easy to upgrade at the cost of losing some of the THT aesthetic.
  • The layers in the Discipline FR4 kit have the same outer dimension (excluding the top part of the plate), which is nice for a pure FR4-style keyboard but creates some limitations if one wants to create a case for it. The KBIC65 will have a minimal PCB given the layout (on the left, bottom and right sides) and a plate with overhang allowing for various types of plate-mounted case designs.
  • The PCB will have holes large enough to fit M2 spacers between THT row and the layout. This allows the FR4 kit-style assembly to have the PCB completely free-floating and only the switch plate connecting directly to the bottom plate.

Nibble65

The Nibble65 is another board inspired by the Discipline65. It has an additional column of keys on the left, allowing also for rotary encoders and the top of this column houses a ProMicro footprint.

Some differences

  • The Nibble65 has similar limitations to the Discipline65 in terms of case design compatibility
  • The Nibble65 uses multiplexers (I believe) to keep the PCB wiring simple and to add a bit to the THT aesthetic. The KBIC65 uses an efficient wiring matrix allowing for a full 65%/70 key layout without additional components.
  • The Nibble65 has an extra column to the left, housing a ProMicro-footprint, some extra keys as well as a multi-purpose section for either rotary encodes, giant LED or an OLED screen.

Possible future work

  • Non-metal case
  • Solar cell trickle charging panel instead of window
  • Remove unintended silk screen from front PCB glasses
  • Add holes for mounting a battery connector
  • Move JLCPCB production number location (or get it removed in production)
  • Change battery to something slightly thinner, sub-5 mm, but could be wider and longer than the current battery

FAQ

What does KBIC mean?

The original name KBIC65 is inspired by soldering and tinkering in my grandfather's workshop as a child and have named it with our combined initials KB and IC. But having spent quite a bit of time on making PCB art for the bottom of the keyboard based on an image from the NASA Solar Dynamics Observatory I am considering renaming it if I make anything more of it (or make a group buy at some point). I am open to name suggestions if you have one!

Why don't you just buy keyboard X? It is cheaper and simpler than designing this.

I am doing this as a side project for fun, and the learning experience, and definitely not for profit.

If you want a 65% keyboard with the THT aesthetic get a Discipline65. If you want a 65% for your nice!nano, get the Nibble65. If you just want something wireless but don't want to build it yourself, get a Keychron.

I really want to make one myself, can you please fix the remaining issues?

Maybe, if you have some experience or willingness to learn, fork this repo and try to fix it yourself (and maybe do a PR on the end result). If you don't have the experience or know-how, send me a message so I know someone actually wants it and I will consider fixing it when I have time.

This is just a rip-off of keyboard X. What gives?

I am trying to make my own thing but the design is of course heavily inspired by other keyboards, especially THT kits. Some honorable mentions

  • Nicell Dissatisfaction65 A very similar keyboard to what I am designing, by the creator of the nice!nano. This uses a lot of the "early" techniques for what I feel a wireless open-source firmware was in 2019-beginning of 2020 such as Adafruit Feather BLE with QMK, something that is much better done today with the nice!nano (and similar controllers) and the ZMK firmware. Nicell is the creator of the nice!nano and also very active in the ZMK project.

  • CannonKeys Satisfaction75 My original inspiration for the layout

  • CFTKB Discipline65 Original inspiration for the THT design and the idea to make an FR4 kit first and a case after. The open-source Kicad files have also been a good sanity check, plus it has beautiful wiring!

  • Nullbits Nibble65 A great take on the THT and would be my choice to buy if I didn't want to make something of my own but still make a nice!nano keyboard.

  • Lysol LCK75: No diode row but THT components otherwise and that arrow keys and navigation column stagger.

  • MujiManic Disarray65: Not exactly THT, but sooo much fun, beautiful wiring and one of the best case ideas ever. Case also comes in a version for the Discipline.

  • RMI-KB Herringbone75: A fun variant on the Mysterium 75.

  • u/emdarcher Lattice 60%: Definitely contender for most innovative diode placement among THT keyboards

  • theksmith Discipline65: Honorable mention on Discipline65 case design

  • 4Bar60 by u/struct_Nodes I found this keyboard in the middle of my PCB design but it is very similar to my intended design, except being a 60% of course.

  • WorldspawnsKeebs Houndstooth A split ortholinear 4x6 with a nice take on a clear case

  • Seoulcialite Argyle60 Great case for a THT kit and very interesting with side windows instead of placed above the key layout. Inspiration for moving the ProMicro footprint and diode row up 1/4 units to allow top case to have a divider between main layout and THT window.

  • EBastler Isometria75 Makes me want to try to change the key spacing on my keyboard, but I am unfortunately not brave enough.

kbic65's People

Contributors

b-karl 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

Watchers

 avatar  avatar  avatar  avatar

kbic65's Issues

QMK firmware port? and some other questions

Hello! I really liked your work, I'm thinking about building one for myself, but getting nice!nano controller is harder and more expensive in my country, so I'm thinking of using promicro for the build, should it work? (with ZMK and the board itself), I have no programming background so I have no idea on how to look at the firmware, so it would be nice if there is also QMK firmware for this keyboard

and is there anything should I do on JLCPCB besides providing all the gerber zips (plate, bottom plate, and pcb) to order all the necessary plates? (I have never ordered a pcb before)

Thank you!

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.