Skip to content

Commit 0cce9b7

Browse files
committed
[LR2021] add DIO and RF switch logic for Nano Edition Mk.II [skip ci]
1 parent 5368792 commit 0cce9b7

3 files changed

Lines changed: 29 additions & 3 deletions

File tree

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ jobs:
421421
if [[ "$BOARD" =~ "nrf54l15clean:nrf54l15clean:" ]]; then
422422
arduino --pref "boardsmanager.additional.urls=https://raw.githubusercontent.com/lolren/NRF54L15-Clean-Arduino-core/refs/heads/main/package_nrf54l15clean_index.json" --save-prefs ;
423423
# arduino --pref "boardsmanager.additional.urls=https://github.com/lolren/nrf54-arduino-core/releases/download/v0.7.0/package_nrf54l15clean_index.json" --save-prefs ;
424-
arduino --install-boards nrf54l15clean:nrf54l15clean:0.9.208 ;
424+
arduino --install-boards nrf54l15clean:nrf54l15clean:0.9.211 ;
425425
arduino --pref "custom_clean_cpu=xiao_nrf54l15_cpu128" --save-prefs ;
426426
arduino --pref "custom_clean_vpr=xiao_nrf54l15_off" --save-prefs ;
427427
arduino --pref "custom_clean_zigbee=xiao_nrf54l15_off" --save-prefs ;

software/firmware/source/SoftRF/SoftRF.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@ enum
242242
SOFTRF_MODEL_RUGGED,
243243
SOFTRF_MODEL_PRIME_MK4,
244244
SOFTRF_MODEL_RETRO_MK2,
245+
SOFTRF_MODEL_NANO_MK2,
245246
};
246247

247248
enum

software/firmware/source/SoftRF/src/driver/radio/radiolib.cpp

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4924,8 +4924,8 @@ static const uint32_t rfswitch_dio_pins_XY16E3AXP33[] = {
49244924
static const Module::RfSwitchMode_t rfswitch_table_XY16E3AXP33_sub1g[] = {
49254925
// mode DIO5 DIO6 DIO7 DIO8
49264926
{ LR2021::MODE_STBY, { LOW, LOW, LOW, LOW } },
4927-
{ LR2021::MODE_TX, { LOW, LOW, LOW, HIGH } }, // Sub-1G DIO8 SET HIGH
49284927
{ LR2021::MODE_RX, { LOW, LOW, LOW, LOW } }, // Sub-1G ALL DIO SET LOW
4928+
{ LR2021::MODE_TX, { LOW, LOW, LOW, HIGH } }, // Sub-1G DIO8 SET HIGH
49294929
{ LR2021::MODE_RX_HF, { LOW, LOW, LOW, LOW } },
49304930
{ LR2021::MODE_TX_HF, { LOW, LOW, LOW, LOW } },
49314931
END_OF_MODE_TABLE,
@@ -4934,8 +4934,8 @@ static const Module::RfSwitchMode_t rfswitch_table_XY16E3AXP33_sub1g[] = {
49344934
static const Module::RfSwitchMode_t rfswitch_table_XY16E3AXP33_2g4[] = {
49354935
// mode DIO5 DIO6 DIO7 DIO8
49364936
{ LR2021::MODE_STBY, { LOW, LOW, LOW, LOW } },
4937-
{ LR2021::MODE_TX, { LOW, LOW, LOW, LOW } },
49384937
{ LR2021::MODE_RX, { LOW, LOW, LOW, LOW } },
4938+
{ LR2021::MODE_TX, { LOW, LOW, LOW, LOW } },
49394939
{ LR2021::MODE_RX_HF, { LOW, HIGH, LOW, LOW } }, // 2.4G RX DIO6 SET HIGH
49404940
{ LR2021::MODE_TX_HF, { LOW, LOW, HIGH, LOW } }, // 2.4G TX DIO7 SET HIGH
49414941
END_OF_MODE_TABLE,
@@ -4956,6 +4956,22 @@ static const Module::RfSwitchMode_t rfswitch_table_tdisplay_p4[] = {
49564956
END_OF_MODE_TABLE,
49574957
};
49584958

4959+
static const uint32_t rfswitch_dio_pins_ELRS[] = {
4960+
RADIOLIB_LR2021_DIO5, RADIOLIB_LR2021_DIO6,
4961+
RADIOLIB_LR2021_DIO7, RADIOLIB_LR2021_DIO8,
4962+
RADIOLIB_NC
4963+
};
4964+
4965+
static const Module::RfSwitchMode_t rfswitch_table_ELRS[] = {
4966+
// mode DIO5 DIO6 DIO7 DIO8
4967+
{ LR2021::MODE_STBY, { LOW, LOW, LOW, LOW } },
4968+
{ LR2021::MODE_RX, { LOW, LOW, LOW, HIGH } },
4969+
{ LR2021::MODE_TX, { LOW, LOW, HIGH, LOW } },
4970+
{ LR2021::MODE_RX_HF, { LOW, HIGH, LOW, LOW } },
4971+
{ LR2021::MODE_TX_HF, { HIGH, LOW, LOW, LOW } },
4972+
END_OF_MODE_TABLE,
4973+
};
4974+
49594975
static const uint32_t rfswitch_dio_pins_seeed_pro[] = {
49604976
RADIOLIB_NC, RADIOLIB_NC,
49614977
RADIOLIB_NC, RADIOLIB_NC,
@@ -5227,6 +5243,10 @@ static void lr20xx_setup()
52275243
radio_g4->irqDioNum = 9; /* DIO9 as IRQ on Ebyte E80-900MBL-02 */
52285244
Vtcxo = 2.2;
52295245
break;
5246+
case SOFTRF_MODEL_NANO_MK2:
5247+
radio_g4->irqDioNum = 9; /* DIO9 as IRQ */
5248+
Vtcxo = 3.3;
5249+
break;
52305250
default:
52315251
radio_g4->irqDioNum = 11; /* LR2021 DIO11 as IRQ */
52325252
Vtcxo = 1.6;
@@ -5692,6 +5712,11 @@ static void lr20xx_setup()
56925712
/* TODO: Switchless design ? */
56935713
break;
56945714

5715+
case SOFTRF_MODEL_NANO_MK2:
5716+
radio_g4->setRfSwitchTable(rfswitch_dio_pins_ELRS,
5717+
rfswitch_table_ELRS);
5718+
break;
5719+
56955720
case SOFTRF_MODEL_BADGE:
56965721
case SOFTRF_MODEL_PRIME_MK3:
56975722
default:

0 commit comments

Comments
 (0)