Skip to content

Recording & Replay Workflow

null edited this page Jun 17, 2026 · 3 revisions

Recording & Replay Workflow

VoidRecon provides three distinct recording modesPacket, Raw, and Signal – each designed for different types of RF signals. Understanding the differences is key to capturing and replaying 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 where the CC1101’s packet engine is not used. recraw, addraw, showraw, playraw
Signal Specifically designed for fixed‑code remotes (e.g., garage doors). Stores the bit sequence and pulse timing for later replay. recsig, playsig, savesig, loadsig

⚠️ Important: Packet and Raw modes share the same buffer – using one after the other will overwrite the previous data. Signal mode uses its own separate buffer, so it does not conflict with Packet/Raw.


📦 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 some 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

📶 Signal Mode (Fixed‑Code)

When to use

  • You are capturing a fixed‑code remote (common in older garage doors, gates, etc.).
  • The remote transmits a static bit sequence (e.g., 8, 12, or 24 bits) with a known pulse duration.
  • recsig automatically detects the bit timing and stores the bit pattern.

Commands

Command Description
recsig Start recording a fixed‑code signal. The device will wait for a transmission and decode it.
playsig Replay the stored signal (using the detected timing).
savesig Store the current signal buffer to flash for later use.
loadsig Load a previously saved signal from flash.

Example

recsig         # ready to capture
# ... press the remote button ...
# The device will store the signal
playsig        # replay it

💡 Tip: The signal buffer is independent of the packet/raw buffer – you can have a signal stored alongside packet or raw data without conflict.


🗃️ Buffer Management

Packet & Raw Buffer (shared)

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).

Signal Buffer (separate)

Command Description
(No show for signal – replay or save to check) Use playsig to test the stored signal.
savesig / loadsig Store/load the signal to/from flash.

💾 Persistent Storage (Flash)

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.
savesig Save the current signal buffer to flash.
loadsig Load the saved signal buffer from flash.

Note: Packet, Raw, and Signal buffers are stored separately in flash – you can have all three saved at once.


🔄 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 – Capture and Replay a Fixed‑Code Remote

recsig         # wait for signal
# ... press the remote button ...
playsig        # replay the captured code

Workflow D – Save a Signal for Later

recsig
# ... capture ...
savesig        # store in flash
# ... power off / reset ...
loadsig        # restore from flash
playsig        # replay

Workflow E – 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 Packet and Raw modes unintentionally – they share the same buffer, so recording raw after packet will overwrite the packet data.
  • Signal mode is independent – it won’t overwrite packet/raw data and vice versa.
  • Always use x to stop – recording or sniffing properly to ensure the buffer is finalised.
  • Power‑off – unsaved data is lost. Use save, saveraw, or savesig to persist important captures.

Clone this wiki locally