Iet uz failu
2023-02-16 07:59:19 +01:00
cherry-mx-keycaps@41dce8f91c Tests 2018-01-21 13:13:43 +01:00
cherry_caps Tests 2018-01-21 13:13:43 +01:00
docs Add newer enclosure 2023-02-16 07:59:19 +01:00
enclosure_v2 STL 2020-09-26 12:37:35 +02:00
enclosure_v3 Add newer enclosure 2023-02-16 07:59:19 +01:00
firmware/dashie_keys Some updates 2021-08-10 07:34:10 +02:00
Keebio-Parts.pretty@c7ae3b4467 Initiate PCB_V4; Add submodule for SK6812MINI-E 2021-07-27 21:28:32 +02:00
KiCAD-Keyboard-Tutorial@db52954a98 Re-route with a new footprint; Good clearances; Re-generate gerbers 2018-01-23 17:23:17 +01:00
pcb_v2 Fix paths 2020-09-21 15:49:58 +02:00
pcb_v3 Routing done 2021-07-28 12:55:54 +02:00
pcb_v4 Routing done 2021-07-28 12:55:54 +02:00
teensy.pretty@ab50abcedb update submodules 2021-07-27 21:40:50 +02:00
teensy_library@57ff217e97 update submodules 2021-07-27 21:40:50 +02:00
.gitignore Update PCB, Add RTC battery holder 2018-01-21 18:49:21 +01:00
.gitmodules Initiate PCB_V4; Add submodule for SK6812MINI-E 2021-07-27 21:28:32 +02:00
Cherry_MX_SK6812_BS.kicad_mod Initiate V3 2020-05-26 08:09:40 +02:00
README.md Add newer enclosure 2023-02-16 07:59:19 +01:00

Dashie Keys

A custom ortholinear keyboard running on a Teensy, QMK firmware, and Cherry MX switches.

Pictures

V2 left, V3 right.

v2 v2

Features

  • Total : 92 keys
    • A-Z, 1-9, ,./\ etc. : 47
    • Modifiers (ctrl, start, altLR, shiftLR, tab, backspace, del, esc) : 11
    • Enter : 1
    • Space : 1
    • Navigation (<>V^, home, end, pg up down) : 8
    • Fx : 12
    • Special keys : 12

From my tastes:

  • clear : 60
    • normals, space, Fx
  • brown : 20
    • modifiers, navigation, enter
  • grey : 12
    • specials

You can choose differents feelings for the keys, you only need "PCB Mount" ones.

Revisions

Global notes

Appliable to V2 and V3

Case fit both revisions, mounting holes are at the same place.

The schematics does have row1 to row8 but in fact the PCB is, from top to bottom: row8, row1 ... row7.

The schematics haven't been updated for this change, which have been done while routing the board, the bottom row was put on the top for a better layout arrangement, sorry.

The keyboard-layout json and builder reflects properly this change.

V1

This one is accessible through a git tag.

NOT suitable for use.

First revision with some issues:

  • D48 is close to MK5 and may touch
  • lot of vias for ground plane stitching are very close to diodes or plated holes
  • D_1206 from KiCad libraries are made for reflow soldering, a bit tricky by hand, but it can be done slowly and carefuly

V2

See the pcb_v2 folder.

Suitable for use with a simple fix.

V2: Notes / Fixes

PD6 does have the builtin LED, causing some issues.

Cut track between D6 and the switch pin and connect that pin to E0.

E0 is pin number 11 from the right when you have the side with keys in front of you.

v2_track_fix

V2: BOM

Qty Value Package Parts Description
92 1N4148 1206 D1 to D92 100V 0.15A standard switching diode
2 Conn_01x04 Socket_Strip_Straight_1x04_Pitch2.54mm J2 J3 Generic connector, single row, 01x04
1 Conn_01x02 Socket_Strip_Straight_1x02_Pitch2.54mm J1 Generic connector, single row, 01x02
92 SW_Push SW_Cherry_MX1A_1.00u_PCB SW1 to SW92 Cherry MX switches
88 Cherry Caps SW1 to SW92 except SW42, 48, 55, 70 Cherry MX '1u' caps
3 Cherry Caps SW42, 48, 55 Cherry MX '2u' vertical caps
1 Cherry Caps SW70 Cherry MX '6.25u' spacebar cap
5 SW_Push SW_PUSH_6mm SW96 to SW100 Push button switch, generic
1 Teensy 2.0++ U1 Teensy 2.0++ only

