Device contracts
These documents are the authority. The summaries below show what each one covers. Read the full text withmak_read.
MAK_API: binary commands
MAK_API: binary commands
The command interface used by the Python, Rust, C++, C and C# SDKs. Integers are little-endian.There’s no GET/SET field.
CMD and the payload shape together choose the operation. An accepted SET sends no reply. A rejected GET or SET replies DE AD 01 00 CMD FF. Covers device discovery (DEVICE, FIRMWARE_VERSION), timing, mouse, keyboard, controller, MAKCU controller handoff, input change streams and KM_API compatibility.COM and UDP carry the whole frame. BLE carries CMD + PAYLOAD, and the SDKs batch queued commands automatically. AES-128 transport encryption is available on MAKXD COM and UDP, and on MAKCU UDP.KM_API: legacy ASCII commands
KM_API: legacy ASCII commands
Lowercase
km.name(arguments) records, each ending in \r\n on direct COM. The same record can also be sent framed as DE AD | LEN | 'k' | .... Covers status and settings, timing, mouse, keyboard, controller, input change streams and command rejection. Supported on MAKXD and MAKCU for compatibility. New typed integrations should use MAK_API.Physical controller snapshot
Physical controller snapshot
Requires MAKCU V19+ or MAKXD V13+.
DE AD 00 00 54, or km.controller_physical(), returns 32 bytes: digital controls, triggers, sticks, a sequence number, a USB timestamp, and the measured report interval (DT) and cadence. The values are taken before firmware masks, remapping and injection. This is a different query from the software-commanded state returned by 0x40.Controller presets
Controller presets
15 controller preset slots in NOR, shared by API presets (addressed by a 16-byte hash) and WebUI presets (named). Read, save and load go through
CONNECTION opcode 0x3E, record 0x1E, and each call returns an explicit status.Live device settings
Live device settings
Read, apply, save to NOR, and export or import encrypted
.makxd-settings files for the tuning state the MCU holds. Uses CONNECTION opcode 0x3E, record 0x1D: a transaction over a 400-byte settings image, checked against a revision number.Firmware V4 differences
Firmware V4 differences
The two contracts document V3.x-era firmware. MAKCU units updated with the diagnostic tool run V4.0xx, which has a smaller
km.* text command set; everything else goes through the binary API and app.makcu.com. V4 changes the km.* reply format (V4.018+) and button query values (V4.020+), makes stick +Y down for every controller family, and adds km.click, km.moveto, km.getpos, km.screen, km.silent and km.lock_* from V4.026. km.moving, km.move_now and km.flick exist only on some builds. MAKXD 0.2.0+ behaves like MAKCU V4. Which build accepts which command is in the live matrix at makcu.com/api/versions, which mak_firmware and mak_command read. The behaviour differences are in protocol/FIRMWARE_V4.md.KM NET client
KM NET client
net/cpp is a Windows UDP client for kmNetMakxdBridge.exe. It covers mouse, keyboard, monitoring and bridge-session reset, and it never opens a COM port.