LD2402 Firmware v3.3.5 — Manual Save-to-Flash (0x00FD) Fails for Parameter 0x003F When Set via 0x0007

Viewed 7

Module: HLK-LD2402
Firmware: v3.3.5 (confirmed via command 0x0000, "Read firmware version")

Issue
Parameter 0x003F (Gate 15 micro-motion threshold) writes successfully via command 0x0007, updates the live operating value, and reads back correctly. But the save-to-flash command (0x00FD) fails every time 0x003F was set via the manual 0x0007 command. Notably, this address can be persisted to flash — a value set via the automatic threshold generation command (0x0009) for this same parameter survives a power cycle correctly. The failure is specific to the manual set-then-save (0x0007 -> 0x00FD) sequence for this one address, not a general inability to store it in flash.

Reproduction

  1. Enter config mode (0x00FF).
  2. Write parameter 0x003F via command 0x0007.
  3. Read back 0x003F (0x0008) -- new value confirmed active.
  4. Send save command 0x00FD.
  5. Module returns Save Failed -- a fast, explicit rejection (~4s), not a timeout or dropped response.
  6. Exit config mode (0x00FE).

Control test A -- same procedure with parameter 0x001F (Gate 15 motion threshold), or any other gate threshold: save succeeds, value persists across power cycle.

Control test B -- a value for 0x003F set via automatic threshold generation (command 0x0009) persists correctly across a power cycle, confirming the address itself supports flash storage.

Confirmed

  • Write to 0x003F via 0x0007: succeeds
  • Read-back of 0x003F: correct
  • Manual save (0x0007 -> 0x00FD) with only 0x003F pending: fails
  • Manual save with 0x003F + 0x001F pending together: fails
  • Manual save with any other parameter, including all Gate 0-14 thresholds together: succeeds, persists
  • A value for 0x003F set via 0x0009 (auto threshold generation) persists correctly across a power cycle

Not yet tested

  • Save with 0x003E + 0x003F pending together via 0x0007
  • Save after restoring 0x003F to factory default via 0x0007

Reproducibility: 100% for the manual set-then-save failure -- reproduced across multiple independent test runs and gate combinations. Deterministic, not intermittent.

Root cause assessment: UART transport, protocol implementation, and the RAM write path all function correctly. The defect appears isolated to the manual parameter-save routine's handling of address 0x003F specifically -- since the same address is provably writable to flash via the automatic threshold generation command, this looks like a difference in how the two code paths (0x0009's internal commit vs. the explicit 0x0007 -> 0x00FD sequence) handle that particular parameter ID, consistent with an address-range/boundary check present in one path but not the other.

Ask: Please confirm whether this is a known issue, and whether a firmware update exists that resolves it.

Firmware update request

If a firmware revision newer than v3.3.5 exists that addresses this (or any other) known issue with the LD2402's parameter save routine, please share the update file and any release notes/changelog covering the fix. If v3.3.5 is the latest available, please confirm that as well so we know not to keep looking for a newer build.

0 Answers