From d510e80b89b5de54d60ff1a3dc1cca0307161fad Mon Sep 17 00:00:00 2001 From: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Thu, 21 Jul 2022 07:54:05 +0800 Subject: [PATCH] Add Blok 2040 conversion (#17603) --- data/mappings/defaults.json | 8 ++++- data/schemas/keyboard.jsonschema | 2 +- docs/feature_converters.md | 5 ++- .../converters/promicro_to_blok/_pin_defs.h | 36 +++++++++++++++++++ .../converters/promicro_to_blok/converter.mk | 9 +++++ 5 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 platforms/chibios/converters/promicro_to_blok/_pin_defs.h create mode 100644 platforms/chibios/converters/promicro_to_blok/converter.mk diff --git a/data/mappings/defaults.json b/data/mappings/defaults.json index c6cb53f4c3..b62e5450b3 100644 --- a/data/mappings/defaults.json +++ b/data/mappings/defaults.json @@ -28,6 +28,12 @@ "board": "QMK_PM2040", "pin_compatible": "promicro" }, + "blok": { + "processor": "RP2040", + "bootloader": "rp2040", + "board": "QMK_PM2040", + "pin_compatible": "promicro" + }, "bluepill": { "processor": "STM32F103", "bootloader": "stm32duino", @@ -44,4 +50,4 @@ "board": "BLACKPILL_STM32_F411" } } -} \ No newline at end of file +} diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 166a5d4d3b..46f840616a 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -34,7 +34,7 @@ }, "development_board": { "type": "string", - "enum": ["promicro", "elite_c", "proton_c", "kb2040", "promicro_rp2040", "bluepill", "blackpill_f401", "blackpill_f411"] + "enum": ["promicro", "elite_c", "proton_c", "kb2040", "promicro_rp2040", "blok", "bluepill", "blackpill_f401", "blackpill_f411"] }, "pin_compatible": { "type": "string", diff --git a/docs/feature_converters.md b/docs/feature_converters.md index 9cca76e8e8..11dcc62b2a 100644 --- a/docs/feature_converters.md +++ b/docs/feature_converters.md @@ -13,6 +13,7 @@ Currently the following converters are available: | `promicro` | `proton_c` | | `promicro` | `kb2040` | | `promicro` | `promicro_rp2040` | +| `promicro` | `blok` | See below for more in depth information on each converter. @@ -52,6 +53,7 @@ If a board currently supported in QMK uses a [Pro Micro](https://www.sparkfun.co | [Proton C](https://qmk.fm/proton-c/) | `proton_c` | | [Adafruit KB2040](https://learn.adafruit.com/adafruit-kb2040) | `kb2040` | | [SparkFun Pro Micro - RP2040](https://www.sparkfun.com/products/18288) | `promicro_rp2040` | +| [Blok](https://boardsource.xyz/store/628b95b494dfa308a6581622) | `blok` | Converter summary: @@ -60,6 +62,7 @@ Converter summary: | `proton_c` | `-e CONVERT_TO=proton_c` | `CONVERT_TO=proton_c` | `#ifdef CONVERT_TO_PROTON_C` | | `kb2040` | `-e CONVERT_TO=kb2040` | `CONVERT_TO=kb2040` | `#ifdef CONVERT_TO_KB2040` | | `promicro_rp2040` | `-e CONVERT_TO=promicro_rp2040` | `CONVERT_TO=promicro_rp2040` | `#ifdef CONVERT_TO_PROMICRO_RP2040` | +| `blok` | `-e CONVERT_TO=blok` | `CONVERT_TO=blok` | `#ifdef CONVERT_TO_BLOK` | ### Proton C :id=proton_c @@ -90,6 +93,6 @@ 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 :id=promicro_rp2040 +### SparkFun Pro Micro - RP2040 and Blok :id=promicro_rp2040 Currently identical to [Adafruit KB2040](#kb2040). diff --git a/platforms/chibios/converters/promicro_to_blok/_pin_defs.h b/platforms/chibios/converters/promicro_to_blok/_pin_defs.h new file mode 100644 index 0000000000..957b84e1a6 --- /dev/null +++ b/platforms/chibios/converters/promicro_to_blok/_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 16U +#define D0 17U +#define D4 4U +#define C6 5U +#define D7 6U +#define E6 7U +#define B4 8U +#define B5 9U + +// Right side (front) +// RAW +// GND +// RESET +// VCC +#define F4 29U +#define F5 28U +#define F6 27U +#define F7 26U +#define B1 22U +#define B3 20U +#define B2 23U +#define B6 21U + +// LEDs (Mapped to unused pins to avoid collisions) +#define D5 12U +#define B0 13U diff --git a/platforms/chibios/converters/promicro_to_blok/converter.mk b/platforms/chibios/converters/promicro_to_blok/converter.mk new file mode 100644 index 0000000000..5106e411f4 --- /dev/null +++ b/platforms/chibios/converters/promicro_to_blok/converter.mk @@ -0,0 +1,9 @@ +# Boardsource Blok 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