diff --git a/documentation/CustomFlipperName.md b/documentation/CustomFlipperName.md
new file mode 100644
index 000000000..048283e44
--- /dev/null
+++ b/documentation/CustomFlipperName.md
@@ -0,0 +1,16 @@
+# How to change Flipper name:
+
+## Instruction
+1. Go to Momentum -> Misc -> Spoofing Options -> Flipper Name
+2. Enter your new custom name for your flipper and click `Save`, **name will be saved on microSD card, and will stay same after firmware updates**
+3. You will need to exit from Momentum app and Flipper will automatically reboot!
+4. After reboot you will see your new custom name in device info and right screen `passport`
+5. Done!
+
+**To reset device name to default - do same steps but do not enter any characters, leave it empty and click** `Save`
+
+Currently, changing Flipper name on Momentum Firmware also affects:
+- Bluetooth device name
+- Bluetooth MAC address (3 bytes of Flipper ID + 3 bytes of ASCII from custom name)
+- USB device name
+- Serial number (ASCII from custom name)
\ No newline at end of file
diff --git a/documentation/InfraredCaptures.md b/documentation/InfraredCaptures.md
new file mode 100644
index 000000000..4f23e6570
--- /dev/null
+++ b/documentation/InfraredCaptures.md
@@ -0,0 +1,83 @@
+# Infrared Captures
+
+**Credits go to @gsurkov, @skotopes, @knrn-ai, @DrZlo13 and @ahumeniy for making and contributing to the original `UniversalRemotes.md` Documentation located [Here](https://github.com/flipperdevices/flipperzero-firmware/blob/dev/documentation/UniversalRemotes.md).**
+
+**slightly adapted by @amec0e**
+
+## Televisions, Fans, Audio and Projectors
+
+Each signal is recorded using the following process:
+
+1. Get the remote and point it to Flipper's IR receiver.
+2. Start learning a new remote if it's the first button or press `+` to add a new button otherwise.
+3. Do a Quick Press of a remote button and save it under a corresponding name. **(NOTE: Don't hold the remote button down, this will result in long captures and long playbacks ultimately slowing down the universal remotes performance)**
+4. Repeat steps 2-3 until all required signals are saved.
+
+The signal names are self-explanatory. Remember to make sure that every recorded signal does what it's supposed to.
+
+**NOTE:** It's possible some devices around you will cause interference and may force your capture into raw data instead of a parsed code.
+If you notice you get a parsed code when capturing it's best to click "Retry" a few times on the flipper when capturing to ensure the device is not suffering from any interference, and that the cleanest capture is possible.
+
+## Types of data
+
+**Parsed data**
+
+This is the cleanest type of data because it means it is a recognized code.
+
+```
+name: EXAMPLE
+type: parsed
+protocol: NEC
+address: 07 00 00 00
+command: 02 00 00 00
+```
+
+**Raw Data**
+
+With raw data its important not to hold the remotes button down when capturing on your flipper as this increases not only the size of the capture but the repeats and also how long it takes to send the signal back. Below is an ideal button capture.
+
+```
+#
+name: EXAMPLE
+type: raw
+frequency: 38000
+duty_cycle: 0.330000
+data: 2410 597 1189 599 592 600 1186 602 589 603 1183 606 595 597 593 598 1208 605 596 596 594 597 593 599 592 25604 2403 604 1182 606 595 597 1189 599 591 601 1185 603 618 573 617 575 1211 602 588 603 588 605 596 596 594 25605 2402 604 1192 596 594 597 1189 599 592 601 1185 628 593 598 593 600 1186 602 589 603 588 604 597 595 596
+```
+
+**Capturing Raw Data:**
+
+If you are sure your remote is using raw data the best way to capture it will be to do a quick button press **(don't hold the remotes button down)** and look at how many samples you get, the general idea here is to get the lowest amount of raw data samples captured (around 100 samples is about right) while making sure that the playback on the device is still working. This is usually accomplished by doing a quick button press on the remote when capturing.
+
+## Air Conditioners
+
+Air conditioners differ from most other infrared-controlled devices because their state is tracked by the remote.
+The majority of A/C remotes have a small display that shows the current mode, temperature, and other settings.
+When the user presses a button, a whole set of parameters is transmitted to the device, which must be recorded and used as a whole.
+
+In order to capture a particular air conditioner, there is a particular process require to capturing and this is done using the following process:
+
+1. Get the remote and press the **Power Button** so that the display shows that A/C is ON.
+2. Set the A/C to the corresponding mode (see table below), leaving other parameters such as fan speed or vane on **AUTO** (if applicable).
+3. Press the **POWER** button to switch the A/C off.
+4. Start learning a new remote on Flipper if it's the first button or press `+` to add a new button otherwise.
+5. Point the remote to Flipper's IR receiver as directed and press **POWER** button once again.
+6. Save the resulting signal under the specified name.
+7. Repeat steps 2-6 for each signal from the table below.
+
+| Signal | Mode | Temperature | Note |
+| :-----: | :--------: | :---------: | ----------------------------------- |
+| Dh | Dehumidify | N/A | |
+| Cool_hi | Cooling | See note | Lowest temperature in cooling mode |
+| Cool_lo | Cooling | 23°C | |
+| Heat_hi | Heating | See note | Highest temperature in heating mode |
+| Heat_lo | Heating | 23°C | |
+
+Finally, record the `Off` signal:
+
+1. Make sure the display shows that the A/C is ON.
+2. Start learning a new signal on Flipper and point the remote towards the IR receiver.
+3. Press the **POWER** button so that the remote shows the OFF state.
+4. Save the resulting signal under the name `Off`.
+
+Test the file against the actual device. Make sure that every signal does what it's supposed to.
diff --git a/documentation/MultiConverter.md b/documentation/MultiConverter.md
new file mode 100644
index 000000000..9e27f40f0
--- /dev/null
+++ b/documentation/MultiConverter.md
@@ -0,0 +1,61 @@
+# MultiConverter
+
+## Author: [theisolinearchip](https://github.com/theisolinearchip/flipperzero_stuff/tree/main/applications/multi_converter)
+
+An expanded version of my previous __Dec/Hex Converter__, this time allowing more units and a _(probably poorly made from a design-point-of-view)_ selector mode
+to swap between different unit groups.
+
+I wrote it with the idea of _expanding the unit list_ on mind, so adding new ones it's a matter of increasing an array of constants + defining the proper conversion functions.
+
+(Actually the whole project is more about "making the framework" rather than providing _ALL_ of the possible units : D)
+
+ 
+
+## Current conversions
+
+- `Decimal / Hexadecimal / Binary`
+- `Celsius / Fahrenheit / Kelvin`
+- `Kilometers / Meters / Centimeters / Miles / Feet / Inches`
+- `Degree / Radian`
+
+## Usage
+
+Base keyboard allows numbers from `0` to `F`, being disabled (or not) according to the current selected unit.
+
+Long press on `0` toggles a __negative__ value; long press on `1` sets a __decimal point__ (only if allowed by the current selected unit).
+
+`<` removes the last character; `#` changes to __Unit Select Mode__.
+
+### Unit Select Mode
+
+`Left` and `Right` to swap between __origin unit__ and __destination unit__ (notice the _destination_ will change according to the current selected _origin_).
+
+`Ok` to save the changes and go back to the __Display Mode__; `Back` to go back without changing any unit.
+
+## Adding new units
+
+1. Add the new units in the `MultiConverterUnitType` enum on `multi_converter_definitions.h` (basic definitions header). Notice each enum element will be used as an array index later.
+
+2. Increase the `MULTI_CONVERTER_AVAILABLE_UNITS` constant on `multi_converter_units.h` (units main header file).
+
+3. Set a pair of functions for __converting__ units and to __check__ if a target unit is allowed to work with the destination unit (both on `multi_converter_units.h`
+and `multi_converter_units.c`; follow the already built-in units for more info).
+
+4. Add the proper `MultiConverterUnit` structs for each new unit.
+
+5. Add each new struct to the main `multi_converter_available_units` array.
+
+And that's it! The system will fetch the new units and display it!
+
+## Known issues, TODO-list, etc.
+
+This is an initial release, so expect some bugs and issues (also I don't work with C that much, so there're probably lots of things that can be improved and/or changed!).
+
+- I've noticed some small decimal variations when "going deep" with some units (like converting __miles__ to __centimeters__ and things like that); probably due to the precision-level required. Need to check that.
+- Pending: improve overflow checks.
+- The way some long numbers are shown could probably be improved to look fancier.
+- Both _origin_ and _destination buffers_ are the same. The destination one could probably be longer in order to avoid certain _overflow scenarios_.
+- The GUI needs improvement too: there's a whole __widget/views system__ built in the Flipper that allows things like setting up keys, showing "Save/Back/Cancel" messages with
+callbacks and stuff like that. Didn't know anything about them, so I moved on with something more basic (which is probably fine since it's not a "very big project"); but
+a more "standard" way with the regular GUI stuff provided by the firmware will be interesting...
+- More GUI stuff: the _long click buttons_ for adding a decimal point / negative number aren't very clear on the view itself (I tried to add a small dot / dash symbol, but I think those are small enough to be a little bit confusing)
diff --git a/documentation/NRF24.md b/documentation/NRF24.md
new file mode 100644
index 000000000..9d6e7c60a
--- /dev/null
+++ b/documentation/NRF24.md
@@ -0,0 +1,51 @@
+# flipperzero-nrf24
+
+## Author: [mothball187](https://github.com/mothball187/flipperzero-nrf24/tree/main/mousejacker)
+
+An [NRF24](https://www.sparkfun.com/datasheets/Components/SMD/nRF24L01Pluss_Preliminary_Product_Specification_v1_0.pdf) driver for the [Flipper Zero](https://flipperzero.one/) device. The NRF24 is a popular line of 2.4GHz radio transceivers from Nordic Semiconductors. This library is not currently complete, but functional.
+
+# How to use
+- Connect NRF24 to flipper using provided pinouts
+- Open NRF24: Sniffer, and scan channels, switch between modes/channels using buttons
+- When you got address -> Open NRF24: Mouse Jacker
+- Select Address and open badusb file
+- Done
+
+# Demo (YouTube)
+[](https://www.youtube.com/watch?v=C5hbyAjuU4k)
+
+## Warning
+These apps are for **educational purposes** only. Please use this code responsibly and only use these apps on your own equipment.
+
+## Acknowledgments
+The NRF24 sniffing technique was discovered and shared by Travis Goodspeed in [his blog](http://travisgoodspeed.blogspot.com/2011/02/promiscuity-is-nrf24l01s-duty.html).
+
+The mousejack vulnerabilities were discovered and reported by Marc Newlin, see [the blog](https://www.bastille.net/research/vulnerabilities/mousejack/technical-details) for technical details.
+
+Much of the driver code was inspired by [RadioHead's Arduino library](https://www.airspayce.com/mikem/arduino/RadioHead/classRH__NRF24.html).
+Much of the mousejack code was inspired by the [Jackit project](https://github.com/insecurityofthings/jackit).
+
+
+# Pinout from from NoComp/Frog
+
+
+# Mousejacker / NRF24 pinout by UberGuidoZ
+2/A7 on FZ goes to MOSI/6 on nrf24l01
+3/A6 on FZ goes to MISO/7 on nrf24l01
+4/A4 on FZ goes to CSN/4 on nrf24l01
+5/B3 on FZ goes to SCK/5 on nrf24l01
+6/B2 on FZ goes to CE/3 on nrf24l01
+8/GND on FZ goes to GND/1 on nrf24l01
+9/3V3 on FZ goes to VCC/2 on nrf24l01
+IRQ/8 is left disconnected on nrf24l01
+
+
+
+If the nRF module is acting a bit flakey, try adding a capacitor to the vcc/gnd lines!
+I've not tried the Plus model so it may have a bigger need for a cap.
+Otherwise, I haven't had any major issues.
+Anything from a 3.3 uF to 10 uF should do. (Watch your positive/negative placement! Negative to ground.)
+I learned if you wanna get fancy, include a 0.1 uF cap in parallel.
+The 3.3 uF to 10 uF will respond to slow freq changes while the 0.1 uF will respond to the high freq switching spikes that the larger one cannot. That said, a single 10 uF will likely suffice for the Mousejack attack. ¯\\\_(ツ)_/¯
+
+
diff --git a/documentation/SentrySafe.md b/documentation/SentrySafe.md
new file mode 100644
index 000000000..7c55ef22d
--- /dev/null
+++ b/documentation/SentrySafe.md
@@ -0,0 +1,17 @@
+# Sentry Safe plugin
+
+## Author: [H4ckd4ddy](https://github.com/H4ckd4ddy/flipperzero-sentry-safe-plugin)
+
+Flipper zero exploiting vulnerability to open any Sentry Safe and Master Lock electronic safe without any pin code.
+
+[Demo and Vulnerability described here](https://github.com/H4ckd4ddy/bypass-sentry-safe)
+
+### Usage
+
+- Start "Sentry Safe" plugin
+- Place wires as described on the plugin screen
+
(Flipper GPIO) 8/GND -> Black wire (Safe)
+
(Flipper GPIO) 15/C1 -> Green wire (Safe)
+
+- Press enter
+- Open safe
diff --git a/documentation/SubGHzBypass&Extend.md b/documentation/SubGHzBypass&Extend.md
new file mode 100644
index 000000000..0266e274b
--- /dev/null
+++ b/documentation/SubGHzBypass&Extend.md
@@ -0,0 +1,33 @@
+# Possible errors and what to do
+
+When installing firmware with WebUpdater, Flipper Lab, or Flipper Mobile App, `/int/.region_data` file is created on SD card.
+This file has information on allowed frequencies for country you are located in. When this is not present, SubGHz app will say "Region in not provisioned" when transmitting.
+
+On Official Firmware, SubGHz app does not open when region not provisioned, and also receiving is not allowed if frequency is not allowed in your region.
+On Momentum Firmware, SubGHz app does not restrict receiving in any way, only transmit. If transmit not allowed, it will tell you why and explain what to do. Here is more info:
+- Region in not provisioned: `/int/.region_data` not found, update/reinstall firmware using WebUpdater, Flipper Lab, or Flipper Mobile App
+- Frequency outside of region range: not allowed in your country, you can use Bypass Region (read below)
+- Frequency outside of default range: not officially supported by Flipper, you can use Extend bands (READ BELOW!!!!)
+- Frequency is outside of supported range: will not work with Flipper in any way
+
+## How to disable SubGHz region lock restriction
+
+#### CC1101 Frequency range specs: 300-348 MHz, 386-464 MHz, and 778-928 MHz (+ 350MHz and 467MHz was added to default range)
+
+This setting will unlock whole CC1101 Frequency range specifications, regardless of your current country limits. Use with caution, and check local laws!!!
+
+You can also do this when "Region is not provisioned", but this is discouraged: it is possible that frequency is allowed for you, the error means "I don't know what is allowed or not" because `/int/.region_data` file is missing. Better to update/reinstall firmware. But if this is not possible, Bypass Region works too.
+
+You can enable in `Momentum > Protocols > SubGHz Bypass Region Lock`.
+
+## How to extend SubGHz supported frequency range
+
+#### CC1101 Frequency range specs: 300-348 MHz, 386-464 MHz, and 778-928 MHz (+ 350MHz and 467MHz was added to default range)
+#### This setting will extend to: 281-361 MHz, 378-481 MHz, and 749-962 MHz
+
+1. Please do not do that unless you know what exactly you are doing
+2. You don't need extended range for almost all use cases
+3. Extending frequency range and transmitting on frequencies that outside of hardware specs can damage your hardware!
+4. Flipper Devices team and/or Momentum FW developers are not responsible for any damage that can be caused by using CFW or extending frequency ranges!!!
+
+If you really sure you need that change, enable in `Momentum > Protocols > SubGHz Extend Freq Bands`.
\ No newline at end of file
diff --git a/documentation/SubGHzRemotePlugin.md b/documentation/SubGHzRemotePlugin.md
new file mode 100644
index 000000000..39edf5bc9
--- /dev/null
+++ b/documentation/SubGHzRemotePlugin.md
@@ -0,0 +1,78 @@
+# Sub-GHz Remote
+
+Credit to [Unleashed Firmware](https://github.com/DarkFlippers/unleashed-firmware) team for documentation and the [app itself](https://github.com/DarkFlippers/SubGHz_Remote)!
+
+
+# UPDATE!!!!!!
+## Now you can create and edit map files directly on flipper, go into Sub-GHz Remote and click back button
+
+
+
+
+
+
+### The SubGHz Remote Tool *requires* the creation of custom user map with `.txt` extension in the `subghz/remote` folder on the sdcard.
+
+#### If these files are not exist or not configured properly, **you will receive an error each time you try to select wrong file in the UniRF Tool**.
+
+## You can add as many `.txt` map files as you want, file name doesn't matter!
+
+
+## Incorrect or unconfigured file error
+
+If the `.txt` file has not been properly configured, the following error will be thrown when trying to run the UniRF Remix app:
+
+```
+Config is incorrect.
+
+Please configure map
+
+Press Back to Exit
+```
+
+
+
+## Setting up the `subghz/remote/example.txt` file:
+
+```
+UP: /ext/subghz/Up.sub
+DOWN: /ext/subghz/Down.sub
+LEFT: /ext/subghz/Left.sub
+RIGHT: /ext/subghz/Right.sub
+OK: /ext/subghz/Ok.sub
+ULABEL: Up Label
+DLABEL: Down Label
+LLABEL: Left Label
+RLABEL: Right Label
+OKLABEL: Ok Label
+```
+
+The UP/DOWN/LEFT/RIGHT/OK file locations must be set to the specific file you want mapped to that directional pad direction.
+
+The ULABEL/DLABEL/LLABEL/RLABEL/OKLABEL variables should be set to the text to be displayed for each of the files set earlier.
+
+## Example:
+
+```
+UP: /ext/subghz/Fan1.sub
+DOWN: /ext/subghz/Fan2.sub
+LEFT: /ext/subghz/Door.sub
+RIGHT: /ext/subghz/Garage3.sub
+OK: /ext/subghz/Garage3l.sub
+ULABEL: Fan ON
+DLABEL: Fan OFF
+LLABEL: Doorbell
+RLABEL: Garage OPEN
+OKLABEL: Garage CLOSE
+```
+
+## Notes
+* ##### App Usage
+ - Press a button to send the assigned capture file.
+ - Press Back button to exit app.
+
+* ##### SubGHz Remote Map
+ - File path should not have any spaces or special characters (- and _ excluded).
+ - Labels are limited to 16 characters.
+ - Why? This is to prevent overlapping elements on screen.
+ - For example: If you set your label or file to ```WWWWWWWWWWWWWWW``` you'll be over the screen limits.
diff --git a/documentation/SubGHzRemoteProg.md b/documentation/SubGHzRemoteProg.md
new file mode 100644
index 000000000..ac95edaab
--- /dev/null
+++ b/documentation/SubGHzRemoteProg.md
@@ -0,0 +1,181 @@
+# How to use Flipper as a new SubGHz remote (not clone of original remote)
+
+Many rolling codes support, and this guide, comes from [Unleashed Firmware](https://github.com/DarkFlippers/unleashed-firmware). Go show them some love and maybe donate to them too!
+
+### If your system is not added here that doesn't mean flipper don't support it! Look into add manually menu, and search for your manufacturers inscturctions!
+### Also many supported systems can be used only from `Read` mode, `Add Manually` is used only to make new remotes that can be binded with receiver
+
+## FAAC SLH (NEW!)
+1. Create new remote with randomly generated serial: Go to SubGHz -> Add Manually -> FAAC SLH (select your frequency)
+2. Open your new remote file
+3. Open your receiver box, find programming button on the receiver board.
+4. Hold Up arrow button on the flipper to send programming signal - at same time press and hold programming button on the receiver board.
+5. Led on the receiver board will light on, then off, then on, then off again then on again
+6. Release all buttons
+7. Press send button on the flipper couple times holding it for 1-3 seconds
+8. Done!
+Watch this video to learn more : https://www.youtube.com/watch?v=NfZmMy37XUs
+
+...
+How to get Seed value from your original remote or bind new remote using existing (master) remote?
+1. Go to SubGHz -> Read - Select frequency 868.35 or 433.92 and modulation AM650
+2. Hold two buttons on the original master remote until led turns on
+3. Click one button that you want to get seed from (Seed is unique for each button on original remote!)
+4. You will get signal in the read screen on flipper, open that and see your original remote seed for button you used
+5. You can create new remote using that seed and bind that to receiver without opening the box! Faac has procedure that allows to bind new remotes using master remote, you can use flipper for that
+6. Go to SubGHz -> Add Manually -> FAAC SLH Man. (your Freq)
+7. Enter those values -> REPLACE `R` with any random digits like 1,2,3..
+FIX -> A0 RR RR R6
+COUNTER -> 00 00 02
+SEED -> Your seed from the remote button you got earlier
+8. Flipper will act as new remote, press Send button couple times near the receiver to register new remote
+9. Done!
+
+## Dea Mio
+1. Create new remote with randomly generated serial: Go to SubGHz -> Add Manually -> Dea Mio 433Mhz
+2. Open your new remote file
+3. Right arrow button on the flipper simulates press of hidden button in original remote
+4. Send button simulates one of basic buttons of the remote, can be programmed into the receiver
+5. Follow manufacturer instructions on new remotes programming
+
+## AN-Motors AT4
+
+**This instruction for older boards, if your has no** `Learn` **button but has buttons** `F`, `CL`, `+`, `-` **read instruction from Alutech AT4N**
+1. Create new remote with randomly generated serial: Go to SubGHz -> Add Manually -> AN-Motors AT4 433Mhz
+2. Open your new remote file
+3. Open your receiver box, find button `Learn` click it one time, led will turn on.
+4. Press `Send` on your flipper one time, led on receiver board will turn off.
+5. Press `Send` on your flipper again, led on receiver will start flashing, wait couple seconds until led turns off.
+6. Done
+
+Watch this video to learn more (video in Russian language): https://www.youtube.com/watch?v=URVMtTELcnU
+
+## Alutech AT4N (AN-Motors)
+
+1. Create new remote with randomly generated serial: Go to SubGHz -> Add Manually -> Alutech AT4N 433Mhz
+2. Open your new remote file
+3. Open your receiver box, find button `F` press it for ~3sec, display will show `Pr`.
+4. Click `F` button couple times until you see `Lr` on screen
+5. Using buttons `+` / `-` select free number that has no remotes in it (if it has remote programmed on that number, it will show a red dot on the down right corner)
+6. Press `Send` on your flipper one time, display on receiver board will flash and red dot will appear next to remote number.
+7. Press button `F` on receiver board for ~3sec to exit programming mode
+8. Done
+
+Watch this video to learn more and see how different boards can be programmed (video in Russian language): https://www.youtube.com/watch?v=XrOVVYhFXDg
+
+## Aprimatic TR
+
+1. Create new remote with randomly generated serial: Go to SubGHz -> Add Manually -> KL: Aprimatic 433Mhz
+2. Open your new remote file
+3. Push all 4 buttons at same time on your existing remote thats already works with receiver
+4. Receiver makes a continuous beep
+5. Press `Send` on your flipper for ~2 seconds
+6. Wait until receiver stops beeping
+7. Done?
+
+## Doorhan
+
+1. Create new remote with randomly generated serial: Go to SubGHz -> Add Manually -> KL: Doorhan 433Mhz or 315Mhz depends on your receiver (find out by reading your existing remote)
+2. Open your new remote file
+3. Push `P` button for ~2 sec, led will start flashing
+4. Press `Send` on your flipper for ~2 seconds
+5. Led on the receiver board will flash and turn off
+6. Done!
+
+Also you can program new remote using old remote on newer boards! See first video below:
+Watch this videos to learn more (videos in Russian language): https://www.youtube.com/watch?v=wZ5121HYv50 / https://www.youtube.com/watch?v=1ucrDKF3vWc
+
+## Somfy Telis
+
+1. Create new remote with randomly generated serial: Go to SubGHz -> Add Manually -> Somfy Telis 433Mhz
+2. Open your new remote file
+3. Long press (hold) the ‘Prog’ button on a remote that is already registered to the device, until the blinds move shortly up and down.
+4. Press and hold the ‘Prog’ button on the flipper (Left Arrow), until the blinds move shortly up and down again.
+5. Done?
+
+## BFT Mitto
+
+How to create new remote and bind it to receiver (will not conflict with original remotes):
+
+1. Create new remote with randomly generated serial: Go to SubGHz -> Add Manually -> BFT Mitto 433Mhz
+2. Open your new remote file
+3. You need to be in minimum 3 meters to receiver
+4. Original Remote: Press hidden button on back of remote with a pin or paper clip OR press Button 1 & 2 together until remote LED lights.
+5. Original Remote: Momentarily press button that opens device
+6. Long press (Right Arrow) - (0xF button - Btn:F) on Flipper for like 3-5 sec
+7. Press the button you want to bind to open the device on the flipper
+8. Press (Right Arrow) - (0xF button - Btn:F) again
+9. Done?
+
+OR
+
+1. Create new remote with randomly generated serial: Go to SubGHz -> Add Manually -> BFT Mitto 433Mhz
+2. Open your new remote file
+3. Open your receiver board box
+4. **Watch this video**: https://www.youtube.com/watch?v=5QXMBKI_-Ls
+5. Long press (Right Arrow) - (0xF button - Btn:F) on Flipper for like 3-5 sec -> Will act like holding Button 1 & 2 on original remote as shown on video
+6. Done?
+
+--
+
+How to get seed to make full clone of your remote (**will conflict with original remote!!!!!**):
+
+**WARNING!!!! This method can desync your original remote, please avoid using it! It can be used in rare cases like when your remote works poorly or has broken buttons and you want to replace it with flipper**
+
+1. Open `Read` in SubGHz on your flipper
+2. (ONLY FOR ORIGINAL REMOTES) Hold all buttons on your remote at same time, example -> for 2 button remote - press them both at same time and hold OR press hidden button on back of remote with a pin or paper clip
+3. You will receive signal on your flipper, open that signal and see `Fix:` value, it should start from `F` like `F00F1C9B`
+4. If `Fix:` is showing first `F` see `Hop:` value -> This is your remote Seed
+5. Write down Hop value
+6. Press button on your remote that you want to clone and receive its signal on your flipper
+7. Open and write down `Fix:` value where first digit will be same as your button ID `Btn:`
+8. Create new remote using BFT Mitto [Manual] - Enter FIX from step 7, enter counter `FF F9`, enter seed from step 5
+9. Using counter values like `FF F9` can help bypassing current original remote counter value, and in result it also can fully desync original remote, only one remote can work at same time using this method
+10. Throw away your original remote since now it needs to be re-added into receiver board :C
+
+## CAME Atomo
+
+1. Use google to find instructions - `how to program new CAME Atomo remote into receiver`
+2. Watch this video to learn more (video in Russian language): https://www.youtube.com/watch?v=XeHUwfcSS30
+
+## Nice Flor S
+
+- Create new remote with randomly generated serial: Go to SubGHz -> Add Manually -> Nice FloR-S 433Mhz
+- Open your new remote file
+
+### Coding using an existing remote
+To enter the code of a new remote control without using your receiver, you will need
+an authorised remote control (note: the first remote control must always be entered
+using the receiver key). Now, with the two remote controls (your already coded
+remote, and your new remote), which we shall call NEW (the one whose code we want
+to enter) and OLD (the authorised one), position yourself within 3m of the gate/garage
+receiver and then:
+1. Press and hold the `Send` button on the flipper for at least 5 seconds and then
+release.
+2. Press the button on the already programmed remote 3 times slowly.
+3. Press the `Send` button on the flipper slowly and then release.
+
+### Coding directly to your receiver
+Your new remote will program to your receiver as per your original remote
+instructions, so please refer to your manual. But for a typical NICE FLOX2R Receiver,
+the programming procedure is as follows:
+1. Press the learning button on your receiver for 1-2 seconds. The LED will turn on
+for 5 seconds. Within 5 seconds, complete the next step.
+2. Press a `Send` button on your flipper until the LED on your receiver turns off.
+3. Release the remote button and wait for 2 seconds.
+4. Press the `Send` button on your flipper again. The LED on your receiver
+will now flash 3 times. This indicates that your remote has been successfully
+coded. If this does not happen, repeat the whole procedure from the
+beginning, and try again.
+5. Wait 5 seconds. Press the button on your new remote to test if it opens your
+garage/gate.
+
+
+#### Follow links below to find more detailed instructions!!!
+
+#### Materials used:
+- [FAAC SLH](https://www.youtube.com/watch?v=NfZmMy37XUs)
+- [Somfy Telis](https://pushstack.wordpress.com/somfy-rts-protocol/)
+- [BFT Mitto](https://www.retroremotes.com.au/wp-content/uploads/2017/03/BFT-MITTO-2-4-19-6-17.pdf)
+- [NICE FLOX2R Receiver Programming](https://apollogateopeners.com/store/pdf/apollo-flor-s-receiver-programming-guide.pdf)
+- [Nice Flor S Programming](https://motepro.com.au/Instructions/Nice.pdf)
diff --git a/documentation/SubGHzSettings.md b/documentation/SubGHzSettings.md
new file mode 100644
index 000000000..770c3b84e
--- /dev/null
+++ b/documentation/SubGHzSettings.md
@@ -0,0 +1,117 @@
+## How to add new SubGHz frequencies
+
+#### CC1101 Frequency range specs: 300-348 MHz, 386-464 MHz, and 778-928 MHz (+ 350MHz and 467MHz was added to default range)
+
+### From Flipper
+
+On Momentum Firmware, you can add manage frequencies list from Flipper from `Momentum > Protocols > SubGHz Freqs`:
+- Use Defaults: whether to include default frequency list, if yes your custom frequencies go at END of default list
+- Static Freqs: list used by `Read`, `Read RAW` and `Frequency Analyzer`
+- Hopper Freqs: list used by `Read > Config > Hopping: ON`
+
+This menu is a utility for configuring the normal config file that all firmwares use directly from Flipper. See below for a guide written by [Unleashed Firmware](https://github.com/DarkFlippers/unleashed-firmware) team on how to use the config file manually.
+
+
+### From config file
+
+Edit user settings file located on your microSD card - `subghz/assets/setting_user` (remove .example from name to use config)
+
+in this file you will find we already have extra frequencies added
+if you need your custom one, make sure it doesn't listed here
+
+### Default frequency list
+```
+ /* 300 - 348 */
+ 300000000,
+ 302757000,
+ 303875000,
+ 303900000,
+ 304250000,
+ 307000000,
+ 307500000,
+ 307800000,
+ 309000000,
+ 310000000,
+ 312000000,
+ 312100000,
+ 312200000,
+ 313000000,
+ 313850000,
+ 314000000,
+ 314350000,
+ 314980000,
+ 315000000,
+ 318000000,
+ 330000000,
+ 345000000,
+ 348000000,
+ 350000000,
+
+ /* 387 - 464 */
+ 387000000,
+ 390000000,
+ 418000000,
+ 430000000,
+ 430500000,
+ 431000000,
+ 431500000,
+ 433075000, /* LPD433 first */
+ 433220000,
+ 433420000,
+ 433657070,
+ 433889000,
+ 433920000 | FREQUENCY_FLAG_DEFAULT, /* LPD433 mid */
+ 434075000,
+ 434176948,
+ 434190000,
+ 434390000,
+ 434420000,
+ 434620000,
+ 434775000, /* LPD433 last channels */
+ 438900000,
+ 440175000,
+ 464000000,
+ 467750000,
+
+ /* 779 - 928 */
+ 779000000,
+ 868350000,
+ 868400000,
+ 868800000,
+ 868950000,
+ 906400000,
+ 915000000,
+ 925000000,
+ 928000000,
+```
+
+### User frequencies added AFTER that default list! You need to continue until you reach the end of that list
+
+### If you want to disable default list and use ONLY user added frequencies from user settings file
+Change that line
+`#Add_standard_frequencies: true`
+to
+`Add_standard_frequencies: false`
+
+**You need to have custom frequencies added in both lists! in main frequency list and in hopping list! Replacing only hopping freqs will not work with that setting set on false, you need to add something in main list since it will be empty**
+
+### To add your own frequency to user list
+Just add new line
+`Frequency: 928000000` - where `928000000` is your frequency, keep it in that format! it should be 9 digits!
+
+### Hopper frequency list
+To add new frequency to hopper:
+add new line `Hopper_frequency: 345000000`
+But remember! You should keep it as small as possible, or hopper functionality would be useless!
+If `#Add_standard_frequencies: true` is not changed
+Your frequencies will be added after default ones
+
+### Default hopper list
+```
+ 310000000,
+ 315000000,
+ 318000000,
+ 418000000,
+ 433920000,
+ 868350000,
+```
diff --git a/documentation/file_formats/SubGhzFileFormats.md b/documentation/file_formats/SubGhzFileFormats.md
index c4d63835e..80047faf7 100644
--- a/documentation/file_formats/SubGhzFileFormats.md
+++ b/documentation/file_formats/SubGhzFileFormats.md
@@ -178,7 +178,7 @@ Data_RAW: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 DE 02 D3 54 D5 4C D2 C
Frequency: 433920000
Preset: FuriHalSubGhzPresetCustom
Custom_preset_module: CC1101
- Сustom_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
+ Custom_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
Protocol: RAW
RAW_Data: 29262 361 -68 2635 -66 24113 -66 11 ...
RAW_Data: -424 205 -412 159 -412 381 -240 181 ...
diff --git a/documentation/file_formats/iButtonFileFormat.md b/documentation/file_formats/iButtonFileFormat.md
index 414d73045..01919b9c6 100644
--- a/documentation/file_formats/iButtonFileFormat.md
+++ b/documentation/file_formats/iButtonFileFormat.md
@@ -26,7 +26,7 @@ Changelog:
| Name | Type | Description |
| ----------- | ------ | -------------------------------------------- |
-| Protocol | string | Currently supported: DS1990, DS1992, DS1996, DS1971, DSGeneric*, Cyfral, Metakom |
+| Protocol | string | Currently supported: DS1990, DS1992, DS1996, DS1971, DS1420, DSGeneric, Cyfral, Metakom |
| Rom Data | hex | Read-only memory data (Dallas protocols only) |
| Sram Data | hex | Static RAM data (DS1992 and DS1996 only)
| Eeprom Data | hex | EEPROM data (DS1971 only)
@@ -37,6 +37,8 @@ It can also be used if a key with a deliberately invalid family code or checksum
NOTE 2: When adding new protocols, it is not necessarily to increase the format version, define the format in the protocol implementation instead.
+**DS1420 is fully compatible with DS1990, only difference is a familiy code 0x01 for DS1990 and 0x81 for DS1420**
+
### 1. Initial version.
Deprecated, will be converted to current version upon saving.