Documentation: edit texts, markdown linting (#2226)
Co-authored-by: konerini <25254561+konerini@users.noreply.github.com> Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
@@ -1,16 +1,23 @@
|
||||
# Command syntax
|
||||
BadUsb app uses extended Duckyscript syntax. It is compatible with classic USB Rubber Ducky 1.0 scripts, but provides some additional commands and features, such as custom USB ID, ALT+Numpad input method, SYSRQ command and more functional keys.
|
||||
|
||||
BadUsb app uses extended Duckyscript syntax. It is compatible with classic USB Rubber Ducky 1.0 scripts but provides some additional commands and features, such as custom USB ID, ALT+Numpad input method, SYSRQ command, and more functional keys.
|
||||
|
||||
# Script file format
|
||||
BadUsb app can execute only text scrips from .txt files, no compilation is required. Both `\n` and `\r\n` line endings are supported. Empty lines are allowed. You can use spaces ore tabs for line indentation.
|
||||
|
||||
BadUsb app can execute only text scrips from `.txt` files, no compilation is required. Both `\n` and `\r\n` line endings are supported. Empty lines are allowed. You can use spaces or tabs for line indentation.
|
||||
|
||||
# Command set
|
||||
|
||||
## Comment line
|
||||
Just a single comment line. All text after REM command will be ignored by interpreter
|
||||
|
||||
Just a single comment line. The interpreter will ignore all text after the REM command.
|
||||
|Command|Parameters|Notes|
|
||||
|-|-|-|
|
||||
|REM|Comment text||
|
||||
|
||||
## Delay
|
||||
Pause script execution by defined time
|
||||
|
||||
Pause script execution by a defined time.
|
||||
|Command|Parameters|Notes|
|
||||
|-|-|-|
|
||||
|DELAY|Delay value in ms|Single delay|
|
||||
@@ -18,35 +25,37 @@ Pause script execution by defined time
|
||||
|DEFAULTDELAY|Delay value in ms|Same as DEFAULT_DELAY|
|
||||
|
||||
## Special keys
|
||||
|Command|Notes|
|
||||
|-|-|
|
||||
|DOWNARROW / DOWN||
|
||||
|LEFTARROW / LEFT||
|
||||
|RIGHTARROW / RIGHT||
|
||||
|UPARROW / UP||
|
||||
|ENTER||
|
||||
|DELETE||
|
||||
|BACKSPACE||
|
||||
|END||
|
||||
|HOME||
|
||||
|ESCAPE / ESC||
|
||||
|INSERT||
|
||||
|PAGEUP||
|
||||
|PAGEDOWN||
|
||||
|CAPSLOCK||
|
||||
|NUMLOCK||
|
||||
|SCROLLLOCK||
|
||||
|PRINTSCREEN||
|
||||
|BREAK|Pause/Break key|
|
||||
|PAUSE|Pause/Break key|
|
||||
|SPACE||
|
||||
|TAB||
|
||||
|MENU|Context menu key|
|
||||
|APP|Same as MENU|
|
||||
|Fx|F1-F12 keys|
|
||||
|
||||
| Command | Notes |
|
||||
| ------------------ | ---------------- |
|
||||
| DOWNARROW / DOWN | |
|
||||
| LEFTARROW / LEFT | |
|
||||
| RIGHTARROW / RIGHT | |
|
||||
| UPARROW / UP | |
|
||||
| ENTER | |
|
||||
| DELETE | |
|
||||
| BACKSPACE | |
|
||||
| END | |
|
||||
| HOME | |
|
||||
| ESCAPE / ESC | |
|
||||
| INSERT | |
|
||||
| PAGEUP | |
|
||||
| PAGEDOWN | |
|
||||
| CAPSLOCK | |
|
||||
| NUMLOCK | |
|
||||
| SCROLLLOCK | |
|
||||
| PRINTSCREEN | |
|
||||
| BREAK | Pause/Break key |
|
||||
| PAUSE | Pause/Break key |
|
||||
| SPACE | |
|
||||
| TAB | |
|
||||
| MENU | Context menu key |
|
||||
| APP | Same as MENU |
|
||||
| Fx | F1-F12 keys |
|
||||
|
||||
## Modifier keys
|
||||
Can be combined with special key command or single character
|
||||
|
||||
Can be combined with a special key command or a single character.
|
||||
|Command|Notes|
|
||||
|-|-|
|
||||
|CONTROL / CTRL||
|
||||
@@ -58,35 +67,44 @@ Can be combined with special key command or single character
|
||||
|ALT-SHIFT|ALT+SHIFT|
|
||||
|ALT-GUI|ALT+WIN|
|
||||
|GUI-SHIFT|WIN+SHIFT|
|
||||
|
||||
## String
|
||||
|Command|Parameters|Notes|
|
||||
|-|-|-|
|
||||
|STRING|Text string|Print text string|
|
||||
|
||||
| Command | Parameters | Notes |
|
||||
| ------- | ----------- | ----------------- |
|
||||
| STRING | Text string | Print text string |
|
||||
|
||||
## Repeat
|
||||
|Command|Parameters|Notes|
|
||||
|-|-|-|
|
||||
|REPEAT|Number of additional repeats|Repeat previous command|
|
||||
|
||||
| Command | Parameters | Notes |
|
||||
| ------- | ---------------------------- | ----------------------- |
|
||||
| REPEAT | Number of additional repeats | Repeat previous command |
|
||||
|
||||
## ALT+Numpad input
|
||||
On Windows and some Linux systems you can print character by pressing ALT key and entering its code on numpad
|
||||
|
||||
On Windows and some Linux systems, you can print characters by pressing `ALT` key and entering its code on Numpad.
|
||||
|Command|Parameters|Notes|
|
||||
|-|-|-|
|
||||
|ALTCHAR|Character code|Print single character|
|
||||
|ALTSTRING|Text string|Print text string using ALT+Numpad method|
|
||||
|ALTCODE|Text string|Same as ALTSTRING, presents in some Duckyscript implementations|
|
||||
|
||||
## SysRq
|
||||
|
||||
Send [SysRq command](https://en.wikipedia.org/wiki/Magic_SysRq_key)
|
||||
|Command|Parameters|Notes|
|
||||
|-|-|-|
|
||||
|SYSRQ|Single character||
|
||||
## USB device ID
|
||||
You can set custom ID of Flipper USB HID device. ID command should be in the **first line** of script, it is executed before script run.
|
||||
|
||||
|Command|Parameters|Notes|
|
||||
|-|-|-|
|
||||
|ID|VID:PID Manufacturer:Product||
|
||||
## USB device ID
|
||||
|
||||
You can set the custom ID of the Flipper USB HID device. ID command should be in the **first line** of script, it is executed before script run.
|
||||
|
||||
| Command | Parameters | Notes |
|
||||
| ------- | ---------------------------- | ----- |
|
||||
| ID | VID:PID Manufacturer:Product | |
|
||||
|
||||
Example:
|
||||
`ID 1234:abcd Flipper Devices:Flipper Zero`
|
||||
|
||||
VID and PID are hex codes and are mandatory, Manufacturer and Product are text strings and are optional.
|
||||
|
||||
VID and PID are hex codes and are mandatory. Manufacturer and Product are text strings and are optional.
|
||||
|
@@ -1,11 +1,12 @@
|
||||
# Infrared Flipper File Formats
|
||||
|
||||
## Infrared Remote File Format
|
||||
|
||||
### Example
|
||||
|
||||
Filetype: IR signals file
|
||||
Version: 1
|
||||
#
|
||||
#
|
||||
name: Button_1
|
||||
type: parsed
|
||||
protocol: NECext
|
||||
@@ -25,48 +26,59 @@
|
||||
command: 15 00 00 00
|
||||
|
||||
### Description
|
||||
|
||||
Filename extension: `.ir`
|
||||
|
||||
This file format is used to store an infrared remote that consists of an arbitrary number of buttons.
|
||||
This file format is used to store an infrared remote that consists of an arbitrary number of buttons.
|
||||
Each button is separated from others by a comment character (`#`) for better readability.
|
||||
|
||||
Known protocols are represented in the `parsed` form, whereas non-recognised signals may be saved and re-transmitted as `raw` data.
|
||||
Known protocols are represented in the `parsed` form, whereas non-recognized signals may be saved and re-transmitted as `raw` data.
|
||||
|
||||
#### Version history:
|
||||
|
||||
1. Initial version.
|
||||
|
||||
#### Format fields
|
||||
| Name | Use | Type | Description |
|
||||
| ---------- | ------- | ------ |------------ |
|
||||
| name | both | string | Name of the button. Only printable ASCII characters are allowed. |
|
||||
| type | both | string | Type of the signal. Must be `parsed` or `raw`. |
|
||||
| protocol | parsed | string | Name of the infrared protocol. Refer to `ir` console command for the complete list of supported protocols. |
|
||||
| address | parsed | hex | Payload address. Must be 4 bytes long. |
|
||||
| command | parsed | hex | Payload command. Must be 4 bytes long. |
|
||||
| frequency | raw | uint32 | Carrier frequency, in Hertz, usually 38000 Hz. |
|
||||
| duty_cycle | raw | float | Carrier duty cycle, usually 0.33. |
|
||||
| data | raw | uint32 | Raw signal timings, in microseconds between logic level changes. Individual elements must be space-separated. Maximum timings amount is 1024. |
|
||||
|
||||
| Name | Use | Type | Description |
|
||||
| ---------- | ------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| name | both | string | Name of the button. Only printable ASCII characters are allowed. |
|
||||
| type | both | string | Type of the signal. Must be `parsed` or `raw`. |
|
||||
| protocol | parsed | string | Name of the infrared protocol. Refer to `ir` console command for the complete list of supported protocols. |
|
||||
| address | parsed | hex | Payload address. Must be 4 bytes long. |
|
||||
| command | parsed | hex | Payload command. Must be 4 bytes long. |
|
||||
| frequency | raw | uint32 | Carrier frequency, in Hertz, usually 38000 Hz. |
|
||||
| duty_cycle | raw | float | Carrier duty cycle, usually 0.33. |
|
||||
| data | raw | uint32 | Raw signal timings, in microseconds between logic level changes. Individual elements must be space-separated. Maximum timings amount is 1024. |
|
||||
|
||||
## Infrared Library File Format
|
||||
|
||||
### Examples
|
||||
|
||||
- [TV Universal Library](/assets/resources/infrared/assets/tv.ir)
|
||||
- [A/C Universal Library](/assets/resources/infrared/assets/ac.ir)
|
||||
- [Audio Universal Library](/assets/resources/infrared/assets/audio.ir)
|
||||
|
||||
### Description
|
||||
|
||||
Filename extension: `.ir`
|
||||
|
||||
This file format is used to store universal remote libraries. It is identical to the previous format, differing only in the `Filetype` field.\
|
||||
It also has predefined button names for each universal library type, so that the universal remote application could understand them.
|
||||
It also has predefined button names for each universal library type, so that the universal remote application can understand them.
|
||||
See [Universal Remotes](/documentation/UniversalRemotes.md) for more information.
|
||||
|
||||
### Version history:
|
||||
|
||||
1. Initial version.
|
||||
|
||||
## Infrared Test File Format
|
||||
|
||||
### Examples
|
||||
|
||||
See [Infrared Unit Tests](/assets/unit_tests/infrared/) for various examples.
|
||||
|
||||
### Description
|
||||
|
||||
Filename extension: `.irtest`
|
||||
|
||||
This file format is used to store technical test data that is too large to keep directly in the firmware.
|
||||
@@ -78,34 +90,38 @@ Known protocols are represented in the `parsed_array` form, whereas raw data has
|
||||
Note: a single parsed signal must be represented as an array of size 1.
|
||||
|
||||
### Version history:
|
||||
|
||||
1. Initial version.
|
||||
|
||||
#### Format fields
|
||||
| Name | Use | Type | Description |
|
||||
| ---------- | ------------ | ------ |------------ |
|
||||
|
||||
| Name | Use | Type | Description |
|
||||
| ---------- | ------------ | ------ | ---------------------------------------------------------------- |
|
||||
| name | both | string | Name of the signal. Only printable ASCII characters are allowed. |
|
||||
| type | both | string | Type of the signal. Must be `parsed_array` or `raw`. |
|
||||
| count | parsed_array | uint32 | The number of parsed signals in an array. Must be at least 1. |
|
||||
| protocol | parsed_array | string | Same as in previous formats. |
|
||||
| address | parsed_array | hex | Ditto. |
|
||||
| command | parsed_array | hex | Ditto. |
|
||||
| repeat | parsed_array | bool | Indicates whether the signal is a repeated button press. |
|
||||
| frequency | raw | uint32 | Same as in previous formats. |
|
||||
| duty_cycle | raw | float | Ditto. |
|
||||
| data | raw | uint32 | Ditto. |
|
||||
| type | both | string | Type of the signal. Must be `parsed_array` or `raw`. |
|
||||
| count | parsed_array | uint32 | The number of parsed signals in an array. Must be at least 1. |
|
||||
| protocol | parsed_array | string | Same as in previous formats. |
|
||||
| address | parsed_array | hex | Ditto. |
|
||||
| command | parsed_array | hex | Ditto. |
|
||||
| repeat | parsed_array | bool | Indicates whether the signal is a repeated button press. |
|
||||
| frequency | raw | uint32 | Same as in previous formats. |
|
||||
| duty_cycle | raw | float | Ditto. |
|
||||
| data | raw | uint32 | Ditto. |
|
||||
|
||||
#### Signal names
|
||||
|
||||
The signal names in an `.irtest` file follow a convention `<name><test_number>`, where the name is one of:
|
||||
|
||||
- decoder_input
|
||||
- decoder_expected
|
||||
- encoder_decoder_input,
|
||||
|
||||
and the number is a sequential integer: 1, 2, 3...etc, which produces names like `decoder_input1`, `encoder_decoder_input3`, and so on.
|
||||
and the number is a sequential integer: 1, 2, 3, etc., which produces names like `decoder_input1`, `encoder_decoder_input3`, and so on.
|
||||
|
||||
| Name | Type | Description |
|
||||
| --------------------- | ------------ |-------------------------------------------------------------------------------------------------------|
|
||||
| decoder_input | raw | A raw signal containing the decoder input. Is also used as the expected encoder output. |
|
||||
| decoder_expected | parsed_array | An array of parsed signals containing the expected decoder output. Is also used as the encoder input. |
|
||||
| --------------------- | ------------ | ----------------------------------------------------------------------------------------------------- |
|
||||
| decoder_input | raw | A raw signal containing the decoder input. Also used as the expected encoder output. |
|
||||
| decoder_expected | parsed_array | An array of parsed signals containing the expected decoder output. Also used as the encoder input. |
|
||||
| encoder_decoder_input | parsed_array | An array of parsed signals containing both the encoder-decoder input and expected output. |
|
||||
|
||||
See [Unit Tests](/documentation/UnitTests.md#infrared) for more info.
|
||||
|
@@ -1,17 +1,19 @@
|
||||
# LF RFID key file format
|
||||
|
||||
## Example
|
||||
|
||||
```
|
||||
Filetype: Flipper RFID key
|
||||
Version: 1
|
||||
Key type: EM4100
|
||||
Data: 01 23 45 67 89
|
||||
```
|
||||
|
||||
## Description
|
||||
|
||||
Filename extension: `.rfid`
|
||||
|
||||
The file stores single RFID key of type defined by `Key type` parameter
|
||||
The file stores a single RFID key of the type defined by the `Key type` parameter.
|
||||
|
||||
### Version history
|
||||
|
||||
@@ -19,29 +21,29 @@ The file stores single RFID key of type defined by `Key type` parameter
|
||||
|
||||
### Format fields
|
||||
|
||||
|Name|Description|
|
||||
|-|-|
|
||||
|Key type|Key protocol type|
|
||||
|Data|Key data (HEX values)|
|
||||
| Name | Description |
|
||||
| -------- | --------------------- |
|
||||
| Key type | Key protocol type |
|
||||
| Data | Key data (HEX values) |
|
||||
|
||||
### Supported key types
|
||||
|
||||
|Type|Full name|
|
||||
|-|-|
|
||||
|EM4100|EM-Micro EM4100|
|
||||
|H10301|HID H10301|
|
||||
|Idteck|IDTECK|
|
||||
|Indala26|Motorola Indala26|
|
||||
|IOProxXSF|Kantech IOProxXSF|
|
||||
|AWID|AWID|
|
||||
|FDX-A|FECAVA FDX-A|
|
||||
|FDX-B|ISO FDX-B|
|
||||
|HIDProx|Generic HIDProx|
|
||||
|HIDExt|Generic HIDExt|
|
||||
|Pyramid|Farpointe Pyramid|
|
||||
|Viking|Viking|
|
||||
|Jablotron|Jablotron|
|
||||
|Paradox|Paradox|
|
||||
|PAC/Stanley|PAC/Stanley|
|
||||
|Keri|Keri|
|
||||
|Gallagher|Gallagher|
|
||||
| Type | Full name |
|
||||
| ----------- | ----------------- |
|
||||
| EM4100 | EM-Micro EM4100 |
|
||||
| H10301 | HID H10301 |
|
||||
| Idteck | IDTECK |
|
||||
| Indala26 | Motorola Indala26 |
|
||||
| IOProxXSF | Kantech IOProxXSF |
|
||||
| AWID | AWID |
|
||||
| FDX-A | FECAVA FDX-A |
|
||||
| FDX-B | ISO FDX-B |
|
||||
| HIDProx | Generic HIDProx |
|
||||
| HIDExt | Generic HIDExt |
|
||||
| Pyramid | Farpointe Pyramid |
|
||||
| Viking | Viking |
|
||||
| Jablotron | Jablotron |
|
||||
| Paradox | Paradox |
|
||||
| PAC/Stanley | PAC/Stanley |
|
||||
| Keri | Keri |
|
||||
| Gallagher | Gallagher |
|
||||
|
@@ -19,9 +19,9 @@ This file format is used to store the UID, SAK and ATQA of a NFC-A device. It do
|
||||
|
||||
Version differences:
|
||||
|
||||
1. Initial version, deprecated
|
||||
2. LSB ATQA (e.g. 4400 instead of 0044)
|
||||
3. MSB ATQA (current version)
|
||||
1. Initial version, deprecated
|
||||
2. LSB ATQA (e.g. 4400 instead of 0044)
|
||||
3. MSB ATQA (current version)
|
||||
|
||||
UID can be either 4 or 7 bytes long. ATQA is 2 bytes long. SAK is 1 byte long.
|
||||
|
||||
@@ -68,13 +68,13 @@ This file format is used to store the UID, SAK and ATQA of a Mifare Ultralight/N
|
||||
|
||||
The "Signature" field contains the reply of the tag to the READ_SIG command. More on that can be found here: <https://www.nxp.com/docs/en/data-sheet/MF0ULX1.pdf> (page 31)
|
||||
|
||||
The "Mifare version" field is not related to the file format version, but to the Mifare Ultralight version. It contains the response of the tag to the GET_VERSION command. More on that can be found here: <https://www.nxp.com/docs/en/data-sheet/MF0ULX1.pdf> (page 21)
|
||||
The "Mifare version" field is not related to the file format version but to the Mifare Ultralight version. It contains the response of the tag to the GET_VERSION command. More on that can be found here: <https://www.nxp.com/docs/en/data-sheet/MF0ULX1.pdf> (page 21)
|
||||
|
||||
Other fields are the direct representation of the card's internal state, more on them can be found in the same datasheet.
|
||||
Other fields are the direct representation of the card's internal state. Learn more about them in the same datasheet.
|
||||
|
||||
Version differences:
|
||||
|
||||
1. Current version
|
||||
1. Current version
|
||||
|
||||
## Mifare Classic
|
||||
|
||||
@@ -126,7 +126,7 @@ This file format is used to store the NFC-A and Mifare Classic specific data of
|
||||
|
||||
Version differences:
|
||||
|
||||
1. Initial version, has Key A and Key B masks instead of marking unknown data with '??'.
|
||||
1. Initial version, has Key A and Key B masks instead of marking unknown data with '??'.
|
||||
|
||||
Example:
|
||||
|
||||
@@ -137,8 +137,8 @@ Example:
|
||||
Key B map: 000000000000FFFF
|
||||
# Mifare Classic blocks
|
||||
...
|
||||
|
||||
2. Current version
|
||||
|
||||
2. Current version
|
||||
|
||||
## Mifare DESFire
|
||||
|
||||
@@ -200,7 +200,7 @@ This file format is used to store the NFC-A and Mifare DESFire specific data of
|
||||
hf mfdes write --aid 123456 --fid 01 -d 1337
|
||||
|
||||
Version differences:
|
||||
None, there are no versions yet.
|
||||
None, there are no versions yet.
|
||||
|
||||
## Mifare Classic Dictionary
|
||||
|
||||
@@ -252,4 +252,4 @@ This file stores a list of EMV currency codes, country codes, or AIDs and their
|
||||
|
||||
Version differences:
|
||||
|
||||
1. Initial version
|
||||
1. Initial version
|
||||
|
@@ -2,7 +2,7 @@
|
||||
|
||||
## `.sub` File Format
|
||||
|
||||
Flipper uses `.sub` files to store SubGhz transmissions. They are text files in Flipper File Format. `.sub` files can contain either a SubGhz Key with a certain protocol or SubGhz RAW data.
|
||||
Flipper uses `.sub` files to store SubGhz transmissions. These are text files in Flipper File Format. `.sub` files can contain either a SubGhz Key with a certain protocol or SubGhz RAW data.
|
||||
|
||||
A `.sub` files consist of 3 parts:
|
||||
|
||||
@@ -10,36 +10,36 @@ A `.sub` files consist of 3 parts:
|
||||
- **preset information**: preset type and, in case of a custom preset, transceiver configuration data
|
||||
- **protocol and its data**: contains protocol name and its specific data, such as key, bit length, etc., or RAW data
|
||||
|
||||
Flipper's SubGhz subsystem uses presets to configure radio transceiver. Presets are used to configure modulation, bandwidth, filters, etc. There are several presets available in stock firmware, and there is a way to create custom presets. See [SubGhz Presets](#adding-a-custom-preset) for more details.
|
||||
Flipper's SubGhz subsystem uses presets to configure the radio transceiver. Presets are used to configure modulation, bandwidth, filters, etc. There are several presets available in stock firmware, and there is a way to create custom presets. See [SubGhz Presets](#adding-a-custom-preset) for more details.
|
||||
|
||||
## Header Format
|
||||
## Header format
|
||||
|
||||
Header is a mandatory part of `.sub` file. It contains file type, version, and frequency.
|
||||
|
||||
| Field | Type | Description |
|
||||
| --- | --- | --- |
|
||||
| `Filetype` | string | Filetype of subghz file format, must be `Flipper SubGhz Key File` |
|
||||
| `Version` | uint | Version of subghz file format, current version is 1 |
|
||||
| `Frequency` | uint | Frequency in Hertz |
|
||||
| Field | Type | Description |
|
||||
| ----------- | ------ | ----------------------------------------------------------------- |
|
||||
| `Filetype` | string | Filetype of subghz file format, must be `Flipper SubGhz Key File` |
|
||||
| `Version` | uint | Version of subghz file format, current version is 1 |
|
||||
| `Frequency` | uint | Frequency in Hertz |
|
||||
|
||||
## Preset Information
|
||||
## Preset information
|
||||
|
||||
Preset information is a mandatory part of `.sub` file. It contains preset type and, in case of custom preset, transceiver configuration data.
|
||||
Preset information is a mandatory part for `.sub` files. It contains preset type and, in case of custom preset, transceiver configuration data.
|
||||
|
||||
When using one of the standard presets, only `Preset` field is required. When using custom preset, `Custom_preset_module` and `Custom_preset_data` fields are required.
|
||||
When using one of the standard presets, only `Preset` field is required. When using a custom preset, `Custom_preset_module` and `Custom_preset_data` fields are required.
|
||||
|
||||
| Field | Description |
|
||||
| --- | --- |
|
||||
| `Preset` | Radio preset name (configures modulation, bandwidth, filters, etc.). When using a custom preset, must be `FuriHalSubGhzPresetCustom` |
|
||||
| `Custom_preset_module` | Transceiver identifier, `CC1101` for Flipper Zero |
|
||||
| `Custom_preset_data` | Transceiver configuration data |
|
||||
| Field | Description |
|
||||
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `Preset` | Radio preset name (configures modulation, bandwidth, filters, etc.). When using a custom preset, must be `FuriHalSubGhzPresetCustom` |
|
||||
| `Custom_preset_module` | Transceiver identifier, `CC1101` for Flipper Zero |
|
||||
| `Custom_preset_data` | Transceiver configuration data |
|
||||
|
||||
Built-in presets:
|
||||
|
||||
- `FuriHalSubGhzPresetOok270Async` - On/Off Keying, 270kHz bandwidth, async(IO throw GP0)
|
||||
- `FuriHalSubGhzPresetOok650Async` - On/Off Keying, 650kHz bandwidth, async(IO throw GP0)
|
||||
- `FuriHalSubGhzPreset2FSKDev238Async` - 2 Frequency Shift Keying, deviation 2kHz, 270kHz bandwidth, async(IO throw GP0)
|
||||
- `FuriHalSubGhzPreset2FSKDev476Async` - 2 Frequency Shift Keying, deviation 47kHz, 270kHz bandwidth, async(IO throw GP0)
|
||||
- `FuriHalSubGhzPresetOok270Async` — On/Off Keying, 270kHz bandwidth, async(IO throw GP0)
|
||||
- `FuriHalSubGhzPresetOok650Async` — On/Off Keying, 650kHz bandwidth, async(IO throw GP0)
|
||||
- `FuriHalSubGhzPreset2FSKDev238Async` — 2 Frequency Shift Keying, deviation 2kHz, 270kHz bandwidth, async(IO throw GP0)
|
||||
- `FuriHalSubGhzPreset2FSKDev476Async` — 2 Frequency Shift Keying, deviation 47kHz, 270kHz bandwidth, async(IO throw GP0)
|
||||
|
||||
### Transceiver Configuration Data
|
||||
|
||||
@@ -50,7 +50,7 @@ Transceiver configuration data is a string of bytes, encoded in hex format, sepa
|
||||
- 00 00: marks register block end,
|
||||
- `ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ`: 8 byte PA table (Power amplifier ramp table).
|
||||
|
||||
More details can be found in [CC1101 datasheet](https://www.ti.com/lit/ds/symlink/cc1101.pdf) and `furi_hal_subghz` code.
|
||||
You can find more details in the [CC1101 datasheet](https://www.ti.com/lit/ds/symlink/cc1101.pdf) and `furi_hal_subghz` code.
|
||||
|
||||
## File Data
|
||||
|
||||
@@ -59,9 +59,9 @@ More details can be found in [CC1101 datasheet](https://www.ti.com/lit/ds/symlin
|
||||
### Key Files
|
||||
|
||||
`.sub` files with key data files contain protocol name and its specific data, such as key value, bit length, etc.
|
||||
Check out protocol registry for full list of supported protocol names.
|
||||
Check out the protocol registry for the full list of supported protocol names.
|
||||
|
||||
Example of key data block in Princeton format:
|
||||
Example of a key data block in Princeton format:
|
||||
|
||||
```
|
||||
...
|
||||
@@ -74,7 +74,7 @@ TE: 400
|
||||
Protocol-specific fields in this example:
|
||||
|
||||
| Field | Description |
|
||||
| --- | --- |
|
||||
| ----- | --------------------------------- |
|
||||
| `Bit` | Princeton payload length, in bits |
|
||||
| `Key` | Princeton payload data |
|
||||
| `TE` | Princeton quantization interval |
|
||||
@@ -83,25 +83,23 @@ This file may contain additional fields, more details on available fields can be
|
||||
|
||||
### RAW Files
|
||||
|
||||
RAW `.sub` files contain raw signal data that is not processed through protocol-specific decoding. These files are useful for testing purposes, or for sending data that is not supported by any known protocol.
|
||||
RAW `.sub` files contain raw signal data that is not processed through protocol-specific decoding. These files are useful for testing or sending data not supported by any known protocol.
|
||||
|
||||
For RAW files, 2 fields are required:
|
||||
|
||||
* `Protocol`, must be `RAW`
|
||||
* `RAW_Data`, contains an array of timings, specified in micro seconds. Values must be non-zero, start with a positive number, and interleaved (change sign with each value). Up to 512 values per line. Can be specified multiple times to store multiple lines of data.
|
||||
- `Protocol`, must be `RAW`
|
||||
- `RAW_Data`, contains an array of timings, specified in microseconds Values must be non-zero, start with a positive number, and interleaved (change sign with each value). Up to 512 values per line. Can be specified multiple times to store multiple lines of data.
|
||||
|
||||
Example of RAW data:
|
||||
|
||||
Protocol: RAW
|
||||
RAW_Data: 29262 361 -68 2635 -66 24113 -66 11 ...
|
||||
|
||||
Long payload not fitting into internal memory buffer and consisting of short duration timings (< 10us) may not be read fast enough from the SD card. That might cause the signal transmission to stop before reaching the end of the payload. Ensure that your SD Card has good performance before transmitting long or complex RAW payloads.
|
||||
|
||||
Long payload not fitting into internal memory buffer and consisting of short duration timings (<10us) may not be read fast enough from SD Card. That might cause signal transmission to stop before reaching the end of the payload. Ensure that your SD Card has good performance before transmitting long or complex RAW payloads.
|
||||
## File examples
|
||||
|
||||
|
||||
## File Examples
|
||||
|
||||
### Key File, Standard Preset
|
||||
### Key file, standard preset
|
||||
|
||||
Filetype: Flipper SubGhz Key File
|
||||
Version: 1
|
||||
@@ -112,8 +110,7 @@ Long payload not fitting into internal memory buffer and consisting of short dur
|
||||
Key: 00 00 00 00 00 95 D5 D4
|
||||
TE: 400
|
||||
|
||||
|
||||
### Key File, Custom Preset
|
||||
### Key file, custom preset
|
||||
|
||||
Filetype: Flipper SubGhz Key File
|
||||
Version: 1
|
||||
@@ -126,7 +123,7 @@ Long payload not fitting into internal memory buffer and consisting of short dur
|
||||
Key: 00 00 00 00 00 95 D5 D4
|
||||
TE: 400
|
||||
|
||||
### RAW File, Standard Preset
|
||||
### RAW file, standard preset
|
||||
|
||||
Filetype: Flipper SubGhz RAW File
|
||||
Version: 1
|
||||
@@ -137,7 +134,7 @@ Long payload not fitting into internal memory buffer and consisting of short dur
|
||||
RAW_Data: -424 205 -412 159 -412 381 -240 181 ...
|
||||
RAW_Data: -1448 361 -17056 131 -134 233 -1462 131 -166 953 -100 ...
|
||||
|
||||
### RAW File, Custom Preset
|
||||
### RAW file, custom preset
|
||||
|
||||
Filetype: Flipper SubGhz RAW File
|
||||
Version: 1
|
||||
@@ -150,26 +147,26 @@ Long payload not fitting into internal memory buffer and consisting of short dur
|
||||
RAW_Data: -424 205 -412 159 -412 381 -240 181 ...
|
||||
RAW_Data: -1448 361 -17056 131 -134 233 -1462 131 -166 953 -100 ...
|
||||
|
||||
# SubGhz Configuration Files
|
||||
# SubGhz configuration files
|
||||
|
||||
SubGhz application provides support for adding extra radio presets and additional keys for decoding transmissions in certain protocols.
|
||||
|
||||
## SubGhz `keeloq_mfcodes_user` File
|
||||
## SubGhz `keeloq_mfcodes_user` file
|
||||
|
||||
This file contains additional manufacturer keys for Keeloq protocol. It is used to decode Keeloq transmissions.
|
||||
This file is loaded at subghz application start and is located at path `/ext/subghz/assets/keeloq_mfcodes_user`.
|
||||
|
||||
### File Format
|
||||
### File format
|
||||
|
||||
File contains a header and a list of manufacturer keys.
|
||||
|
||||
File header format:
|
||||
|
||||
| Field | Type | Description |
|
||||
| --- | | --- |
|
||||
| `Filetype` | string | SubGhz Keystore file format, always `Flipper SubGhz Keystore File` |
|
||||
| `Version` | uint | File format version, 0 |
|
||||
| `Encryption` | uint | File encryption: for user-provided file, set to 0 (disabled) |
|
||||
| Field | Type | Description |
|
||||
| ------------ | ------ | ------------------------------------------------------------------ |
|
||||
| `Filetype` | string | SubGhz Keystore file format, always `Flipper SubGhz Keystore File` |
|
||||
| `Version` | uint | File format version, 0 |
|
||||
| `Encryption` | uint | File encryption: for user-provided file, set to 0 (disabled) |
|
||||
|
||||
Following the header, file contains a list of user-provided manufacture keys, one key per line.
|
||||
For each key, a name and encryption method must be specified, according to comment in file header. More information can be found in keeloq decoder source code.
|
||||
@@ -186,7 +183,7 @@ For each key, a name and encryption method must be specified, according to comme
|
||||
# - 2 - Normal_Learning
|
||||
# - 3 - Secure_Learning
|
||||
# - 4 - Magic_xor_type1 Learning
|
||||
#
|
||||
#
|
||||
# NAME - name (string without spaces) max 64 characters long
|
||||
Filetype: Flipper SubGhz Keystore File
|
||||
Version: 0
|
||||
@@ -194,45 +191,44 @@ For each key, a name and encryption method must be specified, according to comme
|
||||
AABBCCDDEEFFAABB:1:Test1
|
||||
AABBCCDDEEFFAABB:1:Test2
|
||||
|
||||
|
||||
## SubGhz `setting_user` File
|
||||
## SubGhz `setting_user` file
|
||||
|
||||
This file contains additional radio presets and frequencies for SubGhz application. It is used to add new presets and frequencies for existing presets. This file is being loaded on subghz application start and is located at path `/ext/subghz/assets/setting_user`.
|
||||
|
||||
### File Format
|
||||
### File format
|
||||
|
||||
File contains a header, basic options, and optional lists of presets and frequencies.
|
||||
|
||||
Header must contain following fields:
|
||||
Header must contain the following fields:
|
||||
|
||||
- `Filetype`: SubGhz setting file format, must be `Flipper SubGhz Setting File`.
|
||||
- `Version`: file format version, current is `1`.
|
||||
|
||||
#### Basic Settings
|
||||
#### Basic settings
|
||||
|
||||
- `Add_standard_frequencies`: bool, flag indicating whether to load standard frequencies shipped with firmware. If set to `false`, only frequencies specified in this file will be used.
|
||||
- `Default_frequency`: uint, default frequency used in SubGhz application.
|
||||
|
||||
#### Adding More Frequencies
|
||||
#### Adding more frequencies
|
||||
|
||||
- `Frequency`: uint — additional frequency for the subghz application frequency list. Used in Read and Read RAW. You can specify multiple frequencies, one per line.
|
||||
|
||||
#### Adding More Hopper Frequencies
|
||||
#### Adding more hopper frequencies
|
||||
|
||||
- `Hopper_frequency`: uint — additional frequency for subghz application frequency hopping. Used in Frequency Analyzer. You can specify multiple frequencies, one per line.
|
||||
|
||||
Repeating same frequency will cause Flipper to listen on this frequency more often.
|
||||
Repeating the same frequency will cause Flipper to listen to this frequency more often.
|
||||
|
||||
#### Adding a Custom Preset
|
||||
|
||||
You can have as many presets as you want. Presets are embedded into `.sub` files, so another Flipper can load them directly from that file.
|
||||
Each preset is defined by following fields:
|
||||
Each preset is defined by the following fields:
|
||||
|
||||
| Field | Description |
|
||||
| --- | --- |
|
||||
| `Custom_preset_name` | string, preset name that will be shown in SubGHz application |
|
||||
| `Custom_preset_module` | string, transceiver identifier. Set to `CC1101` for Flipper Zero |
|
||||
| `Custom_preset_data` | transceiver configuration data. See [Transceiver Configuration Data](#transceiver-configuration-data) for details. |
|
||||
| Field | Description |
|
||||
| ---------------------- | ------------------------------------------------------------------------------------------------------------------ |
|
||||
| `Custom_preset_name` | string, preset name that will be shown in SubGHz application |
|
||||
| `Custom_preset_module` | string, transceiver identifier. Set to `CC1101` for Flipper Zero |
|
||||
| `Custom_preset_data` | transceiver configuration data. See [Transceiver Configuration Data](#transceiver-configuration-data) for details. |
|
||||
|
||||
### Example
|
||||
|
||||
@@ -252,7 +248,7 @@ Frequency: 300000000
|
||||
Frequency: 310000000
|
||||
Frequency: 320000000
|
||||
|
||||
# Frequencies used for hopping mode (keep this list small or flipper will miss signal)
|
||||
# Frequencies used for hopping mode (keep this list small or Flipper will miss the signal)
|
||||
Hopper_frequency: 300000000
|
||||
Hopper_frequency: 310000000
|
||||
Hopper_frequency: 310000000
|
||||
|
@@ -1,6 +1,7 @@
|
||||
# iButton key file format
|
||||
|
||||
## Example
|
||||
|
||||
```
|
||||
Filetype: Flipper iButton key
|
||||
Version: 1
|
||||
@@ -9,11 +10,12 @@ Key type: Dallas
|
||||
# Data size for Cyfral is 2, for Metakom is 4, for Dallas is 8
|
||||
Data: 12 34 56 78 9A BC DE F0
|
||||
```
|
||||
|
||||
## Description
|
||||
|
||||
Filename extension: `.ibtn`
|
||||
|
||||
The file stores single iButton key of type defined by `Key type` parameter
|
||||
The file stores a single iButton key of the type defined by the `Key type` parameter.
|
||||
|
||||
### Version history
|
||||
|
||||
@@ -21,7 +23,7 @@ The file stores single iButton key of type defined by `Key type` parameter
|
||||
|
||||
### Format fields
|
||||
|
||||
|Name|Description|
|
||||
|-|-|
|
||||
|Key type|Currently supported: Cyfral, Dallas, Metakom|
|
||||
|Data|Key data (HEX values)|
|
||||
| Name | Description |
|
||||
| -------- | -------------------------------------------- |
|
||||
| Key type | Currently supported: Cyfral, Dallas, Metakom |
|
||||
| Data | Key data (HEX values) |
|
||||
|
Reference in New Issue
Block a user