|
|
@@ -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):
|
|
|
|
|
|

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