Skip to content

[Keyboard] Add Akko 5075B Plus - #26395

Open
rijojohn85 wants to merge 1 commit into
qmk:masterfrom
rijojohn85:akko_5075b_plus
Open

[Keyboard] Add Akko 5075B Plus#26395
rijojohn85 wants to merge 1 commit into
qmk:masterfrom
rijojohn85:akko_5075b_plus

Conversation

@rijojohn85

Copy link
Copy Markdown

Description

Adds support for the Akko 5075B Plus, a 75% board with a rotary encoder and per-key RGB, in its wired USB configuration.

Akko 5075B Plus

No vendor sources are published for this board, so the matrix pinout, diode direction and LED layout were recovered from the stock firmware image, and the encoder pins and LED power gates were found by probing the hardware. Everything here is verified on a physical board.

Note this is a different PCB to the akko/5075 that circulates under a similar name: 15 matrix columns against that board's 16, and an unrelated pinout. The two firmwares are not interchangeable.

Bluetooth and 2.4GHz are deliberately out of scope — they are driven by a separate radio module behind a proprietary stack, so only wired USB is supported.

The core change

This touches one core file, and I am happy to split it into its own PR if you would prefer it reviewed separately.

ws2812_spi.c accepted only power-of-two values for WS2812_SPI_DIVISOR on every platform. On WB32 that value is not mapped onto a register field at all — it is passed verbatim in the SPI config and used as SCK = PCLK / WS2812_SPI_DIVISOR — so the restriction is not meaningful there, and the macro chain is now skipped for WB32. The driver documentation is updated to match.

It matters for this board because PCLK2 is 96MHz and the divisor needs to be 24 for 4MHz, matching the stock firmware and giving T0H/T1H of 0.25µs/0.75µs. The nearest permitted value, 32, produces 3MHz and a 1.0µs T1H, which overruns the WS2812 "1" high time.

Types of Changes

  • Core
  • Bugfix
  • New feature
  • Enhancement/optimization
  • Keyboard (addition or update)
  • Keymap/layout/userspace (addition or update)
  • Documentation

Checklist

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • I have tested with at least one keyboard.

A 75% board with a rotary encoder and per-key RGB, in its wired USB
configuration. No vendor sources are published, so the matrix pinout, diode
direction and LED layout were recovered from the stock firmware image, and the
encoder pins and LED power gates were found by probing the hardware.

The lighting is a WS2812 chain on SPIM2's MOSI rather than an I2C matrix
driver. WB32 takes the SPI divisor verbatim (SCK = PCLK / divisor) and needs 24
for 4MHz, which is the timing the stock firmware uses and puts T0H/T1H at
0.25us/0.75us. ws2812_spi.c previously accepted only power-of-two divisors on
every platform, but the value is not mapped onto a register field on WB32, so
the macro chain is skipped there; the nearest allowed value, 32, gives a 1.0us
T1H that overruns the WS2812 "1" high time.

Bluetooth and 2.4GHz are out of scope: they are driven by a separate radio
module behind a proprietary stack.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RbWr8pTkbLsVZHQ6qvPcKP
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants