Skip to content

Commit 744af00

Browse files
authored
Add kb2040 and sparkfun rp2040 converters (qmk#17514)
1 parent 29a2bac commit 744af00

File tree

12 files changed

+265
-1
lines changed

12 files changed

+265
-1
lines changed

data/mappings/defaults.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,18 @@
1616
"board": "QMK_PROTON_C",
1717
"pin_compatible": "promicro"
1818
},
19+
"kb2040": {
20+
"processor": "RP2040",
21+
"bootloader": "rp2040",
22+
"board": "QMK_PM2040",
23+
"pin_compatible": "promicro"
24+
},
25+
"promicro_rp2040": {
26+
"processor": "RP2040",
27+
"bootloader": "rp2040",
28+
"board": "QMK_PM2040",
29+
"pin_compatible": "promicro"
30+
},
1931
"bluepill": {
2032
"processor": "STM32F103",
2133
"bootloader": "stm32duino",

data/schemas/keyboard.jsonschema

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
},
3535
"development_board": {
3636
"type": "string",
37-
"enum": ["promicro", "elite_c", "proton_c", "bluepill", "blackpill_f401", "blackpill_f411"]
37+
"enum": ["promicro", "elite_c", "proton_c", "kb2040", "promicro_rp2040", "bluepill", "blackpill_f401", "blackpill_f411"]
3838
},
3939
"pin_compatible": {
4040
"type": "string",
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# List of all the board related files.
2+
BOARDSRC = $(CHIBIOS)/os/hal/boards/RP_PICO_RP2040/board.c
3+
4+
# Required include directories
5+
BOARDINC = $(CHIBIOS)/os/hal/boards/RP_PICO_RP2040
6+
7+
# Shared variables
8+
ALLCSRC += $(BOARDSRC)
9+
ALLINC += $(BOARDINC)
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// Copyright 2022 QMK
2+
// SPDX-License-Identifier: GPL-2.0-or-later
3+
4+
#pragma once
5+
6+
#include_next "board.h"
7+
8+
#undef BOARD_RP_PICO_RP2040
9+
#define BOARD_PM2040
10+
11+
#undef BOARD_NAME
12+
#define BOARD_NAME "Pro Micro RP2040"
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// Copyright 2022 Stefan Kerkmann
2+
// SPDX-License-Identifier: GPL-2.0-or-later
3+
4+
#pragma once
5+
6+
#define CH_CFG_SMP_MODE TRUE
7+
#define CH_CFG_ST_RESOLUTION 32
8+
#define CH_CFG_ST_FREQUENCY 1000000
9+
#define CH_CFG_INTERVALS_SIZE 32
10+
#define CH_CFG_TIME_TYPES_SIZE 32
11+
#define CH_CFG_ST_TIMEDELTA 20
12+
13+
#include_next <chconf.h>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// Copyright 2022 QMK
2+
// SPDX-License-Identifier: GPL-2.0-or-later
3+
4+
#pragma once
5+
6+
#ifndef I2C_DRIVER
7+
# define I2C_DRIVER I2CD2
8+
#endif
9+
#ifndef I2C1_SDA_PIN
10+
# define I2C1_SDA_PIN D2
11+
#endif
12+
#ifndef I2C1_SCL_PIN
13+
# define I2C1_SCL_PIN D3
14+
#endif
15+
16+
#ifndef RP2040_BOOTLOADER_DOUBLE_TAP_RESET
17+
# define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
18+
#endif
19+
#ifndef RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT
20+
# define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
21+
#endif
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// Copyright 2022 QMK
2+
// SPDX-License-Identifier: GPL-2.0-or-later
3+
4+
#pragma once
5+
6+
#define HAL_USE_I2C TRUE
7+
#define HAL_USE_SPI TRUE
8+
9+
#include_next <halconf.h>
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
/*
2+
ChibiOS - Copyright (C) 2006..2021 Giovanni Di Sirio
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
#ifndef MCUCONF_H
18+
#define MCUCONF_H
19+
20+
/*
21+
* RP2040_MCUCONF drivers configuration.
22+
*
23+
* IRQ priorities:
24+
* 3...0 Lowest...Highest.
25+
*
26+
* DMA priorities:
27+
* 0...1 Lowest...Highest.
28+
*/
29+
30+
#define RP2040_MCUCONF
31+
32+
/*
33+
* HAL driver system settings.
34+
*/
35+
#define RP_NO_INIT FALSE
36+
#define RP_CORE1_START FALSE
37+
#define RP_CORE1_VECTORS_TABLE _vectors
38+
#define RP_CORE1_ENTRY_POINT _crt0_c1_entry
39+
#define RP_CORE1_STACK_END __c1_main_stack_end__
40+
41+
/*
42+
* IRQ system settings.
43+
*/
44+
#define RP_IRQ_SYSTICK_PRIORITY 2
45+
#define RP_IRQ_TIMER_ALARM0_PRIORITY 2
46+
#define RP_IRQ_TIMER_ALARM1_PRIORITY 2
47+
#define RP_IRQ_TIMER_ALARM2_PRIORITY 2
48+
#define RP_IRQ_TIMER_ALARM3_PRIORITY 2
49+
#define RP_IRQ_UART0_PRIORITY 3
50+
#define RP_IRQ_UART1_PRIORITY 3
51+
#define RP_IRQ_SPI0_PRIORITY 2
52+
#define RP_IRQ_SPI1_PRIORITY 2
53+
#define RP_IRQ_USB0_PRIORITY 3
54+
#define RP_IRQ_I2C0_PRIORITY 2
55+
#define RP_IRQ_I2C1_PRIORITY 2
56+
57+
/*
58+
* ADC driver system settings.
59+
*/
60+
#define RP_ADC_USE_ADC1 FALSE
61+
62+
/*
63+
* SIO driver system settings.
64+
*/
65+
#define RP_SIO_USE_UART0 FALSE
66+
#define RP_SIO_USE_UART1 FALSE
67+
68+
/*
69+
* SPI driver system settings.
70+
*/
71+
#define RP_SPI_USE_SPI0 TRUE
72+
#define RP_SPI_USE_SPI1 FALSE
73+
#define RP_SPI_SPI0_RX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY
74+
#define RP_SPI_SPI0_TX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY
75+
#define RP_SPI_SPI1_RX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY
76+
#define RP_SPI_SPI1_TX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY
77+
#define RP_SPI_SPI0_DMA_PRIORITY 1
78+
#define RP_SPI_SPI1_DMA_PRIORITY 1
79+
#define RP_SPI_DMA_ERROR_HOOK(spip)
80+
81+
/*
82+
* I2C driver system settings.
83+
*/
84+
#define RP_I2C_USE_I2C0 FALSE
85+
#define RP_I2C_USE_I2C1 TRUE
86+
#define RP_I2C_BUSY_TIMEOUT 50
87+
#define RP_I2C_ADDRESS_MODE_10BIT FALSE
88+
89+
/*
90+
* USB driver system settings.
91+
*/
92+
#define RP_USB_USE_USBD0 TRUE
93+
#define RP_USB_FORCE_VBUS_DETECT TRUE
94+
#define RP_USE_EXTERNAL_VBUS_DETECT FALSE
95+
#define RP_USB_USE_SOF_INTR TRUE
96+
#define RP_USB_USE_ERROR_DATA_SEQ_INTR FALSE
97+
98+
#endif /* MCUCONF_H */
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
// Copyright 2022 QMK
2+
// SPDX-License-Identifier: GPL-2.0-or-later
3+
4+
#pragma once
5+
6+
// Left side (front)
7+
#define D3 0U
8+
#define D2 1U
9+
// GND
10+
// GND
11+
#define D1 2U
12+
#define D0 3U
13+
#define D4 4U
14+
#define C6 5U
15+
#define D7 6U
16+
#define E6 7U
17+
#define B4 8U
18+
#define B5 9U
19+
20+
// Right side (front)
21+
// RAW
22+
// GND
23+
// RESET
24+
// VCC
25+
#define F4 29U
26+
#define F5 28U
27+
#define F6 27U
28+
#define F7 26U
29+
#define B1 18U
30+
#define B3 20U
31+
#define B2 19U
32+
#define B6 10U
33+
34+
// LEDs (Mapped to QT connector to avoid collisions with button/neopixel)
35+
#define D5 12U
36+
#define B0 13U
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Adafruit KB2040 MCU settings for converting AVR projects
2+
MCU := RP2040
3+
BOARD := QMK_PM2040
4+
BOOTLOADER := rp2040
5+
6+
# These are defaults based on what has been implemented for RP2040 boards
7+
SERIAL_DRIVER ?= vendor
8+
WS2812_DRIVER ?= vendor
9+
BACKLIGHT_DRIVER ?= software
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
// Copyright 2022 QMK
2+
// SPDX-License-Identifier: GPL-2.0-or-later
3+
4+
#pragma once
5+
6+
// Left side (front)
7+
#define D3 0U
8+
#define D2 1U
9+
// GND
10+
// GND
11+
#define D1 2U
12+
#define D0 3U
13+
#define D4 4U
14+
#define C6 5U
15+
#define D7 6U
16+
#define E6 7U
17+
#define B4 8U
18+
#define B5 9U
19+
20+
// Right side (front)
21+
// RAW
22+
// GND
23+
// RESET
24+
// VCC
25+
#define F4 29U
26+
#define F5 28U
27+
#define F6 27U
28+
#define F7 26U
29+
#define B1 22U
30+
#define B3 20U
31+
#define B2 23U
32+
#define B6 21U
33+
34+
// LEDs (Mapped to QT connector to avoid collisions with button/neopixel)
35+
#define D5 17U
36+
#define B0 16U
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Sparkfun Pro Micro RP2040 MCU settings for converting AVR projects
2+
MCU := RP2040
3+
BOARD := QMK_PM2040
4+
BOOTLOADER := rp2040
5+
6+
# These are defaults based on what has been implemented for RP2040 boards
7+
SERIAL_DRIVER ?= vendor
8+
WS2812_DRIVER ?= vendor
9+
BACKLIGHT_DRIVER ?= software

0 commit comments

Comments
 (0)