V3

See the pcb_v3 folder.

Suitable for use with a simple fix.

V3: Notes / Fixes

The DATA line for the LEDS is missing a resistor, it is possible to cut the track, remove copper around, and solder an SMD one.

Use an ~300OHM resistor. (for now, final value to be defined)

v3_data_led_r

The silkscreen labels for INTernal and EXTernal power is reversed. When looking from the top, INT is 1-2 and EXT is 2-3.

V3: BOM

Qty Value Package Parts Description
92 1N4148 1206 D1 to D92 100V 0.15A standard switching diode
2 Conn_01x04 Socket_Strip_Straight_1x04_Pitch2.54mm J2 J3 Generic connector, single row, 01x04
1 Conn_01x02 Socket_Strip_Straight_1x02_Pitch2.54mm J1 Generic connector, single row, 01x02
92 SW_Push SW_Cherry_MX1A_1.00u_PCB SW1 to SW92 Cherry MX switches
88 Cherry Caps SW1 to SW92 except SW42, 48, 55, 70 Cherry MX '1u' caps
3 Cherry Caps SW42, 48, 55 Cherry MX '2u' vertical caps
1 Cherry Caps SW70 Cherry MX '6.25u' spacebar cap
5 SW_Push SW_PUSH_6mm SW96 to SW100 Push button switch, generic
1 Teensy 2.0++ U1 Teensy 2.0++ only
93 SK6812MINI D99 to D192 Only the MINI one !!! See building docs.

Features

Display

Handled by firmware, display various states (Base or Func layer, RGB/leds status) and a scrolling otter when unused for some time.

You can wire directly one of the cheap OLED displays with 4 pins, they just has to have the same pinout.

v3_header_display

Either solder an header to the PCB, then solder the module directly, making it static, but beware or not soldering it not parallel.

Or you can use as pictured a female and male headers and make it removable for testing or anything else.

SPI

Not handled by the firmware, but an SPI header is available.

External LED power

Two headers are available:

  • One for providing external 5V (GND and +5V)
  • One jumper to switch from external 5V or internal (USB powered)

Depending on the brightness and number of leds powered, they can use up to 2A, so external power might be advised.

v3_header_ext_led_pwr

From the left:

  • +5V EXT, GND: Uses this to powers the leds with a higher power source than USB.
  • EXT, COMM, INT: Uses this to select between internal or external power for the leds.
Programming button

Can be accessed from the top, will reset the Teensy and put it in PROGRAMMING mode.

v3_btn_rst

Extra UI buttons

Set of 6 micro-switches that could be used for the display or anything else.

They are on the last row, so they can trigger custom functions, RGB stuff, etc.

v3_btn_ui

TrackPoint header

A header for a possible trackpoint/other is provided.

Not yet handled by the firmware and not idea if it will ever be.

V4

Planned.

  • 32 bit teensy because of soon-EOL of the actual one used
  • SK6812MINI-E instead of SK6812MINI (because of pins, easier to solder)
  • handsoldering diode footprint (will just ease a bit the soldering)
  • Fix INT/EXT labels

Building documentation

Switches to use

You can use Cherry MX or Gateron or any switch that are "Cherry-MX compatible" footprint.

You will want PCB Mount keys instead of Plate Mount, PCB Mount ones have extras pins to avoid rotation.

PCB Mount:

sw_pcb_mount

Plate Mount:

sw_plate_mount

Key caps

They are standard Cherry MX compatible keycaps.

