Boards · Akko

Akko KF106 keyboard software

sharkfin identifies and reads the Akko KF106. Free and open source. Use it in a Chromium browser with nothing to install, or download the desktop app for Windows, macOS or Linux. Either way it runs entirely on your own machine: no account, and the browser version makes no network requests once the page has loaded.

2 revisions of the KF106 ship under this name. They are on different controllers, so they are genuinely different hardware and not just a firmware bump. sharkfin does not ask you which one you have: the board reports its own device ID when it is plugged in, and the right command set follows from that.

What sharkfin does with the KF106

  • Command set not on file. sharkfin asks the board which one it speaks when it is plugged in, and writes once you allow it. A board that cannot say stays read-only.
  • Setup. The app's Setup page allows changes and checks them one by one: keys, lighting, profiles, one remap. Your answers keep the board working on your computer, and the report they produce, sent from the Contribute tab, is how it gets an entry for everyone. See Setup.
  • Magnetic switches. Some revisions have them (device 4031). The Switches tab needs the command set first; see above.
  • Screen. This board has one. sharkfin does not draw on it yet: the way this firmware takes a picture is not established, so sharkfin reads the display's version and leaves it alone.

The picture sharkfin has for the KF106 knows the board's shape but not yet which internal slot each key lives in, so the first connection includes a check: the drawing is matched against the keymap your own board reports, you confirm it once, and from then on you remap on the picture. Until then the app shows a plain grid. The check exists because two boards can share one picture and still disagree about which slot a key lives in, and a wrong guess would send a remap to the wrong key. sharkfin trusts your keyboard over its own files.

KF106 at a glance

BrandAkko
ModelKF106
USB ID3151:5002, 38ee:0001
Device ID3008, 4031
Protocol familyunknown
Settings writableafter the board answers, once you allow it
Drawn layoutafter a one-time check
Onboard profiles3 or 4

A protocol family of “unknown” means the command set is not on file for this revision. sharkfin asks the board when it is plugged in and writes once you allow it; a board that cannot say stays read-only.

Connecting

Plug the KF106 in with a USB cable. Over a 2.4 GHz receiver sharkfin reads whatever the receiver relays: some carry the settings channel, some carry nothing, and the same model ships with both, so plug the receiver in and the app says which yours is. Writes need the cable. Bluetooth has no settings channel. Settings are stored on the keyboard itself, so everything you change keeps working wirelessly once you unplug. sharkfin never flashes firmware. On Linux, the AppImage and the browser build need a one-line udev rule before they can open the keyboard; the .deb and .rpm install it. And if you are hunting for a polling-rate or report-rate setting: there is none in sharkfin, because this hardware does not expose one.

If the KF106 stops responding

It happens: the firmware stops answering and the app says the board needs a replug. Typing keeps working the whole time. In order:

  1. Close sharkfin, or the browser tab. While either is open it keeps trying to reach the board.
  2. Unplug the cable, wait ten seconds, plug it back in. The board needs to lose power, not just reconnect.
  3. Fn + Home turns the lighting back on if the backlight looks dead.
  4. Fn + Esc, held for about three seconds, resets the board's settings.

None of this touches firmware; nothing here can leave the KF106 unusable.

KF106 revisions

Device IDUSB IDControllerFamily WritableLayout
30083151:5002yc3123_akko_kf106_3m_1kunknownasks the boardafter a one-time check
403138ee:0001ry5088_akko_0001_hf_kf106_3m_8k_8kunknownasks the boardafter a one-time check