{
  "$schema": "https://o2csi.github.io/candeo/device-definition.schema.json",
  "name": "ASUS ROG Strix Scope NX Wireless Deluxe (cable)",
  "notes": [
    "Unverified, protocol included: never tried on an ASUS keyboard. Written on 2026-09-27 by asus.mjs from OpenRGB, https://gitlab.com/CalcProgrammer1/OpenRGB, commit 0f8f2dcc (2026-09-25): Controllers/AsusAuraUSBController — AsusAuraUSBControllerDetect.cpp for the product ids and interfaces, AsusAuraTUFKeyboardController for the reports, AsusAuraTUFKeyboardLayouts.h for each key's address, read by asus.mjs.",
    "Output reports written on the interrupt pipe: c0 81, the count of keys, 00, then up to fifteen keys, each its address and colour. The addresses are OpenRGB's UK table for this keyboard.",
    "OpenRGB waits for an answer after each report; a definition cannot, so this one sends at most twenty images a second.",
    "Drawn as an ISO board: on an ANSI one, the key left of Z is absent and the backslash lights above Enter. Lights that are not keys are placed by convention.",
    "Does it light? Say so: https://github.com/o2csi/candeo/issues/new?template=device-report.yml"
  ],
  "match": { "vid": "0b05", "pid": "19f6", "interface": 1, "usagePage": "ff00" },
  "report": { "wire": "write", "length": 64, "prefix": "00" },
  "frame": {
    "pace": { "atLeastMs": 50 },
    "each": { "chunk": 15, "send": ["c0 81 {count} 00 {lights}"], "light": "{address} {r} {g} {b}" }
  },
  "lights": {
    "kind": "keys",
    "rows": 6,
    "cols": 22,
    "items": [
      { "row": 0, "col": 0, "address": 0, "scancode": "01", "rect": [0, 0, 1, 1] },
      { "row": 0, "col": 2, "address": 24, "scancode": "3b", "rect": [2, 0, 1, 1] },
      { "row": 0, "col": 3, "address": 32, "scancode": "3c", "rect": [3, 0, 1, 1] },
      { "row": 0, "col": 4, "address": 40, "scancode": "3d", "rect": [4, 0, 1, 1] },
      { "row": 0, "col": 5, "address": 48, "scancode": "3e", "rect": [5, 0, 1, 1] },
      { "row": 0, "col": 6, "address": 64, "scancode": "3f", "rect": [6.5, 0, 1, 1] },
      { "row": 0, "col": 7, "address": 72, "scancode": "40", "rect": [7.5, 0, 1, 1] },
      { "row": 0, "col": 8, "address": 80, "scancode": "41", "rect": [8.5, 0, 1, 1] },
      { "row": 0, "col": 9, "address": 88, "scancode": "42", "rect": [9.5, 0, 1, 1] },
      { "row": 0, "col": 10, "address": 96, "scancode": "43", "rect": [11, 0, 1, 1] },
      { "row": 0, "col": 11, "address": 104, "scancode": "44", "rect": [12, 0, 1, 1] },
      { "row": 0, "col": 12, "address": 112, "scancode": "57", "rect": [13, 0, 1, 1] },
      { "row": 0, "col": 13, "address": 120, "scancode": "58", "rect": [14, 0, 1, 1] },
      { "row": 0, "col": 14, "address": 128, "scancode": "e037", "rect": [15.25, 0, 1, 1] },
      { "row": 0, "col": 15, "address": 136, "scancode": "46", "rect": [16.25, 0, 1, 1] },
      { "row": 0, "col": 16, "address": 144, "scancode": "e11d", "rect": [17.25, 0, 1, 1] },
      { "row": 0, "col": 21, "address": 168, "name": "Logo", "shape": "disc", "rect": [6.5, 6.75, 0.5, 0.5] },
      { "row": 1, "col": 0, "address": 1, "scancode": "29", "rect": [0, 1.5, 1, 1] },
      { "row": 1, "col": 1, "address": 17, "scancode": "02", "rect": [1, 1.5, 1, 1] },
      { "row": 1, "col": 2, "address": 25, "scancode": "03", "rect": [2, 1.5, 1, 1] },
      { "row": 1, "col": 3, "address": 33, "scancode": "04", "rect": [3, 1.5, 1, 1] },
      { "row": 1, "col": 4, "address": 41, "scancode": "05", "rect": [4, 1.5, 1, 1] },
      { "row": 1, "col": 5, "address": 49, "scancode": "06", "rect": [5, 1.5, 1, 1] },
      { "row": 1, "col": 6, "address": 57, "scancode": "07", "rect": [6, 1.5, 1, 1] },
      { "row": 1, "col": 7, "address": 65, "scancode": "08", "rect": [7, 1.5, 1, 1] },
      { "row": 1, "col": 8, "address": 73, "scancode": "09", "rect": [8, 1.5, 1, 1] },
      { "row": 1, "col": 9, "address": 81, "scancode": "0a", "rect": [9, 1.5, 1, 1] },
      { "row": 1, "col": 10, "address": 89, "scancode": "0b", "rect": [10, 1.5, 1, 1] },
      { "row": 1, "col": 11, "address": 97, "scancode": "0c", "rect": [11, 1.5, 1, 1] },
      { "row": 1, "col": 12, "address": 105, "scancode": "0d", "rect": [12, 1.5, 1, 1] },
      { "row": 1, "col": 13, "address": 121, "scancode": "0e", "rect": [13, 1.5, 2, 1] },
      { "row": 1, "col": 14, "address": 129, "scancode": "e052", "rect": [15.25, 1.5, 1, 1] },
      { "row": 1, "col": 15, "address": 137, "scancode": "e047", "rect": [16.25, 1.5, 1, 1] },
      { "row": 1, "col": 16, "address": 145, "scancode": "e049", "rect": [17.25, 1.5, 1, 1] },
      { "row": 1, "col": 17, "address": 153, "scancode": "45", "rect": [18.5, 1.5, 1, 1] },
      { "row": 1, "col": 18, "address": 161, "scancode": "e035", "rect": [19.5, 1.5, 1, 1] },
      { "row": 1, "col": 19, "address": 169, "scancode": "37", "rect": [20.5, 1.5, 1, 1] },
      { "row": 1, "col": 20, "address": 177, "scancode": "4a", "rect": [21.5, 1.5, 1, 1] },
      { "row": 1, "col": 21, "address": 176, "name": "Second logo", "shape": "disc", "rect": [7.25, 6.75, 0.5, 0.5] },
      { "row": 2, "col": 0, "address": 2, "scancode": "0f", "rect": [0, 2.5, 1.5, 1] },
      { "row": 2, "col": 1, "address": 18, "scancode": "10", "rect": [1.5, 2.5, 1, 1] },
      { "row": 2, "col": 2, "address": 26, "scancode": "11", "rect": [2.5, 2.5, 1, 1] },
      { "row": 2, "col": 3, "address": 34, "scancode": "12", "rect": [3.5, 2.5, 1, 1] },
      { "row": 2, "col": 4, "address": 42, "scancode": "13", "rect": [4.5, 2.5, 1, 1] },
      { "row": 2, "col": 5, "address": 50, "scancode": "14", "rect": [5.5, 2.5, 1, 1] },
      { "row": 2, "col": 6, "address": 58, "scancode": "15", "rect": [6.5, 2.5, 1, 1] },
      { "row": 2, "col": 7, "address": 66, "scancode": "16", "rect": [7.5, 2.5, 1, 1] },
      { "row": 2, "col": 8, "address": 74, "scancode": "17", "rect": [8.5, 2.5, 1, 1] },
      { "row": 2, "col": 9, "address": 82, "scancode": "18", "rect": [9.5, 2.5, 1, 1] },
      { "row": 2, "col": 10, "address": 90, "scancode": "19", "rect": [10.5, 2.5, 1, 1] },
      { "row": 2, "col": 11, "address": 98, "scancode": "1a", "rect": [11.5, 2.5, 1, 1] },
      { "row": 2, "col": 12, "address": 106, "scancode": "1b", "rect": [12.5, 2.5, 1, 1] },
      { "row": 2, "col": 14, "address": 130, "scancode": "e053", "rect": [15.25, 2.5, 1, 1] },
      { "row": 2, "col": 15, "address": 138, "scancode": "e04f", "rect": [16.25, 2.5, 1, 1] },
      { "row": 2, "col": 16, "address": 146, "scancode": "e051", "rect": [17.25, 2.5, 1, 1] },
      { "row": 2, "col": 17, "address": 154, "scancode": "47", "rect": [18.5, 2.5, 1, 1] },
      { "row": 2, "col": 18, "address": 162, "scancode": "48", "rect": [19.5, 2.5, 1, 1] },
      { "row": 2, "col": 19, "address": 170, "scancode": "49", "rect": [20.5, 2.5, 1, 1] },
      { "row": 2, "col": 20, "address": 178, "scancode": "4e", "rect": [21.5, 2.5, 1, 2] },
      { "row": 3, "col": 0, "address": 3, "scancode": "3a", "rect": [0, 3.5, 1.75, 1] },
      { "row": 3, "col": 1, "address": 19, "scancode": "1e", "rect": [1.75, 3.5, 1, 1] },
      { "row": 3, "col": 2, "address": 27, "scancode": "1f", "rect": [2.75, 3.5, 1, 1] },
      { "row": 3, "col": 3, "address": 35, "scancode": "20", "rect": [3.75, 3.5, 1, 1] },
      { "row": 3, "col": 4, "address": 43, "scancode": "21", "rect": [4.75, 3.5, 1, 1] },
      { "row": 3, "col": 5, "address": 51, "scancode": "22", "rect": [5.75, 3.5, 1, 1] },
      { "row": 3, "col": 6, "address": 59, "scancode": "23", "rect": [6.75, 3.5, 1, 1] },
      { "row": 3, "col": 7, "address": 67, "scancode": "24", "rect": [7.75, 3.5, 1, 1] },
      { "row": 3, "col": 8, "address": 75, "scancode": "25", "rect": [8.75, 3.5, 1, 1] },
      { "row": 3, "col": 9, "address": 83, "scancode": "26", "rect": [9.75, 3.5, 1, 1] },
      { "row": 3, "col": 10, "address": 91, "scancode": "27", "rect": [10.75, 3.5, 1, 1] },
      { "row": 3, "col": 11, "address": 99, "scancode": "28", "rect": [11.75, 3.5, 1, 1] },
      { "row": 3, "col": 12, "address": 107, "scancode": "2b", "rect": [12.75, 3.5, 1, 1] },
      { "row": 3, "col": 13, "address": 123, "scancode": "1c", "rect": [13.75, 3.5, 1.25, 1] },
      { "row": 3, "col": 17, "address": 155, "scancode": "4b", "rect": [18.5, 3.5, 1, 1] },
      { "row": 3, "col": 18, "address": 163, "scancode": "4c", "rect": [19.5, 3.5, 1, 1] },
      { "row": 3, "col": 19, "address": 171, "scancode": "4d", "rect": [20.5, 3.5, 1, 1] },
      { "row": 4, "col": 0, "address": 4, "scancode": "2a", "rect": [0, 4.5, 1.25, 1] },
      { "row": 4, "col": 1, "address": 12, "scancode": "56", "rect": [1.25, 4.5, 1, 1] },
      { "row": 4, "col": 2, "address": 20, "scancode": "2c", "rect": [2.25, 4.5, 1, 1] },
      { "row": 4, "col": 3, "address": 28, "scancode": "2d", "rect": [3.25, 4.5, 1, 1] },
      { "row": 4, "col": 4, "address": 36, "scancode": "2e", "rect": [4.25, 4.5, 1, 1] },
      { "row": 4, "col": 5, "address": 44, "scancode": "2f", "rect": [5.25, 4.5, 1, 1] },
      { "row": 4, "col": 6, "address": 52, "scancode": "30", "rect": [6.25, 4.5, 1, 1] },
      { "row": 4, "col": 7, "address": 60, "scancode": "31", "rect": [7.25, 4.5, 1, 1] },
      { "row": 4, "col": 8, "address": 68, "scancode": "32", "rect": [8.25, 4.5, 1, 1] },
      { "row": 4, "col": 9, "address": 76, "scancode": "33", "rect": [9.25, 4.5, 1, 1] },
      { "row": 4, "col": 10, "address": 84, "scancode": "34", "rect": [10.25, 4.5, 1, 1] },
      { "row": 4, "col": 11, "address": 92, "scancode": "35", "rect": [11.25, 4.5, 1, 1] },
      { "row": 4, "col": 13, "address": 124, "scancode": "36", "rect": [12.25, 4.5, 2.75, 1] },
      { "row": 4, "col": 15, "address": 140, "scancode": "e048", "rect": [16.25, 4.5, 1, 1] },
      { "row": 4, "col": 17, "address": 156, "scancode": "4f", "rect": [18.5, 4.5, 1, 1] },
      { "row": 4, "col": 18, "address": 164, "scancode": "50", "rect": [19.5, 4.5, 1, 1] },
      { "row": 4, "col": 19, "address": 172, "scancode": "51", "rect": [20.5, 4.5, 1, 1] },
      { "row": 4, "col": 20, "address": 180, "scancode": "e01c", "rect": [21.5, 4.5, 1, 2] },
      { "row": 5, "col": 0, "address": 5, "scancode": "1d", "rect": [0, 5.5, 1.25, 1] },
      { "row": 5, "col": 1, "address": 21, "scancode": "e05b", "rect": [1.25, 5.5, 1.25, 1] },
      { "row": 5, "col": 2, "address": 29, "scancode": "38", "rect": [2.5, 5.5, 1.25, 1] },
      { "row": 5, "col": 6, "address": 53, "scancode": "39", "rect": [3.75, 5.5, 6.25, 1] },
      { "row": 5, "col": 10, "address": 77, "scancode": "e038", "rect": [10, 5.5, 1.25, 1] },
      { "row": 5, "col": 11, "address": 93, "rect": [11.25, 5.5, 1.25, 1] },
      { "row": 5, "col": 12, "address": 101, "scancode": "e05d", "rect": [12.5, 5.5, 1.25, 1] },
      { "row": 5, "col": 13, "address": 125, "scancode": "e01d", "rect": [13.75, 5.5, 1.25, 1] },
      { "row": 5, "col": 14, "address": 133, "scancode": "e04b", "rect": [15.25, 5.5, 1, 1] },
      { "row": 5, "col": 15, "address": 141, "scancode": "e050", "rect": [16.25, 5.5, 1, 1] },
      { "row": 5, "col": 16, "address": 149, "scancode": "e04d", "rect": [17.25, 5.5, 1, 1] },
      { "row": 5, "col": 18, "address": 157, "scancode": "52", "rect": [18.5, 5.5, 2, 1] },
      { "row": 5, "col": 19, "address": 173, "scancode": "53", "rect": [20.5, 5.5, 1, 1] }
    ]
  },
  "examples": [
    {
      "colours": ["ff0000", "00ff00", "0000ff"],
      "reports": [
        "c0 81 0f 00 00 ff 00 00 18 00 ff 00 20 00 00 ff 28 00 00 00 30 00 00 00 40 00 00 00 48 00 00 00 50 00 00 00 58 00 00 00 60 00 00 00 68 00 00 00 70 00 00 00 78 00 00 00 80 00 00 00 88",
        "c0 81 0f 00 90 00 00 00 a8 00 00 00 01 00 00 00 11 00 00 00 19 00 00 00 21 00 00 00 29 00 00 00 31 00 00 00 39 00 00 00 41 00 00 00 49 00 00 00 51 00 00 00 59 00 00 00 61 00 00 00 69",
        "c0 81 0f 00 79 00 00 00 81 00 00 00 89 00 00 00 91 00 00 00 99 00 00 00 a1 00 00 00 a9 00 00 00 b1 00 00 00 b0 00 00 00 02 00 00 00 12 00 00 00 1a 00 00 00 22 00 00 00 2a 00 00 00 32",
        "c0 81 0f 00 3a 00 00 00 42 00 00 00 4a 00 00 00 52 00 00 00 5a 00 00 00 62 00 00 00 6a 00 00 00 82 00 00 00 8a 00 00 00 92 00 00 00 9a 00 00 00 a2 00 00 00 aa 00 00 00 b2 00 00 00 03",
        "c0 81 0f 00 13 00 00 00 1b 00 00 00 23 00 00 00 2b 00 00 00 33 00 00 00 3b 00 00 00 43 00 00 00 4b 00 00 00 53 00 00 00 5b 00 00 00 63 00 00 00 6b 00 00 00 7b 00 00 00 9b 00 00 00 a3",
        "c0 81 0f 00 ab 00 00 00 04 00 00 00 0c 00 00 00 14 00 00 00 1c 00 00 00 24 00 00 00 2c 00 00 00 34 00 00 00 3c 00 00 00 44 00 00 00 4c 00 00 00 54 00 00 00 5c 00 00 00 7c 00 00 00 8c",
        "c0 81 0f 00 9c 00 00 00 a4 00 00 00 ac 00 00 00 b4 00 00 00 05 00 00 00 15 00 00 00 1d 00 00 00 35 00 00 00 4d 00 00 00 5d 00 00 00 65 00 00 00 7d 00 00 00 85 00 00 00 8d 00 00 00 95",
        "c0 81 02 00 9d 00 00 00 ad"
      ]
    }
  ]
}
