Waveform Analysis
Work in Progress: The Waveform Viewer is under active development. Some features may be incomplete or experimental.
View raw signal data, detect modulation, and decode captured RF communications.
Overview
Section titled “Overview”The Waveform Viewer provides a visual interface for analyzing captured RF signals from your Proxmark3. Access it after sniffing LF cards or from saved .pm3 trace files.
Requires Proxmark3 connection for analysis features. Without a connection, the viewer displays the waveform but analysis buttons are disabled.
Signal Display
Section titled “Signal Display”Interactive Waveform
Section titled “Interactive Waveform”- Pinch to zoom — Examine signal details
- Swipe to pan — Navigate through the capture
- Zoom slider — Fine-grained control (0.1x to 32x)
- Reset view — Return to full waveform (app bar refresh icon)
Info Bar
Section titled “Info Bar”Live display of:
| Field | Description |
|---|---|
| Samples | Total sample count |
| Zoom | Current zoom level |
| Clock | Detected clock rate (after analysis) |
| Mod | Detected modulation type |
Signal Analysis
Section titled “Signal Analysis”Auto-Detect
Section titled “Auto-Detect”| Button | Command | Description |
|---|---|---|
| Detect Clock | data detectclock --ask | Find the clock rate (RF/N) |
| Modulation | data modulation | Identify ASK, FSK, PSK, or NRZ |
Auto Demodulate
Section titled “Auto Demodulate”One-button analysis that runs:
- Signal preprocessing (
data norm,data envelope) - ASK, FSK, PSK, and NRZ demodulation attempts
- Protocol-specific searches (
lf search -1) - Reports any recognized card data
Optional preprocessing (enable in dialog):
| Command | Description |
|---|---|
data hpf | High-pass filter |
data cthreshold -u 50 -d -20 | Center threshold |
data ltrim -s 200 | Left trim (remove first 200 samples) |
Manual Demodulation
Section titled “Manual Demodulation”ASK Demodulation
Section titled “ASK Demodulation”Command: data rawdemod --ar [options]
| Option | Flag | Description |
|---|---|---|
| Clock | -c N | RF/N (auto-detect if empty) |
| Invert | -i | Invert output bits |
| Amplify | -a | Boost weak signals |
| Sequence Terminator | -s | Check for ST |
| Max Errors | --max N | Tolerable bit errors (default: 100) |
| Max Samples | --samples N | Limit sample count |
FSK Demodulation
Section titled “FSK Demodulation”Command: data rawdemod --fs [options]
| Option | Flag | Description |
|---|---|---|
| Clock | -c N | RF/N (auto-detect if empty) |
| Hi Field Clock | --hi N | High frequency period (e.g., 8, 10) |
| Lo Field Clock | --lo N | Low frequency period (e.g., 5, 8) |
| Invert | -i | Invert output bits |
Common FSK configurations:
| Protocol | Clock | Hi | Lo | Invert |
|---|---|---|---|---|
| FSK1 RF/64 | 64 | 8 | 5 | No |
| FSK2 RF/50 | 50 | 10 | 8 | No |
| FSK2a RF/50 | 50 | 10 | 8 | Yes |
Supported Modulations
Section titled “Supported Modulations”| Type | Cards |
|---|---|
| ASK | HID Prox, EM4100, Indala, most LF cards |
| FSK | AWID, Pyramid, IO ProxCard |
| PSK | Some legacy systems |
| NRZ | Direct encoding |
Accessing the Viewer
Section titled “Accessing the Viewer”From Sniff
Section titled “From Sniff”- Go to Discovery → Sniff
- Select an LF card type
- Execute a sniff command
- After capture completes, results are decoded automatically
- LF traces can be saved as
.pm3files
From File Manager
Section titled “From File Manager”- Open Settings → File Manager
- Navigate to Traces
- Long-press a
.pm3file - Tap View to open in Waveform Viewer
Note: The Waveform Viewer only supports LF
.pm3trace files. HF.tracefiles use a different format and cannot be visualized.
- Good captures start with positioning — Get the Proxmark antenna as close as possible to the card/reader during sniff
- Try preprocessing — Enable additional preprocessing if auto-demod fails on noisy signals
- Check clock rate first — Knowing the clock helps narrow down the protocol
- Compare to known cards — If you have a working card, capture its waveform for reference
- Connect PM3 for analysis — Without a live connection, you can view waveforms but not run demodulation commands