Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@ static void subghz_device_cc1101_ext_interconnect_load_preset(
subghz_device_cc1101_ext_load_custom_preset(
subghz_device_cc1101_preset_2fsk_dev2_38khz_async_regs);
break;
case FuriHalSubGhzPreset2FSKDev12KAsync:
subghz_device_cc1101_ext_load_custom_preset(
subghz_device_cc1101_preset_2fsk_dev12khz_async_regs);
break;
case FuriHalSubGhzPreset2FSKDev476Async:
subghz_device_cc1101_ext_load_custom_preset(
subghz_device_cc1101_preset_2fsk_dev47_6khz_async_regs);
Expand Down
2 changes: 2 additions & 0 deletions applications/main/subghz/helpers/subghz_txrx.c
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,8 @@ const char* subghz_txrx_get_preset_name(SubGhzTxRx* instance, const char* preset
preset_name = "AM650";
} else if(!strcmp(preset, "FuriHalSubGhzPreset2FSKDev238Async")) {
preset_name = "FM238";
} else if(!strcmp(preset, "FuriHalSubGhzPreset2FSKDev12KAsync")) {
preset_name = "FM12K";
} else if(!strcmp(preset, "FuriHalSubGhzPreset2FSKDev476Async")) {
preset_name = "FM476";
} else if(!strcmp(preset, "FuriHalSubGhzPresetCustom")) {
Expand Down
127 changes: 64 additions & 63 deletions applications/main/subghz/resources/subghz/assets/keeloq_mfcodes
Original file line number Diff line number Diff line change
@@ -1,66 +1,67 @@
Filetype: Flipper SubGhz Keystore File
Version: 0
Encryption: 1
IV: 48 69 69 69 2C 20 4D 69 73 68 61 21 21 30 31 21
5914BA15A974B44BBF5886001E9CA8C05FED2B9A46D16F862484BC4760201A72
885AB8E254F1403894740B50C6943A5F0A426C79CD8FA11D16915455E6B9ACE8
48106C10911CC932FCAB49A793B6777DE845AA0D383E1B8D9FAE04E4F943FC60
C1B81F527CF227F8A8D342BBB86EFBD95C99BFE3E3F55FFF19CF66C03CDB8779
3DAB5A367DC19D412E9D71A89852E246DDEC0E97D7F7CE77DEE4043D9A99A1DEC4BDCA38B728CDC7BCB9E112044DCB8B
8E718417DD703259B6EBBB799EC8ED428C6D65115023C1421C349DDB70359929
DB110804D813EB3D2F04F5723305CFA13778D46DD261D246B05DB257535C9520
135BEFEEBEBF17665C27951E43639A82AD5B15EFAD7D1D776ACF1070E5E81F9C
996528B0D85E81D1AB47FECB2A5C2B63AFF35281EE41E316D26E34BB7E0E5EFE
BA220B2E219DE8045F6C5C4D8B4CABFB9944252ACB82755907C44E09071A0F90
C4509ACDC858711F42B96AA40B0FEC58566E71D91E1D167835B97D13A9C6B4FD63F62D911E17C15081ED1FFBA00E08D0
499D1031FDC6B5D6109D4A9046599FEC77F1DB26FCA809235803CE5F670F2BF1622042AB04F768CB4BBB8E93595B229A
43107EA4D34AC00BD05F45CF7AB077742C06A3619B3E258389EFF2D8ED057570
A2ED253FB0CE66CDE2FF3921BE78662A97A23C344A83493D36CE6CC5ACC3A821
963B48D299D6935B228A3BFCB86CF75F11A30850A19E014E31E6559F7A9A7DA8
35D23E9D1D85AA0273A13B887EFBE9F55DD2E6C85B14F7E1100A66892F2A05BE
F3134F0E2545623B439D581F2A42F6F4CE0512622B6E53937DFBE353C26DF2E7E69871412C0221D8CCCBB1948715CB3C
C7E5A6E301B8E18BD3B15748A2A74AA1A939073FFE2F4A126213C49567D5BE44
6E60F1421A27CEA2521C1EFE014EE2036F706ED734C12A794EBE3EFFACEA59C4
9B60C596CE660E6A582AEC2C2804188EDD3C7636A3BC0E423A8D969F083319BB5AB90BE0DF3470BADB8D23E5AE0832EC
001C3E6E3A36954427626FC4F2CC9DA39983C945F745EC9F25B11814D8EDB233AFFA0FD3C0B9B4D22EAFA951E734FBFD
C03C3CC316F88E71C2A41B4B947FDF3FFCB46E103AFC420B820D757DCF7C46B6
5430C52B29FDE8A436C745C1821BA6CDE9FB42C297C0407F1BC185B137485ABB
F9EE48BC297FE3866E2BFBFEC341CFD57150088F88A06725ADFCAD891F9FF9F1
E0BB992BDBFA5A2369A1DAEF6316F1779C16A33FE03F1A4A42C86B7FAA80A8B1
747863CCE4A663B2C4C7533733CCD604C271C8BF65066E219C427C7208DCA9D5
8C05EF25D017E06ED6D2818B4EAC50E56727FA84039FFE119837C2E5933EB3CD
17C31C9451349E42F010F0E7540D71567485FC7D5E9CFCFEAB0E7AA3FEA8E3AE
76D5BF46CE39C37F09549D281C5FDB5EC12CAA73152E3B295E439091365EEEF1
0B7B9F563A09D953BC6DD141A1313B9CCB52CE5406ED727DE965CE920F0CA5DC
78C9F207EBE8942DCF78A345A8E56B9C6C75D63C110250377D6C04DBB4DC15EA
3518584CFE8238E0AFA1E6F4CDF1E1A2A6349A7D2D641404067BA482DA4C6345
F3CD339419BFF39EFF2F2F0E7C06BB0537B238427345011436EF4F28D2FB4D02
96A25E27313CC92A48B515143643D235C28DDCB53AECCFCFC7792A417FC78CCC
11D553C6363F1C53B0074DF36C5256C9695CEA3006AC8737689694848C14FE93F15925BE58AB9D063D06FD87C0F7E637
81BE95390E912466EAA1465BA7E316D662D7FDCE4DA91D79551247BCBE0FD66E
D2DA1301B149C17E4E579266D0AD810E8043AC1F16781F7743FAFB61B0A74D14
C4921F5E174C988212CB46362FABB6B99599537C4E5B983016463ACF11AFA9F9
F1333F4B1706326B776A6701E4457A18A0E262EDEC1758D3A696741094EAE7C8
6F3647542899B48A53A829FF3CE82B22A75AA9AB3D3E01BF33C6B3D1F0C9BF3D
C42ACCF63F19E529E0D6A9AD9D2505F103D734248DAC0E9F2FCA35EC3F86C0A3
1C0370E20EDBF342A76B1B65F0DB7C66F870ABB56E848159A0DB6585749F57B36EF4E18F730B5D0A2732C03ED74ECF72
C61D01023FBDD674B09C6FFDB38A6F152F3B5C3203AFE4CA014C28600670922C
6C5507A0AF35860EA2EAD029A6ED19AEFE2AD90B15B2EEFD65B1F14747C1EA66
1C908E924A1BE763868ADB985DE4BB157CEF7BA96E58CED46BE08816E7D92239
A3E883AC3AE22373815F2C02F6B808B0DD36FCE27BDF22C262FDBFC5D1B03153
7CC9A80338315C477B55B4024324F2EAA56A770675F2229D32B44E304214059D
D9CF90A9C4B60860355301A842323D8E207473D4A5631067E5DF2BFFD5A0E38E
824D256362207A507DD40C13D765B1BA172C1E2AAA09DB164028CE094BFF33A8
8F04BFBD27084AC2FEA04D18F88E98E3F4AE979B40343E2D55C20173EB5030B6
D28B98D9030AC29D79B974FCDF176C19EF6998DB776D5A8B067F1F6908B951F7
B7AA60298EB22D45A182A6E8BC76C7AD04334BE7D26746455C5CA44BC7D34B38
C79E0C38724D4ED317A0507C3981DC4E3AFA84F039FF9595FDE4C4C81F3332A3
F30A3803C59558A0FD41B15E45B133B901E0C66D898B10A2EF5189BC36EAE904
3F2CFFEE683A76EB9FDD84E99CE0C0FCFFC1B5ECA9C8677CACA2F6E33A773823
EDBC9BF637AFFB3F8BC0A90A4B8F56D452F64949E865855DC51882B6F0889E64
C4234CE6419E399A6415EBC80FEF6049A3EF345D4D0692784BB58626241291A37C080BCEEFB71B135368E4E3790C93B3
C1231A97B5642D908BD9524B482801A63F6AF3E25EF69F51C495EABF5C967238
651FF3C3EB76F90CD8BC02A0884E4C830A2794F8CE2467CC2FA2E74D081D6567
65CCA76B05D06AC1346B23BFE435864B648247075385B74AAE53C4006560854F
2C19A88D52E56B9E09574F3B0B05A1AB3F417D47F78DCEDB9F6593EE01FD9540
D46CF8835857552C4E77C8B37D79A6DE133ECEFD234CCD2278C78872EBAFFF2DAD0571FEFDA998031A235673CF6F2EA2
IV: 34 65 67 6F 74 69 74 75 74 20 7A 61 62 79 6C 3F
32B39744511B8ADEF83106DB2FA08F375B623B17B492881049B1B117AC17BC94
8B9FC9A60E0B74178043C71219CDD2BD15E8AAFF12E37D214A2694867795074A
D875A11343191ACE374017AD4F63D10387FB24FAD27B66D268719EEA9AA4ED5F
F7C314B43BF1840FBD22577534CF7C2AB380D2C8F5E87D3920C8D5BC4BB77604
78C90CDC62D5CF9F74A5426D2D0FA64334F64D39F741A05FF2B139EDFB587055172BD0C9AB5513625527FA1A09EE2363
1DC8A9961C6DC25DA241954C4713811B2EF7BC017AF18EF92FDA85FEB17FB411
0ADA8FDE7F5281C9362573457004336CF0A38A027E52C2D76C8FC6B697F70B89
C671CBC76DF8E22D26C882DC984C08BE872ABE02FEE79DA933510AA1A950EA11
0CE78CBEBE071852A455F473055F0151E02CACD0B0523B2639245718BA6FECC5
21DBD647E1843174B5EDA84E9B9305E6C3ECDCCCC07332DB78B6EA43D74A3E4C
94BAD50AC4E364A59928E48CFCBB3054FDB8DAB1F06451FE88178DA5954DE186BA0FFF4863013E408E7BAD75092E07F3
FF2153C605A48BF9893751DD8F0C50261355EAF28F90B821EE455728FCE78EEE7E331480F72CB2DF3A404D64626C4D76
28D1A06D060601F4324CCC9D28571A83A273414EB2703C02AFD6687519E812E4
14FAD8867617CB5154FE17C93D57498E98A7EB2B96765F149767361061CA8771
13CC0AA69EE417D17F74093810CD9BD1A48B502604961579E8040E985B9D9F89
0279047AC972924BB401C61BBEE05348E360A2E2381F88272F0C534AA9CC4747
8CFDEB19D02641181678D167FD975986E4FB3E494CABD0EAE084FBAFFD456E589B71E32261652B3C9957B14411806A9A
01B6418ECC0716F21A6345A4AC7790F4ACE42E964EAB438EEEF47781D147C270
B75D13201859DBB1F91D39C5CEBD827D539C0464D6E9A2F235B894C85E3BECBC
432AFCB8A21CEFDC8F75E25FB2E0B10631103538C4A94039C39E92E38E992D2C7D96931BDB3AF06E48AF16CDC15DACF2
F343583A1E4EBFED340BB290BE96E4C7B6200E7BE8FA8C6C2EC4E24F399494D674D500D13D8D1C98F0A430FB86B86A02
2C4F2808807064E081731D7C755F9D0FDE2574468E8DC704D348124DA9E4C0F1
9983B433C9CE9E3EFA324831E4EA7FC575B21C7290225BF44907A34C657CF56C
F5630AFA3FFE58EEDA8DC6E3863D958C31C34C936DA322523EBE664E36A96657
B301BAC0D3CE99B24B8226125935F449339B5CCAE793E0F12B286CC4A022D362
055057954B0604212867CBFC4A526B63749060EBFE698A8756898E7EFD691DA6
D96B2E21B3E433EA3D49D28690ACD57B0D53A86A67A9084B5DC4217F7533ED97
CC28ADA372BB6E01FE55C3E4C63159F33EFB4C7FE9F0EB785D56F987D8FE5322
71291C87748C4F4698C62FF1598FC4AB2DFD0E6C960EF1313B7D05292F673AB9
F1D893F7A60EEED2EFCC60E67EF09BACA8CE88A56CFE407AA551E73F198BFFEA
EBF405D5F8D22950988773097CF44741C1676059C94D8A241D48CA050A8C0EAA
4A5EEEDBCE0F2E997F7A5C725F8343B8C4491EB9451D7B8952A373B27D41B0C1
BB5D4BD9AD0CEB4FCF5515C1EC40B09EA14281AC95C4632C3C86816AFD6333B1
EEB5D031D468E56597DD8BCDD574CC040910808DC4D44E90D5F0A29A4BEE44C8
2E3A57EE66744B9E54166FDE403017867CE2F3B97FB5C4621396B03E84BACB72
CE02687E81CA18FD103EFAD4AF5DCFF839A1B1BD387B325DFFD21A320D091B7D
7904BD5E5EFB174CECA75A0E6FF12646624D6B5C878F8DA2520ED2734DAB46B1
2D395C118B15EF3412883072A8EDA39A73CE6707DAA27E62513AB11CA335F9DC
6284442BE97117F621EB6C11346FE76F91D52985E24799CB21498F14F5C3E727
AC171821F9B0BA7FC270CB640652088F06993AEE4720265C4784B1E420BFAC22
83F6AC5FAB0DCE9027CDF8D6D6C1663779E3EC5077902EA61B1636F3916D2077
2DB82F3119B4E5EE62EE80F13E3CC9FE2A9828DB71E1A720558388C2A592A88E19DCC55EE3CCDA627C85BFC7D7B6DF9C
51FEFEFAD5F5010B58064BD1D22118C77202BA509F4E29BB45E5154E3A6AEAC2
791186FC19F93E3E1D0178EA8DB748115EB0009141A8B106091B62C41C54FD9C
7A7ED0E6DA81EFA0FBF81FF6F4F943704406B540F3705BAEF25A469A3E8E2273
7EBD01609BC71FA30DD026EC5F8917DE082BD2ED0B866B9C709380A6A4A6A62C
3210C03A298E4C2D9673E69A1716DB7717CEE187C7AEE69D6FBAEED908CC01E5
D156B5D147576A301DF41EBFACE141C874A2B2BEC7F51D7C5AAD3362FD260291
3E50017BD269F89AEF9675C39D21112ABE16382BF0180B416845AC62D4FBCAE7
45C1AE0F34524EDD856A80B4BEC7051F29F5BEEB41ACB59D537E718883E131B5
19DCE2826AE86E1DC67C0295B4B992DA567CD8D027F96ECAF163ACDF72053576
6C03032095F4903AA0CB50BA0588C3AD3034CB026B2A15F96521DC4FC3BA3BAD
42DB3907CF3E26AF8417BA90C19C6BC3A6244DBB56010E3EC392343A0A475C0B
63C087D3342404BE638912CCBAC971BF315C409885C0B5E9D308E074BAAAE02E
66DC5358320EDFED46909F555F1B86CB817CB1C1DFEDD08423E9C41C3A5D55D3
2E858CA840AA24EE13B2430BB69EE9BC1B89D69B8FEAF4F7E53E1879B4CD6B52
59A5DA49F2ACF612C66024E4E0D61AA11350528FDCF92FEA7D6CE97BB0294E1E
CAC35C1815C139074B363FB1322FB4B2538C7C9F4EA84191BD09F58AB48C93451DFFAF6425CDFF2790387CC3F2B1953B
126BFAC8D11953E919E9A314081A5D4DDAEF3477EA5C14B1C0B68BF2C84B064C
13B058FAC46D220E382903458D2A0CB8241F821833F9E7F989A347886D1DAE3B
631D48EB9504455B73177E1A3856B6D8F4E5AE4DF131B21C53C8F554E1532B2A
944B83D3C64C2FE9BE3327AB37E7F6D0EE9986626F8F6EF801B222C850A09048
AB058F6C4CACD905ECF5692EEE9EAB1A5EA5944DF10918EA86566DC2AD8B37050F9DDA95F42E4EFCBA7D98257C1B511D
2 changes: 2 additions & 0 deletions applications/main/subghz/subghz_cli.c
Original file line number Diff line number Diff line change
Expand Up @@ -565,6 +565,8 @@ static FuriHalSubGhzPreset subghz_cli_get_preset_name(const char* preset_name) {
preset = FuriHalSubGhzPresetOok650Async;
} else if(!strcmp(preset_name, "FuriHalSubGhzPreset2FSKDev238Async")) {
preset = FuriHalSubGhzPreset2FSKDev238Async;
} else if(!strcmp(preset_name, "FuriHalSubGhzPreset2FSKDev12KAsync")) {
preset = FuriHalSubGhzPreset2FSKDev12KAsync;
} else if(!strcmp(preset_name, "FuriHalSubGhzPreset2FSKDev476Async")) {
preset = FuriHalSubGhzPreset2FSKDev476Async;
} else if(!strcmp(preset_name, "FuriHalSubGhzPresetCustom")) {
Expand Down
1 change: 1 addition & 0 deletions documentation/file_formats/SubGhzFileFormats.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ 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)
- `FuriHalSubGhzPreset2FSKDev12KAsync` — 2 Frequency Shift Keying, deviation 12kHz, 270kHz bandwidth, async(IO throw GP0)
- `FuriHalSubGhzPreset2FSKDev476Async` — 2 Frequency Shift Keying, deviation 47kHz, 270kHz bandwidth, async(IO throw GP0)

### Transceiver Configuration Data {#transceiver-configuration-data}
Expand Down
2 changes: 2 additions & 0 deletions lib/subghz/blocks/generic.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ void subghz_block_generic_get_preset_name(const char* preset_name, FuriString* p
preset_name_temp = "FuriHalSubGhzPresetOok650Async";
} else if(!strcmp(preset_name, "FM238")) {
preset_name_temp = "FuriHalSubGhzPreset2FSKDev238Async";
} else if(!strcmp(preset_name, "FM12K")) {
preset_name_temp = "FuriHalSubGhzPreset2FSKDev12KAsync";
} else if(!strcmp(preset_name, "FM476")) {
preset_name_temp = "FuriHalSubGhzPreset2FSKDev476Async";
} else {
Expand Down
71 changes: 71 additions & 0 deletions lib/subghz/devices/cc1101_configs.c
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,77 @@ const uint8_t subghz_device_cc1101_preset_2fsk_dev2_38khz_async_regs[] = {
0x00,
};

const uint8_t subghz_device_cc1101_preset_2fsk_dev12khz_async_regs[] = {

/* GPIO GD0 */
CC1101_IOCFG0,
0x0D, // GD0 as async serial data output/input

/* Frequency Synthesizer Control */
CC1101_FSCTRL1,
0x06, // IF = (26*10^6) / (2^10) * 0x06 = 152343.75Hz

/* Packet engine */
CC1101_PKTCTRL0,
0x32, // Async, continious, no whitening
CC1101_PKTCTRL1,
0x04,

// // Modem Configuration
CC1101_MDMCFG0,
0x00,
CC1101_MDMCFG1,
0x02,
CC1101_MDMCFG2,
0x04, // Format 2-FSK/FM, No preamble/sync, Disable (current optimized)
CC1101_MDMCFG3,
0x83, // Data rate is 4.79794 kBaud
CC1101_MDMCFG4,
0x67, //Rx BW filter is 270.833333 kHz
CC1101_DEVIATN,
0x30, //Deviation ~12 kHz

/* Main Radio Control State Machine */
CC1101_MCSM0,
0x18, // Autocalibrate on idle-to-rx/tx, PO_TIMEOUT is 64 cycles(149-155us)

/* Frequency Offset Compensation Configuration */
CC1101_FOCCFG,
0x16, // no frequency offset compensation, POST_K same as PRE_K, PRE_K is 4K, GATE is off

/* Automatic Gain Control */
CC1101_AGCCTRL0,
0x91, //10 - Medium hysteresis, medium asymmetric dead zone, medium gain ; 01 - 16 samples agc; 00 - Normal AGC, 01 - 8dB boundary
CC1101_AGCCTRL1,
0x00, // 0; 0 - LNA 2 gain is decreased to minimum before decreasing LNA gain; 00 - Relative carrier sense threshold disabled; 0000 - RSSI to MAIN_TARGET
CC1101_AGCCTRL2,
0x07, // 00 - DVGA all; 000 - MAX LNA+LNA2; 111 - MAIN_TARGET 42 dB

/* Wake on radio and timeouts control */
CC1101_WORCTRL,
0xFB, // WOR_RES is 2^15 periods (0.91 - 0.94 s) 16.5 - 17.2 hours

/* Frontend configuration */
CC1101_FREND0,
0x10, // Adjusts current TX LO buffer
CC1101_FREND1,
0x56,

/* End load reg */
0,
0,

// 2fsk_async_patable[8]
0xC0, // 10dBm 0xC0, 7dBm 0xC8, 5dBm 0x84, 0dBm 0x60, -10dBm 0x34, -15dBm 0x1D, -20dBm 0x0E, -30dBm 0x12
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
};

const uint8_t subghz_device_cc1101_preset_2fsk_dev47_6khz_async_regs[] = {

/* GPIO GD0 */
Expand Down
1 change: 1 addition & 0 deletions lib/subghz/devices/cc1101_configs.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ extern "C" {
extern const uint8_t subghz_device_cc1101_preset_ook_270khz_async_regs[];
extern const uint8_t subghz_device_cc1101_preset_ook_650khz_async_regs[];
extern const uint8_t subghz_device_cc1101_preset_2fsk_dev2_38khz_async_regs[];
extern const uint8_t subghz_device_cc1101_preset_2fsk_dev12khz_async_regs[];
extern const uint8_t subghz_device_cc1101_preset_2fsk_dev47_6khz_async_regs[];
extern const uint8_t subghz_device_cc1101_preset_msk_99_97kb_async_regs[];
extern const uint8_t subghz_device_cc1101_preset_gfsk_9_99kb_async_regs[];
Expand Down
3 changes: 3 additions & 0 deletions lib/subghz/devices/cc1101_int/cc1101_int_interconnect.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ static void subghz_device_cc1101_int_interconnect_load_preset(
case FuriHalSubGhzPreset2FSKDev238Async:
furi_hal_subghz_load_custom_preset(subghz_device_cc1101_preset_2fsk_dev2_38khz_async_regs);
break;
case FuriHalSubGhzPreset2FSKDev12KAsync:
furi_hal_subghz_load_custom_preset(subghz_device_cc1101_preset_2fsk_dev12khz_async_regs);
break;
case FuriHalSubGhzPreset2FSKDev476Async:
furi_hal_subghz_load_custom_preset(subghz_device_cc1101_preset_2fsk_dev47_6khz_async_regs);
break;
Expand Down
1 change: 1 addition & 0 deletions lib/subghz/devices/preset.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ typedef enum {
FuriHalSubGhzPresetOok270Async, /**< OOK, bandwidth 270kHz, asynchronous */
FuriHalSubGhzPresetOok650Async, /**< OOK, bandwidth 650kHz, asynchronous */
FuriHalSubGhzPreset2FSKDev238Async, /**< FM, deviation 2.380371 kHz, asynchronous */
FuriHalSubGhzPreset2FSKDev12KAsync, /**< FM, deviation ~12 kHz, asynchronous */
FuriHalSubGhzPreset2FSKDev476Async, /**< FM, deviation 47.60742 kHz, asynchronous */
FuriHalSubGhzPresetMSK99_97KbAsync, /**< MSK, deviation 47.60742 kHz, 99.97Kb/s, asynchronous */
FuriHalSubGhzPresetGFSK9_99KbAsync, /**< GFSK, deviation 19.042969 kHz, 9.996Kb/s, asynchronous */
Expand Down
2 changes: 2 additions & 0 deletions lib/subghz/subghz_setting.c
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,8 @@ static void subghz_setting_load_default_region(
instance, "FM238", subghz_device_cc1101_preset_2fsk_dev2_38khz_async_regs);
subghz_setting_load_default_preset(
instance, "FM476", subghz_device_cc1101_preset_2fsk_dev47_6khz_async_regs);
subghz_setting_load_default_preset(
instance, "FM12K", subghz_device_cc1101_preset_2fsk_dev12khz_async_regs);
}

void subghz_setting_load_default(SubGhzSetting* instance) {
Expand Down
3 changes: 2 additions & 1 deletion targets/f7/api_symbols.csv
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
entry,status,name,type,params
Version,+,87.1,,
Version,+,87.2,,
Header,+,applications/drivers/subghz/cc1101_ext/cc1101_ext_interconnect.h,,
Header,+,applications/services/bt/bt_service/bt.h,,
Header,+,applications/services/bt/bt_service/bt_keys_storage.h,,
Expand Down Expand Up @@ -4144,6 +4144,7 @@ Variable,+,sequence_solid_yellow,const NotificationSequence,
Variable,+,sequence_success,const NotificationSequence,
Variable,+,simple_array_config_uint8_t,const SimpleArrayConfig,
Variable,-,subghz_device_cc1101_int,const SubGhzDevice,
Variable,+,subghz_device_cc1101_preset_2fsk_dev12khz_async_regs,const uint8_t[],
Variable,+,subghz_device_cc1101_preset_2fsk_dev2_38khz_async_regs,const uint8_t[],
Variable,+,subghz_device_cc1101_preset_2fsk_dev47_6khz_async_regs,const uint8_t[],
Variable,+,subghz_device_cc1101_preset_gfsk_9_99kb_async_regs,const uint8_t[],
Expand Down