-
Notifications
You must be signed in to change notification settings - Fork 0
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.
- Recording Modes
- Packet Mode
- Raw Mode
- Buffer Management
- Persistent Storage (Flash)
- Typical Workflows
- Important Notes
| 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. Usingrecafterrecraw(or vice versa) will overwrite the previous data.
- 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.
| 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). |
rec # start recording
# ... capture some packets ...
rec # stop
show # list recorded frames
play 0 # replay all- 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).
| 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). |
recraw 100 # sample every 100 µs
# ... transmit the target signal ...
x # stop recording
showraw # see the raw data
playraw 100 # replay the signalAll 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). |
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.
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 framesrecraw 50 # sample every 50 µs
# ... trigger the target device ...
x # stop recording
showraw # verify data
playraw 50 # replay at 50 µs intervalsrecraw 100
# ... capture ...
x
saveraw # store in flash
flush # clear the buffer (optional)
loadraw # restore from flash
playraw 100 # replayadd 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)-
Buffer size is limited – if you record many frames, some may be lost. Use
flushwhen 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
xto stop – always stop recording or sniffing withxto ensure the buffer is properly finalised. -
Power‑off – unsaved data is lost. Use
saveorsaverawto persist important captures.