/* Copyright (c) 2014-2015 Arduino LLC. All right reserved. Copyright (c) 2016 Sandeep Mistry All right reserved. Copyright (c) 2018, Adafruit Industries (adafruit.com) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef _VARIANT_TREX_ #define _VARIANT_TREX_ #define RAK4630 /** Master clock frequency */ #define VARIANT_MCK (64000000ul) #define USE_LFXO // Board uses 32khz crystal for LF // define USE_LFRC // Board uses RC for LF /*---------------------------------------------------------------------------- * Headers *----------------------------------------------------------------------------*/ #include "WVariant.h" #ifdef __cplusplus extern "C" { #endif // __cplusplus // 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) // LEDs #define PIN_LED1 (32 + 4) // P1.04 Controls Green LED #define PIN_LED2 (28) // P0.28 Controls Blue LED #define LED_BUILTIN PIN_LED1 #define LED_CONN PIN_LED2 #define LED_GREEN PIN_LED1 #define LED_BLUE PIN_LED2 #define LED_STATE_ON 1 // State when LED is litted // Button #define PIN_BUTTON1 (26) #define BUTTON_ACTIVE_LOW 0 #define BUTTON_ACTIVE_PULLUP 0 #define ADC_RESOLUTION 14 // ??? // Serial for GPS #define PIN_SERIAL1_RX (25) #define PIN_SERIAL1_TX (24) // Connected to Jlink CDC #define PIN_SERIAL2_RX (8) // ??? #define PIN_SERIAL2_TX (6) // ??? /* * SPI Interfaces */ #define SPI_INTERFACES_COUNT 1 #define PIN_SPI_MISO (45) #define PIN_SPI_MOSI (44) #define PIN_SPI_SCK (43) static const uint8_t SS = 42; static const uint8_t MOSI = PIN_SPI_MOSI; static const uint8_t MISO = PIN_SPI_MISO; static const uint8_t SCK = PIN_SPI_SCK; // T-Rex Extras #define DCDC_EN_HOLD (13) // P0.13 Keeps DCDC alive after user button is pressed #define NRF_ON (29) // P0.29 Tells IO controller device is on // RAKRGB #define HAS_NCP5623 // ??? #define HAS_SCREEN 0 /* * Wire Interfaces */ #define WIRE_INTERFACES_COUNT 1 #define PIN_WIRE_SDA (19) // P0.19 RTC_SDA #define PIN_WIRE_SCL (20) // P0.20 RTC_SDA #define PIN_BUZZER (0 + 3) // P0.03 #define USE_SX1262 #define SX126X_CS (42) #define SX126X_DIO1 (47) #define SX126X_BUSY (46) #define SX126X_RESET (38) #define SX126X_POWER_EN (37) // DIO2 controlls an antenna switch and the TCXO voltage is controlled by DIO3 #define SX126X_DIO2_AS_RF_SWITCH #define SX126X_DIO3_TCXO_VOLTAGE 1.8 // Testing USB detection #define NRF_APM #define PIN_GPS_EN (32 + 1) // P1.01 #define PIN_GPS_PPS (2) // P0.02 Pulse per second input from the GPS #define GPS_RX_PIN PIN_SERIAL1_RX #define GPS_TX_PIN PIN_SERIAL1_TX // Battery #define BATTERY_PIN (0 + 31) // P0.31 ADC_VBAT // and has 12 bit resolution #define BATTERY_SENSE_RESOLUTION_BITS 12 // ??? #define BATTERY_SENSE_RESOLUTION 4096.0 #undef AREF_VOLTAGE #define AREF_VOLTAGE 3.0 #define VBAT_AR_INTERNAL AR_INTERNAL_3_0 #define ADC_MULTIPLIER 1.73 // ??? #define HAS_RTC 1 #define RX8130CE_RTC 0x32 #ifdef __cplusplus } #endif /*---------------------------------------------------------------------------- * Arduino objects - C++ only *----------------------------------------------------------------------------*/ #endif