~ruther/qmk_firmware

e24f9b2c0af33ec0df0fb341546102e8f14b9be8 — miguelelinventor 2 years ago c672855
Add Michi MCU Converter support (#19163)

M data/mappings/defaults.hjson => data/mappings/defaults.hjson +5 -0
@@ 35,6 35,11 @@
            "bootloader": "rp2040",
            "board": "QMK_PM2040"
        },
        "michi": {
            "processor": "RP2040",
            "bootloader": "rp2040",
            "board": "QMK_PM2040"
        },
        "bit_c_pro": {
            "processor": "RP2040",
            "bootloader": "rp2040",

M data/schemas/keyboard.jsonschema => data/schemas/keyboard.jsonschema +1 -1
@@ 34,7 34,7 @@
        },
        "development_board": {
            "type": "string",
            "enum": ["promicro", "elite_c", "elite_pi", "proton_c", "kb2040", "promicro_rp2040", "blok", "bit_c_pro", "stemcell", "bluepill", "blackpill_f401", "blackpill_f411", "bonsai_c4"]
            "enum": ["promicro", "elite_c", "elite_pi", "proton_c", "kb2040", "promicro_rp2040", "blok", "michi", "bit_c_pro", "stemcell", "bluepill", "blackpill_f401", "blackpill_f411", "bonsai_c4"]
        },
        "pin_compatible": {
            "type": "string",

M docs/feature_converters.md => docs/feature_converters.md +4 -1
@@ 18,6 18,7 @@ Currently the following converters are available:
| `promicro` | `stemcell`        |
| `promicro` | `bonsai_c4`       |
| `promicro` | `elite_pi`        |
| `promicro` | `michi`           |
| `elite_c`  | `stemcell`        |
| `elite_c`  | `elite_pi`        |



@@ 81,6 82,7 @@ If a board currently supported in QMK uses a [Pro Micro](https://www.sparkfun.co
| [STeMCell](https://github.com/megamind4089/STeMCell)                                     | `stemcell`        |
| [customMK Bonsai C4](https://shop.custommk.com/products/bonsai-c4-microcontroller-board) | `bonsai_c4`       |
| [Elite-Pi](https://keeb.io/products/elite-pi-usb-c-pro-micro-replacement-rp2040)         | `elite_pi`        |
| [Michi](https://github.com/ci-bus/michi-promicro-rp2040)                                 | `michi`           |

Converter summary:



@@ 94,6 96,7 @@ Converter summary:
| `stemcell`        | `-e CONVERT_TO=stemcell`        | `CONVERT_TO=stemcell`        | `#ifdef CONVERT_TO_STEMCELL`        |
| `bonsai_c4`       | `-e CONVERT_TO=bonsai_c4`       | `CONVERT_TO=bonsai_c4`       | `#ifdef CONVERT_TO_BONSAI_C4`       |
| `elite_pi`        | `-e CONVERT_TO=elite_pi`        | `CONVERT_TO=elite_pi`        | `#ifdef CONVERT_TO_ELITE_PI`        |
| `michi`           | `-e CONVERT_TO=michi`           | `CONVERT_TO=michi`           | `#ifdef CONVERT_TO_MICHI`           |

### Proton C :id=proton_c



@@ 124,7 127,7 @@ The following defaults are based on what has been implemented for [RP2040](platf
| USB Host (e.g. USB-USB converter)            | Not supported (USB host code is AVR specific and is not currently supported on ARM)                              |
| [Split keyboards](feature_split_keyboard.md) | Partial via `PIO` vendor driver - heavily dependent on enabled features                                          |

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

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


M docs/squeezing_avr.md => docs/squeezing_avr.md +1 -0
@@ 193,6 193,7 @@ That said, there are a number of Pro Micro replacements with ARM controllers:
* [SparkFun Pro Micro - RP2040](https://www.sparkfun.com/products/18288)
* [Blok](https://boardsource.xyz/store/628b95b494dfa308a6581622)
* [Elite-Pi](https://keeb.io/products/elite-pi-usb-c-pro-micro-replacement-rp2040)
* [Michi](https://github.com/ci-bus/michi-promicro-rp2040)

There are other, non-Pro Micro compatible boards out there. The most popular being:
* [WeAct Blackpill F411](https://www.aliexpress.com/item/1005001456186625.html) (~$6 USD)

A platforms/chibios/converters/promicro_to_michi/_pin_defs.h => platforms/chibios/converters/promicro_to_michi/_pin_defs.h +36 -0
@@ 0,0 1,36 @@
// Copyright 2022 QMK
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

// Left side (front)
#define D3 0U
#define D2 1U
//      GND
//      GND
#define D1 2U
#define D0 3U
#define D4 13U
#define C6 4U
#define D7 9U
#define E6 10U
#define B4 11U
#define B5 12U

// Right side (front)
//      RAW
//      GND
//      RESET
//      VCC
#define F4 29U
#define F5 28U
#define F6 27U
#define F7 26U
#define B1 20U
#define B3 19U
#define B2 18U
#define B6 17U

// LEDs (Mapped to unused pins to avoid collisions)
#define D5 14U
#define B0 15U

A platforms/chibios/converters/promicro_to_michi/converter.mk => platforms/chibios/converters/promicro_to_michi/converter.mk +9 -0
@@ 0,0 1,9 @@
# Michi MCU settings for converting AVR projects
MCU := RP2040
BOARD := QMK_PM2040
BOOTLOADER := rp2040

# These are defaults based on what has been implemented for RP2040 boards
SERIAL_DRIVER ?= vendor
WS2812_DRIVER ?= vendor
BACKLIGHT_DRIVER ?= software