{
  "schema": 1,
  "product": "WM_CH592_SENSOR",
  "latest": "WM_CH592_SENSOR_V4.0.96_20260923135409.bin",
  "latestHex": "WM_CH592_SENSOR_V4.0.96_20260923135409.hex",
  "releases": [
    {
      "fileName": "WM_CH592_SENSOR_V4.0.96_20260923135409.bin",
      "hexFileName": "WM_CH592_SENSOR_V4.0.96_20260923135409.hex",
      "version": "4.0.96",
      "buildTime": "2026-09-23T13:54:09+08:00",
      "sizeBytes": 138768,
      "sha256": "0c1e436a05a0614fb836e8d0a69b0c01d226a13eee28ca43657a10403cadb909",
      "hexSizeBytes": 779409,
      "hexSha256": "c9dda79bdfc81a3be2b0be994d692150fed2940b9c5da70cdde29ac7707efba5",
      "changelog": [
        "蓝牙断线后重新广播：先清连接标志再延时打开，避免第二次扫描不到",
        "取消上电/复位自动配网（APP_FACTORY_SELF_PROV=0）；已入网仍从 NVS 恢复，入网改走 BLE 0xA1",
        "出厂 NetKey 改为 8C3E9F7A2D1B6C4A5E8F3A2B7C6D5E4F；NVS 密钥不符则重置自配网",
        "单播改用 MAC 全 6 字节哈希，避免后三字节相同的芯片撞成同一地址",
        "SEQ 水印落盘：重启/自配网后跳号，避免网关 RPL 把包当重放丢掉",
        "网关 SET TX 入队失败回 ERR；空口重试；垫子 SEASKY 应答经 Mesh 回 USB",
        "网关 USB 可将 SEASKY SET TX=WAVE|BASE ADDR=xxxx 发到指定传感器",
        "换角色后若 NVS 单播与角色不符则重置并自配网；出厂默认宏改回传感器",
        "B55B 改走 App_IsMeshGateway，去掉从未定义的旧 GATEWAY 宏",
        "关闭纯 BLE 编译，网关重新链入 Mesh 并出厂自配网",
        "独立网关（仅 CH592）本机完整回答 SEASKY ID，不再依赖 STM32",
        "网关回答 SEASKY ID MODEL=WM-G300-GW，发版拆成 SENSOR / GW 两套包",
        "新增 F77F / SEASKY CDC CFG? 查询 CH592 全部配置（角色/MAC/波特率/Relay/密钥），旧 FFE1 schema 0x02 保持兼容",
        "传感器连发 C55C 卡死：忙则丢包不再 trans_reset、热路径去掉 PRINT、叶子关 Relay、SEQ 落盘改为 3600",
        "一份固件兼顾传感器/网关：APP_MESH_ROLE_GATEWAY=1 时地址 0x0014，C55C 收包转 USB CDC",
        "出厂写死 NetKey，未入网时按 MAC 映射单播地址自动自配网",
        "MESH?/F66F/FFE1 的网络密钥改为从协议栈读取，重启后也能查到，不再另存 EEPROM 副本",
        "未配网蓝牙广播间隔改为 100ms；配网成功后关闭 GAP 广播并断开 BLE（调试常开除外）",
        "CH592A 写密钥用 256 字节擦除会死机，改为 4K 对齐",
        "新增 USB 命令 SEASKY CDC MESH? 查 Mesh 链路自检信息（地址/密钥/绑定/发送计数/配网返回值）",
        "开机顺序改回参考工程：先 App_Init 再 USB，去掉 Boot_UsbPump（它造成 1.6s/4s 复位周期）",
        "配网后卡死：关掉 Mesh Settings 落盘；已入网 C55C 不再灌 FFE4；不再排队改名"
      ]
    },
    {
      "fileName": "WM_CH592_SENSOR_V4.0.94_20260923094244.bin",
      "hexFileName": "WM_CH592_SENSOR_V4.0.94_20260923094244.hex",
      "version": "4.0.94",
      "buildTime": "2026-09-23T09:42:44+08:00",
      "sizeBytes": 138768,
      "sha256": "dc555025af5936b9ba6566c86e96262ce66904dd5aeb20e35394069440349d63",
      "hexSizeBytes": 779409,
      "hexSha256": "de4ba8ad89f0e091d887c5d15a761df70e20280c6bbf346e544af0a690f6aa76",
      "changelog": [
        "蓝牙断线后重新广播：先清连接标志再延时打开，避免第二次扫描不到",
        "取消上电/复位自动配网（APP_FACTORY_SELF_PROV=0）；已入网仍从 NVS 恢复，入网改走 BLE 0xA1",
        "出厂 NetKey 改为 8C3E9F7A2D1B6C4A5E8F3A2B7C6D5E4F；NVS 密钥不符则重置自配网",
        "单播改用 MAC 全 6 字节哈希，避免后三字节相同的芯片撞成同一地址",
        "SEQ 水印落盘：重启/自配网后跳号，避免网关 RPL 把包当重放丢掉",
        "网关 SET TX 入队失败回 ERR；空口重试；垫子 SEASKY 应答经 Mesh 回 USB",
        "网关 USB 可将 SEASKY SET TX=WAVE|BASE ADDR=xxxx 发到指定传感器",
        "换角色后若 NVS 单播与角色不符则重置并自配网；出厂默认宏改回传感器",
        "B55B 改走 App_IsMeshGateway，去掉从未定义的旧 GATEWAY 宏",
        "关闭纯 BLE 编译，网关重新链入 Mesh 并出厂自配网",
        "独立网关（仅 CH592）本机完整回答 SEASKY ID，不再依赖 STM32",
        "网关回答 SEASKY ID MODEL=WM-G300-GW，发版拆成 SENSOR / GW 两套包",
        "新增 F77F / SEASKY CDC CFG? 查询 CH592 全部配置（角色/MAC/波特率/Relay/密钥），旧 FFE1 schema 0x02 保持兼容",
        "传感器连发 C55C 卡死：忙则丢包不再 trans_reset、热路径去掉 PRINT、叶子关 Relay、SEQ 落盘改为 3600",
        "一份固件兼顾传感器/网关：APP_MESH_ROLE_GATEWAY=1 时地址 0x0014，C55C 收包转 USB CDC",
        "出厂写死 NetKey，未入网时按 MAC 映射单播地址自动自配网",
        "MESH?/F66F/FFE1 的网络密钥改为从协议栈读取，重启后也能查到，不再另存 EEPROM 副本",
        "未配网蓝牙广播间隔改为 100ms；配网成功后关闭 GAP 广播并断开 BLE（调试常开除外）",
        "CH592A 写密钥用 256 字节擦除会死机，改为 4K 对齐",
        "新增 USB 命令 SEASKY CDC MESH? 查 Mesh 链路自检信息（地址/密钥/绑定/发送计数/配网返回值）",
        "开机顺序改回参考工程：先 App_Init 再 USB，去掉 Boot_UsbPump（它造成 1.6s/4s 复位周期）",
        "配网后卡死：关掉 Mesh Settings 落盘；已入网 C55C 不再灌 FFE4；不再排队改名"
      ]
    },
    {
      "fileName": "WM_CH592_SENSOR_V4.0.93_20260922163916.bin",
      "hexFileName": "WM_CH592_SENSOR_V4.0.93_20260922163916.hex",
      "version": "4.0.93",
      "buildTime": "2026-09-22T16:39:16+08:00",
      "sizeBytes": 138644,
      "sha256": "d303be1a63ba733f9fbf186001168b62a0cafe46c3ba462d143ff442eed91aa9",
      "hexSizeBytes": 779070,
      "hexSha256": "ab03b65e469835689da7b1dc07b88bca522ef31be8114ccdabde795d7f9a0245",
      "changelog": [
        "取消上电/复位自动配网（APP_FACTORY_SELF_PROV=0）；已入网仍从 NVS 恢复，入网改走 BLE 0xA1",
        "出厂 NetKey 改为 8C3E9F7A2D1B6C4A5E8F3A2B7C6D5E4F；NVS 密钥不符则重置自配网",
        "单播改用 MAC 全 6 字节哈希，避免后三字节相同的芯片撞成同一地址",
        "SEQ 水印落盘：重启/自配网后跳号，避免网关 RPL 把包当重放丢掉",
        "网关 SET TX 入队失败回 ERR；空口重试；垫子 SEASKY 应答经 Mesh 回 USB",
        "网关 USB 可将 SEASKY SET TX=WAVE|BASE ADDR=xxxx 发到指定传感器",
        "换角色后若 NVS 单播与角色不符则重置并自配网；出厂默认宏改回传感器",
        "B55B 改走 App_IsMeshGateway，去掉从未定义的旧 GATEWAY 宏",
        "关闭纯 BLE 编译，网关重新链入 Mesh 并出厂自配网",
        "独立网关（仅 CH592）本机完整回答 SEASKY ID，不再依赖 STM32",
        "网关回答 SEASKY ID MODEL=WM-G300-GW，发版拆成 SENSOR / GW 两套包",
        "新增 F77F / SEASKY CDC CFG? 查询 CH592 全部配置（角色/MAC/波特率/Relay/密钥），旧 FFE1 schema 0x02 保持兼容",
        "传感器连发 C55C 卡死：忙则丢包不再 trans_reset、热路径去掉 PRINT、叶子关 Relay、SEQ 落盘改为 3600",
        "一份固件兼顾传感器/网关：APP_MESH_ROLE_GATEWAY=1 时地址 0x0014，C55C 收包转 USB CDC",
        "出厂写死 NetKey，未入网时按 MAC 映射单播地址自动自配网",
        "MESH?/F66F/FFE1 的网络密钥改为从协议栈读取，重启后也能查到，不再另存 EEPROM 副本",
        "未配网蓝牙广播间隔改为 100ms；配网成功后关闭 GAP 广播并断开 BLE（调试常开除外）",
        "CH592A 写密钥用 256 字节擦除会死机，改为 4K 对齐",
        "新增 USB 命令 SEASKY CDC MESH? 查 Mesh 链路自检信息（地址/密钥/绑定/发送计数/配网返回值）",
        "开机顺序改回参考工程：先 App_Init 再 USB，去掉 Boot_UsbPump（它造成 1.6s/4s 复位周期）",
        "配网后卡死：关掉 Mesh Settings 落盘；已入网 C55C 不再灌 FFE4；不再排队改名"
      ]
    },
    {
      "fileName": "WM_CH592_SENSOR_V4.0.91_20260921114228.bin",
      "hexFileName": "WM_CH592_SENSOR_V4.0.91_20260921114228.hex",
      "version": "4.0.91",
      "buildTime": "2026-09-21T11:42:28+08:00",
      "sizeBytes": 138860,
      "sha256": "b664ffe0a1d74177f4b7b577682828f554f4a013b09849a2323c1976082bdd6f",
      "hexSizeBytes": 779671,
      "hexSha256": "7a9b7f2c3dbc32aa734977fb84270f0f6a65400181e2c1d2daa1644a6dded95c",
      "changelog": [
        "关闭上电/复位自配网，未入网保持 GAP 广播，由手机 0xA1 配网",
        "单播改用 MAC 全 6 字节哈希，避免后三字节相同的芯片撞成同一地址",
        "SEQ 水印落盘：重启/自配网后跳号，避免网关 RPL 把包当重放丢掉",
        "网关 SET TX 入队失败回 ERR；空口重试；垫子 SEASKY 应答经 Mesh 回 USB",
        "网关 USB 可将 SEASKY SET TX=WAVE|BASE ADDR=xxxx 发到指定传感器",
        "换角色后若 NVS 单播与角色不符则重置并自配网；出厂默认宏改回传感器",
        "B55B 改走 App_IsMeshGateway，去掉从未定义的旧 GATEWAY 宏",
        "关闭纯 BLE 编译，网关重新链入 Mesh 并出厂自配网",
        "独立网关（仅 CH592）本机完整回答 SEASKY ID，不再依赖 STM32",
        "网关回答 SEASKY ID MODEL=WM-G300-GW，发版拆成 SENSOR / GW 两套包",
        "新增 F77F / SEASKY CDC CFG? 查询 CH592 全部配置（角色/MAC/波特率/Relay/密钥），旧 FFE1 schema 0x02 保持兼容",
        "传感器连发 C55C 卡死：忙则丢包不再 trans_reset、热路径去掉 PRINT、叶子关 Relay、SEQ 落盘改为 3600",
        "一份固件兼顾传感器/网关：APP_MESH_ROLE_GATEWAY=1 时地址 0x0014，C55C 收包转 USB CDC",
        "出厂写死 NetKey，未入网时按 MAC 映射单播地址自动自配网",
        "MESH?/F66F/FFE1 的网络密钥改为从协议栈读取，重启后也能查到，不再另存 EEPROM 副本",
        "未配网蓝牙广播间隔改为 100ms；配网成功后关闭 GAP 广播并断开 BLE（调试常开除外）",
        "CH592A 写密钥用 256 字节擦除会死机，改为 4K 对齐",
        "新增 USB 命令 SEASKY CDC MESH? 查 Mesh 链路自检信息（地址/密钥/绑定/发送计数/配网返回值）",
        "开机顺序改回参考工程：先 App_Init 再 USB，去掉 Boot_UsbPump（它造成 1.6s/4s 复位周期）",
        "配网后卡死：关掉 Mesh Settings 落盘；已入网 C55C 不再灌 FFE4；不再排队改名"
      ]
    },
    {
      "fileName": "WM_CH592_SENSOR_V4.0.91_20260922144005.bin",
      "hexFileName": "WM_CH592_SENSOR_V4.0.91_20260922144005.hex",
      "version": "4.0.91",
      "buildTime": "2026-09-22T14:40:05+08:00",
      "sizeBytes": 138928,
      "sha256": "80a03f7df5e26e87841d619c7329a9b1e08319b3cc8affd7083ca85c1d50045f",
      "hexSizeBytes": 779859,
      "hexSha256": "a5682a49d31e4dc263eef8522d6e092f8ff01b17d4cc28eb22506acafc6a3804",
      "changelog": [
        "出厂 NetKey 改为 8C3E9F7A2D1B6C4A5E8F3A2B7C6D5E4F；NVS 密钥不符则重置自配网",
        "单播改用 MAC 全 6 字节哈希，避免后三字节相同的芯片撞成同一地址",
        "SEQ 水印落盘：重启/自配网后跳号，避免网关 RPL 把包当重放丢掉",
        "网关 SET TX 入队失败回 ERR；空口重试；垫子 SEASKY 应答经 Mesh 回 USB",
        "网关 USB 可将 SEASKY SET TX=WAVE|BASE ADDR=xxxx 发到指定传感器",
        "换角色后若 NVS 单播与角色不符则重置并自配网；出厂默认宏改回传感器",
        "B55B 改走 App_IsMeshGateway，去掉从未定义的旧 GATEWAY 宏",
        "关闭纯 BLE 编译，网关重新链入 Mesh 并出厂自配网",
        "独立网关（仅 CH592）本机完整回答 SEASKY ID，不再依赖 STM32",
        "网关回答 SEASKY ID MODEL=WM-G300-GW，发版拆成 SENSOR / GW 两套包",
        "新增 F77F / SEASKY CDC CFG? 查询 CH592 全部配置（角色/MAC/波特率/Relay/密钥），旧 FFE1 schema 0x02 保持兼容",
        "传感器连发 C55C 卡死：忙则丢包不再 trans_reset、热路径去掉 PRINT、叶子关 Relay、SEQ 落盘改为 3600",
        "一份固件兼顾传感器/网关：APP_MESH_ROLE_GATEWAY=1 时地址 0x0014，C55C 收包转 USB CDC",
        "出厂写死 NetKey，未入网时按 MAC 映射单播地址自动自配网",
        "MESH?/F66F/FFE1 的网络密钥改为从协议栈读取，重启后也能查到，不再另存 EEPROM 副本",
        "未配网蓝牙广播间隔改为 100ms；配网成功后关闭 GAP 广播并断开 BLE（调试常开除外）",
        "CH592A 写密钥用 256 字节擦除会死机，改为 4K 对齐",
        "新增 USB 命令 SEASKY CDC MESH? 查 Mesh 链路自检信息（地址/密钥/绑定/发送计数/配网返回值）",
        "开机顺序改回参考工程：先 App_Init 再 USB，去掉 Boot_UsbPump（它造成 1.6s/4s 复位周期）",
        "配网后卡死：关掉 Mesh Settings 落盘；已入网 C55C 不再灌 FFE4；不再排队改名"
      ]
    },
    {
      "fileName": "WM_CH592_SENSOR_V4.0.90_20260819122709.bin",
      "hexFileName": "WM_CH592_SENSOR_V4.0.90_20260819122709.hex",
      "version": "4.0.90",
      "buildTime": "2026-08-19T12:27:09+08:00",
      "sizeBytes": 138880,
      "sha256": "2a3a99cfd66e173f36b8939f10c77421a2a4c3ccb91a000fcb67a33718650ff0",
      "hexSizeBytes": 779724,
      "hexSha256": "d26a633d723a07bd8b337a9774ba426b4624eca255334133430618530b53e2dc",
      "changelog": [
        "单播改用 MAC 全 6 字节哈希，避免后三字节相同的芯片撞成同一地址",
        "SEQ 水印落盘：重启/自配网后跳号，避免网关 RPL 把包当重放丢掉",
        "网关 SET TX 入队失败回 ERR；空口重试；垫子 SEASKY 应答经 Mesh 回 USB",
        "网关 USB 可将 SEASKY SET TX=WAVE|BASE ADDR=xxxx 发到指定传感器",
        "换角色后若 NVS 单播与角色不符则重置并自配网；出厂默认宏改回传感器",
        "B55B 改走 App_IsMeshGateway，去掉从未定义的旧 GATEWAY 宏",
        "关闭纯 BLE 编译，网关重新链入 Mesh 并出厂自配网",
        "独立网关（仅 CH592）本机完整回答 SEASKY ID，不再依赖 STM32",
        "网关回答 SEASKY ID MODEL=WM-G300-GW，发版拆成 SENSOR / GW 两套包",
        "新增 F77F / SEASKY CDC CFG? 查询 CH592 全部配置（角色/MAC/波特率/Relay/密钥），旧 FFE1 schema 0x02 保持兼容",
        "传感器连发 C55C 卡死：忙则丢包不再 trans_reset、热路径去掉 PRINT、叶子关 Relay、SEQ 落盘改为 3600",
        "一份固件兼顾传感器/网关：APP_MESH_ROLE_GATEWAY=1 时地址 0x0014，C55C 收包转 USB CDC",
        "出厂写死 NetKey，未入网时按 MAC 映射单播地址自动自配网",
        "MESH?/F66F/FFE1 的网络密钥改为从协议栈读取，重启后也能查到，不再另存 EEPROM 副本",
        "未配网蓝牙广播间隔改为 100ms；配网成功后关闭 GAP 广播并断开 BLE（调试常开除外）",
        "CH592A 写密钥用 256 字节擦除会死机，改为 4K 对齐",
        "新增 USB 命令 SEASKY CDC MESH? 查 Mesh 链路自检信息（地址/密钥/绑定/发送计数/配网返回值）",
        "开机顺序改回参考工程：先 App_Init 再 USB，去掉 Boot_UsbPump（它造成 1.6s/4s 复位周期）",
        "配网后卡死：关掉 Mesh Settings 落盘；已入网 C55C 不再灌 FFE4；不再排队改名"
      ]
    },
    {
      "fileName": "WM_CH592_SENSOR_V4.0.89_20260817103245.bin",
      "hexFileName": "WM_CH592_SENSOR_V4.0.89_20260817103245.hex",
      "version": "4.0.89",
      "buildTime": "2026-08-17T10:32:45+08:00",
      "sizeBytes": 138888,
      "sha256": "f2b714aa7afb15fca88744c2175926ff6d7b7b9841046d4c72b7c4abef127472",
      "hexSizeBytes": 779753,
      "hexSha256": "261033b282d9627d954567788619e20a1f6b4ebce6a27e3ed4c6b34f4f6c3bc6",
      "changelog": [
        "单播改用 MAC 全 6 字节哈希，避免后三字节相同的芯片撞成同一地址",
        "SEQ 水印落盘：重启/自配网后跳号，避免网关 RPL 把包当重放丢掉",
        "网关 SET TX 入队失败回 ERR；空口重试；垫子 SEASKY 应答经 Mesh 回 USB",
        "网关 USB 可将 SEASKY SET TX=WAVE|BASE ADDR=xxxx 发到指定传感器",
        "换角色后若 NVS 单播与角色不符则重置并自配网；出厂默认宏改回传感器",
        "B55B 改走 App_IsMeshGateway，去掉从未定义的旧 GATEWAY 宏",
        "关闭纯 BLE 编译，网关重新链入 Mesh 并出厂自配网",
        "独立网关（仅 CH592）本机完整回答 SEASKY ID，不再依赖 STM32",
        "网关回答 SEASKY ID MODEL=WM-G300-GW，发版拆成 SENSOR / GW 两套包",
        "新增 F77F / SEASKY CDC CFG? 查询 CH592 全部配置（角色/MAC/波特率/Relay/密钥），旧 FFE1 schema 0x02 保持兼容",
        "传感器连发 C55C 卡死：忙则丢包不再 trans_reset、热路径去掉 PRINT、叶子关 Relay、SEQ 落盘改为 3600",
        "一份固件兼顾传感器/网关：APP_MESH_ROLE_GATEWAY=1 时地址 0x0014，C55C 收包转 USB CDC",
        "出厂写死 NetKey，未入网时按 MAC 映射单播地址自动自配网",
        "MESH?/F66F/FFE1 的网络密钥改为从协议栈读取，重启后也能查到，不再另存 EEPROM 副本",
        "未配网蓝牙广播间隔改为 100ms；配网成功后关闭 GAP 广播并断开 BLE（调试常开除外）",
        "CH592A 写密钥用 256 字节擦除会死机，改为 4K 对齐",
        "新增 USB 命令 SEASKY CDC MESH? 查 Mesh 链路自检信息（地址/密钥/绑定/发送计数/配网返回值）",
        "开机顺序改回参考工程：先 App_Init 再 USB，去掉 Boot_UsbPump（它造成 1.6s/4s 复位周期）",
        "配网后卡死：关掉 Mesh Settings 落盘；已入网 C55C 不再灌 FFE4；不再排队改名"
      ]
    },
    {
      "fileName": "WM_CH592_SENSOR_V4.0.88_20260817100608.bin",
      "hexFileName": "WM_CH592_SENSOR_V4.0.88_20260817100608.hex",
      "version": "4.0.88",
      "buildTime": "2026-08-17T10:06:08+08:00",
      "sizeBytes": 138868,
      "sha256": "5977cc5b2785bb3fa32bafd6d26e2289861d95be26eca8b5e6d8302d88e03701",
      "hexSizeBytes": 779700,
      "hexSha256": "58429bf9b35cc19297eb7af9bf2bce9db92b583169f7cd535c563a32e63c789b",
      "changelog": [
        "SEQ 水印落盘：重启/自配网后跳号，避免网关 RPL 把包当重放丢掉",
        "网关 SET TX 入队失败回 ERR；空口重试；垫子 SEASKY 应答经 Mesh 回 USB",
        "网关 USB 可将 SEASKY SET TX=WAVE|BASE ADDR=xxxx 发到指定传感器",
        "换角色后若 NVS 单播与角色不符则重置并自配网；出厂默认宏改回传感器",
        "B55B 改走 App_IsMeshGateway，去掉从未定义的旧 GATEWAY 宏",
        "关闭纯 BLE 编译，网关重新链入 Mesh 并出厂自配网",
        "独立网关（仅 CH592）本机完整回答 SEASKY ID，不再依赖 STM32",
        "网关回答 SEASKY ID MODEL=WM-G300-GW，发版拆成 SENSOR / GW 两套包",
        "新增 F77F / SEASKY CDC CFG? 查询 CH592 全部配置（角色/MAC/波特率/Relay/密钥），旧 FFE1 schema 0x02 保持兼容",
        "传感器连发 C55C 卡死：忙则丢包不再 trans_reset、热路径去掉 PRINT、叶子关 Relay、SEQ 落盘改为 3600",
        "一份固件兼顾传感器/网关：APP_MESH_ROLE_GATEWAY=1 时地址 0x0014，C55C 收包转 USB CDC",
        "出厂写死 NetKey，未入网时按 MAC 映射单播地址自动自配网",
        "MESH?/F66F/FFE1 的网络密钥改为从协议栈读取，重启后也能查到，不再另存 EEPROM 副本",
        "未配网蓝牙广播间隔改为 100ms；配网成功后关闭 GAP 广播并断开 BLE（调试常开除外）",
        "CH592A 写密钥用 256 字节擦除会死机，改为 4K 对齐",
        "新增 USB 命令 SEASKY CDC MESH? 查 Mesh 链路自检信息（地址/密钥/绑定/发送计数/配网返回值）",
        "开机顺序改回参考工程：先 App_Init 再 USB，去掉 Boot_UsbPump（它造成 1.6s/4s 复位周期）",
        "配网后卡死：关掉 Mesh Settings 落盘；已入网 C55C 不再灌 FFE4；不再排队改名"
      ]
    },
    {
      "fileName": "WM_CH592_SENSOR_V4.0.86_20260816230717.bin",
      "hexFileName": "WM_CH592_SENSOR_V4.0.86_20260816230717.hex",
      "version": "4.0.86",
      "buildTime": "2026-08-16T23:07:17+08:00",
      "sizeBytes": 138868,
      "sha256": "6ef39acdc69d6b3fb64e1fdefadd2cd1f2b8b6b7e8ebe6ad1c09908da805a90e",
      "hexSizeBytes": 779700,
      "hexSha256": "53f1cc9a97807caecd1507ada5ae6807391c543395dd0a87ae0383624619dc68",
      "changelog": [
        "SEQ 水印落盘：重启/自配网后跳号，避免网关 RPL 把包当重放丢掉",
        "网关 SET TX 入队失败回 ERR；空口重试；垫子 SEASKY 应答经 Mesh 回 USB",
        "网关 USB 可将 SEASKY SET TX=WAVE|BASE ADDR=xxxx 发到指定传感器",
        "换角色后若 NVS 单播与角色不符则重置并自配网；出厂默认宏改回传感器",
        "B55B 改走 App_IsMeshGateway，去掉从未定义的旧 GATEWAY 宏",
        "关闭纯 BLE 编译，网关重新链入 Mesh 并出厂自配网",
        "独立网关（仅 CH592）本机完整回答 SEASKY ID，不再依赖 STM32",
        "网关回答 SEASKY ID MODEL=WM-G300-GW，发版拆成 SENSOR / GW 两套包",
        "新增 F77F / SEASKY CDC CFG? 查询 CH592 全部配置（角色/MAC/波特率/Relay/密钥），旧 FFE1 schema 0x02 保持兼容",
        "传感器连发 C55C 卡死：忙则丢包不再 trans_reset、热路径去掉 PRINT、叶子关 Relay、SEQ 落盘改为 3600",
        "一份固件兼顾传感器/网关：APP_MESH_ROLE_GATEWAY=1 时地址 0x0014，C55C 收包转 USB CDC",
        "出厂写死 NetKey，未入网时按 MAC 映射单播地址自动自配网",
        "MESH?/F66F/FFE1 的网络密钥改为从协议栈读取，重启后也能查到，不再另存 EEPROM 副本",
        "未配网蓝牙广播间隔改为 100ms；配网成功后关闭 GAP 广播并断开 BLE（调试常开除外）",
        "CH592A 写密钥用 256 字节擦除会死机，改为 4K 对齐",
        "新增 USB 命令 SEASKY CDC MESH? 查 Mesh 链路自检信息（地址/密钥/绑定/发送计数/配网返回值）",
        "开机顺序改回参考工程：先 App_Init 再 USB，去掉 Boot_UsbPump（它造成 1.6s/4s 复位周期）",
        "配网后卡死：关掉 Mesh Settings 落盘；已入网 C55C 不再灌 FFE4；不再排队改名"
      ]
    },
    {
      "fileName": "WM_CH592_SENSOR_V4.0.85_20260816204027.bin",
      "hexFileName": "WM_CH592_SENSOR_V4.0.85_20260816204027.hex",
      "version": "4.0.85",
      "buildTime": "2026-08-16T20:40:27+08:00",
      "sizeBytes": 138372,
      "sha256": "b1ab875c3c44336b5b79dd050cc429d36038ecb777bad746393580cfa95c3fb7",
      "hexSizeBytes": 778305,
      "hexSha256": "1c32f584ae0a0e954e64d8e4fa0fb1b4d74428497322149ed45ba51448fb3216",
      "changelog": [
        "网关 SET TX 入队失败回 ERR；空口重试；垫子 SEASKY 应答经 Mesh 回 USB",
        "网关 USB 可将 SEASKY SET TX=WAVE|BASE ADDR=xxxx 发到指定传感器",
        "换角色后若 NVS 单播与角色不符则重置并自配网；出厂默认宏改回传感器",
        "B55B 改走 App_IsMeshGateway，去掉从未定义的旧 GATEWAY 宏",
        "关闭纯 BLE 编译，网关重新链入 Mesh 并出厂自配网",
        "独立网关（仅 CH592）本机完整回答 SEASKY ID，不再依赖 STM32",
        "网关回答 SEASKY ID MODEL=WM-G300-GW，发版拆成 SENSOR / GW 两套包",
        "新增 F77F / SEASKY CDC CFG? 查询 CH592 全部配置（角色/MAC/波特率/Relay/密钥），旧 FFE1 schema 0x02 保持兼容",
        "传感器连发 C55C 卡死：忙则丢包不再 trans_reset、热路径去掉 PRINT、叶子关 Relay、SEQ 落盘改为 3600",
        "一份固件兼顾传感器/网关：APP_MESH_ROLE_GATEWAY=1 时地址 0x0014，C55C 收包转 USB CDC",
        "出厂写死 NetKey，未入网时按 MAC 映射单播地址自动自配网",
        "MESH?/F66F/FFE1 的网络密钥改为从协议栈读取，重启后也能查到，不再另存 EEPROM 副本",
        "未配网蓝牙广播间隔改为 100ms；配网成功后关闭 GAP 广播并断开 BLE（调试常开除外）",
        "CH592A 写密钥用 256 字节擦除会死机，改为 4K 对齐",
        "新增 USB 命令 SEASKY CDC MESH? 查 Mesh 链路自检信息（地址/密钥/绑定/发送计数/配网返回值）",
        "开机顺序改回参考工程：先 App_Init 再 USB，去掉 Boot_UsbPump（它造成 1.6s/4s 复位周期）",
        "配网后卡死：关掉 Mesh Settings 落盘；已入网 C55C 不再灌 FFE4；不再排队改名"
      ]
    },
    {
      "fileName": "WM_CH592_SENSOR_V4.0.82_20260816180907.bin",
      "hexFileName": "WM_CH592_SENSOR_V4.0.82_20260816180907.hex",
      "version": "4.0.82",
      "buildTime": "2026-08-16T18:09:07+08:00",
      "sizeBytes": 138372,
      "sha256": "85602196eb0eb21da273da100899c20aef3a9a2bf57e6d7fb953008b28c91ed4",
      "hexSizeBytes": 778305,
      "hexSha256": "96ffe7a0f848cae25ace0d69894fcd58b878e97acafa15d0a716cb9c3e390fc4",
      "changelog": [
        "网关 SET TX 入队失败回 ERR；空口重试；垫子 SEASKY 应答经 Mesh 回 USB",
        "网关 USB 可将 SEASKY SET TX=WAVE|BASE ADDR=xxxx 发到指定传感器",
        "换角色后若 NVS 单播与角色不符则重置并自配网；出厂默认宏改回传感器",
        "B55B 改走 App_IsMeshGateway，去掉从未定义的旧 GATEWAY 宏",
        "关闭纯 BLE 编译，网关重新链入 Mesh 并出厂自配网",
        "独立网关（仅 CH592）本机完整回答 SEASKY ID，不再依赖 STM32",
        "网关回答 SEASKY ID MODEL=WM-G300-GW，发版拆成 SENSOR / GW 两套包",
        "新增 F77F / SEASKY CDC CFG? 查询 CH592 全部配置（角色/MAC/波特率/Relay/密钥），旧 FFE1 schema 0x02 保持兼容",
        "传感器连发 C55C 卡死：忙则丢包不再 trans_reset、热路径去掉 PRINT、叶子关 Relay、SEQ 落盘改为 3600",
        "一份固件兼顾传感器/网关：APP_MESH_ROLE_GATEWAY=1 时地址 0x0014，C55C 收包转 USB CDC",
        "出厂写死 NetKey，未入网时按 MAC 映射单播地址自动自配网",
        "MESH?/F66F/FFE1 的网络密钥改为从协议栈读取，重启后也能查到，不再另存 EEPROM 副本",
        "未配网蓝牙广播间隔改为 100ms；配网成功后关闭 GAP 广播并断开 BLE（调试常开除外）",
        "CH592A 写密钥用 256 字节擦除会死机，改为 4K 对齐",
        "新增 USB 命令 SEASKY CDC MESH? 查 Mesh 链路自检信息（地址/密钥/绑定/发送计数/配网返回值）",
        "开机顺序改回参考工程：先 App_Init 再 USB，去掉 Boot_UsbPump（它造成 1.6s/4s 复位周期）",
        "配网后卡死：关掉 Mesh Settings 落盘；已入网 C55C 不再灌 FFE4；不再排队改名"
      ]
    },
    {
      "fileName": "WM_CH592_SENSOR_V4.0.80_20260816172456.bin",
      "hexFileName": "WM_CH592_SENSOR_V4.0.80_20260816172456.hex",
      "version": "4.0.80",
      "buildTime": "2026-08-16T17:24:56+08:00",
      "sizeBytes": 139420,
      "sha256": "9cacf876f8d6ec46c1a11c9cfaed5ee2cd4a46a45f70f070bc50adb501b780c2",
      "hexSizeBytes": 781246,
      "hexSha256": "8662516bee4150356459391dff310331b561f48a3cbb257f37157efeb501c03a",
      "changelog": [
        "网关 USB：SEASKY CDC TX=WAVE|BASE ADDR=xxxx 经 Mesh 切换指定传感器上报协议",
        "关闭纯 BLE 编译，网关重新链入 Mesh 并出厂自配网",
        "独立网关（仅 CH592）本机完整回答 SEASKY ID，不再依赖 STM32",
        "网关回答 SEASKY ID MODEL=WM-G300-GW，发版拆成 SENSOR / GW 两套包",
        "新增 F77F / SEASKY CDC CFG? 查询 CH592 全部配置（角色/MAC/波特率/Relay/密钥），旧 FFE1 schema 0x02 保持兼容",
        "传感器连发 C55C 卡死：忙则丢包不再 trans_reset、热路径去掉 PRINT、叶子关 Relay、SEQ 落盘改为 3600",
        "一份固件兼顾传感器/网关：APP_MESH_ROLE_GATEWAY=1 时地址 0x0014，C55C 收包转 USB CDC",
        "出厂写死 NetKey，未入网时按 MAC 映射单播地址自动自配网",
        "MESH?/F66F/FFE1 的网络密钥改为从协议栈读取，重启后也能查到，不再另存 EEPROM 副本",
        "未配网蓝牙广播间隔改为 100ms；配网成功后关闭 GAP 广播并断开 BLE（调试常开除外）",
        "CH592A 写密钥用 256 字节擦除会死机，改为 4K 对齐",
        "新增 USB 命令 SEASKY CDC MESH? 查 Mesh 链路自检信息（地址/密钥/绑定/发送计数/配网返回值）",
        "开机顺序改回参考工程：先 App_Init 再 USB，去掉 Boot_UsbPump（它造成 1.6s/4s 复位周期）",
        "配网后卡死：关掉 Mesh Settings 落盘；已入网 C55C 不再灌 FFE4；不再排队改名"
      ]
    },
    {
      "fileName": "WM_CH592_SENSOR_V4.0.80_20260816173543.bin",
      "hexFileName": "WM_CH592_SENSOR_V4.0.80_20260816173543.hex",
      "version": "4.0.80",
      "buildTime": "2026-08-16T17:35:43+08:00",
      "sizeBytes": 138660,
      "sha256": "a9d2d0568826a3c3ece9be40ace81e8f515803abcd4354d9e1386aefa03de753",
      "hexSizeBytes": 779115,
      "hexSha256": "88f6eaa55f336f7d04dd316321458b8d19bcd416b0c605ad373be2d2f67b8981",
      "changelog": [
        "网关 CDC TX 增加 DBG/PING，便于排查 USB→Mesh→传感器→STM32",
        "网关 USB：SEASKY CDC TX=WAVE|BASE ADDR=xxxx 经 Mesh 切换指定传感器上报协议",
        "关闭纯 BLE 编译，网关重新链入 Mesh 并出厂自配网",
        "独立网关（仅 CH592）本机完整回答 SEASKY ID，不再依赖 STM32",
        "网关回答 SEASKY ID MODEL=WM-G300-GW，发版拆成 SENSOR / GW 两套包",
        "新增 F77F / SEASKY CDC CFG? 查询 CH592 全部配置（角色/MAC/波特率/Relay/密钥），旧 FFE1 schema 0x02 保持兼容",
        "传感器连发 C55C 卡死：忙则丢包不再 trans_reset、热路径去掉 PRINT、叶子关 Relay、SEQ 落盘改为 3600",
        "一份固件兼顾传感器/网关：APP_MESH_ROLE_GATEWAY=1 时地址 0x0014，C55C 收包转 USB CDC",
        "出厂写死 NetKey，未入网时按 MAC 映射单播地址自动自配网",
        "MESH?/F66F/FFE1 的网络密钥改为从协议栈读取，重启后也能查到，不再另存 EEPROM 副本",
        "未配网蓝牙广播间隔改为 100ms；配网成功后关闭 GAP 广播并断开 BLE（调试常开除外）",
        "CH592A 写密钥用 256 字节擦除会死机，改为 4K 对齐",
        "新增 USB 命令 SEASKY CDC MESH? 查 Mesh 链路自检信息（地址/密钥/绑定/发送计数/配网返回值）",
        "开机顺序改回参考工程：先 App_Init 再 USB，去掉 Boot_UsbPump（它造成 1.6s/4s 复位周期）",
        "配网后卡死：关掉 Mesh Settings 落盘；已入网 C55C 不再灌 FFE4；不再排队改名"
      ]
    },
    {
      "fileName": "WM_CH592_SENSOR_V4.0.79_20260816171902.bin",
      "hexFileName": "WM_CH592_SENSOR_V4.0.79_20260816171902.hex",
      "version": "4.0.79",
      "buildTime": "2026-08-16T17:19:02+08:00",
      "sizeBytes": 138160,
      "sha256": "d168851cf4073dc02e2ff7c9955691219f75884c37a5a8a450bb5892435d8101",
      "hexSizeBytes": 777699,
      "hexSha256": "ed226e7e5fa546f8b5258dd80a677bad654c04997217e576dbf8640da159c2a6",
      "changelog": [
        "网关 USB：SEASKY CDC TX=WAVE|BASE ADDR=xxxx 经 Mesh 切换指定传感器上报协议",
        "关闭纯 BLE 编译，网关重新链入 Mesh 并出厂自配网",
        "独立网关（仅 CH592）本机完整回答 SEASKY ID，不再依赖 STM32",
        "网关回答 SEASKY ID MODEL=WM-G300-GW，发版拆成 SENSOR / GW 两套包",
        "新增 F77F / SEASKY CDC CFG? 查询 CH592 全部配置（角色/MAC/波特率/Relay/密钥），旧 FFE1 schema 0x02 保持兼容",
        "传感器连发 C55C 卡死：忙则丢包不再 trans_reset、热路径去掉 PRINT、叶子关 Relay、SEQ 落盘改为 3600",
        "一份固件兼顾传感器/网关：APP_MESH_ROLE_GATEWAY=1 时地址 0x0014，C55C 收包转 USB CDC",
        "出厂写死 NetKey，未入网时按 MAC 映射单播地址自动自配网",
        "MESH?/F66F/FFE1 的网络密钥改为从协议栈读取，重启后也能查到，不再另存 EEPROM 副本",
        "未配网蓝牙广播间隔改为 100ms；配网成功后关闭 GAP 广播并断开 BLE（调试常开除外）",
        "CH592A 写密钥用 256 字节擦除会死机，改为 4K 对齐",
        "新增 USB 命令 SEASKY CDC MESH? 查 Mesh 链路自检信息（地址/密钥/绑定/发送计数/配网返回值）",
        "开机顺序改回参考工程：先 App_Init 再 USB，去掉 Boot_UsbPump（它造成 1.6s/4s 复位周期）",
        "配网后卡死：关掉 Mesh Settings 落盘；已入网 C55C 不再灌 FFE4；不再排队改名"
      ]
    },
    {
      "fileName": "WM_CH592_SENSOR_V4.0.79_20260816172955.bin",
      "hexFileName": "WM_CH592_SENSOR_V4.0.79_20260816172955.hex",
      "version": "4.0.79",
      "buildTime": "2026-08-16T17:29:55+08:00",
      "sizeBytes": 138144,
      "sha256": "cf76276ae365d6af97086e29ab95d61628dea4743d0d82a5270de3676e72620b",
      "hexSizeBytes": 777654,
      "hexSha256": "355f017fecc9a62a9b35b5652ada106edff9d8feb2462e9376a080550e108263",
      "changelog": [
        "网关 CDC TX 增加 DBG/PING，便于排查 USB→Mesh→传感器→STM32",
        "网关 USB：SEASKY CDC TX=WAVE|BASE ADDR=xxxx 经 Mesh 切换指定传感器上报协议",
        "关闭纯 BLE 编译，网关重新链入 Mesh 并出厂自配网",
        "独立网关（仅 CH592）本机完整回答 SEASKY ID，不再依赖 STM32",
        "网关回答 SEASKY ID MODEL=WM-G300-GW，发版拆成 SENSOR / GW 两套包",
        "新增 F77F / SEASKY CDC CFG? 查询 CH592 全部配置（角色/MAC/波特率/Relay/密钥），旧 FFE1 schema 0x02 保持兼容",
        "传感器连发 C55C 卡死：忙则丢包不再 trans_reset、热路径去掉 PRINT、叶子关 Relay、SEQ 落盘改为 3600",
        "一份固件兼顾传感器/网关：APP_MESH_ROLE_GATEWAY=1 时地址 0x0014，C55C 收包转 USB CDC",
        "出厂写死 NetKey，未入网时按 MAC 映射单播地址自动自配网",
        "MESH?/F66F/FFE1 的网络密钥改为从协议栈读取，重启后也能查到，不再另存 EEPROM 副本",
        "未配网蓝牙广播间隔改为 100ms；配网成功后关闭 GAP 广播并断开 BLE（调试常开除外）",
        "CH592A 写密钥用 256 字节擦除会死机，改为 4K 对齐",
        "新增 USB 命令 SEASKY CDC MESH? 查 Mesh 链路自检信息（地址/密钥/绑定/发送计数/配网返回值）",
        "开机顺序改回参考工程：先 App_Init 再 USB，去掉 Boot_UsbPump（它造成 1.6s/4s 复位周期）",
        "配网后卡死：关掉 Mesh Settings 落盘；已入网 C55C 不再灌 FFE4；不再排队改名"
      ]
    },
    {
      "fileName": "WM_CH592_SENSOR_V4.0.77_20260816175509.bin",
      "hexFileName": "WM_CH592_SENSOR_V4.0.77_20260816175509.hex",
      "version": "4.0.77",
      "buildTime": "2026-08-16T17:55:09+08:00",
      "sizeBytes": 138240,
      "sha256": "6487659e47a2407bb262c7478392ea22300e0c1153f1470f091bd1377f765662",
      "hexSizeBytes": 777924,
      "hexSha256": "b250c918f5e51f815273fd318317a21242a56af60e3104277b65a13a2889b756",
      "changelog": [
        "网关 USB 可将 SEASKY SET TX=WAVE|BASE ADDR=xxxx 发到指定传感器",
        "换角色后若 NVS 单播与角色不符则重置并自配网；出厂默认宏改回传感器",
        "B55B 改走 App_IsMeshGateway，去掉从未定义的旧 GATEWAY 宏",
        "关闭纯 BLE 编译，网关重新链入 Mesh 并出厂自配网",
        "独立网关（仅 CH592）本机完整回答 SEASKY ID，不再依赖 STM32",
        "网关回答 SEASKY ID MODEL=WM-G300-GW，发版拆成 SENSOR / GW 两套包",
        "新增 F77F / SEASKY CDC CFG? 查询 CH592 全部配置（角色/MAC/波特率/Relay/密钥），旧 FFE1 schema 0x02 保持兼容",
        "传感器连发 C55C 卡死：忙则丢包不再 trans_reset、热路径去掉 PRINT、叶子关 Relay、SEQ 落盘改为 3600",
        "一份固件兼顾传感器/网关：APP_MESH_ROLE_GATEWAY=1 时地址 0x0014，C55C 收包转 USB CDC",
        "出厂写死 NetKey，未入网时按 MAC 映射单播地址自动自配网",
        "MESH?/F66F/FFE1 的网络密钥改为从协议栈读取，重启后也能查到，不再另存 EEPROM 副本",
        "未配网蓝牙广播间隔改为 100ms；配网成功后关闭 GAP 广播并断开 BLE（调试常开除外）",
        "CH592A 写密钥用 256 字节擦除会死机，改为 4K 对齐",
        "新增 USB 命令 SEASKY CDC MESH? 查 Mesh 链路自检信息（地址/密钥/绑定/发送计数/配网返回值）",
        "开机顺序改回参考工程：先 App_Init 再 USB，去掉 Boot_UsbPump（它造成 1.6s/4s 复位周期）",
        "配网后卡死：关掉 Mesh Settings 落盘；已入网 C55C 不再灌 FFE4；不再排队改名"
      ]
    },
    {
      "fileName": "WM_CH592_SENSOR_V4.0.76_20260816170124.bin",
      "hexFileName": "WM_CH592_SENSOR_V4.0.76_20260816170124.hex",
      "version": "4.0.76",
      "buildTime": "2026-08-16T17:01:24+08:00",
      "sizeBytes": 137868,
      "sha256": "f208a323cd1d71f13ab3ac79209d597a6547cc6f821903458798fb84c637c448",
      "hexSizeBytes": 776881,
      "hexSha256": "65759bcb2b657ddf35397a848e26886c22c8ccf24902c1c3791cc6dae708f84d",
      "changelog": [
        "网关 USB：SEASKY CDC TX=WAVE|BASE ADDR=xxxx 经 Mesh 切换指定传感器上报协议",
        "关闭纯 BLE 编译，网关重新链入 Mesh 并出厂自配网",
        "独立网关（仅 CH592）本机完整回答 SEASKY ID，不再依赖 STM32",
        "网关回答 SEASKY ID MODEL=WM-G300-GW，发版拆成 SENSOR / GW 两套包",
        "新增 F77F / SEASKY CDC CFG? 查询 CH592 全部配置（角色/MAC/波特率/Relay/密钥），旧 FFE1 schema 0x02 保持兼容",
        "传感器连发 C55C 卡死：忙则丢包不再 trans_reset、热路径去掉 PRINT、叶子关 Relay、SEQ 落盘改为 3600",
        "一份固件兼顾传感器/网关：APP_MESH_ROLE_GATEWAY=1 时地址 0x0014，C55C 收包转 USB CDC",
        "出厂写死 NetKey，未入网时按 MAC 映射单播地址自动自配网",
        "MESH?/F66F/FFE1 的网络密钥改为从协议栈读取，重启后也能查到，不再另存 EEPROM 副本",
        "未配网蓝牙广播间隔改为 100ms；配网成功后关闭 GAP 广播并断开 BLE（调试常开除外）",
        "CH592A 写密钥用 256 字节擦除会死机，改为 4K 对齐",
        "新增 USB 命令 SEASKY CDC MESH? 查 Mesh 链路自检信息（地址/密钥/绑定/发送计数/配网返回值）",
        "开机顺序改回参考工程：先 App_Init 再 USB，去掉 Boot_UsbPump（它造成 1.6s/4s 复位周期）",
        "配网后卡死：关掉 Mesh Settings 落盘；已入网 C55C 不再灌 FFE4；不再排队改名"
      ]
    },
    {
      "fileName": "WM_CH592_SENSOR_V4.0.75_20260816170001.bin",
      "hexFileName": "WM_CH592_SENSOR_V4.0.75_20260816170001.hex",
      "version": "4.0.75",
      "buildTime": "2026-08-16T17:00:01+08:00",
      "sizeBytes": 137868,
      "sha256": "53b6429e1ce54596e323af22eadf86e053c186f56235e6ef84dd59e5c4684535",
      "hexSizeBytes": 776881,
      "hexSha256": "872d1a1b157503127cf13c434a0d206cc5a7de2ed4209df8ea88c3ee81de24d1",
      "changelog": [
        "网关 USB：SEASKY CDC TX=WAVE|BASE ADDR=xxxx 经 Mesh 切换指定传感器上报协议",
        "关闭纯 BLE 编译，网关重新链入 Mesh 并出厂自配网",
        "独立网关（仅 CH592）本机完整回答 SEASKY ID，不再依赖 STM32",
        "网关回答 SEASKY ID MODEL=WM-G300-GW，发版拆成 SENSOR / GW 两套包",
        "新增 F77F / SEASKY CDC CFG? 查询 CH592 全部配置（角色/MAC/波特率/Relay/密钥），旧 FFE1 schema 0x02 保持兼容",
        "传感器连发 C55C 卡死：忙则丢包不再 trans_reset、热路径去掉 PRINT、叶子关 Relay、SEQ 落盘改为 3600",
        "一份固件兼顾传感器/网关：APP_MESH_ROLE_GATEWAY=1 时地址 0x0014，C55C 收包转 USB CDC",
        "出厂写死 NetKey，未入网时按 MAC 映射单播地址自动自配网",
        "MESH?/F66F/FFE1 的网络密钥改为从协议栈读取，重启后也能查到，不再另存 EEPROM 副本",
        "未配网蓝牙广播间隔改为 100ms；配网成功后关闭 GAP 广播并断开 BLE（调试常开除外）",
        "CH592A 写密钥用 256 字节擦除会死机，改为 4K 对齐",
        "新增 USB 命令 SEASKY CDC MESH? 查 Mesh 链路自检信息（地址/密钥/绑定/发送计数/配网返回值）",
        "开机顺序改回参考工程：先 App_Init 再 USB，去掉 Boot_UsbPump（它造成 1.6s/4s 复位周期）",
        "配网后卡死：关掉 Mesh Settings 落盘；已入网 C55C 不再灌 FFE4；不再排队改名"
      ]
    },
    {
      "fileName": "WM_CH592_SENSOR_V4.0.75_20260816173854.bin",
      "hexFileName": "WM_CH592_SENSOR_V4.0.75_20260816173854.hex",
      "version": "4.0.75",
      "buildTime": "2026-08-16T17:38:54+08:00",
      "sizeBytes": 137600,
      "sha256": "13a8a0921ad96035b46ecfe0e8b475c92c32fd329dd83ae06f39e1fcb614d5a7",
      "hexSizeBytes": 776124,
      "hexSha256": "0e3e254dd83860be6da58407457b524e8909d5b14f616a0f06cc6603a700754a",
      "changelog": [
        "关闭纯 BLE 编译，网关重新链入 Mesh 并出厂自配网",
        "独立网关（仅 CH592）本机完整回答 SEASKY ID，不再依赖 STM32",
        "网关回答 SEASKY ID MODEL=WM-G300-GW，发版拆成 SENSOR / GW 两套包",
        "新增 F77F / SEASKY CDC CFG? 查询 CH592 全部配置（角色/MAC/波特率/Relay/密钥），旧 FFE1 schema 0x02 保持兼容",
        "传感器连发 C55C 卡死：忙则丢包不再 trans_reset、热路径去掉 PRINT、叶子关 Relay、SEQ 落盘改为 3600",
        "一份固件兼顾传感器/网关：APP_MESH_ROLE_GATEWAY=1 时地址 0x0014，C55C 收包转 USB CDC",
        "出厂写死 NetKey，未入网时按 MAC 映射单播地址自动自配网",
        "MESH?/F66F/FFE1 的网络密钥改为从协议栈读取，重启后也能查到，不再另存 EEPROM 副本",
        "未配网蓝牙广播间隔改为 100ms；配网成功后关闭 GAP 广播并断开 BLE（调试常开除外）",
        "CH592A 写密钥用 256 字节擦除会死机，改为 4K 对齐",
        "新增 USB 命令 SEASKY CDC MESH? 查 Mesh 链路自检信息（地址/密钥/绑定/发送计数/配网返回值）",
        "开机顺序改回参考工程：先 App_Init 再 USB，去掉 Boot_UsbPump（它造成 1.6s/4s 复位周期）",
        "配网后卡死：关掉 Mesh Settings 落盘；已入网 C55C 不再灌 FFE4；不再排队改名"
      ]
    },
    {
      "fileName": "WM_CH592_SENSOR_V4.0.74_20260816165253.bin",
      "hexFileName": "WM_CH592_SENSOR_V4.0.74_20260816165253.hex",
      "version": "4.0.74",
      "buildTime": "2026-08-16T16:52:53+08:00",
      "sizeBytes": 137600,
      "sha256": "bafa4ab63ef3eb4363d490c4d2c526cf95c881b6863d4941e4d9c0bb9b506b09",
      "hexSizeBytes": 776124,
      "hexSha256": "5bba1ec816b48f06887206d0c9c39a0ec61cc6fb3bfddc2676a9785d1a8705e9",
      "changelog": [
        "关闭纯 BLE 编译，网关重新链入 Mesh 并出厂自配网",
        "独立网关（仅 CH592）本机完整回答 SEASKY ID，不再依赖 STM32",
        "网关回答 SEASKY ID MODEL=WM-G300-GW，发版拆成 SENSOR / GW 两套包",
        "新增 F77F / SEASKY CDC CFG? 查询 CH592 全部配置（角色/MAC/波特率/Relay/密钥），旧 FFE1 schema 0x02 保持兼容",
        "传感器连发 C55C 卡死：忙则丢包不再 trans_reset、热路径去掉 PRINT、叶子关 Relay、SEQ 落盘改为 3600",
        "一份固件兼顾传感器/网关：APP_MESH_ROLE_GATEWAY=1 时地址 0x0014，C55C 收包转 USB CDC",
        "出厂写死 NetKey，未入网时按 MAC 映射单播地址自动自配网",
        "MESH?/F66F/FFE1 的网络密钥改为从协议栈读取，重启后也能查到，不再另存 EEPROM 副本",
        "未配网蓝牙广播间隔改为 100ms；配网成功后关闭 GAP 广播并断开 BLE（调试常开除外）",
        "CH592A 写密钥用 256 字节擦除会死机，改为 4K 对齐",
        "新增 USB 命令 SEASKY CDC MESH? 查 Mesh 链路自检信息（地址/密钥/绑定/发送计数/配网返回值）",
        "开机顺序改回参考工程：先 App_Init 再 USB，去掉 Boot_UsbPump（它造成 1.6s/4s 复位周期）",
        "配网后卡死：关掉 Mesh Settings 落盘；已入网 C55C 不再灌 FFE4；不再排队改名"
      ]
    },
    {
      "fileName": "WM_CH592_SENSOR_V4.0.69_20260816155742.bin",
      "hexFileName": "WM_CH592_SENSOR_V4.0.69_20260816155742.hex",
      "version": "4.0.69",
      "buildTime": "2026-08-16T15:57:42+08:00",
      "sizeBytes": 137516,
      "sha256": "53eec28865047162f022cccf68d547aef0be91953a263b51aa27d9cf9d9a1b03",
      "hexSizeBytes": 775891,
      "hexSha256": "6d2870e2adcdfcefc963e8e14669fb64f0b9e70d3ecee4149648e99bb1c5daf5",
      "changelog": [
        "网关回答 SEASKY ID MODEL=WM-G300-GW，发版拆成 SENSOR / GW 两套包",
        "新增 F77F / SEASKY CDC CFG? 查询 CH592 全部配置（角色/MAC/波特率/Relay/密钥），旧 FFE1 schema 0x02 保持兼容",
        "传感器连发 C55C 卡死：忙则丢包不再 trans_reset、热路径去掉 PRINT、叶子关 Relay、SEQ 落盘改为 3600",
        "一份固件兼顾传感器/网关：APP_MESH_ROLE_GATEWAY=1 时地址 0x0014，C55C 收包转 USB CDC",
        "出厂写死 NetKey，未入网时按 MAC 映射单播地址自动自配网",
        "MESH?/F66F/FFE1 的网络密钥改为从协议栈读取，重启后也能查到，不再另存 EEPROM 副本",
        "未配网蓝牙广播间隔改为 100ms；配网成功后关闭 GAP 广播并断开 BLE（调试常开除外）",
        "CH592A 写密钥用 256 字节擦除会死机，改为 4K 对齐",
        "新增 USB 命令 SEASKY CDC MESH? 查 Mesh 链路自检信息（地址/密钥/绑定/发送计数/配网返回值）",
        "开机顺序改回参考工程：先 App_Init 再 USB，去掉 Boot_UsbPump（它造成 1.6s/4s 复位周期）",
        "配网后卡死：关掉 Mesh Settings 落盘；已入网 C55C 不再灌 FFE4；不再排队改名"
      ]
    }
  ]
}