summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormiguelelinventor <miguelelinventor@gmail.com>2023-02-09 20:27:37 +0100
committerGitHub <noreply@github.com>2023-02-09 11:27:37 -0800
commite24f9b2c0af33ec0df0fb341546102e8f14b9be8 (patch)
tree7f30180addba4a21325f14d3025b882615943a08
parentc67285587c812a3dffb20113c8a270b596156d0e (diff)
Add Michi MCU Converter support (#19163)
-rw-r--r--data/mappings/defaults.hjson5
-rw-r--r--data/schemas/keyboard.jsonschema2
-rw-r--r--docs/feature_converters.md5
-rw-r--r--docs/squeezing_avr.md1
-rw-r--r--platforms/chibios/converters/promicro_to_michi/_pin_defs.h36
-rw-r--r--platforms/chibios/converters/promicro_to_michi/converter.mk9
6 files changed, 56 insertions, 2 deletions
diff --git a/data/mappings/defaults.hjson b/data/mappings/defaults.hjson
index 13835721d4..8efe73dcde 100644
--- a/data/mappings/defaults.hjson
+++ b/data/mappings/defaults.hjson
@@ -35,6 +35,11 @@
"bootloader": "rp2040",
"board": "QMK_PM2040"
},
+ "michi": {
+ "processor": "RP2040",
+ "bootloader": "rp2040",
+ "board": "QMK_PM2040"
+ },
"bit_c_pro": {
"processor": "RP2040",
"bootloader": "rp2040",
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema
index f1a1bb87c0..1f89bfeaa7 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 0fa677f873..df42acac59 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 caf18002c0..60cda69c18 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 0000000000..ce331b0340
--- /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 0000000000..4d7178e2f7
--- /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