{
  "$schema": "https://o2csi.github.io/candeo/device-definition.schema.json",
  "name": "Alienware Aurora R15",
  "notes": [
    "Unverified: never tried on this machine. Written on 2026-10-16 by alienfx.mjs from alienfx-tools, https://github.com/T-Troll/alienfx-tools, MIT licence, commit 3289c320 (2026-10-14): alienfx-gui/Mappings/devices.csv, each machine's map of its lights.",
    "Its map there: “Alienware Aurora R15”, line 1886, device “Alienware AW-ELC”. Which id lights what is that map's; the names are its own, in plain words.",
    "The protocol is verified: the AW-ELC's live preview, as alienware-17-r5-zones.json sends it, which stores nothing in the device.",
    "Matched on the machine (#326): SMBIOS names it “Alienware Aurora R15”, as tr1xem/AWCC, https://github.com/tr1xem/AWCC, commit c74483e2 (2026-08-05), compares it exactly with /sys/class/dmi/id/product_name (src/helper.cpp) to find a machine in its database.json: the key “Alienware Aurora R15”, beside “Alienware Aurora R16”.",
    "alienfx-tools does not mark id 29, “PowerButton1”, as the power button: it is drawn, as the 17 R5's is.",
    "alienfx-tools does not mark id 35, “PowerButton2”, as the power button: it is drawn, as the 17 R5's is.",
    "The map came to alienfx-tools in its issue #642 (2026-10-08), from a machine that lit every light with it.",
    "The AMD edition, “Alienware Aurora R15 AMD”, is left out: alienfx-tools does not say which edition its map was made on.",
    "Drawn as the case's front, the lights inside on a side window. Where a light sits is not in the source: it is drawn where its name puts it, the numbered ones in their order around an oval.",
    "Does it light? Say so: https://github.com/o2csi/candeo/issues/new?template=device-report.yml"
  ],
  "match": { "vid": "187c", "pid": "0550", "usagePage": "ff00", "usage": "0001", "machine": "Alienware Aurora R15" },
  "report": { "wire": "output", "length": 33, "prefix": "00" },
  "frame": {
    "pace": { "atLeastMs": 100, "skipUnchanged": true },
    "open": ["03 21 00 01 ff ff"],
    "each": {
      "group": "colour",
      "chunk": 4,
      "send": ["03 23 01 00 {count} {addresses}", "03 24 00 07 d0 00 fa {r} {g} {b}"]
    },
    "close": ["03 21 00 03 00 ff"]
  },
  "lights": {
    "kind": "zones",
    "items": [
      { "name": "front ring, 1", "address": 0, "shape": "disc", "rect": [4.3, 3.8, 0.4, 0.4] },
      { "name": "front ring, 2", "address": 1, "shape": "disc", "rect": [4.94, 3.95, 0.4, 0.4] },
      { "name": "front ring, 3", "address": 2, "shape": "disc", "rect": [5.48, 4.33, 0.4, 0.4] },
      { "name": "front ring, 4", "address": 3, "shape": "disc", "rect": [5.9, 4.84, 0.4, 0.4] },
      { "name": "front ring, 5", "address": 4, "shape": "disc", "rect": [6.22, 5.41, 0.4, 0.4] },
      { "name": "front ring, 6", "address": 5, "shape": "disc", "rect": [6.46, 6.03, 0.4, 0.4] },
      { "name": "front ring, 7", "address": 6, "shape": "disc", "rect": [6.63, 6.67, 0.4, 0.4] },
      { "name": "front ring, 8", "address": 7, "shape": "disc", "rect": [6.74, 7.32, 0.4, 0.4] },
      { "name": "front ring, 9", "address": 8, "shape": "disc", "rect": [6.79, 7.97, 0.4, 0.4] },
      { "name": "front ring, 10", "address": 9, "shape": "disc", "rect": [6.79, 8.64, 0.4, 0.4] },
      { "name": "front ring, 11", "address": 10, "shape": "disc", "rect": [6.74, 9.29, 0.4, 0.4] },
      { "name": "front ring, 12", "address": 11, "shape": "disc", "rect": [6.63, 9.94, 0.4, 0.4] },
      { "name": "front ring, 13", "address": 12, "shape": "disc", "rect": [6.46, 10.58, 0.4, 0.4] },
      { "name": "front ring, 14", "address": 13, "shape": "disc", "rect": [6.22, 11.19, 0.4, 0.4] },
      { "name": "front ring, 15", "address": 14, "shape": "disc", "rect": [5.89, 11.77, 0.4, 0.4] },
      { "name": "front ring, 16", "address": 15, "shape": "disc", "rect": [5.47, 12.27, 0.4, 0.4] },
      { "name": "front ring, 17", "address": 16, "shape": "disc", "rect": [4.93, 12.65, 0.4, 0.4] },
      { "name": "front ring, 18", "address": 17, "shape": "disc", "rect": [4.3, 12.8, 0.4, 0.4] },
      { "name": "front ring, 19", "address": 18, "shape": "disc", "rect": [3.66, 12.65, 0.4, 0.4] },
      { "name": "front ring, 20", "address": 19, "shape": "disc", "rect": [3.12, 12.27, 0.4, 0.4] },
      { "name": "front ring, 21", "address": 20, "shape": "disc", "rect": [2.7, 11.76, 0.4, 0.4] },
      { "name": "front ring, 22", "address": 21, "shape": "disc", "rect": [2.38, 11.19, 0.4, 0.4] },
      { "name": "front ring, 23", "address": 22, "shape": "disc", "rect": [2.14, 10.57, 0.4, 0.4] },
      { "name": "front ring, 24", "address": 23, "shape": "disc", "rect": [1.97, 9.93, 0.4, 0.4] },
      { "name": "ambient, 25", "address": 24, "shape": "disc", "rect": [0.89, 9.59, 0.4, 0.4] },
      { "name": "ambient, 29", "address": 25, "shape": "disc", "rect": [1.05, 6.14, 0.4, 0.4] },
      { "name": "front ring, 25", "address": 26, "shape": "disc", "rect": [1.86, 9.28, 0.4, 0.4] },
      { "name": "front ring, 29", "address": 27, "shape": "disc", "rect": [1.97, 6.66, 0.4, 0.4] },
      { "name": "front ring, 33", "address": 28, "shape": "disc", "rect": [3.13, 4.33, 0.4, 0.4] },
      { "name": "power button, 1", "address": 29, "shape": "disc", "rect": [3.4, 1, 1, 1] },
      { "name": "ambient, 26", "address": 30, "shape": "disc", "rect": [0.81, 8.73, 0.4, 0.4] },
      { "name": "ambient, 30", "address": 31, "shape": "disc", "rect": [1.31, 5.3, 0.4, 0.4] },
      { "name": "front ring, 26", "address": 32, "shape": "disc", "rect": [1.81, 8.63, 0.4, 0.4] },
      { "name": "front ring, 30", "address": 33, "shape": "disc", "rect": [2.14, 6.02, 0.4, 0.4] },
      { "name": "front ring, 34", "address": 34, "shape": "disc", "rect": [3.67, 3.95, 0.4, 0.4] },
      { "name": "power button, 2", "address": 35, "shape": "disc", "rect": [4.6, 1, 1, 1] },
      { "name": "ambient, 27", "address": 36, "shape": "disc", "rect": [0.81, 7.86, 0.4, 0.4] },
      { "name": "ambient, 31", "address": 37, "shape": "disc", "rect": [1.65, 4.5, 0.4, 0.4] },
      { "name": "front ring, 27", "address": 38, "shape": "disc", "rect": [1.81, 7.96, 0.4, 0.4] },
      { "name": "front ring, 31", "address": 39, "shape": "disc", "rect": [2.38, 5.41, 0.4, 0.4] },
      { "name": "ambient, 33", "address": 40, "shape": "disc", "rect": [2.72, 3.13, 0.4, 0.4] },
      { "name": "ambient, 28", "address": 42, "shape": "disc", "rect": [0.89, 7, 0.4, 0.4] },
      { "name": "ambient, 32", "address": 43, "shape": "disc", "rect": [2.12, 3.76, 0.4, 0.4] },
      { "name": "front ring, 28", "address": 44, "shape": "disc", "rect": [1.86, 7.31, 0.4, 0.4] },
      { "name": "front ring, 32", "address": 45, "shape": "disc", "rect": [2.71, 4.83, 0.4, 0.4] },
      { "name": "ambient, 34", "address": 46, "shape": "disc", "rect": [3.45, 2.67, 0.4, 0.4] },
      { "name": "ambient, 1", "address": 48, "shape": "disc", "rect": [4.3, 2.5, 0.4, 0.4] },
      { "name": "ambient, 2", "address": 49, "shape": "disc", "rect": [5.15, 2.67, 0.4, 0.4] },
      { "name": "ambient, 3", "address": 50, "shape": "disc", "rect": [5.89, 3.13, 0.4, 0.4] },
      { "name": "ambient, 4", "address": 51, "shape": "disc", "rect": [6.48, 3.77, 0.4, 0.4] },
      { "name": "ambient, 5", "address": 52, "shape": "disc", "rect": [6.95, 4.51, 0.4, 0.4] },
      { "name": "ambient, 6", "address": 53, "shape": "disc", "rect": [7.3, 5.3, 0.4, 0.4] },
      { "name": "ambient, 7", "address": 54, "shape": "disc", "rect": [7.55, 6.15, 0.4, 0.4] },
      { "name": "ambient, 8", "address": 55, "shape": "disc", "rect": [7.71, 7.01, 0.4, 0.4] },
      { "name": "ambient, 9", "address": 56, "shape": "disc", "rect": [7.79, 7.87, 0.4, 0.4] },
      { "name": "ambient, 10", "address": 57, "shape": "disc", "rect": [7.79, 8.74, 0.4, 0.4] },
      { "name": "ambient, 11", "address": 58, "shape": "disc", "rect": [7.71, 9.6, 0.4, 0.4] },
      { "name": "ambient, 12", "address": 59, "shape": "disc", "rect": [7.55, 10.46, 0.4, 0.4] },
      { "name": "ambient, 13", "address": 60, "shape": "disc", "rect": [7.29, 11.3, 0.4, 0.4] },
      { "name": "ambient, 14", "address": 61, "shape": "disc", "rect": [6.95, 12.1, 0.4, 0.4] },
      { "name": "ambient, 15", "address": 62, "shape": "disc", "rect": [6.48, 12.84, 0.4, 0.4] },
      { "name": "ambient, 16", "address": 63, "shape": "disc", "rect": [5.88, 13.47, 0.4, 0.4] },
      { "name": "ambient, 17", "address": 64, "shape": "disc", "rect": [5.15, 13.93, 0.4, 0.4] },
      { "name": "ambient, 18", "address": 65, "shape": "disc", "rect": [4.29, 14.1, 0.4, 0.4] },
      { "name": "ambient, 19", "address": 66, "shape": "disc", "rect": [3.45, 13.93, 0.4, 0.4] },
      { "name": "ambient, 20", "address": 67, "shape": "disc", "rect": [2.71, 13.47, 0.4, 0.4] },
      { "name": "ambient, 21", "address": 68, "shape": "disc", "rect": [2.12, 12.83, 0.4, 0.4] },
      { "name": "ambient, 22", "address": 69, "shape": "disc", "rect": [1.65, 12.09, 0.4, 0.4] },
      { "name": "ambient, 23", "address": 70, "shape": "disc", "rect": [1.3, 11.3, 0.4, 0.4] },
      { "name": "ambient, 24", "address": 71, "shape": "disc", "rect": [1.05, 10.45, 0.4, 0.4] },
      { "name": "Alienware logo", "address": 72, "rect": [2.5, 16, 4, 0.8] },
      { "name": "inside, ambient", "address": 73, "rect": [12.3, 1.5, 2.4, 2.4] },
      { "name": "fan", "address": 74, "shape": "disc", "rect": [12.3, 5.75, 2.4, 2.4] },
      { "name": "cooler, hexagon", "address": 75, "shape": "disc", "rect": [12.3, 10, 2.4, 2.4] },
      { "name": "cooler, logo", "address": 76, "shape": "disc", "rect": [12.3, 14.25, 2.4, 2.4] }
    ]
  },
  "outline": [{ "rect": [0, 0, 9, 18], "r": 0.6 }, { "rect": [10, 0, 7, 18], "r": 0.4 }],
  "examples": [
    {
      "colours": ["ff0000", "00ff00", "0000ff"],
      "reports": [
        "03 21 00 01 ff ff",
        "03 23 01 00 01 00",
        "03 24 00 07 d0 00 fa ff 00 00",
        "03 23 01 00 01 01",
        "03 24 00 07 d0 00 fa 00 ff 00",
        "03 23 01 00 01 02",
        "03 24 00 07 d0 00 fa 00 00 ff",
        "03 23 01 00 04 03 04 05 06",
        "03 24 00 07 d0 00 fa",
        "03 23 01 00 04 07 08 09 0a",
        "03 24 00 07 d0 00 fa",
        "03 23 01 00 04 0b 0c 0d 0e",
        "03 24 00 07 d0 00 fa",
        "03 23 01 00 04 0f 10 11 12",
        "03 24 00 07 d0 00 fa",
        "03 23 01 00 04 13 14 15 16",
        "03 24 00 07 d0 00 fa",
        "03 23 01 00 04 17 18 19 1a",
        "03 24 00 07 d0 00 fa",
        "03 23 01 00 04 1b 1c 1d 1e",
        "03 24 00 07 d0 00 fa",
        "03 23 01 00 04 1f 20 21 22",
        "03 24 00 07 d0 00 fa",
        "03 23 01 00 04 23 24 25 26",
        "03 24 00 07 d0 00 fa",
        "03 23 01 00 04 27 28 2a 2b",
        "03 24 00 07 d0 00 fa",
        "03 23 01 00 04 2c 2d 2e 30",
        "03 24 00 07 d0 00 fa",
        "03 23 01 00 04 31 32 33 34",
        "03 24 00 07 d0 00 fa",
        "03 23 01 00 04 35 36 37 38",
        "03 24 00 07 d0 00 fa",
        "03 23 01 00 04 39 3a 3b 3c",
        "03 24 00 07 d0 00 fa",
        "03 23 01 00 04 3d 3e 3f 40",
        "03 24 00 07 d0 00 fa",
        "03 23 01 00 04 41 42 43 44",
        "03 24 00 07 d0 00 fa",
        "03 23 01 00 04 45 46 47 48",
        "03 24 00 07 d0 00 fa",
        "03 23 01 00 04 49 4a 4b 4c",
        "03 24 00 07 d0 00 fa",
        "03 21 00 03 00 ff"
      ]
    }
  ]
}
