# ferric

![a photo of the ferric keyboard on a wooden computer desk, surrounded with other small electronics.](images/lp_mx_01.jpeg)

## Introduction

ferric is a handwired split keyboard derived from the Sweep and Ferris. It is fully 3D-printable and features MCU hotswap without a PCB.

## Features Over the Sweep

- Tray, plate, and retainers are designed for 3D printing and fit together with only M2 screws
- Retained header pins allow hotswapping a Pro Micro-style MCU without a PCB
- Thumb clusters are angled "lower"

*This initial release is for low-profile MX-spaced switches such as the Kailh Choc V2 and Gateron KS-33 series. Choc V1s can be used but this release is not designed for their spacing.*

## Why?

I disliked having to wait for a PCB, and wanted to try handwiring. I also wanted to be able to experiment with different MCUs or replace it if it breaks. As far as I have seen, there has been limited success found in implement hotswappable MCUs (in other boards) without a PCB, and most builds end up keeping the MCU floating and using a daughterboard, so I decided to try my hand at an implementation.

## PCB-Less MCU Hotswap

Female header pins are held in on one side by a small lip in the tray geometry, and on the other side by a removable retainer, which allows for simple yet durable installation. The only needed preparation is cutting the header pin body to size, and soldering the pins to the matrix. The space underneath the header pins can accommodate wires as large as 24 AWG, typically found inside Ethernet cables.

## Build Guide

### 0. BOM

- 34x switches
- 34x keycaps
- 20x M2x4mm screws (flat head preferred)
- 5x ["Shroomies" silicone feet](https://keeb.io/products/shroomies-silicone-feet) (optional, you can use whatever rubber feet you like)
- 4 rows of header pins
- 2 Pro Micro-style MCUs
- 2 TRRS ports
- 1 TRRS (or TRS) cable
- 24-28 AWG insulated copper wire

### 1. Printing

The project comes with a 3mf file, ready to be opened in any slicer. **RH Tray** and **RH Plate** must be mirrored, and **Header Cap** must be printed twice.

TODO: print settings, recommended printing procedure

### 2. Switch Matrix

Insert the switches so that their pins face south. Solder them into a matrix using your preferred handwiring method.

TODO: place soldering photo

Plan the routes of each of the cables that will connect the matrix to the headers, and leave about 2cm before cutting. There is limited space inside of the plate so it is recommended that you also straighten them out.

### 3. TRRS Port

Solder each wire as close to the port as possible, and sideways so that it leads behind the port. Flux and leaded solder will be your best friends to prevent the body from heating up too much before the joint is solid. Cut off the excess and lay the three wires flat on the body of the connector. Route them to their respective spaces under the MCU, but this time leave about 1cm before cutting.

TODO: instructions for shorting out the side indicator pins

### 4. Header Pins

Count 17 pins from the end of a large header pin set, and pull out the first and last. Cut after them, as close to the next "outside" pin as possible. Sand or file the edges flat, only removing a tiny amount, then test-fit by inserting one edge on the north side of the space and pushing the other side in. Repeat until it is flush, do the same for the other side, and remove for soldering.

Using a flat object or surface, bend each header pin 90 degrees. For every connection, remove a pin from the header body and solder it to its corresponding matrix connection. Soldering it this way keeps the body from melting and having a poor grip on the pin.

### 5. Final Assembly

Once everything is soldered, the TRRS port and header pins can be inserted. Then, place the switch plate in while tucking the matrix wires in as tight as possible. Gently screw on the header and TRRS caps and the switch plate with M2x4mm screws to prevent overthreading. Finally, install the keycaps.

### 6. Flashing

TODO: firmware and flashing instructions

## Who Made This?

- [**Pierre Chevalier**](https://github.com/pierrechevalier83), creator of the original [Ferris](https://github.com/pierrechevalier83/ferris)
- [**David Barr**](https://github.com/davidphilipbarr), creator of the [Sweep](https://github.com/davidphilipbarr/Sweep)

- [**skybldev** (monide)](https://skybldev.eu.org/), yours truly

## License

This project is licensed under [CERN OHL v2 Permissive](https://gitlab.com/ohwr/project/cernohl/-/wikis/Documents/CERN-OHL-version-2).
