{"id":13499467,"url":"https://github.com/evilpete/flipper_toolbox","last_synced_at":"2025-03-29T05:31:26.314Z","repository":{"id":44394492,"uuid":"502773317","full_name":"evilpete/flipper_toolbox","owner":"evilpete","description":"Random scripts for generating Flipper data files.","archived":false,"fork":false,"pushed_at":"2023-12-01T09:21:19.000Z","size":1571,"stargazers_count":574,"open_issues_count":0,"forks_count":55,"subscribers_count":25,"default_branch":"main","last_synced_at":"2024-02-13T00:50:32.691Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/evilpete.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-06-13T01:50:38.000Z","updated_at":"2024-02-12T08:01:04.000Z","dependencies_parsed_at":"2023-12-01T10:37:09.146Z","dependency_job_id":null,"html_url":"https://github.com/evilpete/flipper_toolbox","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evilpete%2Fflipper_toolbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evilpete%2Fflipper_toolbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evilpete%2Fflipper_toolbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evilpete%2Fflipper_toolbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/evilpete","download_url":"https://codeload.github.com/evilpete/flipper_toolbox/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":213424220,"owners_count":15585267,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T22:00:33.409Z","updated_at":"2024-10-31T18:30:30.128Z","avatar_url":"https://github.com/evilpete.png","language":"Python","funding_links":[],"categories":["Off-device \u0026 Debugging","Python"],"sub_categories":["*General*","General"],"readme":"# Flipper File Toolbox #\n---\n\n\nRandom scripts and links for generating/creating/modifying [Flipper Zero](https://flipperzero.one/) data files that\ncan be loaded onto a FlipperZero.\n\nAs this is an occasional work in Progress, these scripts are mostly \"*works for me*\" level testing, pull requests welcome.\n\n---\n\n## Tools ##\n\n---\n\n### NFC Tools ###\n\n#### [nfc_prox2flip.py](nfc_prox2flip.py) ####\n\nPython script to convert proxmark json dump into flipperZero NFC Save File\n\n\u003e`nfc_prox2flip.py test_dat/mf-classic-1k-23AD7C86.json \u003e mfc1k-23AD7C86.nfc`\n\n---\n\n#### [nfc_gen_phone.py](nfc_gen_phone.py) ####\nGenerates NFC with a telephone number and saves it to a flipperZero NFC \"save\" file.\n\n\u003cdetails\u003e\u003csummary\u003eMore Info:\u003c/summary\u003e\n\nYou must provide the phone number with area code THEN the +country-code. The final file will be called `call-me.nfc` and will be saved to the same directory as the python program. Rename it manually if you'd like then copy it over to your Flipper.\n\nExample:\n\u003e `nfc_gen_phone.py 8185551122 +1`\n\nNote: requires [ndeflib](https://github.com/nfcpy/ndeflib) (available on [pypi](https://pypi.org/project/ndeflib/))\n\nGenerated files should be placed on the directory `/ext/nfc` on the flipperZero\n\n\u003c/details\u003e\n\n---\n\n#### [nfc_gen_wifi.py](nfc_gen_wifi.py) ####\n\nGenerates NFC with WiFi Tag Data and saves it to a flipperZero NFC \"save\" file.\n\n\u003cdetails\u003e\u003csummary\u003eMore Info:\u003c/summary\u003e\n\nThis program takes no arguments. You will be prompted for all the relevant wireless network info (see below).\nThe final file will be called `WiFi.nfc` and will be saved to the same directory as the python program.\nRename it manually if you'd like then copy it over to your Flipper.\n\nYou need the following wireless network information:\n- SSID\n- Authentication Type: WPA/WPA2-Personal or WPA/WPA2-Enterprise (might not work)\n- Encryption Type: AES or TKIP\n- Password\n- Radio Band: 2.4GHz or 5.0GHz\n\n\u003e `./nfc_gen_wifi.py`\n\nTap your phone to the emulated tag on the Flipper Zero and your device will join the WiFi network you've encoded.\n\nGenerated file should be placed on the directory `/ext/nfc` on the flipperZero\n\nNote: requires [ndeflib](https://github.com/nfcpy/ndeflib) (available on [pypi](https://pypi.org/project/ndeflib/))\n\n\u003c/details\u003e\n\n---\n\n#### [nfc_gen_url.py](nfc_gen_url.py) ####\n\nGenerates NFC with URL address data and outputs flipperZero NFC \"save\" file format\n\n\u003cdetails\u003e\u003csummary\u003eMore Info:\u003c/summary\u003e\n\n\u003cimg align=\"right\" src=\".img/rickroll.jpg\" height=100\u003e\n\n\u003e`nfc_gen_url.py https://youtu.be/dQw4w9WgXcQ \"Rick Roll\" \u003e rick_roll.nfc`\n\nsee file [rick_roll.nfc](nfc/Rick_Roll.nfc)\n\nGenerated file should be placed on the directory `/ext/nfc` on the flipperZero\n\nNote: requires [ndeflib](https://github.com/nfcpy/ndeflib) (available on [pypi](https://pypi.org/project/ndeflib/))\n\n\u003c/details\u003e\n\n---\n\n#### [nfc_flip2prox.py](nfc_flip2prox.py) ####\n\nConvert flipperZero NFC files to [proxmark](https://github.com/RfidResearchGroup/proxmark3) / [ChameleonUltra](https://github.com/RfidResearchGroup/ChameleonUltra) / [MIFARE Classic Tool](https://github.com/ikarus23/MifareClassicTool) format\n\n\u003cdetails\u003e\u003csummary\u003eMore Info:\u003c/summary\u003e\n\nUsage:\n\n```\n./nfc_flip2prox.py -h\n    nfc_flip2prox.py [-f output_format] input_filename [output_filename]\n\n    Valid formats:\n        eml:\tproxmark emulator\n        bin:\tproxmark/Chameleon bin format\n        mct:\tMIFARE Classic Tool\n        mfj:\tMIFARE Classic Tool Json\n        cham:\tChameleonUltra Json format\n```\n\nConvert *card_data.nfc* (flipperZero format) into *card_data.bin* (proxmark/Chameleon bin format) :\n\n\u003e`nfc_flip2prox.py -f bin flpper_data.nfc`\n\nor\n\n\u003e`nfc_flip2prox.py flpper_data.nfc flpper_data.bin`\n\n\u003c/details\u003e\n\n---\n\n#### [nfc_dict_diff.py](nfc_dict_diff.py) ####\n\nQuick script to diff/compare two flipperZero NFC dict lists\n\n\u003e`nfc_dict_diff.py mf_classic_dict_user.nfc new-mf_classic_dict_user.nfc`\n\n\u003cdetails\u003e\u003csummary\u003eMore Info:\u003c/summary\u003e\n\nExample output:\n\n```\n./nfc_dict_diff.py mf_classic_dict_user.nfc mf_classic_dict_user-down.nfc\nmf_classic_dict_user.nfc mf_classic_dict_user-down.nfc\nlist_A 2263 mf_classic_dict_user.nfc\nlist_B 2221 mf_classic_dict_user-down.nfc\n-------\ndiff_AB 42\nUnique to mf_classic_dict_user.nfc\n0B1E863497F0 0BB9EE9022D9 0E3824E8C3C6 0F2791EDA281 27A6FA15ED2C 2A2C13CC242A\n32F093536677 3351916B5A77 336E34CC2177 35C3F7DE783A 375A22C53D43 3D51DE4AC40F\n458D5B2A9EEC 4D48414C5648 4D57414C5648 554B2EFDD9C4 5621022CD098 5C063BD5579F\n62545F654D9F 6324521C7AFC 689766D777D0 68F933727D62 71E014238723 75FAB77E2E5B\n879DC03B759A 9095D0C3C344 92A7AD43C437 962437C8C45A A160D18CA5C8 A1670589B2AF\nA39A65A72D6E A4EBB44208C2 AB5F0F829695 AF0601A02DC7 BEF14EC1C1C9 C91DDF322410\nCCEA733B0FD3 D34476FE829E E372C0DFA525 EA0389A32D72 ED246CAEB781\n-------\ndiff_BA 0\nUnique to mf_classic_dict_user-down.nfc\n```\n\n\n\u003c/details\u003e\n\n---\n\n#### [nfc_dict_strip.py](nfc_dict_strip.py) ####\n\nQuick script to comment out or strip duplicate dict keys\n\n\u003e`nfc_dict_strip.py mf_classic_dict.nfc mf_classic_dict_user.nfc \u003e new-mf_classic_dict_user.nfc`\n\n\u003cdetails\u003e\u003csummary\u003eMore Info:\u003c/summary\u003e\n\n\n```\nUsage:\n    nfc_dict_strip.py [-d ] dict_file_A dict_file_B \u003e dict_nodups\n\n    removes duplicate keys, outputing only keys unique to dict_file_B\n```\n\n\noption `-d` causes lines with duplicate keys to be deleted/omitted\n\nelse duplicate keys will be commented out with `#- ` (DEFAULT)\n\n\u003c/details\u003e\n\n---\n\n#### [nfc_hexdump.py](nfc_hexdump.py) ####\n\nreads flipperZero NFC dump and adds ascii and decimal to RFID HEX dump (for easier file analysis)\n\n\u003e`nfc_hexdump.py nfc/Rick_Roll.nfc`\n\n\u003cdetails\u003e\u003csummary\u003eMore Info:\u003c/summary\u003e\n\nUsage:\n```\nnfc_hexdump.py [-c] [-d] [-b] [-r] FILENAME\n\nuse `-c` to dump ascii values\n    `-d` to dump decimal values\n    `-b` to dump binary values\n    '-r' to reverse bit order\n```\n\nDefault:  dump ascii and decimal values\n\nIn:\n\n```\n    Page 4: 03 29 91 01\n    Page 5: 15 55 04 79\n    Page 6: 6F 75 74 75\n    Page 7: 2E 62 65 2F\n```\n\nOut:\n\n```\n    Page 4: 03 29 91 01 #   - ) - -         3  41 145   1\n    Page 5: 15 55 04 79 #   - U - y        21  85   4 121\n    Page 6: 6F 75 74 75 #   o u t u       111 117 116 117\n    Page 7: 2E 62 65 2F #   . b e /        46  98 101  47\n```\n\n\u003c/details\u003e\n\n---\n\n\n### IR Tools ###\n\n\u003cimg align=\"right\" src=\".img/ir_sig_graph.png\" height=100\u003e\n\n#### [ir_plot.py](ir_plot.py) ####\n\nPlot signal data from flipperZero IR raw data save files\n\n\u003cdetails\u003e\u003csummary\u003eMore Info:\u003c/summary\u003e\n\nUsage:\n\n```\nir_plot.py [-h] [-v] [-n CMD_NAME] [-f FILENAME]\n           [-i] [-d DESTDIR] [-o {png,pdf,svg}] [-s]\n```\n\n\u003e`ir_plot.py IR/Lego_Train.ir Reverse`\n\nWill split signal into retransmition samples and plot separately (see code for other options)\n\nsampled/recorded `.ir` file can be downloaded from the directory `/ext/infrared/` on the flipperZero\n\n\u003c/details\u003e\n\n---\n\u003cimg align=\"right\" src=\".img/try_ir-RC5.png\" height=128\u003e\n\n#### [ir_gen_all_codes.py](ir_gen_all_codes.py) ####\n\nGenerates file flipperZero IR file with all possible command codes for a given address\n\n(great for finding hidden menus)\n\n\u003cdetails\u003e\u003csummary\u003eMore Info:\u003c/summary\u003e\n\n\u003e`ir_gen_all_codes.py.py RC5 03 00`\n\nWill generate file with all possible command codes for IR remote protocol: [RC5 protocol](https://en.wikipedia.org/wiki/RC-5) , address 03 00 00 00 in filename [IR-RC5-03-00.ir](IR/All-Codes/IR-RC5-03-00.ir)\n\nGenerated `.ir` files should be placed on the directory `/ext/infrared/` on the flipperZero\n\n\u003c/details\u003e\n\n---\n\n### Subghz Tools ###\n\n#### [subghz_ook_to_sub.py](subghz_ook_to_sub.py) ####\n\n\nConvert signals captured/recorded with [rtl_433](https://github.com/merbanan/rtl_433) (or [rtl-sdr](https://osmocom.org/projects/rtl-sdr/wiki/Rtl-sdr) ) to the FlipperZero .sub format.\n\n\u003cdetails\u003e\u003csummary\u003eMore Info:\u003c/summary\u003e\n\nExample:\n\n\nconvert rtl-sdr raw data file (keyfob_capture.cu8) into .ook file\n\n\u003e `rtl_443 -r g001_433.92M_250k.cu8 -w keyfob_capture.ook`\n\nconvert `.ook` file into FlipperZero `.sub` format.\n\n\u003e `subghz_ook_to_sub.py keyfob_capture.ook`\n\nthen copy keyfob_capture.sub to your FlipperZero\n\nGenerated `.sub` file should be placed on the directory `/ext/subghz/` on the flipperZero\n\n\u003c/details\u003e\n\n\n---\n\u003cimg align=\"right\" src=\".img/subghz_plot.png\" height=120\u003e\n\n#### [subghz_plot.py](subghz_plot.py) ####\n\nQuick script to plot raw subghz format data\n\n\u003cdetails\u003e\u003csummary\u003eMore Info:\u003c/summary\u003e\n\nuse `-s` option to split data into multiple subplot\u003cbr\u003e\n    `-p` to specify gap length when spliting signal data\u003cbr\u003e\n    `-n` to to limit number of subplots\n\n\nsampled/recorded `.sub` iles can be downloaded from the directory `/ext/subghz/` on the flipperZero\n\n\u003c/details\u003e\n\n---\n\n#### [subghz_secplusv1.py](subghz_secplusv1.py) ####\n\nPython script to display and/or edit flipperZero SubGhz Security+ 1.0 Key Files\n\n\u003cdetails\u003e\u003csummary\u003eMore Info:\u003c/summary\u003e\n\n\n**subghz_secplusv1.py** [-h] [-r rolling_code] [-b button_id] [-f fixed_code | -i remote_id] [-q] [-o output_filename] *[input-file]*\n\nWork in progress\n\nsecplus v1 `.sub` files can be uploaded/downloaded from the directory `/ext/subghz/` on the flipperZero\n\n\u003c/details\u003e\n\n---\n\n#### [subghz_secplusv2.py](subghz_secplusv2.py) ####\n\nPython script to display and/or edit flipperZero SubGhz Security+ 2.0 Key Files\n\n\u003cdetails\u003e\u003csummary\u003eMore Info:\u003c/summary\u003e\n\n**subghz_secplusv2.py** [-h] [-r rolling_code] [-b button_id] [-f fixed_code | -i remote_id] [-q] [-J rtl_log.json] [-o output_filename] *[input-file]*\n\n```\n  input-file            flipperZero Subghz File\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -r rolling_code, -rolling rolling_code\n                        Rolling Count\n  -b button_id, --button button_id\n                        Button\n  -f fixed_code, --fixed fixed_code\n                        fixed code value\n  -i remote_id, --id remote_id\n                        Remote-ID\n  -q, --quiet           run quietly\n  -q, --quiet           run quietly\n  -J rtl_log.json, --Json rtl_log.json\n                        Read rtl_433 json log\n  -o filepath, --out filepath\n                        output filename or directory,\n                        use '-' for stdout\n```\n\nDefalt output filename : `secv2-{FIXED_CODE}.sub`\n( eg: \"secv2-03428432A2.sub\" )\n\n\nThe option `-J` allows for reading [rtl_433](https://github.com/merbanan/rtl_433) json output format. for example:\n\n\tubghz_secplusv2.py -J logfile.json\n\nthe json log data can be generated with rtl_443's `-F` option:\n\n\t\n\trtl_443 -f 315M -R 164 -F json:logfile.json\n\t\nor generatedd from a save file\n\t\n\trtl_443 -f 315M -R 164 -F json:logfile.json -r g002_310M_250k.cu8\n\nExample json log data:\t\n```json\n{\"time\" : \"@10.117228s\", \"model\" : \"Secplus-v2\", \"id\" : 1791779012, \"button_id\" : 22, \"remote_id\" : 1791779012, \"fixed\" : \"96281059524\", \"rolling\" : \"115\", \"packet_1\" : \"0963ce281e80\", \"packet_2\" : \"494dadfb1ec0\"}\n{\"time\" : \"@0.219888s\", \"model\" : \"Secplus-v2\", \"id\" : 1797824737, \"button_id\" : 104, \"remote_id\" : 1797824737, \"fixed\" : \"448474423521\", \"rolling\" : \"240123942\", \"packet_1\" : \"0405ce2b61c0\", \"packet_2\" : \"4a9852e28080\"}\n{\"time\" : \"@0.416932s\", \"model\" : \"Secplus-v2\", \"id\" : 1082192868, \"button_id\" : 33, \"remote_id\" : 1082192868, \"fixed\" : \"142816113636\", \"rolling\" : \"49\"}\n{\"time\" : \"@0.514776s\", \"model\" : \"Secplus-v2\", \"id\" : 1082192868, \"button_id\" : 97, \"remote_id\" : 1082192868, \"fixed\" : \"417694020580\", \"rolling\" : \"33\", \"packet_1\" : \"0589f5906980\", \"packet_2\" : \"4164968687c0\"}\n```\n\n\nWork in progress, requires [secplus](https://github.com/argilo/secplus/blob/master/secplus.py) library\n\n\nsecplus v2 `.sub` files can be uploaded/downloaded from the directory `/ext/subghz/` on the flipperZero\n\n\u003c/details\u003e\n\n---\n\n#### [subghz_x10.py](subghz_x10.py) ####\n\nGenerates x10 rf command in flipperZero subghz file format\n\n\u003cdetails\u003e\u003csummary\u003eMore Info:\u003c/summary\u003e\n\nValid options:\n\n\tsubghz_x10.py \u003chousecode\u003e[unit] \u003ccommand\u003e\n\nValid Commands:\n\n       ON OFF BRT DIM ALL-OFF ALL-ON ALL-LTS-OFF ALL-LTS-ON\n\nExample:\n\n\u003e`./subghz_x10.py C5 On`\n\nWill generate filename C05_on.sub\n\nBrute Force :\n\n\u003e`./subghz_x10.py -b`\n\nGenerates [All-ON](subghz/X10/X10_All-OFF.sub) and [ALL-OFF](subghz/X10/X10_All-OFF.sub) files conraining all housecodes\t\n\t\nNOTE: In North America, the X-10 RF carrier frequency is 310MHz. Outside North America it is 433.92MHz.\n\t\nGenerated `.sub` files can be placed on the directory `/ext/subghz` on the flipperZero\n\n\u003c/details\u003e\n\n---\n#### [subghz_insteon.py](subghz_insteon.py) ####\n\nGenerates insteon rf command in flipperZero subghz file format\n\n\u003e`./subghz_insteon.py 247846 4C1B16 On \u003e hall-light_on.sub`\n\n\u003cdetails\u003e\u003csummary\u003eMore Info:\u003c/summary\u003e\n\nSyntax\n\n       subghz_insteon.py SRC DST On\n\nValid Commands:\n\n       ON FASTON OFF FASTOFF BRIGHTEN BRT DIM FADEDOWN FADEUP STOP FADESTOP BEEP\n\nNote:\n\nAn Insteon device needs to be \"paired\" before it will accept command from andother device, but there is no authenticaion.\n\nThe easiest way (for me) to get the insteon node id/address of a pair is to run rtl_433\n\nExample command:\n\u003ertl_433 -f 914.8M -s 2048k -R 159 -Y classic\n\nExample output:\n\n```\ntime      : 2022-11-28 21:36:45\nmodel     : Insteon      From_Addr : 4C1B63        To_Addr   : 347864        Message_Type: 0\nMessage_Str: Direct Message                        Extended  : 0             Hops_Max  : 3\nHops_Left : 0            Packet    : 03 : 247864 : 4C1B61 : 13 00  BE        Integrity : CRC\nPayload   : 03647824611B4C1300BE00\n```\n\nGenerated `.sub` files can be placed on the directory `/ext/subghz` on the flipperZero\n\n\u003c/details\u003e\n\n---\n\n#### [subghz_histogram.py](subghz_histogram.py) ####\n\u003cimg align=\"right\" src=\".img/subghz_histogram.png\" height=100\u003e\n\nScript to read flipperZero SubGhz RAW File and plot 0 \u0026 1 segment lengths using pyplot\n\nBased on @[jinschoi](https://gist.github.com/jinschoi)'s [histogram_sub.py](https://gist.github.com/jinschoi/8396f25a4cb7ac7986a7d881026ae950)\nand modified to plot 0 \u0026 1 segments separately.\n\n\u003e`subghz_histogram.py sample.sub`\n---\n\n#### [subghz_create_dat.py](subghz_create_dat.py) ####\n\nPython script to generate flipperZero RAW .sub files from 01 bitstreams\n\n\n\u003cdetails\u003e\u003csummary\u003eMore Info:\u003c/summary\u003e\n\nBased on @[jinschoi](https://gist.github.com/jinschoi)'s [create_sub.py](https://gist.github.com/jinschoi/f39dbd82e4e3d99d32ab6a9b8dfc2f55)\n\nAdded :\n* FSK support\n* insteon (funtional)\n* FAN-11T Remote Control of Harbor Breeze Fan (Brute Force)\n\n\u003c/details\u003e\n\n---\n\n#### [subghz_gen_cmd.py](subghz_gen_cmd.py) ####\n\nA command line based Python script to generate flipperZero RAW .sub files\n\n\u003cdetails\u003e\u003csummary\u003eMore Info:\u003c/summary\u003e\n\nUsage:\n\n```\nsubghz_gen_cmd.py [-h] [-v] [-o OUT_FILE] [-f SEND_FREQ] [-0 ZERO_LEN] [-1 ONE_LEN] [-i]\n                  [-b BAUD_RATE] (-H HEX_DATA | -B BIN_DATA) [-p MOD_PRESET] [-m]\n\t\t  [-r REPEAT_CNT] [-d DELAY_PADDING]\n```\n\nExample:\n\n\u003e`subghz_gen_cmd.py -f 302500000 -0 333 -1 333 -m -B 0110100001000`\n\n\u003c/details\u003e\n\n---\n\n#### [subghz_preset_gen.py](subghz_preset_gen.py) ####\n\nGenerates CC1101 \"SubGhzPresetCustom\" settings\n\n\u003cdetails\u003e\u003csummary\u003eInfo:\u003c/summary\u003e\n\nUsage:\n\n```\nsubghz_preset_gen.py [-h] [-p {AM270,AM650,FM238,FM476}] [-pr] [-sw SYNC_WORD] [-sm SYNC_MODE]\n                        [-mod {2FSK,4FSK,GFSK,MSK,OOK}] [-lc {Fixed,Infinite,Variable}]\n                        [-pl PKT_LEN] [-v] [-n CONF_NAME] [-if INTERMEDIATE_FREQ] [-dr DATA_RATE]\n                        [-fr FREQUENCY] [-bw BAND_WIDTH] [-np NUM_PREAMBLE] [-dev DEVIATION]\n                        [-cs CHANNEL_SPACING] [-man] [-crc {on,off}] [-dw {on,off}]\n```\n\n\nThe following loads Preset 2FSKDev238Async sets FM deviation to 6000 Hz and turns on manchester encoding\n\n\u003e `subghz_preset_gen.py -p FM238 --deviation 6000 -pr --manchester`\n\nGenerates:\n\n```\nCustom_preset_name: NewPreset\nCustom_preset_module: CC1101\nCustom_preset_data: 02 0D 07 04 08 32 0B 06 10 67 11 83 12 0C 13 02 14 00 15 17 18 18 19 16 1B 07 1C 00 1D 91 20 FB 21 56 22 10 00 00 C0 00 00 00 00 00 00 00\n```\n\n\u003c/details\u003e\n\n\n---\n\n#### [subghz_decode_presets.py](subghz_decode_presets.py) ####\n\nDecodes CC1101 \"SubGhzPresetCustom\" settings from flipperZero saved sample file or settings_user (subghz/assets/setting_user) file.\n\n\u003cdetails\u003e\u003csummary\u003eMore Info:\u003c/summary\u003e\n\n\u003e `subghz_decode_presets.py test_dat/Raw_Sample.sub`\n\nfor more info see the CC1101 Datasheet [cc1101.pdf](https://www.ti.com/lit/ds/symlink/cc1101.pdf)\n\nReads:\n\n```\nFiletype: flipperZero SubGhz RAW File\nVersion: 1\nFrequency: 433920000\nPreset: FuriHalSubGhzPresetCustom\nCustom_preset_module: CC1101\nCustom_preset_data: 02 0D 03 07 08 32 0B 06 14 00 13 00 12 30 11 32 10 17 18 18 19 18 1D 91 1C 00 1B 07 20 FB 22 11 21 B6 00 00 00 C0 00 00 00 00 00 00\n```\n\nGenerates:\n\n```\nFuriHalSubGhzPresetCustom\n\nas_tuples:\n[   ('IOCFG0', 13), ('FIFOTHR', 7), ('PKTCTRL0', 50), ('FSCTRL1', 6),\n    ('MDMCFG4', 23), ('MDMCFG3', 50), ('MDMCFG2', 48), ('MDMCFG1', 0),\n    ('MDMCFG0', 0), ('MCSM0', 24), ('FOCCFG', 24), ('AGCCTRL2', 7),\n    ('AGCCTRL1', 0), ('AGCCTRL0', 145), ('WORCTRL', 251), ('FREND1', 182),\n    ('FREND0', 17), ('PATABLE', [0, 192, 0, 0, 0, 0, 0, 0])]\n\nrf_conf\n    Intermediate_freq:        152343.75 Hz\n    Modulations:              OOK\n    Data_Rate:                3793.72 Hz\n    Bit_Width:                263.59 ms\n    Channel_Bandwidth:        650000.00 Hz\n    Sync_Mode:                SYNCM_NONE\n    Channel_spacing:          25390.62 Hz\n    Manchester:               0\n    Variable_length_packet:   Infinite packet length\n    Enable_Pkt_CRC:           0\n    Pkt_DataWhitening         0\n    Min_TX_Preamble:          0\n    PA_Table:                 [0, 192, 0, 0, 0, 0, 0, 0]\n\n```\n\nEventually this will be able to read a config file and generate \"Custom_preset\" radio settings.\n\n*WARNING : this is shit code and still needs a lot of work and cleanup. (I'm surprised it works)*\n\n\u003c/details\u003e\n\n---\n\n## Files ##\n\n---\n\n### [NFC](nfc) ###\n\nRandom Collection of flipperZero [NFC signals files](nfc)\n\n---\n\n### [IR](IR) ###\n\nRandom Collection of flipperZero [IR signal files](IR)\n\n---\n\n### [Subghz](subghz) ###\n\nA Collection of Generated [Subghz Signal Files](subghz)\n\n---\n\n## See Also: ##\n\n* [flipper Zero Official Forum](https://forum.flipperzero.one/) :\n\tCommunity of flipper Zero Users \u0026 Developers.\n\n* [flipperzero_cmd](https://github.com/evilpete/flipperzero_protobuf_py) :\n        A command line based tool for file transfer and remote command \u003cbr\u003e *(Work in Progress)*\n\n* [Brute-Force CAME 12bit Gate Codes](https://github.com/BitcoinRaven/CAMEbruteforcer)\n        Generate sub files which have all the possible keys combination for CAME gate\n\n* [FlipperScripts](https://github.com/DroomOne/FlipperScripts.git) :\n\tReads the `DolphinStoreData` struct from `dolphin.state` files.\n\n* [create_sub.py](https://gist.github.com/jinschoi/f39dbd82e4e3d99d32ab6a9b8dfc2f55) :\n\tPython script to generate flipperZero RAW .sub files from OOK bitstreams.\n\n* [bitstream-from-sub.py](https://gist.github.com/jinschoi/40a470e432c6ac244be8159145454b5c) :\n\tDecode raw bitstring captured flipperZero RAW .sub file.\n\n* [csv2ir](https://github.com/Spexivus/csv2ir) :\n\tcsv2ir is a script to convert ir .csv files to .ir files for the flipper.\n\n* [flipperzero-goodies](https://github.com/wetox-team/flipperzero-goodies) :\n\tMore scripts resources\n\n* [awesome-flipperzero](https://github.com/djsime1/awesome-flipperzero) :\n\tAnother collection of links for the flipper Zero device.\n\n* [flipperzero-firmware](https://github.com/Eng1n33r/flipperzero-firmware.git) :\n\tflipper Zero's Custom Firmware with max features.\u003cbr\u003e\n\t[firmware download/releases](https://github.com/DarkFlippers/unleashed-firmware/releases)\n\n* [flipper Zero Hacking 101](https://flipper.pingywon.com/) :\n\t*yet another* collection of links.\n\n* [T119 bruteforcer](https://github.com/xb8/t119bruteforcer) :\n\t Triggers Retekess T119 restaurant pagers\n\n* [Brute Force OOK files](https://github.com/tobiabocchi/flipperzero-bruteforce) :\n\tA collection of Brute force subghz fixed code protocols\n\n* [Mfkey32 V2](https://github.com/equipter/mfkey32v2) :\n\t Mfkey32v2 is a tool used to calculate Mifare Classic Keys from encrypted nonces obtained from the reader\n\n* [flipperZero Maker](https://flippermaker.github.io/) :\n\tGenerate flipperZero Files\n\n* [nfc_dumpconvert.py](https://github.com/kulverstukas1/nfc_dumpconvert) :\n\tAn updated (Better?) flipper Zero NFC file converter\n\n----\n\n* [FlipperAmiibo](https://github.com/Gioman101/FlipperAmiibo)\n\tA collection of FlipperZero NFC files that emulate Amiibo\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevilpete%2Fflipper_toolbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevilpete%2Fflipper_toolbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevilpete%2Fflipper_toolbox/lists"}