Skip to content

Instantly share code, notes, and snippets.

@lifthrasiir
Created March 17, 2025 06:50
Show Gist options
  • Save lifthrasiir/c79c90ecf697b1e6dc73e83f32984499 to your computer and use it in GitHub Desktop.
Save lifthrasiir/c79c90ecf697b1e6dc73e83f32984499 to your computer and use it in GitHub Desktop.
Archon M1 PRO MAX WebHID command listing (preliminary)
?? = not yet known, set to zero?; nnnn = u16be; nnnn^ = u16le; ...
XXXX (uppercased) = output locations, otherwise input locations or literal bytes
cmd# buffer configuration function signature
0x01 ?? VVVV getProtocolVersion() -> v
0x02 tt aa... VV... getKeyboardValue(t, a, n) -> v...
0x03 tt aa... setKeyboardValue(t, a...)
0x04 tt aa nn KKKK getKey(t, a, n) -> k
0x05 tt aa nn ssss/KKKK setKey(t, a, n, s) -> k
0x07 tt... setCustomMenuValue(t...)
00 01 nn 01 xx yy setPerKeyRGBMatrix(t, x, y)
0A tt setRGBMode(t)
0C ?? hh ss setColor(1, h, s)
0D ?? hh ss setColor(!=1, h, s)
17 tt hh ss setCustomColor(t, h, s)
0x08 tt aa nn ?? DD getRapidData(t, a, n) -> d
tt DD... getCustomMenuValue(t) -> d...
00 01 nn 01 ?? XX YY getPerKeyRGBMatrix(n) -> (x, y)
0C ?? HH SS getColor(1) -> {hue: h, sat: s}
0D ?? HH SS getColor(!=1) -> {hue: h, sat: s}
17 tt HH SS getCustomColor(t) -> {hue: h, sat: s}
0x09 tt commitCustomMenu(t)
- saveLighting()
0x0A - resetEEPROM()
0x0B - jumpToBootloader()
0x0C ?? NN getMacroCount() -> n
0x0D ?? SSSS getMacroBufferSize() -> s
0x0E rrrr 1C ?? BB*32 getMacroBytes(r) -> b...
0x0F rrrr nn bb... setMacroBytes(r, n, b...)
0x10 - resetMacros()
0x11 ?? CC getLayerCount() -> c // v8+; defaults to 4 before
0x12 aaaa nn ?? DD... getKeymapBuffer(a, n) -> d... // v8+; bulk version of getKey
0x13 rrrr nn cc... writeRawMatrix(r, n, c...)
0x14 tt aa nn ?? VVVV getEncoderValue(t, a, n) -> v
0x15 tt aa nn VVVV setEncoderValue(t, a, n, v)
0x20 - reloadRTDKS()
0x21 ?? TT getMode() -> t
0x22 00 ?? HH SS BB getProColor() -> {hue: h, sat: s, brightness: b}
01 tt hh ss bb setProColor(t, h, s, b)
0x23 ?? TT getCalibrationStatus() -> t
0x24 tt setKeyCalibration(t)
0x25 - resetDevice()
0x26 ?? TT getQueryCalibratonValid() -> t
0x27 00 ?? AA getSwitchType() -> a
tt aa setSwitchType(t, a)
0x28 00 ?? AA getGamepadControl() -> a
tt aa setGamepadControl(t, a)
0x29 00 ?? AA getProfile() -> a
tt aa setProfile(t, a)
0x2A tt/DD... getProfileAddress() -> d...
0x2B tt setViaWriteIndex(t)
0x2C - resetKeymatrix()
0x2D - resetMacro()
0x2E 00 ?? AA getPolling() -> a
tt aa setPolling(t, a)
0x2F 00 ?? AA getMacroStopMode() -> a
tt aa setMacroStopMode(t, a)
0x30 00 ?? AA getMDSAllPressDirectSend() -> a
tt aa setMDSAllPressDirectSend(t, a)
0x31 00 ?? AA getXboxCompatible() -> a
tt aa setXboxCompatible(t, a)
0x32 00 ?? AA getLEDOnOff() -> a
tt aa setLEDOnOff(t, a)
0xF0 ?? VVVVVV getFWVersion() -> v
0xF1 tt (00 00 aaaaaaaa^ nnnnnnnn^)/VV
eraseRomBuffer(t, a, n) -> v
0xF2 nn tt 00 aaaaaaaa^ dd... writeRomBuffer(t, a, n, d...)
0xF3 tttt nn/DD... readRomBuffer(t, n) -> d...
tttt (00 nnnnnnnn^)/DD... readDataBuffer(t, n) -> d...
0xF4 tt resetWithBootHold(t)
0xF5 00 (00 00 aaaaaaaa^ tttttttt^)/DDDDDDDD
readCrcDataBuffer(t, a) -> d
0xF6 nn tt 00 aaaaaaaa^ dd... decodewriteRom(t, a, n, d...)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment