#ifndef _VARIANT_PROMICRO_DIY_ #define _VARIANT_PROMICRO_DIY_ /** Master clock frequency */ #define VARIANT_MCK (64000000ul) // #define USE_LFXO // Board uses 32khz crystal for LF #define USE_LFRC // Board uses RC for LF #define PROMICRO_DIY_TCXO /*---------------------------------------------------------------------------- * Headers *----------------------------------------------------------------------------*/ #include "WVariant.h" #ifdef __cplusplus extern "C" { #endif // __cplusplus /* NRF52 PRO MICRO PIN ASSIGNMENT | Pin   | Function   |   | Pin     | Function     | RF95 | | ----- | ----------- | --- | -------- | ------------ | ----- | | Gnd   |             |   | vbat     |             | | | P0.06 | Serial2 RX |   | vbat     |             | | | P0.08 | Serial2 TX |   | Gnd     |             | | | Gnd   |             |   | reset   |             | | | Gnd   |             |   | ext_vcc | *see 0.13   | | | P0.17 | RXEN       |   | P0.31   | BATTERY_PIN | | | P0.20 | GPS_RX     |   | P0.29   | BUSY         | DIO0 | | P0.22 | GPS_TX     |   | P0.02   | MISO | MISO | | P0.24 | GPS_EN     |   | P1.15   | MOSI         | MOSI | | P1.00 | BUTTON_PIN |   | P1.13   | CS           | CS   | | P0.11 | SCL         |   | P1.11   | SCK         | SCK | | P1.04 | SDA         |   | P0.10   | DIO1/IRQ     | DIO1 | | P1.06 | Free pin   |   | P0.09   | RESET       | RST | |       |             |   |         |             | | |       | Mid board   |   |         | Internal     | | | P1.01 | Free pin   |   | 0.15     | LED         | | | P1.02 | Free pin   |   | 0.13     | 3V3_EN       | | | P1.07 | Free pin   |   |         |             | | */ // Number of pins defined in PinDescription array #define PINS_COUNT (48) #define NUM_DIGITAL_PINS (48) #define NUM_ANALOG_INPUTS (1) #define NUM_ANALOG_OUTPUTS (0) // Pin 13 enables 3.3V periphery. If the Lora module is on this pin, then it should stay enabled at all times. #define PIN_3V3_EN (0 + 13) // P0.13 // Analog pins #define BATTERY_PIN (0 + 31) // P0.31 Battery ADC #define ADC_CHANNEL ADC1_GPIO4_CHANNEL #define ADC_RESOLUTION 14 #define BATTERY_SENSE_RESOLUTION_BITS 12 #define BATTERY_SENSE_RESOLUTION 4096.0 // Definition of milliVolt per LSB => 3.0V ADC range and 12-bit ADC resolution = 3000mV/4096 #define VBAT_MV_PER_LSB (0.73242188F) // Voltage divider value => 1.5M + 1M voltage divider on VBAT = (1.5M / (1M + 1.5M)) #define VBAT_DIVIDER (0.6F) // Compensation factor for the VBAT divider #define VBAT_DIVIDER_COMP (1.73) // Fixed calculation of milliVolt from compensation value #define REAL_VBAT_MV_PER_LSB (VBAT_DIVIDER_COMP * VBAT_MV_PER_LSB) #undef AREF_VOLTAGE #define AREF_VOLTAGE 3.0 #define VBAT_AR_INTERNAL AR_INTERNAL_3_0 #define ADC_MULTIPLIER VBAT_DIVIDER_COMP // REAL_VBAT_MV_PER_LSB #define VBAT_RAW_TO_SCALED(x) (REAL_VBAT_MV_PER_LSB * x) // WIRE IC AND IIC PINS #define WIRE_INTERFACES_COUNT 1 #define PIN_WIRE_SDA (32 + 4) // P1.04 #define PIN_WIRE_SCL (0 + 11) // P0.11 // LED #define PIN_LED1 (0 + 15) // P0.15 #define LED_BUILTIN PIN_LED1 // Actually red #define LED_BLUE PIN_LED1 #define LED_STATE_ON 1 // State when LED is lit // Button #define BUTTON_PIN (32 + 0) // P1.00 // GPS #define PIN_GPS_TX (0 + 22) // P0.22 #define PIN_GPS_RX (0 + 20) // P0.20 #define PIN_GPS_EN (0 + 24) // P0.24 #define GPS_POWER_TOGGLE #define GPS_UBLOX // define GPS_DEBUG // UART interfaces #define PIN_SERIAL1_RX PIN_GPS_TX #define PIN_SERIAL1_TX PIN_GPS_RX #define PIN_SERIAL2_RX (0 + 6) // P0.06 #define PIN_SERIAL2_TX (0 + 8) // P0.08 // Serial interfaces #define SPI_INTERFACES_COUNT 1 #define PIN_SPI_MISO (0 + 2) // P0.02 #define PIN_SPI_MOSI (32 + 15) // P1.15 #define PIN_SPI_SCK (32 + 11) // P1.11 #define LORA_MISO PIN_SPI_MISO #define LORA_MOSI PIN_SPI_MOSI #define LORA_SCK PIN_SPI_SCK #define LORA_CS (32 + 13) // P1.13 // LORA MODULES #define USE_LLCC68 #define USE_SX1262 #define USE_RF95 #define USE_SX1268 // RF95 CONFIG #define LORA_DIO0 (0 + 29) // P0.10 IRQ #define LORA_DIO1 (0 + 10) // P0.10 IRQ #define LORA_RESET (0 + 9) // P0.09 // RX/TX for RFM95/SX127x #define RF95_RXEN (0 + 17) // P0.17 #define RF95_TXEN RADIOLIB_NC // Assuming that DIO2 is connected to TXEN pin. If not, TXEN must be connected. // SX126X CONFIG #define SX126X_CS (32 + 13) // P1.13 FIXME - we really should define LORA_CS instead #define SX126X_DIO1 (0 + 10) // P0.10 IRQ #define SX126X_DIO2_AS_RF_SWITCH // Note for E22 modules: DIO2 is not attached internally to TXEN for automatic TX/RX switching, // so it needs connecting externally if it is used in this way #define SX126X_BUSY (0 + 29) // P0.29 #define SX126X_RESET (0 + 9) // P0.09 #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. // #define SX126X_MAX_POWER 8 set this if using a high-power board! /* On the SX1262, DIO3 sets the voltage for an external TCXO, if one is present. If one is not present, use TCXO_OPTIONAL to try both settings. | Mfr | Module | TCXO | RF Switch | Notes | | ------------ | ---------------- | ---- | --------- | ------------------------------------- | | Ebyte | E22-900M22S | Yes | Ext | | | Ebyte | E22-900MM22S | No | Ext | | | Ebyte | E22-900M30S | Yes | Ext | | | Ebyte | E22-900M33S | Yes | Ext | MAX_POWER must be set to 8 for this | | Ebyte | E220-900M22S | No | Ext | LLCC68, looks like DIO3 not connected | | AI-Thinker | RA-01SH | No | Int | SX1262 | | Heltec | HT-RA62 | Yes | Int | | | NiceRF | Lora1262 | yes | Int | | | Waveshare | Core1262-HF | yes | Ext | | | Waveshare | LoRa Node Module | yes | Int | | | Seeed | Wio-SX1262 | yes | Int | Sooooo cute! | | AI-Thinker | RA-02 | No | Int | SX1278 **433mhz band only** | | RF Solutions | RFM95 | No | Int | Untested | */ #define SX126X_DIO3_TCXO_VOLTAGE 1.8 #define TCXO_OPTIONAL // make it so that the firmware can try both TCXO and XTAL extern float tcxoVoltage; // make this available everywhere #ifdef __cplusplus } #endif /*---------------------------------------------------------------------------- * Arduino objects - C++ only *----------------------------------------------------------------------------*/ #endif