Skip to content

Commit 98c7315

Browse files
committed
feat(config): add dynamic coding rate settings
1 parent 249a808 commit 98c7315

1 file changed

Lines changed: 54 additions & 0 deletions

File tree

meshtastic/config.proto

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1064,6 +1064,18 @@ message Config {
10641064
NOT_PRESENT = 2;
10651065
}
10661066

1067+
enum DynamicCodingRateMode {
1068+
/*
1069+
* Keep using the configured static coding rate.
1070+
*/
1071+
DCR_OFF = 0;
1072+
1073+
/*
1074+
* Select LoRa coding rate per packet using local airtime policy.
1075+
*/
1076+
DCR_ON = 1;
1077+
}
1078+
10671079
/*
10681080
* When enabled, the `modem_preset` fields will be adhered to, else the `bandwidth`/`spread_factor`/`coding_rate`
10691081
* will be taked from their respective manually defined fields
@@ -1188,6 +1200,48 @@ message Config {
11881200
* Set where LORA FEM is enabled, disabled, or not present
11891201
*/
11901202
FEM_LNA_Mode fem_lna_mode = 106;
1203+
1204+
/*
1205+
* Dynamic Coding Rate policy mode. DCR_OFF keeps the configured static coding rate; DCR_ON applies
1206+
* per-packet CR selection.
1207+
*/
1208+
DynamicCodingRateMode dcr_mode = 107;
1209+
1210+
/*
1211+
* Minimum CR denominator DCR may choose. 0 means firmware default, currently 5 (CR 4/5).
1212+
*/
1213+
uint32 dcr_min_cr = 108;
1214+
1215+
/*
1216+
* Maximum CR denominator DCR may choose. 0 means firmware default, currently 8 (CR 4/8).
1217+
*/
1218+
uint32 dcr_max_cr = 109;
1219+
1220+
/*
1221+
* Max percentage of local TX airtime in the rolling DCR window that may be CR 4/8 for non-urgent packets.
1222+
* 0 means firmware default, currently 10 percent.
1223+
*/
1224+
uint32 dcr_robust_airtime_pct = 110;
1225+
1226+
/*
1227+
* Disable local per-neighbor coding-rate tracking. Tracking is enabled by default and is local-only.
1228+
*/
1229+
bool dcr_disable_neighbor_tracking = 111;
1230+
1231+
/*
1232+
* Maximum CR denominator for routine telemetry/position/nodeinfo traffic. 0 means firmware default, currently 6.
1233+
*/
1234+
uint32 dcr_telemetry_max_cr = 112;
1235+
1236+
/*
1237+
* Minimum CR denominator for normal user-value packets such as text. 0 means firmware default, currently 5.
1238+
*/
1239+
uint32 dcr_user_min_cr = 113;
1240+
1241+
/*
1242+
* Minimum CR denominator for alert/urgent packets. 0 means firmware default, currently 7.
1243+
*/
1244+
uint32 dcr_alert_min_cr = 114;
11911245
}
11921246

11931247
message BluetoothConfig {

0 commit comments

Comments
 (0)