Skip to content

Recording & Replay Workflow

null edited this page Jun 17, 2026 · 3 revisions

VoidRecon provides two distinct recording modes – Packet and Raw – that share the same buffer. Understanding the difference is key to capturing and replaying signals correctly.


📋 Table of Contents


🎯 Recording Modes

Mode Purpose Commands
Packet Captures complete payloads (hex bytes) as received. Works with structured packets (preamble, sync, length, CRC). rec, add, show, play
Raw Samples the on‑off keying state at a fixed interval. Great for simple protocols (fixed‑code remotes, OOK) where the CC1101’s packet engine is not used. recraw, addraw, showraw, playraw

⚠️ Important: Both modes write to the same buffer. Using rec after recraw (or vice versa) will overwrite the previous data.


📦 Packet Mode

When to use

  • You are sniffing or replaying structured digital packets (e.g., data from sensors, remote controls that use the CC1101 packet format).
  • The signal includes a preamble, sync word, length byte, and CRC.

Commands

Command Description
rec Toggle recording – stores every complete, valid packet received into the buffer.
add <hex‑vals> Manually insert a packet payload (max 64 bytes) into the buffer.
show Display all recorded packet payloads with index numbers.
play <N> Replay packet N (or 0 for all).

Example

rec            # start recording
# ... capture some packets ...
rec            # stop
show           # list recorded frames
play 0         # replay all

📊 Raw Mode

When to use

  • You are dealing with simple OOK signals like garage remotes, doorbells, or legacy devices.
  • The signal has no fixed packet structure – just a sequence of pulses and gaps.
  • You need high‑precision timing (microsecond resolution).

Commands

Command Description
recraw <microseconds> Record raw samples at the given interval (µs). Stores 1 (carrier present) or 0 (no carrier).
addraw <hex‑vals> Manually insert a raw chunk (max 60 hex bytes) – each byte represents 8 samples.
showraw Display the raw buffer as a series of hex bytes.
playraw <microseconds> Replay the raw data using the same interval (µs).

Example

recraw 100     # sample every 100 µs
# ... transmit the target signal ...
x              # stop recording
showraw        # see the raw data
playraw 100    # replay the signal

🗃️ Buffer Management

All recorded data (packet or raw) lives in a single buffer. You can inspect, clear, and persist it.

Command Description
show / showraw Inspect buffer content (packet or raw format).
showbit Display the raw buffer as a binary stream (0/1) – useful for debugging timing.
flush Clear the buffer completely (both packet and raw data).

💾 Persistent Storage (Flash)

You can save the buffer to the ESP32’s flash memory, making it survive power cycles.

Command Description
save Save the current packet buffer to flash.
load Load the saved packet buffer from flash.
saveraw Save the current raw buffer to flash.
loadraw Load the saved raw buffer from flash.

Note: Packet and raw buffers are stored separately – you can save both if you switch modes, but they occupy separate flash areas.


🔄 Typical Workflows

Workflow A – Record and Replay a Digital Packet

rec            # start packet recording
# ... trigger the target device (e.g., press a remote) ...
rec            # stop recording
show           # list captured frames (note the index)
play 0         # replay all frames

Workflow B – Record and Replay a Raw OOK Signal

recraw 50      # sample every 50 µs
# ... trigger the target device ...
x              # stop recording
showraw        # verify data
playraw 50     # replay at 50 µs intervals

Workflow C – Save a Raw Signal for Later

recraw 100
# ... capture ...
x
saveraw        # store in flash
flush          # clear the buffer (optional)
loadraw        # restore from flash
playraw 100    # replay

Workflow D – Manually Build a Packet Sequence

add AA BB CC DD EE FF
add 01 02 03
show           # displays two frames: index 0 and 1
play 0         # replay first frame only
play 1         # replay second
play 0         # replay all (0 = all)

⚠️ Important Notes

  • Buffer size is limited – if you record many frames, some may be lost. Use flush when needed.
  • Don’t mix modes unintentionally – if you record raw data, then switch to packet mode and record again, the raw data will be overwritten.
  • Use x to stop – always stop recording or sniffing with x to ensure the buffer is properly finalised.
  • Power‑off – unsaved data is lost. Use save or saveraw to persist important captures.

Clone this wiki locally