Apex Pro Mini

Overview

The Steelseries Apex Pro Mini is a mechanical keyboard based on an ARM Cortex-M4 based STM32L412RB MCU.

  • STM32 microcontroller in LQFP64 package

  • 62 keys

  • 62 RGB LEDs

  • USB-C port

In includes the following peripherals:

  • Lumissil IS31FL3743B LED driver

  • FMSH FM25Q128 128Mbits serial flash memory

Note

This driver was developed using the French AZERTY keyboard version, on which ENTER is 2U high. QWERTY versions have 61 keys and not 62, with:

  • An additional K29 BACKSLASH key above ENTER

  • K45 SUP removed to fit a wider left shift

  • K42 STAR removed to fit the ENTER key

Installation

The keyboard has a 2.54mm through-hole header for SWD under the space bar. It can be programmed with STLink or any other STM32-compatible probe. The pinout is indicated by the board silkscreen:

3V3

SWDIO

SWCLK

nRST

GND

In order to be able to flash the new firmware, the factory firmware has to be completely erased in order to remove the STM32L4 flash protection. In order to do this process:

  • Open STM32CubeProgrammer and connect the target

  • In OB section, check “PCROP_RDB”

  • In PCROP Protection, write PCROP_START value as 0xFFFF and PCROP_END as 0x0 (end before start disables the protection)

  • In Write Protection, write WRP1A_STRT and WRP1B_STRT values as 0x3F and WRP1A_END and WRP1B_END as 0x0 (same, end before start disables the protection)

  • Then, go to Read Out Protection and select “AA” instead of “BB”

Be mindful that the PCROP protection is only disabled when the ROP value is decreased, from BB to AA, so if the process fails, you will have to set the ROP bit as “BB” again and make sure PCROP_RDP is properly checked.

Hardware

Supported Features

Note

The LED driver is not currently supported.

The apex_pro_mini board supports the hardware features listed below.

on-chip / on-board
Feature integrated in the SoC / present on the board.
2 / 2
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files.
vnd,foo
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.

apex_pro_mini/stm32l412xx target

Type

Location

Description

Compatible

CPU

on-chip

ARM Cortex-M4F CPU1

arm,cortex-m4f

ADC

on-chip

STM32 ADC2

st,stm32-adc

Clock control

on-chip

STM32 RCC (Reset and Clock controller)1

st,stm32-rcc

on-chip

STM32 HSE Clock1

st,stm32-hse-clock

on-chip

Generic fixed-rate clock provider3

fixed-clock

on-chip

STM32 MSI Clock1

st,stm32-msi-clock

on-chip

STM32 LSE Clock1

st,stm32-lse-clock

on-chip

STM32L4/L5 main PLL1

st,stm32l4-pll-clock

on-chip

PLLSAI node binding for STM32L4 device1

st,stm32l4-pllsai-clock

on-chip

STM32 Microcontroller Clock Output (MCO)1

st,stm32-clock-mco

Counter

on-chip

STM32 counters4

st,stm32-counter

DMA

on-chip

STM32 DMA controller (V2)2

st,stm32-dma-v2

Flash controller

on-chip

STM32 Family flash controller1

st,stm32-flash-controller

GPIO & Headers

on-chip

STM32 GPIO Controller4

st,stm32-gpio

I2C

on-chip

STM32 I2C V2 controller3

st,stm32-i2c-v2

I2S

on-chip

STM32 SAI controller2

st,stm32-sai

Input

on-board

GPIO based keyboard matrix input device1

gpio-kbd-matrix

on-board

Row-column to key mapper1

input-keymap

Interrupt controller

on-chip

ARMv7-M NVIC (Nested Vectored Interrupt Controller)1

arm,v7m-nvic

on-chip

STM32 External Interrupt Controller1

st,stm32-exti

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

MTD

on-chip

STM32 flash memory1

st,stm32-nv-flash

on-board

Properties supporting Zephyr spi-nor flash driver (over the Zephyr SPI API) control of serial flash memories using the standard M25P80-based command set1

jedec,spi-nor

on-board

Fixed partitions of a flash (or other non-volatile storage) memory1

fixed-partitions

PHY

on-chip

This binding is to be used by all the usb transceivers which are built-in with USB IP1

usb-nop-xceiv

Pin control

on-chip

STM32 Pin controller1

st,stm32-pinctrl

Power management

on-chip

STM32 power controller1

st,stm32-pwr

PWM

on-chip

STM32 PWM1 3

st,stm32-pwm

QSPI

on-chip

STM32 QSPI Controller1

st,stm32-qspi

Reset controller

on-chip

