mirror of
https://github.com/meshtastic/firmware.git
synced 2025-02-26 22:33:24 +00:00

Some checks are pending
CI / setup (check) (push) Waiting to run
CI / setup (esp32) (push) Waiting to run
CI / setup (esp32c3) (push) Waiting to run
CI / setup (esp32c6) (push) Waiting to run
CI / setup (esp32s3) (push) Waiting to run
CI / setup (nrf52840) (push) Waiting to run
CI / setup (rp2040) (push) Waiting to run
CI / setup (stm32) (push) Waiting to run
CI / check (push) Blocked by required conditions
CI / build-esp32 (push) Blocked by required conditions
CI / build-esp32-s3 (push) Blocked by required conditions
CI / build-esp32-c3 (push) Blocked by required conditions
CI / build-esp32-c6 (push) Blocked by required conditions
CI / build-nrf52 (push) Blocked by required conditions
CI / build-rpi2040 (push) Blocked by required conditions
CI / build-stm32 (push) Blocked by required conditions
CI / build-debian-src (push) Waiting to run
CI / package-pio-deps-native (push) Waiting to run
CI / test-native (push) Waiting to run
CI / docker-debian-amd64 (push) Waiting to run
CI / docker-alpine-amd64 (push) Waiting to run
CI / docker-debian-arm64 (push) Waiting to run
CI / docker-debian-armv7 (push) Waiting to run
CI / after-checks (push) Blocked by required conditions
CI / gather-artifacts (esp32) (push) Blocked by required conditions
CI / gather-artifacts (esp32c3) (push) Blocked by required conditions
CI / gather-artifacts (esp32c6) (push) Blocked by required conditions
CI / gather-artifacts (esp32s3) (push) Blocked by required conditions
CI / gather-artifacts (nrf52840) (push) Blocked by required conditions
CI / gather-artifacts (rp2040) (push) Blocked by required conditions
CI / gather-artifacts (stm32) (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
CI / release-firmware (esp32) (push) Blocked by required conditions
CI / release-firmware (esp32c3) (push) Blocked by required conditions
CI / release-firmware (esp32c6) (push) Blocked by required conditions
CI / release-firmware (esp32s3) (push) Blocked by required conditions
CI / release-firmware (nrf52840) (push) Blocked by required conditions
CI / release-firmware (rp2040) (push) Blocked by required conditions
CI / release-firmware (stm32) (push) Blocked by required conditions
Flawfinder Scan / Flawfinder (push) Waiting to run
* added xiao nRF52840 + xiao wio sx1262 DIY variant * fix path / make buildy buildy * pcf cruft from personal hw --------- Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
188 lines
4.5 KiB
C
188 lines
4.5 KiB
C
// basically xiao_ble with pins remapped for:
|
|
// Seeed XIAO nRF52840 : https://www.seeedstudio.com/Seeed-XIAO-BLE-nRF52840-p-5201.html
|
|
// Seeed Wio SX1626 : https://www.seeedstudio.com/Wio-SX1262-with-XIAO-ESP32S3-p-5982.html
|
|
|
|
#ifndef _SEEED_XIAO_NRF52840_SENSE_H_
|
|
#define _SEEED_XIAO_NRF52840_SENSE_H_
|
|
|
|
/** Master clock frequency */
|
|
#define VARIANT_MCK (64000000ul)
|
|
|
|
#define USE_LFXO // Board uses 32khz crystal for LF
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* Headers
|
|
*----------------------------------------------------------------------------*/
|
|
|
|
#include "WVariant.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif // __cplusplus
|
|
|
|
#define PINS_COUNT (33)
|
|
#define NUM_DIGITAL_PINS (33)
|
|
#define NUM_ANALOG_INPUTS (8) // A6 is used for battery, A7 is analog reference
|
|
#define NUM_ANALOG_OUTPUTS (0)
|
|
|
|
// LEDs
|
|
// ----
|
|
#define LED_RED 11
|
|
#define LED_BLUE 12
|
|
#define LED_GREEN 13
|
|
|
|
#define PIN_LED1 LED_GREEN
|
|
#define PIN_LED2 LED_BLUE
|
|
#define PIN_LED3 LED_RED
|
|
|
|
#define PIN_LED PIN_LED1
|
|
#define LED_PWR (PINS_COUNT)
|
|
|
|
#define LED_BUILTIN PIN_LED
|
|
#define LED_STATE_ON 1 // State when LED is lit
|
|
|
|
// XIAO Wio-SX1262 Shield User button
|
|
#define PIN_BUTTON1 5
|
|
#define BUTTON_NEED_PULLUP
|
|
|
|
// Digital Pins
|
|
// ------------
|
|
#define D0 (0ul)
|
|
#define D1 (1ul)
|
|
#define D2 (2ul)
|
|
#define D3 (3ul)
|
|
#define D4 (4ul)
|
|
#define D5 (5ul)
|
|
#define D6 (6ul)
|
|
#define D7 (7ul)
|
|
#define D8 (8ul)
|
|
#define D9 (9ul)
|
|
#define D10 (10ul)
|
|
|
|
// Analog Pins
|
|
// -----------
|
|
#define PIN_A0 (0)
|
|
#define PIN_A1 (1)
|
|
#define PIN_A2 (2)
|
|
#define PIN_A3 (3)
|
|
#define PIN_A4 (4)
|
|
#define PIN_A5 (5)
|
|
#define PIN_VBAT (32)
|
|
#define VBAT_ENABLE (14)
|
|
|
|
static const uint8_t A0 = PIN_A0;
|
|
static const uint8_t A1 = PIN_A1;
|
|
static const uint8_t A2 = PIN_A2;
|
|
static const uint8_t A3 = PIN_A3;
|
|
static const uint8_t A4 = PIN_A4;
|
|
static const uint8_t A5 = PIN_A5;
|
|
#define ADC_RESOLUTION 12
|
|
|
|
// Other Pins
|
|
// ----------
|
|
#define PIN_NFC1 (30)
|
|
#define PIN_NFC2 (31)
|
|
|
|
// RX and TX pins
|
|
#define PIN_SERIAL1_RX (6)
|
|
#define PIN_SERIAL1_TX (7)
|
|
// complains if not defined
|
|
#define PIN_SERIAL2_RX (-1)
|
|
#define PIN_SERIAL2_TX (-1)
|
|
|
|
// 4 is used as RF_SW and 5 for USR button so...
|
|
#define PIN_WIRE_SDA (-1)
|
|
#define PIN_WIRE_SCL (-1)
|
|
// #define PIN_WIRE_SDA (6)
|
|
// #define PIN_WIRE_SCL (7)
|
|
|
|
static const uint8_t SDA = PIN_WIRE_SDA;
|
|
static const uint8_t SCL = PIN_WIRE_SCL;
|
|
|
|
// SPI SX1262
|
|
// ----------
|
|
#define SPI_SX1262
|
|
#ifdef SPI_SX1262
|
|
#define SPI_INTERFACES_COUNT 1
|
|
|
|
#define PIN_SPI_MISO (9)
|
|
#define PIN_SPI_MOSI (10)
|
|
#define PIN_SPI_SCK (8)
|
|
|
|
static const uint8_t SS = D3;
|
|
static const uint8_t MOSI = PIN_SPI_MOSI;
|
|
static const uint8_t MISO = PIN_SPI_MISO;
|
|
static const uint8_t SCK = PIN_SPI_SCK;
|
|
|
|
// supported modules list
|
|
#define USE_SX1262
|
|
|
|
// common pinouts for SX126X modules
|
|
#define SX126X_CS D3
|
|
#define SX126X_DIO1 D0
|
|
#define SX126X_BUSY D1
|
|
#define SX126X_RESET D2
|
|
|
|
// DIO2 controlls an antenna switch and the TCXO voltage is controlled by DIO3
|
|
#define SX126X_DIO2_AS_RF_SWITCH
|
|
#define SX126X_RXEN 38
|
|
#define SX126X_TXEN RADIOLIB_NC
|
|
#define SX126X_DIO3_TCXO_VOLTAGE 1.8
|
|
#define SX126X_DIO3_TCXO_VOLTAGE 1.8
|
|
#endif
|
|
|
|
// Wire Interfaces
|
|
// -------------------
|
|
#define WIRE_INTERFACES_COUNT 1 // 2
|
|
|
|
// Sense version has IMU and PDM Mic
|
|
// #define XIAO_SENSE
|
|
#ifndef XIAO_SENSE
|
|
// 6 DoF IMU
|
|
#define PIN_LSM6DS3TR_C_POWER (15)
|
|
#define PIN_LSM6DS3TR_C_INT1 (18)
|
|
// PDM Interfaces
|
|
// ---------------
|
|
#define PIN_PDM_PWR (19)
|
|
#define PIN_PDM_CLK (20)
|
|
#define PIN_PDM_DIN (21)
|
|
#endif
|
|
|
|
// QSPI Pins
|
|
// ---------
|
|
#define PIN_QSPI_SCK (24)
|
|
#define PIN_QSPI_CS (25)
|
|
#define PIN_QSPI_IO0 (26)
|
|
#define PIN_QSPI_IO1 (27)
|
|
#define PIN_QSPI_IO2 (28)
|
|
#define PIN_QSPI_IO3 (29)
|
|
|
|
// On-board QSPI Flash
|
|
// -------------------
|
|
#define EXTERNAL_FLASH_DEVICES P25Q16H
|
|
#define EXTERNAL_FLASH_USE_QSPI
|
|
|
|
// Battery
|
|
// -------
|
|
// P0_14 = 14 Reads battery voltage from divider on signal board.
|
|
// PIN_VBAT is reading voltage divider on XIAO and is program pin 32 / or P0.31
|
|
#define BAT_READ 14
|
|
#define BATTERY_SENSE_RESOLUTION_BITS 10
|
|
#define CHARGE_LED 23 // P0_17 = 17 D23 YELLOW CHARGE LED
|
|
#define HICHG 22 // P0_13 = 13 D22 Charge-select pin for Lipo for 100 mA instead of default 50mA charge
|
|
|
|
// The battery sense is hooked to pin A0 (5)
|
|
#define BATTERY_PIN PIN_VBAT // PIN_A0
|
|
|
|
// ratio of voltage divider = 3.0 (R17=1M, R18=510k)
|
|
#define ADC_MULTIPLIER 3 // 3.0 + a bit for being optimistic
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* Arduino objects - C++ only
|
|
*----------------------------------------------------------------------------*/
|
|
|
|
#endif |