diff --git a/README.md b/README.md index 2d22144..c8df6b4 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ You can use `inspectrum` to visualize the raw sample file: ``` sudo apt install inspectrum -inspectrum -r 50e6 samples/mini2_sm +inspectrum samples/mini2_sm.sigmf-data ``` Inspectrum screenshot of Drone-ID bursts

@@ -45,7 +45,7 @@ pip3 install -r requirements.txt You can now run the decoder on the sample file: ``` -./src/droneid_receiver_offline.py -i samples/mini2_sm +./src/droneid_receiver_offline.py -i samples/mini2_sm.sigmf-data ``` ### Results @@ -82,9 +82,9 @@ The script performs detection and decoding just as the live receiver would. It p } ``` -The summary contains decoding stats and flight path. In the `mini2_sm` sample, the drone did not have GPS coordinates locked yet, and only the smartphone's location is transmitted: +The summary contains decoding stats and flight path. In the `mini2_sm.sigmf-data` sample, the drone did not have GPS coordinates locked yet, and only the smartphone's location is transmitted: ``` -$ ./src/droneid_receiver_offline.py -i samples/mini2_sm +$ ./src/droneid_receiver_offline.py -i samples/mini2_sm.sigmf-data … … … Frame detection: 10 candidates Decoder: 9 total, CRC OK: 7 (2 CRC errors) @@ -96,9 +96,9 @@ App Coordinates: (51.447176178716916, 7.266528392911369) ``` -For `samples/mavic_air_2` both locations are transmitted: +For `samples/mavic_air_2.sigmf-data` both locations are transmitted: ``` -$ ./src/droneid_receiver_offline.py -i samples/mavic_air_2 +$ ./src/droneid_receiver_offline.py -i samples/mavic_air_2.sigmf-data … Decoder: 1 total, CRC OK: 1 (0 CRC errors) Drone Coordinates: @@ -139,7 +139,7 @@ The receiver will hop through a list of frequencies and, if a drone is detected, > If you're looking for a deeper dive into the processing steps, we suggest calling the offline decoder with `--debug`. This will **enable a GUI** with step-by-step decoding. > ``` -> ./src/droneid_receiver_offline.py -i samples/mini2_sm +> ./src/droneid_receiver_offline.py -i samples/mini2_sm.sigmf-data > ``` diff --git a/samples/mavic_air_2 b/samples/mavic_air_2.sigmf-data similarity index 100% rename from samples/mavic_air_2 rename to samples/mavic_air_2.sigmf-data diff --git a/samples/mavic_air_2.sigmf-meta b/samples/mavic_air_2.sigmf-meta new file mode 100644 index 0000000..9b43d68 --- /dev/null +++ b/samples/mavic_air_2.sigmf-meta @@ -0,0 +1,52 @@ +{ + "annotations": [ + { + "core:freq_lower_edge": 2455000000, + "core:freq_upper_edge": 2464000000, + "core:label": "DroneID", + "core:description": "DroneID", + "core:sample_count": 32180, + "core:sample_start": 93010, + "core:generator": "OmniSIG Studio" + }, + { + "core:freq_lower_edge": 2455000000, + "core:freq_upper_edge": 2464000000, + "core:label": "DroneID", + "core:description": "DroneID", + "core:sample_count": 32180, + "core:sample_start": 128639, + "core:generator": "OmniSIG Studio" + }, + { + "core:freq_lower_edge": 2440530000, + "core:freq_upper_edge": 2449530000, + "core:label": "DroneID", + "core:description": "DroneID", + "core:sample_count": 32180, + "core:sample_start": 165465, + "core:generator": "OmniSIG Studio" + }, + { + "core:freq_lower_edge": 2440530000, + "core:freq_upper_edge": 2449530000, + "core:label": "DroneID", + "core:description": "DroneID", + "core:sample_count": 24190, + "core:sample_start": 201090, + "core:generator": "OmniSIG Studio" + } + ], + "captures": [ + { + "core:sample_start": 0, + "core:frequency": 2457500000.0 + } + ], + "global": { + "core:version": "1.1.0", + "core:datatype": "cf32_le", + "core:description": "3 complete and one partial DroneID Bursts from a DJI Mavic Air 2", + "core:sample_rate": 50000000 + } +} diff --git a/samples/mini2_sm b/samples/mini2_sm.sigmf-data similarity index 100% rename from samples/mini2_sm rename to samples/mini2_sm.sigmf-data diff --git a/samples/mini2_sm.sigmf-meta b/samples/mini2_sm.sigmf-meta new file mode 100644 index 0000000..938d9ba --- /dev/null +++ b/samples/mini2_sm.sigmf-meta @@ -0,0 +1,106 @@ +{ + "annotations": [ + { + "core:freq_lower_edge": 2410000000, + "core:freq_upper_edge": 2419000000, + "core:label": "DroneID", + "core:description": "DroneID", + "core:sample_count": 32180, + "core:sample_start": 8030, + "core:generator": "OmniSIG Studio" + }, + { + "core:freq_lower_edge": 2410000000, + "core:freq_upper_edge": 2419000000, + "core:label": "DroneID", + "core:description": "DroneID", + "core:sample_count": 32180, + "core:sample_start": 56710, + "core:generator": "OmniSIG Studio" + }, + { + "core:freq_lower_edge": 2410000000, + "core:freq_upper_edge": 2419000000, + "core:label": "DroneID", + "core:description": "DroneID", + "core:sample_count": 32180, + "core:sample_start": 105340, + "core:generator": "OmniSIG Studio" + }, + { + "core:freq_lower_edge": 2410000000, + "core:freq_upper_edge": 2419000000, + "core:label": "DroneID", + "core:description": "DroneID", + "core:sample_count": 32180, + "core:sample_start": 250850, + "core:generator": "OmniSIG Studio" + }, + { + "core:freq_lower_edge": 2410000000, + "core:freq_upper_edge": 2419000000, + "core:label": "DroneID", + "core:description": "DroneID", + "core:sample_count": 32180, + "core:sample_start": 444520, + "core:generator": "OmniSIG Studio" + }, + { + "core:freq_lower_edge": 2410000000, + "core:freq_upper_edge": 2419000000, + "core:label": "DroneID", + "core:description": "DroneID", + "core:sample_count": 32180, + "core:sample_start": 493250, + "core:generator": "OmniSIG Studio" + }, + { + "core:freq_lower_edge": 2410000000, + "core:freq_upper_edge": 2419000000, + "core:label": "DroneID", + "core:description": "DroneID", + "core:sample_count": 32180, + "core:sample_start": 541780, + "core:generator": "OmniSIG Studio" + }, + { + "core:freq_lower_edge": 2410000000, + "core:freq_upper_edge": 2419000000, + "core:label": "DroneID", + "core:description": "DroneID", + "core:sample_count": 32180, + "core:sample_start": 590080, + "core:generator": "OmniSIG Studio" + }, + { + "core:freq_lower_edge": 2410000000, + "core:freq_upper_edge": 2419000000, + "core:label": "DroneID", + "core:description": "DroneID", + "core:sample_count": 32180, + "core:sample_start": 638530, + "core:generator": "OmniSIG Studio" + }, + { + "core:freq_lower_edge": 2410000000, + "core:freq_upper_edge": 2419000000, + "core:label": "DroneID", + "core:description": "DroneID", + "core:sample_count": 32180, + "core:sample_start": 687290, + "core:generator": "OmniSIG Studio" + } + ], + "captures": [ + { + "core:sample_start": 0, + "core:frequency": 2404885000.0 + } + ], + "global": { + "core:version": "1.1.0", + "core:datatype": "cf32_le", + "core:description": "10 complete DroneID Bursts from a DJI Mini 2", + "core:sample_rate": 50000000 + } +}