Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Doc] Improve RP2040 references #21801

Merged
merged 2 commits into from
Nov 16, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 14 additions & 27 deletions docs/feature_converters.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
# Converters

Since many drop-in replacement controllers now exist, we've done our best to make them easy to use in existing designs.
This page documents the automated process for converting keyboards to use drop-in replacement controllers. This process is designed to be easy to use and can be completed in a few simple steps.

This page documents the handy automated process for converting keyboards.
## Supported Converters

### Supported Converters

Currently the following converters are available:
The following converters are available at this time:

| From | To |
|------------|-------------------|
Expand All @@ -28,14 +26,10 @@ Currently the following converters are available:
| `elite_c` | `helios` |
| `elite_c` | `liatris` |

See below for more in depth information on each converter.

## Overview

Each converter category is broken down by its declared `pin compatibility`.
This ensures that only valid combinations are attempted.

You can generate the firmware by appending `-e CONVERT_TO=<target>` to your compile/flash command. For example:
Each converter category is broken down by its declared `pin compatibility`. This ensures that only valid combinations are attempted. You can generate the firmware by appending `-e CONVERT_TO=<target>` to your compile/flash command. For example:

```sh
qmk flash -c -kb keebio/bdn9/rev1 -km default -e CONVERT_TO=proton_c
Expand All @@ -59,14 +53,12 @@ Once a converter is enabled, it exposes the `CONVERT_TO_<target_uppercase>` flag

### Pin Compatibility

To ensure compatibility, provide validation, and power future workflows, a keyboard should declare its `pin compatibility`. For legacy reasons, this is currently assumed to be `promicro`.

Currently the following pin compatibility interfaces are defined:
To ensure compatibility, provide validation, and enable future workflows, a keyboard should declare its `pin compatibility`. For legacy reasons, this is currently assumed to be `promicro`. The following pin compatibility interfaces are currently defined:

| Pinout | Notes |
|------------|-----------------------------------|
| `promicro` | Includes RX/TX LEDs |
| `elite_c` | Includes bottom row pins, no LEDs |
| Pin Compatibility | Notes |
|-------------------|-----------------------------------|
| `promicro` | Includes RX/TX LEDs |
| `elite_c` | Includes bottom row pins, no LEDs |

To declare the base for conversions, add this line to your keyboard's `rules.mk`:

Expand Down Expand Up @@ -140,7 +132,7 @@ The following defaults are based on what has been implemented for [RP2040](platf

### SparkFun Pro Micro - RP2040, Blok, Bit-C PRO and Michi :id=promicro_rp2040

Currently identical to [Adafruit KB2040](#kb2040).
Feature set is identical to [Adafruit KB2040](#kb2040).

### STeMCell :id=stemcell

Expand All @@ -150,9 +142,7 @@ There are two versions of STeMCell available, with different pinouts:
- v2.0.0 (pre-release v1.0.1, v1.0.2)
Default official firmware only supports v2.0.0 STeMCell.

STeMCell has support to swap UART and I2C pins, to enable single-wire uart communication in STM chips.

The following additional flags has to be used while compiling, based on the pin used for split communication.
STeMCell has support to swap UART and I2C pins to enable single-wire uart communication in STM chips. The following additional flags has to be used while compiling, based on the pin used for split communication:

| Split Pin | Compile flags |
|-----------|---------------|
Expand All @@ -173,11 +163,8 @@ The Bonsai C4 only has one on-board LED (B2), and by default, both the Pro Micro

### RP2040 Community Edition - Elite-Pi, Helios, and Liatris :id=rp2040_ce

Feature set currently identical to [Adafruit KB2040](#kb2040).

Enables VBUS detection by default for superior split keyboard support.
Feature set is identical to [Adafruit KB2040](#kb2040). VBUS detection is enabled by default for superior split keyboard support. For more information, refer to the [Community Edition pinout](platformdev_rp2040.md#rp2040_ce) docs.

For more information, refer to the [RP2040 Community Edition](platformdev_rp2040.md#rp2040_ce) docs.

## Elite-C

Expand All @@ -202,8 +189,8 @@ Converter summary:

### STeMCell :id=stemcell_elite

Currently identical to [STeMCell](#stemcell) with support for the additional bottom row of pins.
Identical to [Pro Micro - STeMCell](#stemcell) with support for the additional bottom row of pins.

### RP2040 Community Edition :id=rp2040_ce_elite

Currently identical to [RP2040 Community Edition](#rp2040_ce), with support for the additional bottom row of pins.
Identical to [Pro Micro - RP2040 Community Edition](#rp2040_ce) with support for the additional bottom row of pins.