I ordered from WASD Keyboards :

  • 3x Numpad "Enter" Cherry MX Keycap (R1 2x1.00)
  • Arrow Keys Cherry MX Keycap Set
  • Row 1, Size 1x1 Cherry MX Keycap (R1 1x1)
  • 104-Key Custom Cherry MX Keycap Set (with custom layout file: docs/wasd-104-keys-template.svg)

Diodes soldering

Please be aware of the orientation to solder them, good one is:

diodes_orientation

Put a small blob of solder on one pad, then melt it and bring the diode with tweezers, then add a blob on the other side.

Leds soldering

NOTE ! SK6812MINI-E is not compatible with V3 PCB.

For both V2 and V3 you need SK6812MINI leds, they are put from the bottom.

Be aware of the alignment of the dot vs the big pad on the led:

led_soldering_orientation

The rows are inverted one of two, dot top-left, then bottom-right, then top-left etc.

You should put the led with tweezers in the hole, make sure it is flat-ish on the surface, then with a like ~1cm² flat object press the led even more in the hole.

After that you can solder, put a little blob on the pad of the led then drag onto the PCB, or from the PCB par to the led, best works for you.

Beware that blobs short forms easily.

Also very important note: NEVER USE LEAD-FREE SOLDER !!!

Thoses LEDs cannot AT ALL be soldered at >300°C, you will literally fries them by the tons.

I used an old roll of leaded-solder and my iron at around 225°C and it was fine but still, don't put too much heat on them, be quick.

Just put a whole row of leds, press them, then solder one pad of the first, switch to the next, and at the end, go back to the beginning and solder another pad etc.

The led "strip" can be tested with an Arduino and Adafruit NeoPixels lib for easy check of issues between the soldering of the rows. (that's what I did by batch of 5 leds)

Firmware

It use QMK firmware, the firmware is unified for all keyboard revs through a config setting when building.

git clone https://github.com/qmk/qmk_firmware/
cd qmk_firmware
make git-submodule
cp -r ~/where/is/dashie-keys/firmware/dashie_keys keyboards/
# edit file keyboards/dashie_keys/rules.mk
# especially to choose V2 or V3 keyboard
# then
qmk compile -kb dashie_keys -km default

Then use any Teensy flasher to flash dashie_keys_default.hex.

rev3 menu keys

Menu keys default:

                        hue++    N/A
rgb++    rgb_mode_++
                        sat++    N/A

Menu keys with Fn key:

                        N/A    N/A
rgb_togg    N/A
                        N/A    N/A
  • rgb++: Increase LED brightness, use shift to decrease
  • rgb_mode_++: Switch to next RGB mode, use shift to switch to previous
  • hue++: Increase LED hue, use shift to decrease
  • sat++: Increase LED saturation, use shift to decrease

Firmware special features

There a function key right under ctrl, bottom left of keyboard

I have a "save" icon on my left CTRL key, doing func+ctrl will trigger a CTRL+s

The keyboard can emulate mouse movements and btns:

  • func+arrow keys: move mouse
  • func+home: left click
  • func+end: right click

There is some multimedia keys too, check keyboard layout

Enclosure

All enclosures are compatible with all PCBs revisions, mounting spacing are all the sames, see this file for dimensions.

The latest enclosure is the v3, the following is provided:

  • FreeCAD source
  • Export of various elements in .3mf format for slicers

The enclosure won't fit on standard bed, use your slicer settings to cut the case somewhere arround the left of the middle plot row (see pictures).

Then print, put USB cable in hole and holder, slide populated PCB and screw (TBD screw size).

I have printed mine in 0.20mm layer height and PLA, uses supports everywhere for the overhang on top of the PCB.

enclosure v3 enclosure v3 cable enclosure v3 slicer

Made With

  • KiCAD EDA
    • Version 5.x and higher. Format isn't compatible with KiCAD 4.x. PCB V4 is >7.
  • FreeCAD
    • 0.20.2 and higher, for the enclosure.

Author

Inspiration and sources

License

Schematics and PCB under MIT. Firmware under GPL2, same as QMK firmware. Cherry_MX_SK6812_BS.kicad_mod is from https://draconix.demuddi.de/2019/12/02/kicad-cherrymx-digital-rgb-footprint/