{
  "schemaVersion": 1,
  "generatedAt": "2026-05-21T00:00:00Z",
  "transferConfirmText": "FLASH",
  "defaultDfuSegmentBytes": 240,
  "firmware": [
    {
      "id": "rt02r-low-latency",
      "label": "RT02R low-latency firmware",
      "role": "recommended",
      "deviceFamily": "RT02R",
      "fileName": "rt02r-low-latency.bin",
      "path": "./firmware/rt02r-low-latency.bin",
      "compatibleCurrentHardware": ["RT02R_V3.1", "RT02R12_V3.1"],
      "compatibleCurrentFirmware": ["RT02R_3.11.00_250611", "RT02R12_3.12.55_260513", "RT02R12_3.12.67_260514"],
      "compatibleCurrentFirmwarePrefixes": ["RT02R_3.11.", "RT02R12_3.12."],
      "size": 137540,
      "sha256": "971acab711cdec7c4a3e5357f54471ccd568a89b373d0438dbc0892c70ccc9a4",
      "crc16": "0x0fb9",
      "checksum16": "0x8049",
      "initType": 4,
      "minBatteryPercent": 20,
      "gateText": "RT02R LOW LATENCY",
      "patchSummary": "Improves raw motion streaming for smoother MIDI control. Use this for RT02R rings.",
      "docPageId": "findings",
      "docAnchorId": "rt02r-low-latency-firmware",
      "publicDefault": true
    },
    {
      "id": "rt02cr-low-latency",
      "label": "RT02CR low-latency firmware",
      "role": "recommended",
      "deviceFamily": "RT02CR",
      "fileName": "rt02cr-low-latency.bin",
      "path": "./firmware/rt02cr-low-latency.bin",
      "compatibleCurrentHardware": ["RT02CR_V3.1", "RT02R12_V3.1"],
      "compatibleCurrentFirmware": ["RT02CR_3.12.00_251205", "RT02R12_3.12.06_260514"],
      "compatibleCurrentFirmwarePrefixes": ["RT02CR_3.12.", "RT02R12_3.12.06"],
      "size": 137540,
      "sha256": "2ea1bb08826891604fb714a3820c859d77f52f8d22f1d9a870db10cd5fbffe34",
      "crc16": "0xd833",
      "checksum16": "0x7b58",
      "initType": 4,
      "minBatteryPercent": 20,
      "gateText": "RT02CR LOW LATENCY",
      "patchSummary": "Improves raw motion streaming for smoother MIDI control. Use this for RT02CR rings.",
      "docPageId": "findings",
      "docAnchorId": "rt02cr-low-latency-firmware",
      "publicDefault": true
    },
    {
      "id": "rt02r-stock-restore",
      "label": "RT02R stock restore",
      "role": "stock",
      "deviceFamily": "RT02R",
      "fileName": "rt02r-stock-restore.bin",
      "path": "./firmware/rt02r-stock-restore.bin",
      "compatibleCurrentHardware": ["RT02R_V3.1", "RT02R12_V3.1"],
      "compatibleCurrentFirmware": ["RT02R_3.11.00_250611", "RT02R12_3.12.00_251125"],
      "compatibleCurrentFirmwarePrefixes": ["RT02R12_3.12."],
      "size": 137540,
      "sha256": "06a942ee1e63552b050e0c9dfc175eb0d6c60b096d1fd573f2f025cb53965cff",
      "crc16": "0x42c2",
      "checksum16": "0x882a",
      "initType": 4,
      "minBatteryPercent": 20,
      "gateText": "STOCK RESTORE",
      "patchSummary": "Restores stock RT02R behaviour. Raw motion is slower than the low-latency firmware.",
      "docPageId": "findings",
      "docAnchorId": "rt02r-stock-restore",
      "publicDefault": false
    },
    {
      "id": "rt02r-recovery",
      "label": "RT02R recovery firmware",
      "role": "recovery",
      "deviceFamily": "RT02R",
      "fileName": "rt02r-recovery.bin",
      "path": "./firmware/rt02r-recovery.bin",
      "compatibleCurrentHardware": ["RT02R12_V3.1"],
      "compatibleCurrentFirmware": ["RT02R12_3.12.19_260511"],
      "compatibleCurrentFirmwarePrefixes": ["RT02R12_3.12."],
      "size": 137540,
      "sha256": "d4814f0a3363683627d0c45dbab7b8ba17473875342d54e90ba984539c9e694d",
      "crc16": "0xff2c",
      "checksum16": "0x83e6",
      "initType": 1,
      "minBatteryPercent": 20,
      "gateText": "RT02R RECOVERY",
      "patchSummary": "Recovery image for RT02R rings that still connect but need a known-good firmware.",
      "docPageId": "findings",
      "docAnchorId": "rt02r-recovery-firmware",
      "publicDefault": false
    }
  ]
}
