Giter Site home page Giter Site logo

binarykeyboard's Introduction

binarykeyboard's People

Contributors

chris-johnston avatar dtwilliamson avatar jpf 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

binarykeyboard's Issues

Why?

Just this simple question: which is the goal of this project?

Keyswitch source and part number

My Google-fu has failed me. Could you add a part number and source for the keyswitches you used?

This is a beautiful project!

Looking for Design Input

Now that I've been able to come back to this project, there are a few outstanding issues that need to be addressed. I've heard from a few that they'd be interested in seeing this project as a kit, but there are a few things I want to sort out beforehand.

I would appreciate any opinions on how I should move forward in continuing to design this. The goal is to make this approachable for newcomers who want to try it, and possibly get this ready to be manufactured and bundled with all the required parts as a DIY kit. It should be compatible with the current Arduino code, and down the line also compatible with the QMK firmware (see branch: 865c18a , PR #7 ).

Choice of Microcontroller
I've been considering a few different options.

  • ATTiny85. Small and cheap, but with a limited amount of memory and I/O, I don't think you can even load QMK firmware on it. Probably doesn't work for this purpose.
  • Knockoff Pro Micro. These are also very cheap, at around ($3-5) a piece. They offer more than what is needed in terms of I/O. Their onboard LEDS are a bit too bright and get annoying, and there is no reset switch. If this is used with QMK, re-flashing would probably require a jumper (which I could add to the PCB).
  • Teensy 2.0. These are common among custom DIY keyboards, so there's plenty of support. You could re-use these as long as you have female headers. They are also smaller than the pro micro. The price at around $20 per unit is the biggest factor here, I think that hurts the "novelty" nature of the idea.
  • Get some ATMega32u4's as surface mount components and put it right on the board. This would be great, but sounds tricky. I want something that's going to be reliable and easy to build.

Display / No Display / RGB LEDs
While those SSD1306 displays are cool, there are other options that can be used.

  • Keep the OLED display from the original keyboard. This allows for animations and other stuff. Modifying the QMK firmware to support it appears possible (it's been a while since I've tried last), but might be tricky. Also, finding a library that has a license I can use. Designing a board and case may be tricky.
  • Use 8 surface mount LEDs, or a package containing 8 surface mount LEDs, like this:
    image of the 8 led package I refer to This would work, but wouldn't be as fun.
  • Use 8 RGB NeoPixel LEDs. This works with QMK and could also support other patterns, should this end up repurposed as a macro pad. PCB space is limited, so positioning 8 of these LEDs in such a small space may be tricky. They are also very bright to stare at directly at full brightness.

Board Layout
I've been experimenting with different layouts and board sizes.

  • The smallest, most compact design has the keys on the top, microcontroller (pro micro) underneath around the keys, and the display hanging off of the top. I've assembled a version of this and it's ok when handheld, but is a bit too light to have on a desk, it gets pulled away from the cable. The downside to this is a somewhat awkward shape, and it's tricky to put together. Getting to the contacts under the microcontroller is a pain. The small board size means that manufacturing cost (PCBWay for cheaper, larger qty, OshPark for faster but more expensive) is reduced.
    • square board design
  • A larger, roomier design that allows for easier modification (and will probably be easier to design a case for). The biggest downside to this is the cost, but should be fine as long as it is relatively small. This version has the screen (attached via female headers) hanging over the microcontroller (a teensy in this case), but it can be moved around.
    • larger board design

Other things left to do

  • Look into designing the board as a single side, so that it can be etched DIY.
  • I should probably redo the board in KiCAD, due to licensing reasons.
    • I need to find or design my own cherry MX profile, the one I've used has the LEDs in the wrong position and only works if they are bent into place.
    • I need to make a better SSD1306 part than what I have right now
  • I need to get a working modification of the QMK firmware that supports the SSD 1306 display.
    • I need to find a library that I can use for the SSD 1306 display w/ QMK.
  • Finalize parts list.

Direction of typing

"Each bit is typed out from the least significant bit to the most significant bit (left to right)."

I may be misunderstanding (in which case just ignore) but shouldn't that be right to left?

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.