• Stars
    star
    113
  • Rank 310,115 (Top 7 %)
  • Language
  • License
    Other
  • Created over 3 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A wireless ergonomic keyboard

Osprey

The Osprey is a column staggered 40% wireless ergonomic keyboard. PCB and 3D-printable case are both open source (CERN OHL Permissive), and so is the software (MIT) as it is designed to run the ZMK firmware.

Entire board Entire PCB PCB detail Plate with caps and PCB

The board was designed to be an elegant and sleek unibody keyboard, without sacrificing typing comfort or portability. While the enclosure has raised edges to hide the keyswitches for a more refined look, it is still as slim as possible with Choc v1 switches, leading to a total thickness of about 16 mm from bottom to keycap top, if used with MBK keycaps.

The PCB is "floating" inside the case and the switches are held in-place by a 1.2 mm FR4 plate, which is sandwiched between case top and bottom half.

Hardware

The Rev A is the first board in the Osprey family, using an nRF52840 chip, running in full DC-DC mode for highest possible battery life. A Texas Instruments BQ24075 battery management chip ensures reliable charging, while a MAX17048 fuel gauge allows for accurate battery status measurements which are communicated to your PC via Bluetooth.

The PCB is designed for Kailh Choc v1, which can be hot-swapped, and does not need any stabilizers - the largest key is 1.5u for the thumbs.

The PCB has connectors to connect either an Alps RKJXU1210006 (also known as PSP-3000 thumbstick) or a Cirque TM023023 touchpad - Both are not yet supported firmware-side and by the case design, but the PCB is ready for either.

You will also need a 502030 battery (20 x 30 x 5 mm), which usually come between 200 and 250 mAh of capacity. The board uses a JST ACH low profile connector, so you will need either a JST ACH or Molex Pico EZmate cable to crimp/solder to the battery to connect it to the PCB - please be wary of the pinout and do not connect a wrong polarity battery, as that would destroy the PCB.

It was prototyped at PCBway and turned out great. Other manufacturers should be able to make sense of the files I attached and solder these PCBs, but it is untested so order there at your own risk.

Files needed for ordering the PCB:

Top side Bottom side

Files needed for ordering the plate:

Top side Bottom side

Enclosure

I have attached step and 3mf files of the latest enclosure prototype - the case is still work in progress, as it lacks capability of adding thumbstick or touchpad. It is, however, tested and works fine for regular keyboard use. The enclosure is designed for Ruthex M2 threaded inserts and M2x8 cylindrical head screws with flat TORX head (ISO 14580) - 9 piece each. 7 3M rubber bumpons with 7.9 mm diameter are used as feet. Other inserts, screws and bumpons may work but are untested.

Front side Rear side

Software

As mentioned earlier, the board is designed to run the open source ZMK firmware. My current firmware config can be found in my ZMK config repository. Since the MAX17048 needs a not-yet-merged pull request (and some manual fixes applied to it) it points towards a custom branch on a ZMK fork, not towards the official repository. This board can not (yet) be built from ZMK main branch. The current version is broken and softbricks the board!

I am using an Adafruit Bootloader, a readily compiled one can be downloaded from the github actions in my fork of their repository. This needs to be flashed with a J-Link, Black Magic Probe or modified STlink v2 using a TC2030 flashing header.

Thanks

  • PCBWay for the top notch quality sponsored PCBs - couldn't have done it without you!
  • propagandalf for the 3D printed cases - thank you very much!

More Repositories

1

marbastlib

A library collecting MX and Choc style footprints, as well as various other parts used to design custom keyboards
Shell
347
star
2

zmk-designguide

A short hardware-designguide for ZMK keyboards
310
star
3

isometria-75

Minimalist 75% ISO keyboard
214
star
4

E80-1800

QMK compatible PCB replacement for Cherry G80-1800
72
star
5

unified-usb-pcb

USB-C daughterboards for mechanical keyboards, with or without battery management
48
star
6

kicad-keyboard-parts.pretty

various kicad symbols/footprints for mechanical keyboard design
21
star
7

cornholius

ZMK-based replacement PCB for Cornelius keyboard
11
star
8

tracespace-sh-wrapper

Simple shell script to automate the use of tracespace-cli
Shell
8
star
9

UnMechanical

Capacitive touch keyboard running QMK firmware
7
star
10

zmk-config

My ZMK board configs
CMake
5
star
11

connect-traces

A simple KiCAD plugin to connect two random traces
Python
4
star
12

logo-branding.pretty

Repo to manage logos in one place for use in PCB projects
3
star
13

Junsi-106b-XT60-modification

All the necessary 3d models as well as a short buildlog on how to modify a Junsi 106b+ charger to XT60 plugs as input and output.
2
star
14

AVR-RGBWA-Controller

Schematics, board layouts and C code for a simple red, green, blue, cold white and warm white (amber) LED strip controller.
C
2
star
15

ebastler-kicad-repository

A collection of my KiCAD libraries.
Python
2
star
16

junsi-icharger-pylogger

Python script to log data from junsi icharger LiPo charger models
Python
2
star
17

e3pb

Ender 3 printbed/heating element united in a single PCB
2
star
18

ledctrl

Wifi-Enabled 6ch PWM controller for LED stripes, based on ESP32C6
2
star
19

Visualising-Van-Ecks-sequence

A short implementation of the Van Ecks sequence in R in order to plot the value distribution
R
1
star
20

brickcontroller

ESP32 based PCB to control LED-bricks
1
star