-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Migrate pages from bastardkb/technical-docs
- Loading branch information
Showing
6 changed files
with
170 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
remote_theme: pmarsceill/just-the-docs | ||
markdown: kramdown | ||
remote_theme: pmarsceill/just-the-docs |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
All the features listed below are available in the Charybdis stock keymaps (built from the `via` keymap source). | ||
|
||
The stock keymap aims at providing a consistent experience out of the box. Because some features can be mutually exclusives (e.g. [Auto sniping on layer](#auto-sniping-on-layer) and [Auto pointer layer](#auto-pointer-layer)), not all features are enabled by default. It may be necessary to rebuild the firmware to enable or disable some of the features listed below. | ||
|
||
# Charybdis features | ||
|
||
## Charybdis stock keymap | ||
|
||
The stock keymap is built off the `via` keymap: | ||
|
||
- [Charybdis (4x6) `via` keymap](https://github.com/Bastardkb/bastardkb-qmk/tree/bkb-master/keyboards/bastardkb/charybdis/4x6/keymaps/via#layout) | ||
- [Charybdis Nano (3x5) `via` keymap](https://github.com/Bastardkb/bastardkb-qmk/tree/bkb-master/keyboards/bastardkb/charybdis/3x5/keymaps/via#layout) | ||
|
||
A visual reference layout is provided for each of these keymap at the links above. | ||
|
||
Those stock keymaps are compatible with [Via](https://www.caniusevia.com/) which enables on-the-fly configuration to a certain extent (i.e. keycodes, rotary encoders, RGB animations can be configured in just a few clicks from the UI). Some more advanced features, however, require manually updating the firmware. | ||
|
||
### Trackball related features | ||
|
||
There's 2 features that are related to pointing devices available in the Charybdis firmware: | ||
|
||
- **Sniping**: temporarily reduces the sensitivity of the pointer for a more precise control. | ||
- **Drag-scroll**: temporarily changes the behavior of the trackball into a scrolling device (in any direction). | ||
|
||
### DPI | ||
|
||
DPI (i.e. dots per linear inch), a.k.a. mouse sensitivity, can be controlled by the firmware. The Charybdis keymap offers 2 different DPI settings: | ||
|
||
- **Default** DPI: the sensitivity of the pointer in normal (i.e. non-sniping) mode. | ||
- **Sniping** DPI: the sensitivity of the pointer in sniping mode. | ||
|
||
For each mode, the firmware allows cycling through multiple pre-defined values: | ||
|
||
- Default mode: | ||
- Default value: 400 DPI | ||
- 16 steps available | ||
- Increments of 200 DPI | ||
- Total range from 400 to 3,400 (400 → 600 → 800 → … → 3,400) | ||
- Sniping mode: | ||
- Default value: 200 DPI | ||
- 4 steps available | ||
- Increments of 100 DPI | ||
- Total range from 200 to 500 (200 → 300 → 400 → 500) | ||
|
||
The firmware _cycles_ through these values, which means that, for example, incrementing the sniping DPI of `500` by 1 step will loop back to `200`. | ||
|
||
These values can be changed by manually editing the firmware. See [Dynamic DPI scaling](#changing-dynamic-dpi-scaling-default-and-increment-values]. | ||
|
||
### Custom keycodes | ||
|
||
The Charybdis firmware comes with a number of custom keycodes related to features that are specific to this keyboard. These keycodes are: | ||
|
||
- Default DPI Increase (`DPI+`): increase the sensitivity of the pointer movement by one step (out of 16). | ||
- Default DPI Decrease (`DPI-`): decrease the sensitivity of the pointer movement by one step (out of 16). | ||
- Sniping DPI Increase (`Snp+`): increase the sensitivity of the pointer movement in sniping mode by one step (out of 4). | ||
- Sniping DPI Decrease (`Snp-`): decrease the sensitivity of the pointer movement in sniping mode by one step (out of 4). | ||
- Sniping Momentary (`Snp`): enable sniping mode as long as the key is pressed. | ||
- Sniping Toggle (`SnpT`): toggle sniping mode on and off. | ||
- Drag-scroll Momentary (`Drg`): enable drag-scroll mode as long as the key is pressed. | ||
- Drag-scroll Toggle (`DrgT`): toggle drag-scroll mode on and off. | ||
|
||
### Charybdis 4x6 | ||
|
||
- 3x5: heavily inspired by Miryoku | ||
- Base layer | ||
- Numbers layer | ||
- Symbols layer | ||
- Function layer | ||
- Navigation layer | ||
- Media layer | ||
- Pointer layer | ||
- 4x6: inspired from OG dactyl | ||
- Base layer | ||
- Lower layer | ||
- Raise layer | ||
- Pointer layer | ||
|
||
## Firmware configuration | ||
|
||
> **Note** <br/> | ||
> This requires a firmware update. | ||
The following section explains how to update the firmware source code to fine-tune your experience. This requires a functional development environment for QMK (https://docs.qmk.fm/#/newbs) and, ideally, some prior experience in computer science and the C programming language. | ||
|
||
### Changing dynamic DPI scaling default and increment values | ||
|
||
> **Note** <br/> | ||
> This requires a firmware update. | ||
### Auto sniping on layer | ||
|
||
> **Note** <br/> | ||
> This requires a firmware update. | ||
### Auto pointer layer | ||
|
||
> **Note** <br/> | ||
> This requires a firmware update. | ||
### X/Y axis inversion | ||
|
||
> **Note** <br/> | ||
> This requires a firmware update. | ||
### Extended mouse reports | ||
|
||
> **Note** <br/> | ||
> This requires a firmware update. | ||
By default, QMK reports the pointing device movement using numbers between `-127` and `128`. | ||
|
||
### Configuration sync between each half | ||
|
||
> **Note** <br/> | ||
> This requires a firmware update. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
--- | ||
layout: default | ||
title: Getting Started | ||
nav_order: 1 | ||
--- | ||
|
||
* TOC {:toc} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
--- | ||
layout: default | ||
title: Getting Started | ||
nav_order: 1 | ||
--- | ||
|
||
* TOC {:toc} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
## BKB standard | ||
|
||
The "BKB standard" is a standard pinout that was defined by a committee of designers on the BastardKB Discord server when the first RP2040 were created in 2022. | ||
|
||
![BKB standard pinout, on the Sea-picro](https://github.com/joshajohnson/sea-picro/raw/master/documentation/pinout/sea-picro-top-pinout-rory-render.png) | ||
|
||
These boards are designed to be a drop-in replacement for keyboards wanting an upgrade from ATmega32u4 based pro micros (_eg._ Elite-C). | ||
|
||
They are using the [RP2040 microcontroller chip](https://www.raspberrypi.com/products/rp2040/) designed by [Raspberry Pi](https://www.raspberrypi.com/), which features dual M0+ processors at up to 133MHz | ||
|
||
## Pinout compatibility | ||
|
||
Controller | Pin-compatible | Flash size | Vbus detection | Notes | ||
---------- | -------------- | ---------- | -------------- | ----- | ||
[0xB2 Splinky](https://github.com/plut0nium/0xB2/) | Yes | _varies_ (up to 16MB) | Yes | Included in [Bastard Keyboards](https://bastardkb.com) kits | ||
[Elite-Pi](https://docs.keeb.io/elite-pi-guide) | Yes | 2MB | Yes | Optionally, 2 extra GPIO pins can be exposed by setting jumpers on the Elite-Pi for a total of 25 GPIO. | ||
[Sea-Picro EXT](https://github.com/joshajohnson/sea-picro) | Yes | 8MB | Yes | [One-button Reset / Bootloader circuit](https://github.com/joshajohnson/sea-picro#one-button-reset--bootloader-circuit). <br />Has an extra 5V level-shifted pin (GPIO 25) broken out. | ||
[Frood](https://github.com/piit79/Frood) | Yes | 2MB | Yes | | ||
[0xCB Helios](https://github.com/0xCB-dev/0xCB-Helios) | Yes | 16MB | Yes | Has a One-button Reset / Bootloader circuit, and ESD protection. <br />Available at [Keeb Supply](https://keeb.supply/products/0xcb-helios). <br />Has an extra 5V level-shifted pin (GPIO 25) broken out. | ||
[Liatris](https://splitkb.com/products/liatris) | Yes | 16MB | Yes | Available at [splitkb.com](https://splitkb.com/collections/featured-products/products/liatris). | ||
[SparkFun Pro Micro - RP2040](https://www.sparkfun.com/products/18288) | No* | 16MB | No | Pinout matches, but no bottom row. <br />The reset buttons collide with pin headers when installed face-down. <br />USB-C receptacle is top-mounted. | ||
[Adafruit KB2040 - RP2040 Kee Boar Driver](https://www.adafruit.com/product/5302) | No | 8MB | No | Different pinout, no bottom row. <br />USB-C receptacle is top-mounted. | | ||
[Blok](https://peg.software/docs/blok) | No | 16MB | Unspecified | Different i2c pins, no bottom row. | | ||
|
||
## Firmware compatibility | ||
|
||
All controllers above marked as pin-compatible, and using the QMK default `W25Q080` second-stage bootloader, should be compatible out-of-the-box with the [Bastard Keyboard firmwares](https://github.com/bastardkb/bastardkb-qmk/releases) targeting the Splinky v3, _ie._ `splinky_3` firmwares. | ||
|
||
### Bootloader | ||
|
||
See [QMK's RP2040 second stage bootloader selection](https://qmk.github.io/qmk_docs_devel/#/platformdev_rp2040?id=rp2040-second-stage-bootloader-selection) documentation. | ||
|
||
## USB-C port compatibility | ||
|
||
For the USB-C port to align perfectly in the Bastard Keyboard cases, the controller needs to use a USB-C connector of specific dimensions, otherwise it might be slightly offset on the Z axis. | ||
|
||
The Splinky controller sold as part of the Bastard Keyboard kits are using a compatible port. If you are sourcing your own controller, make sure that the USB-C port dimensions are correct. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,3 +3,5 @@ layout: default | |
title: Getting Started | ||
nav_order: 1 | ||
--- | ||
|
||
* TOC {:toc} |