Skip to main content

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.

Metadata

Release files for flipper-raw-rfid 0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flipper-raw-rfid 0.2
File Size Uploaded Provenance Actions
flipper-raw-rfid-0.2.tar.gz 14.6 kB Without provenance Details for flipper-raw-rfid-0.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for flipper-raw-rfid 0.2
File Interpreter ABI Platform Actions
flipper_raw_rfid-0.2-py3-none-any.whl Python 3 none any Details for flipper_raw_rfid-0.2-py3-none-any.whl

Total release size: 28.2 kB

Release files / flipper-raw-rfid-0.2.tar.gz

Download URL flipper-raw-rfid-0.2.tar.gz
Size 14.6 kB
Tags Source
SHA-256 checksum
How to use checksums
e174e76eb51558dd60d6b073dda26e13a8eaa1090f80c077f9dca78266564375
BLAKE2b-256 checksum
How to use checksums
1f7345eb2e63d098023509f86f8a7cebbf42a4c6c7d2b8d3e40cc291b36779a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

Release files / flipper_raw_rfid-0.2-py3-none-any.whl

Download URL flipper_raw_rfid-0.2-py3-none-any.whl
Size 13.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
88ad2e9b1ab3e4789466be50ba7074a90a6919aba4e8bd6f0c9e115cba597d31
BLAKE2b-256 checksum
How to use checksums
7717f3d6b12f0f4b534d7b7c8c8faada501ec31c95ced5100b3ef7c7d2782230
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

Security for flipper-raw-rfid 0.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page