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.
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 |