Coder Social home page Coder Social logo

uhk60v1-electronics's Introduction

Ultimate Hacking Keyboard electronics

Changelog #186

Contained are the schematics and board layout KiCad files for the Ultimate Hacking Keyboard.

Please make sure to clone this repo with:

git clone --recursive https://github.com/UltimateHackingKeyboard/uhk60v1-electronics.git

Now, you should be able to open any of the 4 KiCad projects of the repo:

  • left-main contains main PCB of left keyboard half.
  • right-main contains the main PCB of the right keyboard half.
  • display contains the PCB that interfaces our custom manufactured LED segment display with the left main PCB.
  • connectors are very small PCBs that are soldered vertically to the left and right main circuit boards to interconnect the keyboard halves without needing a bridge cable.

uhk60v1-electronics's People

Contributors

adamstac avatar ferdymercury avatar ipanti avatar mondalaci avatar spuder 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

uhk60v1-electronics's Issues

Travis script throwing error

I'm trying to use the travis diff script and it's throwing error:
root@12ba8a8b9dbe:/kicad# ./generate-png-diff.sh
Copying 187bd8e:drone-kicad-sample.kicad_pcb to ./plot/187bd8e/
Kicad files saved to: './plot/current' and './plot/187bd8e'
Converting ./plot/current/drone-kicad-sample.kicad_pcb to .pdf: Files will be saved to /tmp/pdf
Traceback (most recent call last):
File "/tmp/plot_board.py", line 172, in
popt.SetColor(YELLOW)
NameError: name 'YELLOW' is not defined
Converting ./plot/187bd8e/drone-kicad-sample.kicad_pcb to .pdf's Files will be saved to /tmp/pdf
Traceback (most recent call last):
File "/tmp/plot_board.py", line 172, in
popt.SetColor(YELLOW)
NameError: name 'YELLOW' is not defined

Replace 6P4C connectors with 4P4C

Replace 6P4C connectors with 4P4C. Make sure that the chosen connector and the wall of the case leaves enough space for the clip so that it can be pressed. Also, 4P4C probably almost always uses reverse wiring!

Create 4 layer versions of the left and right PCBs

Hopefully, #32 will resolve the EMC issues, and we'll pass the next EMC test with flying colors, but we can't be sure. At this point, we want to put the UHK to market as soon as possible, so as a safety measure, we will design 4 layer versions of the left and right PCBs. On the upcoming EMC test, we'll give a whirl to both versions and pick the 4 layer version if necessary.

After finalizing the left and right boards, the left-main directory should be copied as left-main-4-layers and right-main as right-main-4-layers, then the 4 layer versions should be redesigned accordingly. The middle layers should exclusively contain GND and VCC.

Where do you get the libraries from?

I know you are really busy, so I'll try and be as self sufficient as possible.

I'm updating the readme with instructions so others can easily contribute. There are 3 libraries required

  • special
  • opendous
  • uhk libs

I've figured out how to install opendous and the uhk libs, but even after a couple hours of searching, I can't find the 'special' library

screen shot 2015-12-12 at 7 48 11 pm

Do you know where that library is located? Once I find it I'll document it so others can find it.

Create automated system to compare kicad diffs

When a new merge request is made. Use travis-ci to generate gerbers/pdf/png files and then use linux compare to generate a visual diff.

http://www.evilmadscientist.com/2011/improving-open-source-hardware-visual-diffs/

https://github.com/blairbonnett-mirrors/kicad/blob/master/demos/python_scripts_examples/plot_board.py

  • Create travis config file
  • Create scripts to generate diffs based off of plot_board.py
  • Create aws account to upload artifacts to s3

You can assign this to me as I'm currently working on it.

Version 2?

Would it be possible to the V2 versions of the schematics?

USB line impedance seems to be really bad

In the PCB production version the USB signals are of very low quality. That probably explains some of the USB issues I have seen over the last months using my two UHKs.

UHK-USB-signal

In this capture, a reference signal (orange) is compared to the UHKs signal (yellow). An impedance mismatch is obvious. The signal corresponds to a UHK keyboard with stock USB cable connected to a USB port with an immediate transceiver. When connecting other devices to this setup, the signal looks almost like the reference.

I have a few suggestions for the next PCB revision (if there will be one, which I really hope):

  • check USB design guidelines and trace impedance, esp. for any specifics for the microcontroller used. ( https://www.nxp.com/docs/en/supporting-information/Universal-Serial-Bus-Training.pdf )
  • avoid layer hops whereever possible. at first glance, it seems feasible to move C13, R3 and D14 to the top layer and reroute the USB trace along their old position. that would reduce via-count by two per trace.
  • avoid dangling traces. currently there are traces going from the USB port J1 north to the board edge. these are probably for electrical testing, QA and firmware flashing? maybe for these two a simple bed of nails and two in-line testbeds can be used? -- I just tested cutting off these traces, without any visible impact. so that probably is not not neccessary at 12MHz.

I know that these recommendations are coming very late and that you very likely already know about these issues and have thought about how to fix those, if ever. But I was missing any reference on the USB issues I have seen and thought that there should be at least a ticket on this.

Just for completeness, here are a few things I have seen over the last month:

  • Linux: plenty of bursts of "hid-generic 0003:051D:0002.0006: control queue full" in dmesg. those come all day long. (thats probably a software/firmware bug, but I am not sure)
  • when booting up, I sometimes had the problem that the system does not start properly at all. it just hangs in the bios. seems to have gotten better by using a USB hub inbetween.
  • random USB disconnects and reconnects (only rarely)

Protect against reverse polarity bridge cables

Creating custom bridge cables is a possibility, and it's easy to overlook the wiring resulting in reverse-wired bridge cables that can damage the electronics. In order to avoid possible damages, we'll implement reverse voltage protection using the following schematic:

16395482_1558662690814872_999438713_n

The above circuit should be added right between FB1 and C6 according to the following schematic:

untitled

Replace 5 pin TVS array footprints with 6 pin footprints

6 pin TVS arrays (SC-74, SOT-223-6, 6-TSSOP) are much more prevalent than 5 pin TVS arrays (SC-74A, SOT-223-5), and they're backwards compatible with 5 pin footprints, so this will enable us to choose a wider variety of parts.

Change MKL03Z8VFK4 to MKL03Z32VFK4

We'll be using the MKL03Z32VFK4 MCU instead of the current MKL03Z8VFK4. It's the exact same MCU in every respect but it has 32K flash instead of 8K. A new schematic part should be cloned from the old MCU accordingly, so its name would reflect the name of the new MCU. The new schematic part will have to be added to the ugl-kicad-lib repo.

Cherry MX LED lights

Allow modders to use cherry mx switches with LEDs

  • Update library to use cherry mx pinout with led holes. example done: UltimateHackingKeyboard/ugl-kicad-lib#2
  • Choose a led driver that handles PWM
  • Determine if sufficient pins available on the AtMega for led driver
  • Design charlieplexing matrix

Optional features

  • Software defined brightness, [like code keyboard https://codekeyboards.com/])
  • Individually toggle buttons (caps lock, num lock)

Related #13

Use larger pitch components?

Look into the possiblity of using larger pitch components so that we could could make our manufacturing tolerances less strict resulting in lower prices and increased yield

Reverse 4P4C connector pins

Currently, the wiring of the bridge cable is backwards, so we should reverse the wiring of either the left or right 4P4C connector.

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.