Skip to content

Incorporate firmware engineer's filter table; fix MAC response format#3

Merged
lkasso merged 1 commit into
mainfrom
lkasso/firmware-filter-table
Jun 12, 2026
Merged

Incorporate firmware engineer's filter table; fix MAC response format#3
lkasso merged 1 commit into
mainfrom
lkasso/firmware-filter-table

Conversation

@lkasso

@lkasso lkasso commented Jun 12, 2026

Copy link
Copy Markdown
Member

Summary

  • Data Processor filter reference updated from the authoritative firmware filter table: all IDs 0x01–0x1B exist; firmware-only types documented (Punch 0x04, Peak 0x05, Multi-Channel Averager 0x0E, Quaternion Averager 0x1A; 0x12–0x19 reserved) with an "SDK exposed" column
  • Math op 0 = explicit no-op; Averager byte order fixed; Comparator byte-0 bitfield + form disambiguation by config length; Time mode 2; Sample Delay 4-bit length; Buffer/Packer/Accounter/Delta state semantics; Fuser count bits 0–4 with one ID byte per reference (also un-breaks the comparator references row the earlier fix hit by mistake)
  • Pulse output mode 3 confirmed supported on target firmware (1.7.x)
  • MAC read (0x0B): 6-byte (old fw) or 7-byte (current fw, leading address-type byte) response — corrects the previous always-6-bytes claim

mkdocs build --strict passes.

🤖 Generated with Claude Code

Filter corrections (from the authoritative firmware filter spec):
- All processor IDs 0x01-0x1B exist in firmware; add SDK-exposed column
- Restore Peak Detector (0x05) and add Punch Detector (0x04),
  Multi-Channel Averager (0x0E), Quaternion Averager (0x1A) as
  firmware-only types; 0x12-0x19 reserved/board-specific
- Math: op 0 is an explicit no-op
- Averager: byte 1 is average depth, byte 2 is input vector length
- Comparator: byte 0 is a bitfield (sign, length-enable, length);
  single vs multi form disambiguated by config length (7 vs 1+4N)
- Time: add mode 2 (passthrough); Sample Delay length is 4 bits
- Buffer/Packer/Accounter/Delta: state semantics and field details
- Fuser: count is bits 0-4, one ID byte per reference (the earlier
  one-byte fix had landed on the comparator's references row by
  mistake - both rows now correct)
- Pulse: mode 3 (on-detection) confirmed supported on 1.7.x

MAC address read (0x0B): response is 6 bytes on older firmware or
7 bytes with a leading address-type byte on current firmware
(C++ convert_to_mac_address handles both); the previous always-6-bytes
claim was wrong.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@lkasso lkasso merged commit 004be11 into main Jun 12, 2026
2 checks passed
@lkasso lkasso deleted the lkasso/firmware-filter-table branch June 14, 2026 03:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant