SkillAgentSearch skills...

Chitin

A custom split ergomech keyboard

Install / Use

/learn @Scybin/Chitin
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

chitin

chitin

📚 Table of Contents

<a name="disclaimer"></a>

⚠️ Disclaimer

This project has reached the fully working prototype stage. All core features have been tested and function as intended. However, as with any DIY hardware project, you should carefully review all files before manufacturing or assembly. The author(s) cannot guarantee flawless operation in every environment or configuration.

The author(s) take no responsibility for any damage, issues, or legal trouble that might result from using this project (see the license). Be sure to follow local laws regarding radio frequencies and DIY electronics.

<a name="welcome"></a>

⌨️ Welcome

Chitin is a custom mechanical keyboard designed for ergonomic comfort, wireless functionality, and useful features. All hardware and software aspects of this project are open source and documented in this repository. Best of all, the build is completely hot-swappable, meaning assembly and disassembly can be done with ease. This includes the microcontroller, switches, lipo battery, and even the trackball. The chitin keyboard is based off my original keyboard design: scyboard.

The trackball used in this build is a Pimoroni PIM447 breakout with a Qw/ST connector. The connector is useful because you can use the trackball without needing to solder the mounting holes to the microcontroller. Included on the chitin PCB is a footprint for a JST SH connector, which you can use to connect the trackball to the board.

chitin_top_open

<a name="features"></a>

⚙️ Features

  • Ergonomic split layout
  • ZMK firmware support
  • USB-C connectivity & battery charging
  • Bluetooth compatible
  • Customizable keymaps, layers, and macros
  • Trackball which can be programmed as a pointing device
  • Layout and case design is declared using Ergogen
  • KiCad traces auto-routed using Freerouting
  • Open source
  • Hot-swap and semi-modular

<a name="firmware"></a>

💾 Firmware

To get started, I recommend forking my personal repository for chitin here: zmk-config-chitin.

  • To flash the keyboard, follow the flashing instructions in the ZMK docs.
  • Making modifications to the keyboard can be done within the config folder.
  • My build sets the central device to the right half of the keyboard, and the peripheral to the left half. Making changes to which half the trackball resides on, or excluding the trackball from the build requires many changes to the code in the chitin repository and source module.
  • The chitin ZMK repository also uses my Pimoroni trackball driver module (derived from mwandzik's driver) here: zmk-driver-pim447.

<a name="parts-list"></a>

📦 Parts List

I am not sponsored or affiliated with the vendors linked below. This is where I prefer to purchase my products.

| Part | Quantity | Description | Purchase Link | Datasheet | |---------------------------|----------|-------------------------------------------------|----------------------------------------------------------------------------------------------------------------------- |-------------------------------------------------------------------------------------------------------------------------------------------| | Microcontroller | 2 | nice!nano v2.0 | Nice Keyboarrds nice!nano v2.0 | Nordic nRF52840 | | Pin Headers | 4 | Controller socketing system (4mm) | MAC8 spring-loaded pin headers | MAC8 spring-loaded pin headers specifications | | Reset Button | 2 | Panasonic miniature momentary button | Panasonic Reset Button | EVQPUC02K | | Power Switch | 2 | Alps miniature SPDT switch | ALPS Powr Switch | SSSS811101 | | Battery Connector | 2 | JST PH 2.0mm | JST Battery Jack | JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal | | Battery | 2 | 3.7V LiPo 1200mAh (w/ JST adapter) | Lithium Ion Polymer Battery - 3.7v 1200mAh | 301230 | | Diode | 57 | SMD Diode | Semtech SMD Diodes | SOD-123 | | Hotswap Socket | 57 | Kailh MX PCB Socket | Kailh Hotswap Sockets | CPG151101S11 | | MX Switch | 57 | JWICK Linear Switches | JWK JWICK Linear Switches | MX Series Keyswitch | | MX Keycap | 57 | 55 x 1u, 2 x 1.5u | DSA Keycaps | DSA Keycap Project | | M2x15 Standoff | 18 | Standoffs for plate | Newark M2x15 Standoff | Farnell Datasheet | | M2x5 Screw | 8 | Screws to connect bottom case to top case | CO-RODE Screw Kit | | | M2x6 Screw | 18 | Screws for bottom case and top plate | CO-RODE Screw Kit | | | M2.5x8 Screw | 4 | Screws to hold trackball in top case | CO-RODE Screw Kit | | | M2x3 Insert Nut | 8 | Inserts for top cases | uxcell Knurled Insert Nuts | | | M2.5x2 Nut | 4 | Nuts to hold trackball in top case | Newark M2.5 Hex Nuts | Farnell Datasheet | | Trackball Breakout | 1 | Pimoroni RGBW Trackball Breakout | Trackball Breakout by Pimoroni | Trackball Dimensions | | Qw

Related Skills

View on GitHub
GitHub Stars17
CategoryDevelopment
Updated1d ago
Forks1

Languages

JavaScript

Security Score

95/100

Audited on Mar 31, 2026

No findings