STM32 Reset and Clock Control (RCC) Controller1

st,stm32-rcc-rctl

RNG

on-chip

STM32 Random Number Generator1

st,stm32-rng

RTC

on-chip

STM32 RTC1

st,stm32-rtc

Sensors

on-chip

STM32 family TEMP node for production calibrated sensors with two calibration temperatures1

st,stm32-temp-cal

on-chip

STM32 VREF+1

st,stm32-vref

on-chip

STM32 VBAT1

st,stm32-vbat

Serial controller

on-chip

STM32 USART1 2

st,stm32-usart

on-chip

STM32 LPUART1

st,stm32-lpuart

SMbus

on-chip

STM32 SMBus controller3

st,stm32-smbus

SPI

on-chip

STM32 SPI controller with embedded Rx and Tx FIFOs2

st,stm32-spi-fifo

Timer

on-chip

ARMv7-M System Tick1

arm,armv7m-systick

on-chip

STM32 timers1 4

st,stm32-timers

on-chip

STM32 low-power timer (LPTIM)2

st,stm32-lptim

USB

on-chip

STM32 USB controller1

st,stm32-usb

Watchdog

on-chip

STM32 watchdog1

st,stm32-watchdog

on-chip

STM32 system window watchdog1

st,stm32-window-watchdog

Connections and IOs

Peripheral Mapping:

  • Flash driver on SPI1: PB3/PB4/PA5/PA15

  • LED controller on SPI2: PB12/PB13/PA14/PA15

  • Key columns C1-C14: PA0/PA1/PA2/PA3/PA4/PA5/PA6/PA7/PC4/PC5/PC0/PC3/PC1/PC2

  • Key rows R1-R5: PA11/PB10/PB2/PB1/PB0

  • SWD debug port: PA13/PA14

  • USB port: PA11/PA12

  • Testpoints: PA8/PB6/PB8/PB9/PC10/PC11/PC12/PC13/PC14/PC15/PC8/PC9/PD2

Keyboard Mapping:

Key column

C1

C2

C3

C4

C5

C6

C7

C8

C9

C10

C11

C12

C13

C14

GPIO

PA0

PA1

PA2

PA3

PA4

PA5

PA6

PA7

PC4

PC5

PC0

PC1

PC2

PC3

Key row

R1

R2

R3

R4

R5

GPIO

PB11

PB10

PB2

PB1

PB0

The following array describes to the electrical connections, not to the geometric positions. Notice how K15 (BACKSPACE) is addressed by column 12, row 5 but is positioned in the top right corner, next to K13.

C1

C2

C3

C4

C5

C6

C7

C8

C9

C10

C11

C12

C13

C14

R1

K1

K2

K3

K4

K5

K6

K7

K8

K9

K10

K11

K12

K13

R2

K16

K17

K18

K19

K20

K21

K22

K23

K24

K25

K26

K27

K28

R3

K30

K31

K32

K33

K34

K35

K36

K37

K38

K39

K40

K41

K42

K43

R4

K44

K45

K46

K47

K48

K49

K50

K51

K52

K53

K54

K55

K57

R5

K58

K59

K60

K62

K65

K66

K67

K68

K15

LED Driver Mapping:

This is the mapping for LEDs on the Lumissil driver.

Function

Color

Area

CS1

Blue

K1-K11

CS2

Green

K1-K11

CS3

Red

K1-K11

CS4

Blue

K16-K26

CS5

Green

K16-K26

CS6

Red

K16-K26

CS7

Blue

K30-K40

CS8

Green

K30-K40

CS9

Red

K30-K40

CS10

Blue

K44-K54

CS11

Green

K44-K54

CS12

Red

K44-K54

CS13

Blue

K55,K56,K58-K68

CS14

Green

K55,K56,K58-K68

CS15

Red

K55,K56,K58-K68

CS16

Blue

K12-K15,K27-K29,K41-K43,K57

CS17

Green

K12-K15,K27-K29,K41-K43,K57

CS18

Red

K12-K15,K27-K29,K41-K43,K57

Function

Column keys

SW1

K1, K12, K16, K30, K43, K44, K58, K68

SW2

K2, K13, K17, K31, K45, K59

SW3

K3, K14, K18, K32, K46, K60

SW4

K4, K15, K19, K33, K47, K62

SW5

K5, K20, K27, K34, K48

SW6

K6, K21, K28, K35, K49

SW7

K7, K22, K29, K36, K50, K56, K65, K66

SW8

K8, K23, K37, K41, K51

SW9

K9, K24, K38, K42, K52, K67

SW10

K10, K25, K29, K39, K53

SW11

K11, K26, K40, K54, K55, K57