Skip to content

Commit

Permalink
Add kb2040 and sparkfun rp2040 converters (qmk#17514)
Browse files Browse the repository at this point in the history
  • Loading branch information
zvecr authored Jul 6, 2022
1 parent 29a2bac commit 744af00
Show file tree
Hide file tree
Showing 12 changed files with 265 additions and 1 deletion.
12 changes: 12 additions & 0 deletions data/mappings/defaults.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,18 @@
"board": "QMK_PROTON_C",
"pin_compatible": "promicro"
},
"kb2040": {
"processor": "RP2040",
"bootloader": "rp2040",
"board": "QMK_PM2040",
"pin_compatible": "promicro"
},
"promicro_rp2040": {
"processor": "RP2040",
"bootloader": "rp2040",
"board": "QMK_PM2040",
"pin_compatible": "promicro"
},
"bluepill": {
"processor": "STM32F103",
"bootloader": "stm32duino",
Expand Down
2 changes: 1 addition & 1 deletion data/schemas/keyboard.jsonschema
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
},
"development_board": {
"type": "string",
"enum": ["promicro", "elite_c", "proton_c", "bluepill", "blackpill_f401", "blackpill_f411"]
"enum": ["promicro", "elite_c", "proton_c", "kb2040", "promicro_rp2040", "bluepill", "blackpill_f401", "blackpill_f411"]
},
"pin_compatible": {
"type": "string",
Expand Down
9 changes: 9 additions & 0 deletions platforms/chibios/boards/QMK_PM2040/board/board.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# List of all the board related files.
BOARDSRC = $(CHIBIOS)/os/hal/boards/RP_PICO_RP2040/board.c

# Required include directories
BOARDINC = $(CHIBIOS)/os/hal/boards/RP_PICO_RP2040

# Shared variables
ALLCSRC += $(BOARDSRC)
ALLINC += $(BOARDINC)
12 changes: 12 additions & 0 deletions platforms/chibios/boards/QMK_PM2040/configs/board.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// Copyright 2022 QMK
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#include_next "board.h"

#undef BOARD_RP_PICO_RP2040
#define BOARD_PM2040

#undef BOARD_NAME
#define BOARD_NAME "Pro Micro RP2040"
13 changes: 13 additions & 0 deletions platforms/chibios/boards/QMK_PM2040/configs/chconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Copyright 2022 Stefan Kerkmann
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#define CH_CFG_SMP_MODE TRUE
#define CH_CFG_ST_RESOLUTION 32
#define CH_CFG_ST_FREQUENCY 1000000
#define CH_CFG_INTERVALS_SIZE 32
#define CH_CFG_TIME_TYPES_SIZE 32
#define CH_CFG_ST_TIMEDELTA 20

#include_next <chconf.h>
21 changes: 21 additions & 0 deletions platforms/chibios/boards/QMK_PM2040/configs/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// Copyright 2022 QMK
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#ifndef I2C_DRIVER
# define I2C_DRIVER I2CD2
#endif
#ifndef I2C1_SDA_PIN
# define I2C1_SDA_PIN D2
#endif
#ifndef I2C1_SCL_PIN
# define I2C1_SCL_PIN D3
#endif

#ifndef RP2040_BOOTLOADER_DOUBLE_TAP_RESET
# define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#endif
#ifndef RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT
# define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
#endif
9 changes: 9 additions & 0 deletions platforms/chibios/boards/QMK_PM2040/configs/halconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// Copyright 2022 QMK
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#define HAL_USE_I2C TRUE
#define HAL_USE_SPI TRUE

#include_next <halconf.h>
98 changes: 98 additions & 0 deletions platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
/*
ChibiOS - Copyright (C) 2006..2021 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

#ifndef MCUCONF_H
#define MCUCONF_H

/*
* RP2040_MCUCONF drivers configuration.
*
* IRQ priorities:
* 3...0 Lowest...Highest.
*
* DMA priorities:
* 0...1 Lowest...Highest.
*/

#define RP2040_MCUCONF

/*
* HAL driver system settings.
*/
#define RP_NO_INIT FALSE
#define RP_CORE1_START FALSE
#define RP_CORE1_VECTORS_TABLE _vectors
#define RP_CORE1_ENTRY_POINT _crt0_c1_entry
#define RP_CORE1_STACK_END __c1_main_stack_end__

/*
* IRQ system settings.
*/
#define RP_IRQ_SYSTICK_PRIORITY 2
#define RP_IRQ_TIMER_ALARM0_PRIORITY 2
#define RP_IRQ_TIMER_ALARM1_PRIORITY 2
#define RP_IRQ_TIMER_ALARM2_PRIORITY 2
#define RP_IRQ_TIMER_ALARM3_PRIORITY 2
#define RP_IRQ_UART0_PRIORITY 3
#define RP_IRQ_UART1_PRIORITY 3
#define RP_IRQ_SPI0_PRIORITY 2
#define RP_IRQ_SPI1_PRIORITY 2
#define RP_IRQ_USB0_PRIORITY 3
#define RP_IRQ_I2C0_PRIORITY 2
#define RP_IRQ_I2C1_PRIORITY 2

/*
* ADC driver system settings.
*/
#define RP_ADC_USE_ADC1 FALSE

/*
* SIO driver system settings.
*/
#define RP_SIO_USE_UART0 FALSE
#define RP_SIO_USE_UART1 FALSE

/*
* SPI driver system settings.
*/
#define RP_SPI_USE_SPI0 TRUE
#define RP_SPI_USE_SPI1 FALSE
#define RP_SPI_SPI0_RX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY
#define RP_SPI_SPI0_TX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY
#define RP_SPI_SPI1_RX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY
#define RP_SPI_SPI1_TX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY
#define RP_SPI_SPI0_DMA_PRIORITY 1
#define RP_SPI_SPI1_DMA_PRIORITY 1
#define RP_SPI_DMA_ERROR_HOOK(spip)

/*
* I2C driver system settings.
*/
#define RP_I2C_USE_I2C0 FALSE
#define RP_I2C_USE_I2C1 TRUE
#define RP_I2C_BUSY_TIMEOUT 50
#define RP_I2C_ADDRESS_MODE_10BIT FALSE

/*
* USB driver system settings.
*/
#define RP_USB_USE_USBD0 TRUE
#define RP_USB_FORCE_VBUS_DETECT TRUE
#define RP_USE_EXTERNAL_VBUS_DETECT FALSE
#define RP_USB_USE_SOF_INTR TRUE
#define RP_USB_USE_ERROR_DATA_SEQ_INTR FALSE

#endif /* MCUCONF_H */
36 changes: 36 additions & 0 deletions platforms/chibios/converters/promicro_to_kb2040/_pin_defs.h
Original file line number Diff line number Diff line change
@@ -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 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 18U
#define B3 20U
#define B2 19U
#define B6 10U

// LEDs (Mapped to QT connector to avoid collisions with button/neopixel)
#define D5 12U
#define B0 13U
9 changes: 9 additions & 0 deletions platforms/chibios/converters/promicro_to_kb2040/converter.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Adafruit KB2040 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
Original file line number Diff line number Diff line change
@@ -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 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 QT connector to avoid collisions with button/neopixel)
#define D5 17U
#define B0 16U
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Sparkfun Pro Micro RP2040 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

0 comments on commit 744af00

Please sign in to comment.