From 96dbc4e25d3b468dc6f03ad324d9c5e09cf99abb Mon Sep 17 00:00:00 2001 From: Miguelio Date: Sat, 26 Nov 2022 16:28:02 -0700 Subject: [PATCH 1/2] Add Michi MCU Converter support --- data/mappings/defaults.hjson | 6 ++++ data/schemas/keyboard.jsonschema | 2 +- docs/feature_converters.md | 5 ++- docs/squeezing_avr.md | 1 + .../converters/promicro_to_michi/_pin_defs.h | 36 +++++++++++++++++++ .../converters/promicro_to_michi/converter.mk | 9 +++++ 6 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 platforms/chibios/converters/promicro_to_michi/_pin_defs.h create mode 100644 platforms/chibios/converters/promicro_to_michi/converter.mk diff --git a/data/mappings/defaults.hjson b/data/mappings/defaults.hjson index 10657e5aa06e..242a2bf082d2 100644 --- a/data/mappings/defaults.hjson +++ b/data/mappings/defaults.hjson @@ -40,6 +40,12 @@ "board": "QMK_PM2040", "pin_compatible": "promicro" }, + "michi": { + "processor": "RP2040", + "bootloader": "rp2040", + "board": "QMK_PM2040", + "pin_compatible": "promicro" + }, "bit_c_pro": { "processor": "RP2040", "bootloader": "rp2040", diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 91110b06a031..81de0d86b092 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -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", diff --git a/docs/feature_converters.md b/docs/feature_converters.md index 0fa677f87326..df42acac59e0 100644 --- a/docs/feature_converters.md +++ b/docs/feature_converters.md @@ -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). diff --git a/docs/squeezing_avr.md b/docs/squeezing_avr.md index caf18002c019..60cda69c18b4 100644 --- a/docs/squeezing_avr.md +++ b/docs/squeezing_avr.md @@ -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) diff --git a/platforms/chibios/converters/promicro_to_michi/_pin_defs.h b/platforms/chibios/converters/promicro_to_michi/_pin_defs.h new file mode 100644 index 000000000000..ce331b0340a2 --- /dev/null +++ b/platforms/chibios/converters/promicro_to_michi/_pin_defs.h @@ -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 diff --git a/platforms/chibios/converters/promicro_to_michi/converter.mk b/platforms/chibios/converters/promicro_to_michi/converter.mk new file mode 100644 index 000000000000..4d7178e2f7e3 --- /dev/null +++ b/platforms/chibios/converters/promicro_to_michi/converter.mk @@ -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 From b627cd3eb4bfe1e8cb8b8a0cc4e2c727ef55d787 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20A=CC=81ngel?= Date: Sun, 8 Jan 2023 15:12:00 +0100 Subject: [PATCH 2/2] feat(update): michi board definitions --- data/mappings/defaults.hjson | 3 +-- data/schemas/keymap.jsonschema | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/data/mappings/defaults.hjson b/data/mappings/defaults.hjson index 46aaac642626..8efe73dcdec2 100644 --- a/data/mappings/defaults.hjson +++ b/data/mappings/defaults.hjson @@ -38,8 +38,7 @@ "michi": { "processor": "RP2040", "bootloader": "rp2040", - "board": "QMK_PM2040", - "pin_compatible": "promicro" + "board": "QMK_PM2040" }, "bit_c_pro": { "processor": "RP2040", diff --git a/data/schemas/keymap.jsonschema b/data/schemas/keymap.jsonschema index 1b8d01bcc617..ee5d8666086a 100644 --- a/data/schemas/keymap.jsonschema +++ b/data/schemas/keymap.jsonschema @@ -7,7 +7,7 @@ "author": {"type": "string"}, "converter": { "type": "string", - "enum": ["elite_pi", "proton_c", "kb2040", "promicro_rp2040", "blok", "bit_c_pro", "stemcell", "bonsai_c4"] + "enum": ["elite_pi", "proton_c", "kb2040", "promicro_rp2040", "blok", "michi", "bit_c_pro", "stemcell", "bonsai_c4"] }, "host_language": {"$ref": "qmk.definitions.v1#/text_identifier"}, "keyboard": {"$ref": "qmk.definitions.v1#/text_identifier"},