Skip to content

Separate ACK back-channel (2200–3400 Hz) to prevent sender self-reception - #15

Merged
melbinjp merged 4 commits into
mainfrom
copilot/check-file-send-acknowledgement
Apr 10, 2026
Merged

Separate ACK back-channel (2200–3400 Hz) to prevent sender self-reception#15
melbinjp merged 4 commits into
mainfrom
copilot/check-file-send-acknowledgement

Conversation

Copilot AI commented Apr 10, 2026

Copy link
Copy Markdown
Contributor

The sender's ACK listener and its outgoing data TX shared the same 4-FSK band (400–1600 Hz), making it possible for the sender's mic to decode its own transmissions as spurious ACKs and corrupt the ARQ flow.

Changes

  • Dual-channel split — data channel stays at k=[2,4,6,8] → 400–1600 Hz; a new ACK back-channel uses k=[11,13,15,17] → 2200–3400 Hz with a 600 Hz gap between bands
  • modem-config.ts — adds ACK_K_VALUES and ACK_PREAMBLE_TONE
  • fsk-modem.ts — exports ChannelConfig interface plus DATA_CHANNEL / ACK_CHANNEL constants; TransmitterSession and startListening each accept an optional ChannelConfig (defaults to DATA_CHANNEL — no breaking change)
  • receiver.ts — ACK frames now transmitted via new TransmitterSession(ACK_CHANNEL)
  • sender-sm.ts — ACK listener opened with startListening(cb, ACK_CHANNEL); Goertzel bins tuned exclusively to 2200–3400 Hz so the sender's own 400–1600 Hz output produces zero energy at those bins
Sender  (data TX  400–1600 Hz) ──────────────────────► Receiver
Sender  (ACK  RX 2200–3400 Hz) ◄────────────────────── Receiver (ACK TX 2200–3400 Hz)

Copilot AI and others added 4 commits April 10, 2026 17:55
…urceNode+AudioWorkletNode modem

Agent-Logs-Url: https://github.com/melbinjp/audio_data_transfer/sessions/1374ee17-5de5-4c01-97dc-9d3e0317a426

Co-authored-by: melbinjp <91303803+melbinjp@users.noreply.github.com>
….destroy into finally block

Agent-Logs-Url: https://github.com/melbinjp/audio_data_transfer/sessions/1374ee17-5de5-4c01-97dc-9d3e0317a426

Co-authored-by: melbinjp <91303803+melbinjp@users.noreply.github.com>
@melbinjp
melbinjp marked this pull request as ready for review April 10, 2026 18:22
@melbinjp
melbinjp merged commit 629c555 into main Apr 10, 2026
2 checks passed
@melbinjp
melbinjp deleted the copilot/check-file-send-acknowledgement branch April 10, 2026 18:22
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.

2 participants