
PSLab
fossasia/pslab-hardware
PSLab Hardware Design and Schematics https://pslab.io

A split keyboard with ferris/sweep key layout, epd display and rotary encoder. It is powered by nrfmicro and zmk firmware.
Sweepro ce is an open-source printed circuit board by ufan, from the ufan/sweepro-ce repository on GitHub. It is a 2-layer board of 115 × 86.6 mm with 50 parts on 44 nets, routed with 910 tracks and 151 vias.
It is built around the 1N4148W. Its parts include 17 diodes, 17 switches and 1 IC. It belongs with the keyboards and input boards and the AVR (ATmega, ATtiny) boards of this library.
Sweep-Pro (community edition) is a split keyboard with design focus on:
KiCad is used to design the PCB. The PCB is a two-in-one design, i.e., both left and right split using the same board. The chirarity is chosen by soldering jumpers on board.
=gerber.zip= can be submitted to the manufacture for production without modification.
The case consists of three seperate parts: top-case, middle-plate and bottom-plate. FreeCAD is used to design the case. The source file =case-design.FCStd= contain the design of all parts. The design is partially parameter-based, with a =parametre= spreadsheet containing all the adjustable parameters.
All parts can be 3D-printed. The stl files are povided for immediate manufacture without modification. The design source file can be used to tweak the parameters if needed.
The top case provides mechanical support for the switches and potection of the epd screen. It hides all the 'dirty' internals, giving a better appearance of the keyboard comparing common 'open' design.
Three stl models are povided with different height of the epd slot above the PCB: 11.5, 11.6, 11.7. They are provides since there exists some flexibilty in choosing the components of the epd breakout board and variation of the soldering result. It is recommended to measure the height of epd screen (above PCB board + 0.8mm) after assembly and choose the appropiately case. 0.8 mm is the thickness of the screen protection cover.
Juse print the provided stl files, no tweaking is needed.
Two manufacture methods for the bottom plates:
It is recommended to use Acrylic as bottom plate for better apperance.
endcoder: EVQWGD001 epd: GoodDisplay 1.02
| Component | Dimension | Quantity |
|---|---|---|
| M2 screws | 5 mm | 20 |
| 6 mm | 20 | |
| M2 standoff | 4 mm | 20 |
| 5 mm | 20 |
The official main branck of zmk firmware does not support split encoder, rotated epd screen and other utility features.
These features are available on separate pull requests and they are merged into the support branch.
Moreover, a new board called nrfmacro and a shield called sweepro-ce are defined in this branch.
A reference zmk_config repository is recommended as the starting point for your personal customization.
All the dependency has been correctly defined in this repository, thus you only need to modify the keymap file and conf file.
The same workflow as recommended by zmk is used, which use GitHub Action to automate firmware building.
Just fork it, make changes, commit.
The firmware is then available for download. For more details of this process, check the official document.
It's also possible to build the firmware locally. Prerequisites:
support branchzmk_config repositorynrfmacrosweepro-ce_left, sweepro-ce_rightA more detailed user guide is available here, which includes:
nrfmacro board| Qty | Value | Footprint | References |
|---|---|---|---|
| 17 | 1N4148W | mylib:Diode_SOD-123_reversible | D1, D2, D3, D4, D5, D6, D7, D8, D10, D11, D12, D13, D14, D15, D16, D17 +1 |
| 17 | SW_PUSH-kbd | mylib:Kailh_Choc_Hotplug_reversible | SW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17 +1 |
| 5 | MountingHole | mylib:MountingHole_3.2mm_M3_DIN965 | H1, H2, H3, H4, H5 |
| 2 | Conn_01x02_Female | mylib:WirelessChager_pads_reversible | Coil_input1, Coil_output1 |
| 1 | Conn_01x01_Female | mylib:GND_1pin_conn | VBus1 |
| 1 | Conn_01x02_Female | mylib:VBus_pad_reversible | WirelessCharger1 |
| 1 | Conn_Battery_pluggable | mylib:Battery_connector_lim_reversible | Bat_extra1 |
| 1 | Conn_Battery_solderable | mylib:Battery_pads_reversible | Bat_main1 |
| 1 | Conn_Display_general | mylib:Conn_EPD_Jumper | Display1 |
| 1 | ProMicro-kbd | mylib:ProMicro_Jumpers | U1 |
| 1 | RotaryEncoder | mylib:RollerEncoder_EVQWGD001_reversible | Encoder1 |
| 1 | SW_Battery-kbd | mylib:Power_reversible | SW_Power1 |
| 1 | SW_RESET-kbd | mylib:SW_Reset_vertical | SW_Reset1 |
It measures 115 × 86.6 mm and has 2 copper layers, 1.6 mm thick.
50 parts, built around the 1N4148W. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the ufan/sweepro-ce repository on GitHub, at the commit this page was made from: the board is pcb/sweepro-ce.kicad_pcb and its schematic pcb/sweepro-ce.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask ufan before reusing the design.

fossasia/pslab-hardware
PSLab Hardware Design and Schematics https://pslab.io

pierrechevalier83/ferris
A low profile split keyboard designed to satisfy one single use case elegantly



MickiusMousius/Rolio46Keyboard
A split wireless keyboard based on the Corne and Sofle


sadekbaroudi/bgkeeb
This is a reversible 100mm x 100mm pcb with support for mx or choc switches (no hotswap), per key led, rotary encoders, and exposes the SDA/SCL/GND/VCC lines in the form of the pimoroni trackball pins (meaning you can…
