2025-11-25 18:28:06 -06:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#ifndef _VARIANT_MUZI_BASE_
|
|
|
|
|
#define _VARIANT_MUZI_BASE_
|
|
|
|
|
|
|
|
|
|
/** 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
|
|
|
|
|
|
|
|
|
|
// Number of pins defined in PinDescription array
|
|
|
|
|
#define PINS_COUNT (48)
|
|
|
|
|
#define NUM_DIGITAL_PINS (48)
|
|
|
|
|
#define NUM_ANALOG_INPUTS (6)
|
|
|
|
|
#define NUM_ANALOG_OUTPUTS (0)
|
|
|
|
|
|
|
|
|
|
// Define I2C Peripherals
|
|
|
|
|
#define WIRE_INTERFACES_COUNT 2
|
|
|
|
|
|
|
|
|
|
// this is the OLED bus
|
|
|
|
|
#define PIN_WIRE_SDA (0 + 24) // P0.24
|
|
|
|
|
#define PIN_WIRE_SCL (0 + 25) // P0.25
|
|
|
|
|
|
|
|
|
|
// IMU bus
|
|
|
|
|
#define PIN_WIRE1_SDA (0 + 04) // P0.04
|
|
|
|
|
#define PIN_WIRE1_SCL (0 + 06) // P0.06
|
|
|
|
|
|
|
|
|
|
#define COMPASS_ORIENTATION meshtastic_Config_DisplayConfig_CompassOrientation_DEGREES_270
|
|
|
|
|
#define HAS_ICM20948 // forces the i2c address to be seen as this sensor
|
|
|
|
|
|
|
|
|
|
#define HAS_RTC 1
|
|
|
|
|
#define RX8130CE_RTC 0x32
|
|
|
|
|
|
|
|
|
|
// LEDs
|
|
|
|
|
#define PIN_LED1 (32 + 3) // P1.03, Green
|
|
|
|
|
#define PIN_LED2 (32 + 4) // P1.04, Blue
|
|
|
|
|
|
|
|
|
|
#define LED_BUILTIN -1 // PIN_LED1
|
|
|
|
|
#define LED_BLUE PIN_LED2
|
|
|
|
|
#define LED_STATE_ON 0 // State when LED is lit
|
|
|
|
|
|
|
|
|
|
// Buttons
|
|
|
|
|
#define HAS_TRACKBALL 1
|
|
|
|
|
#define TB_UP (0 + 21)
|
|
|
|
|
#define TB_DOWN (0 + 17)
|
|
|
|
|
#define TB_LEFT (32 + 05)
|
|
|
|
|
#define TB_RIGHT (0 + 16)
|
|
|
|
|
#define TB_PRESS (0 + 10)
|
|
|
|
|
#define TB_DIRECTION FALLING
|
|
|
|
|
|
|
|
|
|
#define CANCEL_BUTTON_PIN (0 + 15) // P0.15
|
|
|
|
|
#define CANCEL_BUTTON_ACTIVE_LOW true
|
|
|
|
|
#define CANCEL_BUTTON_ACTIVE_PULLUP false
|
|
|
|
|
|
|
|
|
|
// Switch
|
|
|
|
|
#define SWITCH_MODE1 (32 + 9) // P1.09, Top Position
|
|
|
|
|
#define SWITCH_MODE2 (0 + 12) // P0.12, Middle Position
|
|
|
|
|
#define PIN_GPS_SWITCH SWITCH_MODE2
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* SPI Interfaces
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#define SPI_INTERFACES_COUNT 1
|
|
|
|
|
|
|
|
|
|
// For LORA, spi 0
|
|
|
|
|
#define PIN_SPI_MISO (32 + 15) // P1.15
|
|
|
|
|
#define PIN_SPI_MOSI (32 + 14) // P1.14
|
|
|
|
|
#define PIN_SPI_SCK (32 + 13) // P1.13
|
|
|
|
|
|
|
|
|
|
#define LORA_SCK PIN_SPI_SCK
|
|
|
|
|
#define LORA_MISO PIN_SPI_MISO
|
|
|
|
|
#define LORA_MOSI PIN_SPI_MOSI
|
|
|
|
|
#define LORA_CS (32 + 12) // P1.12
|
|
|
|
|
|
|
|
|
|
#define USE_SX1262
|
|
|
|
|
#define SX126X_CS LORA_CS
|
|
|
|
|
#define SX126X_DIO1 (32 + 6) // P1.06
|
|
|
|
|
#define SX126X_BUSY (32 + 11) // P1.11
|
|
|
|
|
#define SX126X_RESET (32 + 10) // P1.10
|
|
|
|
|
#define SX126X_DIO2_AS_RF_SWITCH
|
|
|
|
|
#define SX126X_DIO3_TCXO_VOLTAGE 3.3
|
|
|
|
|
|
|
|
|
|
#define USE_LR1121
|
|
|
|
|
#define LR1121_IRQ_PIN (32 + 8) // P1.08
|
|
|
|
|
#define LR1121_NRESET_PIN (32 + 10) // P1.10
|
|
|
|
|
#define LR1121_BUSY_PIN (32 + 11) // P1.11
|
|
|
|
|
#define LR1121_SPI_NSS_PIN LORA_CS
|
|
|
|
|
#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 3.0
|
|
|
|
|
#define LR11X0_DIO_AS_RF_SWITCH
|
|
|
|
|
|
|
|
|
|
// GPS
|
2025-11-26 13:53:26 -06:00
|
|
|
#define GPS_RX_PIN (0 + 20) // P0.20
|
|
|
|
|
#define GPS_TX_PIN (0 + 19) // P0.19
|
2025-11-25 18:28:06 -06:00
|
|
|
#define GPS_EN_GPIO (32 + 1) // P1.01
|
|
|
|
|
|
2025-11-26 13:53:26 -06:00
|
|
|
#define PIN_SERIAL1_RX GPS_RX_PIN
|
|
|
|
|
#define PIN_SERIAL1_TX GPS_TX_PIN
|
2025-11-25 18:28:06 -06:00
|
|
|
|
|
|
|
|
#define PIN_BUZZER (0 + 22) // P0.22
|
|
|
|
|
|
|
|
|
|
// Battery monitoring
|
|
|
|
|
#define BATTERY_PIN (0 + 31) // P0.31
|
|
|
|
|
|
|
|
|
|
// #define CHARGER_FAULT (0 + 27) // P0.27
|
|
|
|
|
#define BATTERY_CHARGING_INV (32 + 02) // P1.02
|
|
|
|
|
#define BATTERY_SENSE_RESOLUTION_BITS 12
|
|
|
|
|
#define BATTERY_SENSE_RESOLUTION 4096.0
|
|
|
|
|
#define ADC_MULTIPLIER 1.537
|
|
|
|
|
|
|
|
|
|
#define OCV_ARRAY 4050, 4010, 3990, 3930, 3870, 3820, 3740, 3630, 3550, 3450, 3100
|
|
|
|
|
|
|
|
|
|
// Display - I2C display
|
|
|
|
|
#define HAS_SCREEN 1
|
|
|
|
|
#define SCREEN_12V_ENABLE (0 + 23) // P0.23
|
|
|
|
|
#define USE_SH1107
|
|
|
|
|
|
|
|
|
|
#define USERPREFS_OEM_TEXT "muzi_works_logo"
|
|
|
|
|
#define USERPREFS_OEM_FONT_SIZE 0
|
|
|
|
|
#define USERPREFS_OEM_IMAGE_WIDTH 88 // 11 bytes wide
|
|
|
|
|
#define USERPREFS_OEM_IMAGE_HEIGHT 47 // 517 bytes total
|
|
|
|
|
#define USERPREFS_OEM_IMAGE_DATA \
|
|
|
|
|
{ \
|
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, \
|
|
|
|
|
0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
|
|
|
|
0xF7, 0x0F, 0xFF, 0x00, 0xF0, 0xFF, 0x0F, 0xC0, 0xFF, 0x07, 0x78, 0xFF, 0x9F, 0xFF, 0x01, 0xF0, 0xFF, 0x0F, 0xC0, \
|
|
|
|
|
0xFF, 0x03, 0x78, 0x3F, 0xFE, 0xF3, 0x01, 0xF0, 0xFF, 0x0F, 0x00, 0xE0, 0x03, 0x78, 0x1F, 0xFC, 0xC0, 0x03, 0xF0, \
|
|
|
|
|
0xFF, 0x0F, 0x00, 0xE0, 0x01, 0x78, 0x0F, 0xF8, 0x80, 0x03, 0xF0, 0xFF, 0x0F, 0x00, 0xF0, 0x00, 0x78, 0x0F, 0x78, \
|
|
|
|
|
0x80, 0x03, 0xF0, 0xFF, 0x0F, 0x00, 0x70, 0x00, 0x78, 0x07, 0x70, 0x80, 0x03, 0xF0, 0xFF, 0x0F, 0x00, 0x78, 0x00, \
|
|
|
|
|
0x78, 0x07, 0x70, 0x80, 0x03, 0xF0, 0xFF, 0x0F, 0x00, 0x3C, 0x00, 0x78, 0x07, 0x70, 0x80, 0x03, 0xF0, 0xFF, 0x0F, \
|
|
|
|
|
0x00, 0x1C, 0x00, 0x78, 0x07, 0x70, 0x80, 0x03, 0xF0, 0xFF, 0x0F, 0x00, 0x1E, 0x00, 0x78, 0x07, 0x70, 0x80, 0x03, \
|
|
|
|
|
0xE0, 0xFF, 0x0F, 0x00, 0x0F, 0x00, 0x78, 0x07, 0x70, 0x80, 0x03, 0xE0, 0xFF, 0x07, 0x80, 0x07, 0x00, 0x78, 0x07, \
|
|
|
|
|
0x70, 0x80, 0x03, 0xC0, 0xFF, 0x07, 0x80, 0x07, 0x00, 0x78, 0x07, 0x70, 0x80, 0x03, 0xC0, 0xFF, 0x03, 0xC0, 0xFF, \
|
|
|
|
|
0x07, 0x78, 0x07, 0x70, 0x80, 0x03, 0x00, 0xFF, 0x01, 0xE0, 0xFF, 0x07, 0x78, 0x07, 0x70, 0x80, 0x03, 0x00, 0x7C, \
|
|
|
|
|
0x00, 0xF0, 0xFF, 0x07, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
|
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
|
|
|
|
|
0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
|
|
|
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xE3, 0xE7, 0xC7, 0x1F, 0xF8, 0x0F, 0xF0, 0xE7, 0xE3, 0x07, 0x7C, 0xC7, 0xE7, \
|
|
|
|
|
0xC3, 0x0F, 0xE0, 0x07, 0xE0, 0xC7, 0xE1, 0x03, 0x70, 0xC7, 0xC3, 0xE3, 0x87, 0xC1, 0x07, 0xC0, 0xC7, 0xF8, 0xE3, \
|
|
|
|
|
0x71, 0xC7, 0xC3, 0xE3, 0xE3, 0xC7, 0xC7, 0xC7, 0x47, 0xF8, 0xF3, 0x7F, 0x8F, 0xC3, 0xF1, 0xE3, 0x8F, 0xC7, 0x8F, \
|
|
|
|
|
0x27, 0xFC, 0xE3, 0x7F, 0x8F, 0x81, 0xF1, 0xF1, 0x8F, 0xC7, 0xCF, 0x07, 0xFE, 0x03, 0x7E, 0x8F, 0x99, 0xF1, 0xF1, \
|
|
|
|
|
0x8F, 0x07, 0xC0, 0x07, 0xFF, 0x07, 0x78, 0x9F, 0x99, 0xF9, 0xF1, 0x8F, 0x07, 0xE0, 0x07, 0xFE, 0x3F, 0x70, 0x1F, \
|
|
|
|
|
0x18, 0xF8, 0xF3, 0x8F, 0x07, 0xF0, 0x27, 0xFC, 0xFF, 0x71, 0x3F, 0x18, 0xF8, 0xE3, 0xC7, 0xC7, 0xF1, 0x47, 0xF8, \
|
|
|
|
|
0xF3, 0x63, 0x3F, 0x3C, 0xFC, 0xC3, 0xC3, 0xC7, 0xE3, 0xC7, 0xF0, 0xE1, 0x71, 0x3F, 0x3C, 0xFC, 0x07, 0xE0, 0xC7, \
|
|
|
|
|
0xC7, 0xC7, 0xE1, 0x03, 0x70, 0x7F, 0x7E, 0xFE, 0x0F, 0xF0, 0xC7, 0x87, 0xC7, 0xC3, 0x07, 0x78, 0xFF, 0xFF, 0xFF, \
|
|
|
|
|
0x7F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, \
|
|
|
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
|
|
|
|
|
0xFF, 0xFF, 0x7F \
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// QSPI Pins
|
|
|
|
|
#define PIN_QSPI_SCK (0 + 3)
|
|
|
|
|
#define PIN_QSPI_CS (0 + 26)
|
|
|
|
|
#define PIN_QSPI_IO0 (0 + 30)
|
|
|
|
|
#define PIN_QSPI_IO1 (0 + 29)
|
|
|
|
|
#define PIN_QSPI_IO2 (0 + 28)
|
|
|
|
|
#define PIN_QSPI_IO3 (0 + 2)
|
|
|
|
|
|
|
|
|
|
// On-board QSPI Flash
|
|
|
|
|
#define EXTERNAL_FLASH_DEVICES W25Q32JVSS
|
|
|
|
|
#define EXTERNAL_FLASH_USE_QSPI
|
|
|
|
|
|
|
|
|
|
// NFC is disabled via CONFIG_NFCT_PINS_AS_GPIOS=1 build flag
|
|
|
|
|
// This configures P0.09 and P0.10 as regular GPIO pins instead of NFC pins
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/*----------------------------------------------------------------------------
|
|
|
|
|
* Arduino objects - C++ only
|
|
|
|
|
*----------------------------------------------------------------------------*/
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#endif // _VARIANT_MUZI_BASE_
|