Skip to content

Releases: rgoulter/keyboard-labs

WABBLE-60: 5x12 Ortholinear, BLE, RISC-V-powered Adaptation of peej's Lumberjack PCB

26 Jul 07:58
Compare
Choose a tag to compare

WABBLE-60: 5x12 Ortholinear, BLE, RISC-V-powered Adaptation of peej's Lumberjack PCB

A keyboard using the WeAct BLE core board.

WeAct's BLE core board is significantly cheaper than the more popular nice!nano BLE board.

The PCB design resembles peej's lumberjack-keyboard, and mounts into GH-60 compatible cases like the Lumberjack; however, the WeAct BLE core board uses a much more powerful MCU than the Lumberjack's 8-bit ATMega328P.

The WABBLE-60 PCB includes LiPo charging.

Design goals:

  • Using WeAct BLE core board. (BLE! RISC-V-powered!).
  • Adapt the Lumberjack design.
    • In a "show the components" style.
    • Fits in tray-mount GH60 case.
    • (Relatively) easy to solder.

Pictures:

WABBLE-60.

2D Renders of the PCB, revision rev2024.2

Build Guides and Release Assets

Firmware

There are few options for keyboard firmware for the WeAct BLE core board;
and what options there exist are not very mature.

There is a port of QMK to the CH582,
but as far as I'm aware, it's USB-only, and its BLE-implementation is not
public.
I wrote about my experience writing firmware with this port.
I've put the code for the WABBLE-60 in my qmk_port_ch5xx fork.

Kirei, from the same author as fak supports the CH58x.

I recorded a video demonstrating 110 WPM using a BLE connection.
Though, at the time of writing, Kirei's BLE implementation is not yet mature;
I've had trouble using the BLE keyboard on some platforms.

Like fak, Kirei's keymaps are declared in Nickel.
Kirei's keymap language is more expressive than fak's.
Here's an example of a non-trivial keymap written for Kirei.
I've put the code for the WABBLE-60 in my kirei fork.

Besides these options, ch32-rs has a work-in-progress HAL for CH58x. Its examples include a bare-bones BLE Peripheral.

WCH's EVT has many examples for the CH58x (including USB HID Keyboard, USB+BLE, BLE HID, BLE Central+Peripheral, BLE OTA
IAP).

WeAct also have a BLE core board which uses CH592. However, the CH592 has even less support than the CH58x.

CH552-48-LPR: Low-Budget PCBA with Low Profile Redragon Switches

22 Jan 09:25
Compare
Choose a tag to compare

CH552-48-LPR: Low-Budget PCBA with Low Profile Redragon Switches

Variation of the CH552-48 which uses Redragon low profile switches.

Redragon low profile switches are significantly cheaper than other low profile switches,
especially the popular Kailh Choc v1 switches.

Height varies depending on keycap profile. The distance between the top of the
PCB and the top of the keycap is around 11mm for Redragon low profile switches
with low profile keycaps. (In comparison, the same measurement is 10-11mm for
Kailh Choc v1, and about 20mm for MX).

Unlike MX switches (where switches from different manufacturers will have compatible pin positions),
different "low profile" switches have different pin positions from each other.
So, to use Redragon "low profile" switches, you need a PCB designed for Redragon low profile switches.

The KiCad footprint I used for this design can be found under pcb/ in this repository.

Redragon switches support keycaps with MX stems, unlike Kailh Choc v1.
Albeit, general MX keycap profiles (e.g. XDA) are NOT fully compatible with "low profile" switches,
since the bottom of the keycap bottoms-out below where a switch plate sits.
Instead, "low profile" switches with MX stems need 'slim' keycaps, such as NuPhy's or womier's, etc.

Since the Redragon low profile switches have 3-pins, it's best to assemble the keyboard using a switch plate
(e.g. a lasercut 1.0mm metal plate). Pictures below show what a build without a plate looks like.

Design goals:

  • A keyboard that uses Redragon low profile switches.

Pictures:

CH552-48-LPR in a JJ40 low profile aluminium case.

CH552-48-LPR in a sandwich style case.

