From 4fc3a4e89f61c9acde007e36f7cc53bdad222953 Mon Sep 17 00:00:00 2001 From: antirez Date: Sat, 21 Jan 2023 16:06:18 +0100 Subject: [PATCH] README updated. --- README.md | 50 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index a12aec979b2..ed9892f8c6c 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,19 @@ -ProtoView is a digital signal detection and visualization tool for the +ProtoView is a digital signal detection, visualization and reply tool for the [Flipper Zero](https://flipperzero.one/). The Flipper is able to identify a great deal of RF protocols, however when the exact protocol is not -implemented (and there are many proprietary ones, such as the ones of -the car keys), the curious person is left wondering what the device is -sending at all. Using ProtoView she or he can visualize the high and low pulses -like in the example image below (showing a Volkswagen key in 2FSK): +implemented (and there are many proprietary ones, such as the ones in use +in TPMS systems, car keys and many others), the curious person is left +wondering what the device is sending at all. Using ProtoView she or he can +visualize the high and low pulses like in the example image below +(showing a Volkswagen key in 2FSK): ![ProtoView screenshot raw signal](/images/protoview_1.jpg) This is often enough to make an initial idea about the encoding used and if the selected modulation is correct. +## Decoding capabilities + Other than that, ProtoView is able to decode a few interesting protocols: * TPMS sensors: Renault, Toyota, Schrader, Citroen, Ford. @@ -25,6 +28,16 @@ The app implements a framework that makes adding and experimenting with new protocols very simple. Check the `protocols` directory to see how the API works. +## Reply capabilities + +Once ProtoView decoded a given message, it is able to *resample* it +in pulses and gaps of the theoretical duration, and send the signal again +via the Flipper RX capabilities. The captured signal can be sent +to different frequencies and modulations than the ones it was captured +from. + +## Aiming at a well-documented app for the Flipper + The secondary goal of ProtoView is to provide a somewhat-documented application for the Flipper (even if ProtoView is a pretty atypical application: doesn't make use of the standard widgets and other abstractions provded by the framework). Many apps dealing with the *subghz subsystem* (the Flipper @@ -38,7 +51,7 @@ However, the Flipper firmware source code is well written even if it lacks comments and documentation, so it is possible to make some ideas of how things work just grepping inside. -# Detection algorithm +## Detection algorithm In order to show unknown signals, the application attempts to understand if the samples obtained by the Flipper API (a series of pulses that are high @@ -57,13 +70,13 @@ However often pulses of the same theoretical length have slightly different lengths in the case of high and low level (RF on or off), so we classify them separately for robustness. -# Usage +## Usage -The application shows the longest coherent signal detected so far. +In the main screen, the application shows the longest coherent signal detected so far. -* The OK button resets the current signal. -* The UP and DOWN buttons change the scale. Default is 100us per pixel. -* The LEFT and RIGHT buttons switch to settings. +* A long press of the OK button resets the current signal, in order to capture a new one. +* The UP and DOWN buttons change the scale. Default is 100us per pixel, but it will be adapted to the signal just captured. +* A *long press* to LEFT and RIGHT will pan the signal, to see what was transmitted before/after. A short press to OK will recenter the signal and set the scale back to the default for the specific pulse duration detected. Under the detected sequence, you will see a small triangle marking a specific sample. This mark means that the sequence looked coherent up @@ -81,12 +94,25 @@ and could actually be `1000000/this-number*N` with `N > 2` (here 1000000 is the number of microseconds in one second, and N is the number of clock cycles needed to represent a bit). +## Info screen + +Using the LEFT and RIGHT buttons, the user can switch to the other application modes: if a signal was detected, the information view will show the details about the signal. In this mode, it is possible to use DOWN to go to a screen with an oscilloscope-alike view of the signal, and the ability to save (long press to OK) and resend (short press to OK) it. + +## Direct sampling screen + +This final screen shows in real time the high and low level that the Flipper +RF chip, the CC1101, is receiving. This will makes very easy to understand +if a given frequency is targeted by something other than noise. This mode is +fun to watch, resembling an old CRT TV set. + +## What settings to use for common stuff + Things to investigate: * Many cheap remotes (gate openers, remotes, ...) are on the 433.92Mhz or nearby and use OOK modulation. * Weather stations are often too in the 433.92Mhz OOK. * For car keys, try 433.92 OOK650 and 868.35 Mhz in OOK or 2FSK. -* For TPMS try 433.92 in TPMS modulation (FSK optimized for these signals). +* For TPMS try 433.92 in TPMS modulation (FSK and OOK custom modulations optimized for these signals, that have a relatively high data rate). # Installing the app from source