{
  "format": 2,
  "firmware": {
    "stock": "V4.094",
    "medius": "3.4.6"
  },
  "rig": "A Linux PC, each box fed by a USB device emulator on its USB3, both boxes behind one USB hub and tested one at a time",
  "layers": {
    "wire": "USB packets on the PC's bus, timed by the kernel's usbmon",
    "evdev": "Input events, timed by the kernel as the HID driver handles each report",
    "hidraw": "Each report byte for byte, timed when the reading program wakes",
    "host": "The PC's clock, read by the test program when it writes a command, or when the clone connects or disconnects",
    "emulator": "When the emulator queued each native report, on its clock, mapped to the bus clock to within ±95 µs by its control link's packets (usbmon)"
  },
  "categories": [
    {
      "id": "software",
      "title": "Software",
      "sections": [
        {
          "id": "software-tools",
          "title": "Owner tools",
          "about": "The MAKCU Toolkit is a Windows app. The Medius dashboard and makcu.com Device Control run in Chrome or Edge.",
          "tables": [
            {
              "kind": "feature",
              "key": "System",
              "rows": [
                {
                  "id": "software-tool-windows",
                  "label": "Windows",
                  "stock": "MAKCU Toolkit",
                  "medius": "Medius dashboard"
                },
                {
                  "id": "software-tool-linux",
                  "label": "Linux",
                  "stock": "makcu.com Device Control",
                  "medius": "Medius dashboard"
                },
                {
                  "id": "software-tool-macos",
                  "label": "macOS",
                  "stock": "makcu.com Device Control",
                  "medius": "Medius dashboard"
                }
              ],
              "label": "Owner tool"
            }
          ]
        },
        {
          "id": "software-programs",
          "title": "Programs",
          "about": "Programs written for other boxes, and several programs on one box. Stock's side is from the MAKCU Toolkit's code, not a test.",
          "tables": [
            {
              "kind": "feature",
              "key": "Program",
              "rows": [
                {
                  "id": "software-programs-kmbox-net",
                  "label": "KMBox Net programs",
                  "stock": "Toolkit Forwarding mode",
                  "medius": null,
                  "note": "Move, wheel, three buttons and keys only"
                },
                {
                  "id": "software-programs-kmbox-b-pro",
                  "label": "KMBox B Pro programs",
                  "stock": "Toolkit Forwarding mode",
                  "medius": null,
                  "note": "Marked as in testing"
                },
                {
                  "id": "software-programs-ferrum",
                  "label": "Ferrum programs",
                  "stock": "Toolkit Forwarding mode",
                  "medius": null,
                  "note": "Marked as in testing"
                },
                {
                  "id": "software-programs-shared",
                  "label": "Several programs on one box",
                  "stock": "Toolkit Forwarding mode",
                  "medius": null
                }
              ],
              "label": "Program support"
            }
          ]
        },
        {
          "id": "software-libraries",
          "title": "Client libraries",
          "about": "A client library for each language, the firmware maker's where there is one.",
          "tables": [
            {
              "kind": "feature",
              "key": "Language",
              "rows": [
                {
                  "id": "software-library-python",
                  "label": "Python",
                  "stock": "makxd",
                  "medius": "medius"
                },
                {
                  "id": "software-library-rust",
                  "label": "Rust",
                  "stock": "makxd",
                  "medius": "medius"
                },
                {
                  "id": "software-library-c",
                  "label": "C",
                  "stock": "mak-suite",
                  "medius": "medius.h"
                },
                {
                  "id": "software-library-cpp",
                  "label": "C++",
                  "stock": "mak-suite",
                  "medius": "medius.h"
                },
                {
                  "id": "software-library-csharp",
                  "label": "C#",
                  "stock": "mak-suite",
                  "medius": null
                },
                {
                  "id": "software-library-go",
                  "label": "Go",
                  "stock": "Makcu-Go",
                  "medius": null,
                  "note": "Third party"
                }
              ],
              "label": "Client library"
            }
          ]
        },
        {
          "id": "software-updates",
          "title": "Updates",
          "about": "From the MAKCU Toolkit's code, makcu.com and the Medius dashboard, not a test.",
          "tables": [
            {
              "kind": "feature",
              "key": "Capability",
              "rows": [
                {
                  "id": "software-update-windows",
                  "label": "Update on Windows without pressing a button on the box",
                  "stock": "MAKCU Toolkit",
                  "medius": "Medius dashboard"
                },
                {
                  "id": "software-update-rollback",
                  "label": "Rollback after an update",
                  "stock": "Roll back to official",
                  "medius": "Medius dashboard"
                },
                {
                  "id": "software-update-recovery",
                  "label": "Recovery from a failed update without pressing a button on the box",
                  "stock": "Recovery loader",
                  "medius": "Bootloader rollback"
                },
                {
                  "id": "software-update-fallback",
                  "label": "Previous build kept as a fallback",
                  "stock": null,
                  "medius": "Bootloader rollback"
                },
                {
                  "id": "software-update-backup",
                  "label": "Restore from a flash backup",
                  "stock": "Restore a backup",
                  "medius": null
                },
                {
                  "id": "software-update-signed-package",
                  "label": "Signed firmware packages",
                  "stock": "ECDSA P-256 signature",
                  "medius": null
                },
                {
                  "id": "software-update-signed-catalogue",
                  "label": "Signed firmware catalogue",
                  "stock": "Ed25519 signature",
                  "medius": null
                }
              ],
              "label": "Updates"
            }
          ]
        },
        {
          "id": "software-data",
          "title": "Data sent off the PC",
          "about": "What each owner tool uploads, from the MAKCU Toolkit's code and the Medius privacy page.",
          "tables": [
            {
              "kind": "feature",
              "key": "Item",
              "rows": [
                {
                  "id": "software-data-launch",
                  "label": "Every launch",
                  "stock": "Update and firmware assignment check",
                  "medius": "Usage report"
                },
                {
                  "id": "software-data-diagnostic",
                  "label": "Diagnostic report to support",
                  "stock": "Toolkit Help & reports",
                  "medius": null
                },
                {
                  "id": "software-data-public-stats",
                  "label": "Public usage statistics",
                  "stock": null,
                  "medius": "Dashboard stats page"
                }
              ],
              "ranked": false,
              "label": "Data sent"
            }
          ]
        },
        {
          "id": "software-docs",
          "title": "Documentation",
          "about": "Each firmware's documentation site, as of 11 October 2026.",
          "tables": [
            {
              "kind": "feature",
              "key": "Item",
              "rows": [
                {
                  "id": "software-docs-english",
                  "label": "English",
                  "stock": "makcu.com",
                  "medius": "medius.k4tech.net"
                },
                {
                  "id": "software-docs-chinese",
                  "label": "Chinese",
                  "stock": "makcu.com",
                  "medius": null
                },
                {
                  "id": "software-docs-commands",
                  "label": "Command reference",
                  "stock": "makcu.com API page",
                  "medius": "medius.k4tech.net Native API"
                },
                {
                  "id": "software-docs-mcp",
                  "label": "MCP server for AI tools",
                  "stock": "makcu.com/mcp",
                  "medius": "medius.k4tech.net/mcp"
                }
              ],
              "label": "Documentation"
            }
          ]
        },
        {
          "id": "software-adoption",
          "title": "Adoption",
          "about": "Package downloads as of 11 October 2026, KMBox packages left out.",
          "tables": [
            {
              "kind": "measure",
              "label": "Downloads of each box's packages",
              "key": "Registry",
              "unit": "downloads",
              "better": "higher",
              "rows": [
                {
                  "id": "software-pypi-every",
                  "label": "PyPI, last 30 days",
                  "stock": {
                    "value": 3854,
                    "src": [
                      {
                        "file": "adoption/pypi/pypistats-makcu-recent.json",
                        "ptr": "/data/last_month"
                      },
                      {
                        "file": "adoption/pypi/pypistats-pymakcu-recent.json",
                        "ptr": "/data/last_month"
                      },
                      {
                        "file": "adoption/pypi/pypistats-makxd-recent.json",
                        "ptr": "/data/last_month"
                      }
                    ]
                  },
                  "medius": {
                    "value": 1106,
                    "src": [
                      {
                        "file": "adoption/pypi/pypistats-medius-recent.json",
                        "ptr": "/data/last_month"
                      }
                    ]
                  },
                  "note": "makcu, pymakcu and makxd against medius"
                },
                {
                  "id": "software-crates-every",
                  "label": "crates.io, last 90 days",
                  "stock": {
                    "value": 256,
                    "src": [
                      {
                        "file": "adoption/crates/makcu.json",
                        "ptr": "/crate/recent_downloads"
                      },
                      {
                        "file": "adoption/crates/makcu-rs.json",
                        "ptr": "/crate/recent_downloads"
                      },
                      {
                        "file": "adoption/crates/makxd.json",
                        "ptr": "/crate/recent_downloads"
                      }
                    ]
                  },
                  "medius": {
                    "value": 342,
                    "src": [
                      {
                        "file": "adoption/crates/medius.json",
                        "ptr": "/crate/recent_downloads"
                      }
                    ]
                  },
                  "note": "makcu, makcu-rs and makxd against medius"
                }
              ]
            }
          ]
        },
        {
          "id": "software-community",
          "title": "Community",
          "about": "Members of each project's Discord, as of 11 October 2026.",
          "tables": [
            {
              "kind": "measure",
              "key": "Server",
              "unit": "members",
              "better": "higher",
              "rows": [
                {
                  "id": "software-discord-members",
                  "label": "Discord",
                  "stock": {
                    "value": 28413,
                    "src": [
                      {
                        "file": "adoption/community/discord-invite-makcu.json",
                        "ptr": "/approximate_member_count"
                      }
                    ]
                  },
                  "medius": {
                    "value": 600,
                    "src": [
                      {
                        "file": "adoption/community/discord-invite-medius.json",
                        "ptr": "/approximate_member_count"
                      }
                    ]
                  }
                }
              ],
              "label": "Members"
            }
          ]
        }
      ]
    }
  ],
  "defects": [],
  "pending": []
}