Underside of the CH552-48-LPR in a sandwich style case.

Switches mounted to the PCB without a plate.

Unsoldered underside of the PCB, with switches mounted in a plate.

2D Renders of the PCB, revision rev2023.1

Firmware

Same as for the CH552-48.

Firmware: NCL files provided under ncl/ at https://github.com/rgoulter/fak

(NOTE: for flashing new firmware, on Windows, I recommend the official WCHISPTool. For flashing using open-source software, it's much easier to flash firmware onto the CH552 from Linux, e.g. docs/guide-liveiso-flashing-fak.md).

Plates and Cases

A bottom plate can be used to protect the components underneath the PCB.

Source files for plates to cut can be found under cad/ in this repository.

PyKey40 HSRGB: 4x12 Ortholinear with HotSwap and RGB in BM40/JJ40 Form-Factor

18 Jan 06:52
Compare
Choose a tag to compare

PyKey40 HSRGB: 4x12 Ortholinear with HotSwap and RGB in BM40/JJ40 Form-Factor

A 4x12 ortholinear with hotswap sockets, and per-key RGB and underglow, using the RP2040 MCU, with mounts compatible with the JJ40/BM40.

Design goals:

  • Fancy features: hotswap sockets, RGB.

  • Same mounting holes as JJ40/BM40/PyKey40.

Pictures:

PyKey40 HSRGB PCB assembled in a high-profile aluminium case.

2D Renders of the PCB, revision rev2023.1

Assets

If you want to order these, it's assumed you'll use JLCPCB. (The kicad_pcb uses "JLCJLCJLCJLC" to indicate where the manufacturer can put the order number).

To fabricate the PCBA:

  • keyboard-pykey40-hsrgb-gerber_zip.zip is the gerber zip.
  • keyboard-pykey40-hsrgb_bom_jlc.csv is the BOM CSV.
  • keyboard-pykey40-hsrgb_cpl_jlc_bottom_pos-fixed.csv is the BOM/position file. ("-fixed" indicating the position of hotswap sockets has been adjusted to the bottom).

Note that PCBA for the RGB LEDs and the HotSwap sockets requires Standard PCBA, which is significantly more expensive than the Economic PCBA. If you want to get these fabricated, it's better to just do economic PCBA, and solder the hotswap sockets and RGB LEDs yourself.

CH552-36: Low-Budget 36-key Split Keyboard with SMT Components

29 Dec 16:20
Compare
Choose a tag to compare

A very simple, 36-key PCB which uses the CH552 MCU.

The design takes inspiration from TeXitoi's keyseebee.

The PCB is smaller than 100x100 mm2, so that it's cheaper to fabricate at
various PCB fabricators. (The PCB isn't reversible; but if you choose to buy an SMT stencil, you can use this for both halves).

The keyboard uses semickolon's fak
firmware, which uses the sophisticated and modern
Nickel configuration language to declare keyboard
and keymap definitions.

Design goals:

  • Low Budget.

  • Use CH552 for the fak firmware.

  • "Show the components", "just a keyboard" and "only a PCB with SMD components" from the KeySeeBee.

Pictures:

CH552-36.

CH552-36, close up of the MCU area.

CH552-36, tented, with a coiled TRRS cable.

2D Renders of the PCB, revision rev2023.1

Build Guides and Release Assets

Firmware

(NOTE: for flashing new firmware, on Windows, I recommend the official WCHISPTool. For flashing using open-source software, it's much easier to flash firmware onto the CH552 from Linux, e.g. docs/guide-liveiso-flashing-fak.md).

Live ISO Linux Environment for Fak

28 Nov 07:58
Compare
Choose a tag to compare

My experience trying out the CH552 on Windows (e.g. with the CH552-48 keyboard) was that the bootloader doesn't work well with Windows' USB. (Device manager shows the device fails to connect).

This ISO is a build of NixOS Linux which includes some software for flashing firmware onto the CH552, and other useful dependencies for semickolon's fak:

Download the ISO, and either flash it to a USB thumbdrive, or use a tool like Ventoy.

User: nixos, password: nixos.

CH552-44: Low-Budget Hand-Solderable PCB in BM40/JJ40 Form-Factor, rev2023.2

23 Nov 10:26
Compare
Choose a tag to compare

CH552-44: Low-Budget Hand-Solderable PCB in BM40/JJ40 Form-Factor, rev2023.2

A very simple, hand-solderable 44-key PCB which uses the WeAct Studio's CH552 devboard.

The form factor encourages the thumbs to use 2-3 keys each (and rely on the pinky fingers less).

The keyboard uses semickolon's fak firmware, which uses the sophisticated and modern Nickel configuration language to declare keyboard and keymap definitions.

The CH552 is cheaper than the RP2040, although is much less powerful. e.g. you're probably not going to get Vial on a CH552 keyboard. In practice, fak seems well suited for small-keyboard enthusiasts.

Design goals:

  • Low Budget.

  • Simple, hand-solderable PCB.

  • Uses WeAct Studio's CH552 core board.

  • Same mounting holes as JJ40/BM40/PyKey40.

rev2023.2 adds a USB-C connector underneath the PCB. This is the only change since rev2023.1a.

Pictures:

CH552-44 in a sandwich style case.

2D Renders of the PCB, revision rev2023.2

Build Guides and Release Assets

Firmware

(NOTE: for flashing new firmware, on Windows, the CH552 bootloader can connect, but most of the time the bootloader will fail to connect. It's much easier to flash firmware onto the CH552 from Linux, e.g. docs/guide-liveiso-flashing-fak.md).

Plates and Cases

The bottom plate can be used to protect the components underneath the PCB.

Source files for plates to cut (or cases to 3D print) can be found under cad/ in this repository.

CH552-48: Low-Budget PCBA in BM40/JJ40 Form-Factor, rev2023.1

22 Nov 15:11
Compare
Choose a tag to compare

CH552-48: Low-Budget PCBA in BM40/JJ40 Form-Factor, rev2023.1

A very simple 48-key PCBA which uses the CH552 MCU.

The keyboard uses semickolon's fak firmware, which uses the sophisticated and modern Nickel configuration language to declare keyboard and keymap definitions.

The CH552 is cheaper than the RP2040, although is much less powerful. e.g. you're probably not going to get Vial on a CH552 keyboard. In practice, fak seems well suited for small-keyboard enthusiasts.

Design goals:

  • PCBA and Ortho 4x12 improvement upon the CH552-44.

  • Low Budget.

  • Use CH552 for the fak firmware.

  • Same mounting holes as JJ40/BM40/PyKey40.

Pictures:

CH552-48 in a sandwich style case.

Underside of the CH552-48 in a sandwich style case.

Underside of the CH552-48, showing the PCBA components..

2D Renders of the PCB, revision rev2023.1

Release Assets

Firmware

(NOTE: for flashing new firmware, on Windows, the CH552 bootloader can connect, but most of the time the bootloader will fail to connect. It's much easier to flash firmware onto the CH552 from Linux, e.g. docs/guide-liveiso-flashing-fak.md).

Plates and Cases

The bottom plate can be used to protect the components underneath the PCB.

Source files for plates to cut (or cases to 3D print) can be found under cad/ in this repository.

CH552-44: Low-Budget Hand-Solderable PCB in BM40/JJ40 Form-Factor, rev2023.1a

14 Nov 07:15
Compare
Choose a tag to compare

CH552-44: Low-Budget Hand-Solderable PCB in BM40/JJ40 Form-Factor, rev2023.1a

A very simple, hand-solderable 44-key PCB which uses the WeAct Studio's CH552 devboard.

The form factor encourages the thumbs to use 2-3 keys each (and rely on the pinky fingers less).

The keyboard uses semickolon's fak firmware, which uses the sophisticated and modern Nickel configuration language to declare keyboard and keymap definitions.

The CH552 is cheaper than the RP2040, although is much less powerful. e.g. you're probably not going to get Vial on a CH552 keyboard. In practice, fak seems well suited for small-keyboard enthusiasts.

Design goals:

  • Low Budget.

  • Simple, hand-solderable PCB.

  • Uses WeAct Studio's CH552 core board.

  • Same mounting holes as JJ40/BM40/PyKey40.

Pictures:

CH552-44 in a sandwich style case.

Underside of the CH552-44 in a sandwich style case.

2D Renders of the PCB, revision rev2023.1

Build Guides and Release Assets

Firmware

(NOTE: for flashing new firmware, on Windows, the CH552 bootloader can connect, but most of the time the bootloader will fail to connect. It's much easier to flash firmware onto the CH552 from Linux, e.g. docs/guide-liveiso-flashing-fak.md).

Plates and Cases

The bottom plate can be used to protect the components underneath the PCB.

Source files for plates to cut (or cases to 3D print) can be found under cad/ in this repository.

Pico42: Simple Hand-Solderable PCB in BM40/JJ40 Form-Factor, rev 2023.2

11 Nov 16:59
Compare
Choose a tag to compare

A minor improvement over Pico42 rev2023.1.

Improvements

  • Development Board cover plate: add mounting holes so a cover plate can be mounted to cover the development board area.
    • Using a cover over the development board is not necessary.
  • Adding an extra mounting hole, for sandwich- or 3DP-cases.
  • Smaller, symmetrical PCB outline.
    • Pico42 rev2023.1 retained the same PCB outline as BM40, which has extra margins around the switches to allow for the bigger Kailh hotswap socket footprints. Pico42 doesn't use hotswap sockets, so doesn't need this padding.

2D Renders of the PCB, revision rev2023.2

Build Guides and Release Assets

rev2023.2 is only a cosmetic update over rev2023.1; the build guide, etc. is the same.

Included below are:

  • the Gerber files, for PCB fabrication.
  • the SVG file for the devboard cover plate.

For other files (e.g. bottom plate, switch plate), see pico42 rev2023.1.

Source files for CAD cover plate can be found under cad/keyboard_plates.

Pico42: Simple Hand-Solderable PCB in BM40/JJ40 Form-Factor, rev 2023.1

02 Oct 05:24
Compare
Choose a tag to compare

Pico42: Simple Hand-Solderable PCB in BM40/JJ40 Form-Factor

A very simple, hand-solderable PCB which uses the Raspberry Pi Pico dev board.

I made this design because in my first attempt at designing a CNC case for the PyKey40,
I put the cutout for the USB connector in the wrong place.
Having a design which doesn't use a USB connector underneath the PCB works around this.

The form factor encourages the thumbs to use 2-3 keys each (and rely on the pinky fingers less).

Design goals:

  • Simple, hand-solderable PCB.

  • Uses Raspberry Pi Pico devboard. / Doesn't use USB connector underneath PCB.

  • Same mounting holes as JJ40/BM40/PyKey40.

  • Same pinout as PyKey40 (PyKey60).

Pictures:

Pico42 PCB assembled with MX switches, in a low profile aluminium case.

Height of the Pico mounted on round-pin male headers in female headers.

Pico42 PCB assembled with Kailh Choc switches, in a sandwich case.

Underside of the Pico42 in a sandwich style case.

2D Renders of the PCB, revision rev2023.1

Build Guides

Release Assets

  • DXF/SVG Plates:

    • Take care with DXF files. DXF files don't have units. Different programs might make different assumptions about the plate size. (Should be 230.5x77.5mm, or 227x75mm for the _pcb files).
    • The _pcb DXF/SVG is for cutting a bottom plate that aligns with the PCB. This is useful for a plate-less build.
  • Firmware:

    • rgoulter_pico42_default.uf2 provides a keymap where every key is assigned. This is useful to check that each key works, using a keyboard tester like QMK Configurator, although this keymap is not practical for any more than that.
    • rgoulter_pico42_manna-harbour_miryoku.uf2 provides a split_3x5_3 build of the Miryoku layout. See Miryoku Reference. This uses the default Colmak Mod-DH as its base layer, and QWERTY as its extra keymap (c.f. Miryoku's Additional Features).