Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added support for the LR1121 radio to the NRF52 Pro-Micro #5515

Merged
merged 10 commits into from
Dec 17, 2024
Binary file not shown.
17 changes: 17 additions & 0 deletions variants/diy/nrf52_promicro_diy_tcxo/rfswitch.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#include "RadioLib.h"

// RF Switch Matrix SubG RFO_HP_LF / RFO_LP_LF / RFI_[NP]_LF0
// DIO5 -> RFSW0_V1
// DIO6 -> RFSW1_V2
// DIO7 -> ANT_CTRL_ON + ESP_IO9/LR_GPS_ANT_DC_EN -> RFI_GPS (Bias-T GPS) (LR11x0 only)

static const uint32_t rfswitch_dio_pins[] = {RADIOLIB_LR11X0_DIO5, RADIOLIB_LR11X0_DIO6, RADIOLIB_LR11X0_DIO7, RADIOLIB_NC,
RADIOLIB_NC};

static const Module::RfSwitchMode_t rfswitch_table[] = {
// mode DIO5 DIO6 DIO7
{LR11x0::MODE_STBY, {LOW, LOW, LOW}}, {LR11x0::MODE_RX, {HIGH, LOW, LOW}},
{LR11x0::MODE_TX, {LOW, HIGH, LOW}}, {LR11x0::MODE_TX_HP, {LOW, HIGH, LOW}},
{LR11x0::MODE_TX_HF, {LOW, LOW, LOW}}, {LR11x0::MODE_GNSS, {LOW, LOW, HIGH}},
{LR11x0::MODE_WIFI, {LOW, LOW, LOW}}, END_OF_MODE_TABLE,
};
21 changes: 18 additions & 3 deletions variants/diy/nrf52_promicro_diy_tcxo/variant.h
Original file line number Diff line number Diff line change
Expand Up @@ -122,12 +122,13 @@ NRF52 PRO MICRO PIN ASSIGNMENT
#define USE_SX1262
#define USE_RF95
#define USE_SX1268
#define USE_LR1121

// RF95 CONFIG

#define LORA_DIO0 (0 + 29) // P0.10 IRQ
#define LORA_DIO0 (0 + 29) // P0.29 BUSY
#define LORA_DIO1 (0 + 10) // P0.10 IRQ
#define LORA_RESET (0 + 9) // P0.09
#define LORA_RESET (0 + 9) // P0.09 NRST

// RX/TX for RFM95/SX127x
#define RF95_RXEN (0 + 17) // P0.17
Expand All @@ -143,6 +144,19 @@ NRF52 PRO MICRO PIN ASSIGNMENT
#define SX126X_RXEN (0 + 17) // P0.17
#define SX126X_TXEN RADIOLIB_NC // Assuming that DIO2 is connected to TXEN pin. If not, TXEN must be connected.

// LR1121
#ifdef USE_LR1121
#define LR1121_IRQ_PIN (0 + 10) // P0.10 IRQ
#define LR1121_NRESET_PIN LORA_RESET // P0.09 NRST
#define LR1121_BUSY_PIN (0 + 29) // P0.29 BUSY
#define LR1121_SPI_NSS_PIN LORA_CS // P1.13
#define LR1121_SPI_SCK_PIN LORA_SCK
#define LR1121_SPI_MOSI_PIN LORA_MOSI
#define LR1121_SPI_MISO_PIN LORA_MISO
#define LR11X0_DIO3_TCXO_VOLTAGE 1.8
#define LR11X0_DIO_AS_RF_SWITCH
#endif

// #define SX126X_MAX_POWER 8 set this if using a high-power board!

/*
Expand All @@ -164,6 +178,7 @@ settings.
| Seeed | Wio-SX1262 | yes | Int | Sooooo cute! |
| AI-Thinker | RA-02 | No | Int | SX1278 **433mhz band only** |
| RF Solutions | RFM95 | No | Int | Untested |
| Ebyte | E80-900M2213S | Yes | Int | LR1121 radio |

*/

Expand All @@ -179,4 +194,4 @@ extern float tcxoVoltage; // make this available everywhere
* Arduino objects - C++ only
*----------------------------------------------------------------------------*/

#endif
#endif
Loading