You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+23-4Lines changed: 23 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,10 +2,14 @@
2
2
3
3
A browser-based acoustic data link for air-gapped, peer-to-peer transmission using device audio hardware. Built with React and the Web Audio API, it encodes text and files into 8-FSK audio signals to transmit data wirelessly over sound waves.
4
4
5
+
---
6
+
5
7
## What This Does
6
8
7
9
This project allows two devices to communicate with each other completely offline and without any RF network (Wi-Fi, Bluetooth, Cellular). It uses the device's built-in speaker to emit a sequence of musical tones (Frequency-Shift Keying) and the receiving device's microphone to listen to and decode those tones back into digital data. It is capable of transmitting both short text payloads and small files across an air gap.
8
10
11
+
---
12
+
9
13
## Features
10
14
11
15
-**8-FSK Modulation**: Encodes 3 bits of data per audio symbol using 8 distinct frequencies.
@@ -14,13 +18,17 @@ This project allows two devices to communicate with each other completely offlin
14
18
-**Data Integrity**: All payloads are verified upon receipt using CRC32 checksums.
15
19
-**"Dead Frequency" UI**: A custom, vintage signal intelligence aesthetic with a warm parchment/amber/teal palette, `DM Serif Display` typography, and kinetic CSS animations.
16
20
21
+
---
22
+
17
23
## Tech Stack
18
24
19
25
-**Frontend Framework**: React 18 + Vite
20
26
-**Styling & Motion**: Tailwind CSS + Framer Motion (for kinetic elements and page transitions)
21
27
-**Audio Processing**: Native Web Audio API (`AudioContext`, `AnalyserNode`, `OscillatorNode`)
22
28
-**Icons**: Lucide React
23
29
30
+
---
31
+
24
32
## Getting Started
25
33
26
34
### Prerequisites
@@ -40,6 +48,8 @@ This project allows two devices to communicate with each other completely offlin
40
48
41
49
*Note: For the acoustic link to work, the transmitting device needs a functioning speaker, and the receiving device needs a functioning microphone and must grant microphone permissions in the browser.*
42
50
51
+
---
52
+
43
53
## How It Works
44
54
45
55
1.**Encoding**: The application takes a text string or a file buffer and chunks it into smaller packets. Each packet calculates a CRC32 checksum. The binary data is then mapped to 8 specific audio frequencies (8-FSK).
@@ -61,7 +71,7 @@ Each transmission is stripped into 64-byte maximum payloads and wrapped in a 10-
61
71
62
72
### FSK Frequency Map
63
73
64
-
| Symbol (Trit) |3-bitValue | Frequency (Hz) | Notes |
74
+
| Symbol (3-bit) |Value / Type| Frequency (Hz) | Notes |
65
75
|:---:|:---:|:---:|---|
66
76
| 0 |`000`|**1400 Hz**| Lowest data frequency |
67
77
| 1 |`001`|**1800 Hz**| Also used in Sync Preamble |
@@ -71,18 +81,27 @@ Each transmission is stripped into 64-byte maximum payloads and wrapped in a 10-
71
81
| 5 |`101`|**3400 Hz**| Also used in Sync Preamble |
72
82
| 6 |`110`|**3800 Hz**||
73
83
| 7 |`111`|**4200 Hz**| Highest data frequency |
74
-
| — | Handshake A |**900 Hz**| Outside FSK range, wake-up tone |
75
-
| — | Handshake B |**1050 Hz**| Outside FSK range, wake-up tone |
| Handshake A |**900 Hz**| Outside FSK range, wake-up tone |
89
+
| Handshake B |**1050 Hz**| Outside FSK range, wake-up tone |
90
+
| EOT |**700 Hz**| End-of-transmission, below FSK range |
91
+
92
+
---
77
93
78
94
## Limitations & Future Ideas
79
95
80
96
-**Bitrate**: Current speeds are around ~37 bps. Future versions will optimize the DSP loop to increase throughput.
81
97
-**Distance**: Environmental noise heavily impacts reliability. Devices must be relatively close in a quiet room for uncorrupted transmission. Error correction coding (like Reed-Solomon) is planned to recover flipped bits automatically.
82
98
99
+
---
100
+
83
101
## Deployment
84
102
85
103
This repository includes a GitHub Action for deploying natively to GitHub Pages (`.github/workflows/deploy.yml`).
0 commit comments