Skip to main content

A library for reading and analyzing Flipper Zero raw RFID files

Project description

Flipper Zero Raw RFID Tools

A python library for reading and analyzing Flipper Zero raw RFID files (tag.[ap]sk.raw)

Installation

Via pip

pip install flipper-raw-rfid

From source

git clone https://github.com/hnesk/flipper-raw-rfid.git 
cd flipper-raw-rfid
make install

Usage

As a library

from flipper_raw_rfid import RiflFile
import matplotlib.pyplot as plt 

rifl = RiflFile.load('test/assets/Red354.ask.raw')
# for the reconstructed binary signal
signal = rifl.signal()
# or for the raw pulse and duration values
pd = rifl.pulse_and_durations()

plt.plot(signal[0:20000])

results in:

Plot of the RFID signal with matplotlib

There is also a short tutorial notebook

From commandline

# Plot a file (requires matplotlib)
$ flipper-raw-rfid plot tests/assets/Red354.ask.raw
# Dump the contents in pad format (see below) 
flipper-raw-rfid convert --format=pad tests/assets/Red354.ask.raw Red354.pad.csv
# Dump the contents in signal format
flipper-raw-rfid convert --format=signal tests/assets/Red354.ask.raw Red354.signal.csv

Commandline help

flipper-raw-rfid --help
flipper-raw-rfid 

Description:
    Reads a raw rfid file from flipper zero and plots or converts the signal

Usage:
    flipper-raw-rfid convert [-f <format>] RAW_FILE [OUTPUT_FILE]
    flipper-raw-rfid plot RAW_FILE
    flipper-raw-rfid (-h | --help)
    flipper-raw-rfid --version

Arguments:
    RAW_FILE        The raw rfid file from flipper (xyz.ask.raw or xyz.psk.raw)
    OUTPUT_FILE     The converted file as csv (default: stdout)

Options:
    -h --help                 Show this screen.
    --version                 Show version.
    -f --format=(pad|signal)  Output format: "pad" (=Pulse And Duration) is the internal format of the Flipper Zero,
                              each line represents a pulse and a duration value measured in samples, see
                              "Pulse and duration format" below.
                              In "signal" format the pulses are written out as a reconstructed signal with a "1" marking a
                              sample with high value and "0" marking a sample with low value [default: pad]

Pulse and duration (pad) format:

    column 0: pulse - (number of samples while output high) and
    column 1: duration - (number of samples till next signal)

    Diagram:

    ______________      __________
                  ______          __________ .......

    ^ - pulse0 - ^      ^-pulse1-^           .......
    ^ -    duration0  -^^ -    duration1  -^ .......

    The csv file has the following format:

    pulse0, duration0
    pulse1, duration1
    ....

Tutorial

There is a short RFID tutorial notebook to see if there is data in the recording and what to do with it.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flipper-raw-rfid-0.2.tar.gz (14.6 kB view hashes)

Uploaded Source

Built Distribution

flipper_raw_rfid-0.2-py3-none-any.whl (13.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page