2020-02-01 08:30:53 -08:00
|
|
|
/*
|
|
|
|
|
|
|
|
|
|
TTGO T-BEAM Tracker for The Things Network
|
|
|
|
|
|
|
|
|
|
Copyright (C) 2018 by Xose Pérez <xose dot perez at gmail dot com>
|
|
|
|
|
|
|
|
|
|
This code requires LMIC library by Matthijs Kooijman
|
|
|
|
|
https://github.com/matthijskooijman/arduino-lmic
|
|
|
|
|
|
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
|
|
This program 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 General Public License for more details.
|
|
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <Arduino.h>
|
2022-06-05 09:50:06 -05:00
|
|
|
|
2025-08-31 21:08:58 -05:00
|
|
|
#if __has_include("Melopero_RV3028.h")
|
2023-01-21 14:34:29 +01:00
|
|
|
#include "Melopero_RV3028.h"
|
2022-04-27 11:05:08 +02:00
|
|
|
#endif
|
2025-08-31 21:08:58 -05:00
|
|
|
#if __has_include("pcf8563.h")
|
2023-01-21 14:34:29 +01:00
|
|
|
#include "pcf8563.h"
|
2022-04-28 08:18:03 +02:00
|
|
|
#endif
|
2022-04-27 11:05:08 +02:00
|
|
|
|
2025-10-09 00:33:50 +08:00
|
|
|
/* Offer chance for variant-specific defines */
|
|
|
|
|
#include "variant.h"
|
|
|
|
|
|
2020-02-01 08:30:53 -08:00
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
// Version
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
2020-02-18 16:18:01 -08:00
|
|
|
// If app version is not specified we assume we are not being invoked by the build script
|
2020-02-14 14:00:08 -08:00
|
|
|
#ifndef APP_VERSION
|
2020-12-10 11:28:15 +08:00
|
|
|
#error APP_VERSION must be set by the build environment
|
|
|
|
|
#endif
|
|
|
|
|
|
2023-01-21 14:34:29 +01:00
|
|
|
// FIXME: This is still needed by the Bluetooth Stack and needs to be replaced by something better. Remnant of the old versioning
|
|
|
|
|
// system.
|
2020-12-10 11:28:15 +08:00
|
|
|
#ifndef HW_VERSION
|
2022-03-20 11:53:37 +01:00
|
|
|
#define HW_VERSION "1.0"
|
2020-02-14 14:00:08 -08:00
|
|
|
#endif
|
2020-02-18 16:18:01 -08:00
|
|
|
|
2020-02-01 08:30:53 -08:00
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
// Configuration
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
2020-05-12 17:57:51 -07:00
|
|
|
/// Convert a preprocessor name into a quoted string
|
2023-11-18 08:12:34 -06:00
|
|
|
#define xstr(s) ystr(s)
|
|
|
|
|
#define ystr(s) #s
|
2020-02-01 08:30:53 -08:00
|
|
|
|
2020-05-12 17:57:51 -07:00
|
|
|
/// Convert a preprocessor name into a quoted string and if that string is empty use "unset"
|
|
|
|
|
#define optstr(s) (xstr(s)[0] ? xstr(s) : "unset")
|
|
|
|
|
|
2022-07-31 07:11:47 -05:00
|
|
|
// Nop definition for these attributes that are specific to ESP32
|
|
|
|
|
#ifndef EXT_RAM_ATTR
|
2023-01-21 14:34:29 +01:00
|
|
|
#define EXT_RAM_ATTR
|
2020-09-28 13:10:27 -07:00
|
|
|
#endif
|
2022-07-31 07:11:47 -05:00
|
|
|
#ifndef IRAM_ATTR
|
2023-01-21 14:34:29 +01:00
|
|
|
#define IRAM_ATTR
|
2022-01-07 09:57:29 +03:00
|
|
|
#endif
|
2022-07-31 07:11:47 -05:00
|
|
|
#ifndef RTC_DATA_ATTR
|
2023-01-21 14:34:29 +01:00
|
|
|
#define RTC_DATA_ATTR
|
2020-09-04 17:23:17 -07:00
|
|
|
#endif
|
2024-09-26 10:18:45 +02:00
|
|
|
#ifndef EXT_RAM_BSS_ATTR
|
|
|
|
|
#define EXT_RAM_BSS_ATTR EXT_RAM_ATTR
|
|
|
|
|
#endif
|
2020-05-10 12:33:17 -07:00
|
|
|
|
2024-04-16 22:03:36 +08:00
|
|
|
// -----------------------------------------------------------------------------
|
2024-05-08 20:15:06 +08:00
|
|
|
// Regulatory overrides
|
2024-04-16 22:03:36 +08:00
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
2024-05-08 20:15:06 +08:00
|
|
|
// Override user saved region, for producing region-locked builds
|
|
|
|
|
// #define REGULATORY_LORA_REGIONCODE meshtastic_Config_LoRaConfig_RegionCode_SG_923
|
2024-04-16 22:03:36 +08:00
|
|
|
|
2025-05-25 18:26:31 +07:00
|
|
|
// Total system gain in dBm to subtract from Tx power to remain within regulatory and Tx PA limits
|
2025-06-20 07:51:33 +08:00
|
|
|
// The value consists of PA gain + antenna gain (if variant has a non-removable antenna)
|
|
|
|
|
// TX_GAIN_LORA should be set with definitions below for common modules, or in variant.h.
|
|
|
|
|
|
|
|
|
|
// Gain for common modules with transmit PAs
|
|
|
|
|
#ifdef EBYTE_E22_900M30S
|
|
|
|
|
// 10dB PA gain and 30dB rated output; based on measurements from
|
|
|
|
|
// https://github.com/S5NC/EBYTE_ESP32-S3/blob/main/E22-900M30S%20power%20output%20testing.txt
|
|
|
|
|
#define TX_GAIN_LORA 7
|
|
|
|
|
#define SX126X_MAX_POWER 22
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef EBYTE_E22_900M33S
|
|
|
|
|
// 25dB PA gain and 33dB rated output; based on TX Power Curve from E22-900M33S_UserManual_EN_v1.0.pdf
|
|
|
|
|
#define TX_GAIN_LORA 25
|
|
|
|
|
#define SX126X_MAX_POWER 8
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef NICERF_MINIF27
|
|
|
|
|
// Note that datasheet power level of 9 corresponds with SX1262 at 22dBm
|
|
|
|
|
// Maximum output power of 29dBm with VCC_PA = 5V
|
|
|
|
|
#define TX_GAIN_LORA 7
|
|
|
|
|
#define SX126X_MAX_POWER 22
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef NICERF_F30_HF
|
|
|
|
|
// Maximum output power of 29.6dBm with VCC = 5V and SX1262 at 22dBm
|
|
|
|
|
#define TX_GAIN_LORA 8
|
|
|
|
|
#define SX126X_MAX_POWER 22
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef NICERF_F30_LF
|
|
|
|
|
// Maximum output power of 32.0dBm with VCC = 5V and SX1262 at 22dBm
|
|
|
|
|
#define TX_GAIN_LORA 10
|
|
|
|
|
#define SX126X_MAX_POWER 22
|
|
|
|
|
#endif
|
|
|
|
|
|
2025-09-30 08:30:18 +10:00
|
|
|
#ifdef USE_GC1109_PA
|
Introduce non-linear TX_GAIN_LORA (#8107)
* Introduce non-linear TX_GAIN_LORA
Previously, our TX_GAIN_LORA setting was a single number, intended
to represent the signal gain going through a power amp (plus or minus
antenna, attenuator, and other parts of the RF chain).
It turns out the relationship between the input power (i.e. from an SX1262)
and total output power is often non-linear. While we fudged a 1dBm difference
here and there with existing chips, the Heltec v4 has a 5dBm difference in gain
depending on which end of the input power (and frequency) you are at.
To allow people to run their Heltec v4 at max power when legal, and future
proof our code, this patch introduced an optional array-based TX_GAIN_LORA.
Define NUM_PA_POINTS and set TX_GAIN_LORA to gain values for a given input
power in 1dBm increments, and all will work.
For linear systems, just continue to define TX_GAIN_LORA as a number.
Fixes https://github.com/meshtastic/firmware/issues/8070
* Remove temporary power limit on heltec v4
* Add function RadioLibInterface::checkOutputPower
* Ensure SX126x reaches minimum supported power.
* Keep it simple, instead.
2025-09-30 08:20:39 +10:00
|
|
|
// Power Amps are often non-linear, so we can use an array of values for the power curve
|
|
|
|
|
#define NUM_PA_POINTS 22
|
|
|
|
|
#define TX_GAIN_LORA 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 9, 9, 8, 7
|
|
|
|
|
#endif
|
|
|
|
|
|
2025-10-09 08:03:26 +11:00
|
|
|
#ifdef STATION_G2
|
|
|
|
|
#define NUM_PA_POINTS 19
|
|
|
|
|
#define TX_GAIN_LORA 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 19, 18, 18
|
|
|
|
|
#endif
|
|
|
|
|
|
2025-06-20 07:51:33 +08:00
|
|
|
// Default system gain to 0 if not defined
|
2025-05-25 18:26:31 +07:00
|
|
|
#ifndef TX_GAIN_LORA
|
|
|
|
|
#define TX_GAIN_LORA 0
|
2024-05-09 02:27:08 +08:00
|
|
|
#endif
|
|
|
|
|
|
2022-04-13 19:23:35 -07:00
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
// Feature toggles
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
2022-04-14 15:51:48 -07:00
|
|
|
// Disable use of the NTP library and related features
|
2022-06-22 09:52:08 +02:00
|
|
|
// #define DISABLE_NTP
|
2022-04-13 19:23:35 -07:00
|
|
|
|
2023-01-21 14:34:29 +01:00
|
|
|
// Disable the welcome screen and allow
|
2023-03-23 11:32:04 -05:00
|
|
|
// #define DISABLE_WELCOME_UNSET
|
2022-04-13 21:59:25 -07:00
|
|
|
|
2020-05-10 12:33:17 -07:00
|
|
|
// -----------------------------------------------------------------------------
|
2022-03-28 16:55:58 +02:00
|
|
|
// OLED & Input
|
2020-05-10 12:33:17 -07:00
|
|
|
// -----------------------------------------------------------------------------
|
2025-08-26 20:29:11 -05:00
|
|
|
#if defined(SEEED_WIO_TRACKER_L1) && !defined(SEEED_WIO_TRACKER_L1_EINK)
|
2025-05-29 19:33:22 +08:00
|
|
|
#define SSD1306_ADDRESS 0x3D
|
|
|
|
|
#define USE_SH1106
|
|
|
|
|
#else
|
2020-05-10 12:33:17 -07:00
|
|
|
#define SSD1306_ADDRESS 0x3C
|
2025-05-29 19:33:22 +08:00
|
|
|
#endif
|
2020-10-23 18:00:43 +08:00
|
|
|
#define ST7567_ADDRESS 0x3F
|
2020-05-10 12:33:17 -07:00
|
|
|
|
2020-06-14 10:28:23 +02:00
|
|
|
// The SH1106 controller is almost, but not quite, the same as SSD1306
|
|
|
|
|
// Define this if you know you have that controller or your "SSD1306" misbehaves.
|
2023-03-23 11:32:04 -05:00
|
|
|
// #define USE_SH1106
|
2020-06-14 10:28:23 +02:00
|
|
|
|
2020-10-24 08:16:15 +08:00
|
|
|
// Define if screen should be mirrored left to right
|
|
|
|
|
// #define SCREEN_MIRROR
|
2020-05-10 12:33:17 -07:00
|
|
|
|
2025-07-21 19:33:24 +02:00
|
|
|
// I2C Keyboards (M5Stack, RAK14004, T-Deck, T-Deck Pro, T-Lora Pager, CardKB, BBQ10, MPR121, TCA8418)
|
2022-03-28 16:55:58 +02:00
|
|
|
#define CARDKB_ADDR 0x5F
|
2023-07-30 14:51:26 +02:00
|
|
|
#define TDECK_KB_ADDR 0x55
|
2023-08-19 15:37:42 +02:00
|
|
|
#define BBQ10_KB_ADDR 0x1F
|
2024-10-21 16:53:36 +10:00
|
|
|
#define MPR121_KB_ADDR 0x5A
|
2025-07-21 19:33:24 +02:00
|
|
|
#define TCA8418_KB_ADDR 0x34
|
2022-03-28 16:55:58 +02:00
|
|
|
|
2022-06-05 09:50:06 -05:00
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
// SENSOR
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
#define BME_ADDR 0x76
|
|
|
|
|
#define BME_ADDR_ALTERNATE 0x77
|
|
|
|
|
#define MCP9808_ADDR 0x18
|
2022-06-11 16:44:56 -05:00
|
|
|
#define INA_ADDR 0x40
|
|
|
|
|
#define INA_ADDR_ALTERNATE 0x41
|
2024-03-16 16:01:43 +01:00
|
|
|
#define INA_ADDR_WAVESHARE_UPS 0x43
|
2023-11-04 19:07:00 -06:00
|
|
|
#define INA3221_ADDR 0x42
|
2024-09-25 20:34:53 +10:00
|
|
|
#define MAX1704X_ADDR 0x36
|
2022-10-07 19:57:55 +08:00
|
|
|
#define QMC6310_ADDR 0x1C
|
|
|
|
|
#define QMI8658_ADDR 0x6B
|
2024-09-17 08:37:12 +08:00
|
|
|
#define QMC5883L_ADDR 0x0D
|
|
|
|
|
#define HMC5883L_ADDR 0x1E
|
2022-10-15 09:11:05 -05:00
|
|
|
#define SHTC3_ADDR 0x70
|
2022-10-15 14:55:57 -05:00
|
|
|
#define LPS22HB_ADDR 0x5C
|
|
|
|
|
#define LPS22HB_ADDR_ALT 0x5D
|
2024-05-10 07:13:12 -05:00
|
|
|
#define SHT31_4x_ADDR 0x44
|
2025-03-06 20:49:55 -05:00
|
|
|
#define SHT31_4x_ADDR_ALT 0x45
|
2023-02-04 13:07:14 -06:00
|
|
|
#define PMSA0031_ADDR 0x12
|
2024-10-26 12:03:28 +02:00
|
|
|
#define QMA6100P_ADDR 0x12
|
2024-05-31 18:17:53 +02:00
|
|
|
#define AHT10_ADDR 0x38
|
2024-04-20 16:16:20 +02:00
|
|
|
#define RCWL9620_ADDR 0x57
|
2024-05-08 22:14:55 -04:00
|
|
|
#define VEML7700_ADDR 0x10
|
2024-06-01 20:21:39 -05:00
|
|
|
#define TSL25911_ADDR 0x29
|
2024-06-02 09:38:28 -05:00
|
|
|
#define OPT3001_ADDR 0x45
|
|
|
|
|
#define OPT3001_ADDR_ALT 0x44
|
|
|
|
|
#define MLX90632_ADDR 0x3A
|
2024-06-03 21:50:28 -05:00
|
|
|
#define DFROBOT_LARK_ADDR 0x42
|
2025-01-18 14:10:13 +01:00
|
|
|
#define DFROBOT_RAIN_ADDR 0x1d
|
2024-06-16 02:59:22 +02:00
|
|
|
#define NAU7802_ADDR 0x2A
|
2024-10-07 19:50:44 -05:00
|
|
|
#define MAX30102_ADDR 0x57
|
2025-07-01 19:34:03 +10:00
|
|
|
#define SCD4X_ADDR 0x62
|
2024-10-08 05:03:43 -05:00
|
|
|
#define MLX90614_ADDR_DEF 0x5A
|
2024-11-24 07:53:52 -05:00
|
|
|
#define CGRADSENS_ADDR 0x66
|
2025-03-07 18:51:38 +08:00
|
|
|
#define LTR390UV_ADDR 0x53
|
2025-07-21 19:33:24 +02:00
|
|
|
#define XPOWERS_AXP192_AXP2101_ADDRESS 0x34 // same adress as TCA8418_KB
|
2025-05-25 14:29:02 +02:00
|
|
|
#define PCT2075_ADDR 0x37
|
2025-07-21 19:33:24 +02:00
|
|
|
#define BQ27220_ADDR 0x55 // same address as TDECK_KB
|
|
|
|
|
#define BQ25896_ADDR 0x6B
|
|
|
|
|
#define LTR553ALS_ADDR 0x23
|
2022-10-13 12:55:28 +02:00
|
|
|
|
2023-03-23 11:32:04 -05:00
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
// ACCELEROMETER
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
#define MPU6050_ADDR 0x68
|
2024-11-07 18:01:58 +01:00
|
|
|
#define STK8BXX_ADDR 0x18
|
|
|
|
|
#define LIS3DH_ADDR 0x18
|
|
|
|
|
#define LIS3DH_ADDR_ALT 0x19
|
2023-07-22 09:26:54 -05:00
|
|
|
#define BMA423_ADDR 0x19
|
2024-04-12 01:40:14 +01:00
|
|
|
#define LSM6DS3_ADDR 0x6A
|
2024-06-11 17:47:45 -05:00
|
|
|
#define BMX160_ADDR 0x69
|
2024-09-25 21:25:31 +10:00
|
|
|
#define ICM20948_ADDR 0x69
|
|
|
|
|
#define ICM20948_ADDR_ALT 0x68
|
2025-07-21 19:33:24 +02:00
|
|
|
#define BHI260AP_ADDR 0x28
|
Unify the native display config between legacy display and MUI (#6838)
* Add missed include
* Another Warning fix
* Add another HAS_SCREEN
* Namespace fixes
* Removed depricated destination types and re-factored destination screen
* Get rid of Arduino Strings
* Clean up after Copilot
* SixthLine Def, Screen Rename
Added Sixth Line Definition Screen Rename, and Automatic Line Adjustment
* Consistency is hard - fixed "Sixth"
* System Frame Updates
Adjusted line construction to ensure we fit maximum content per screen.
* Fix up notifications
* Add a couple more ifdef HAS_SCREEN lines
* Add screen->isOverlayBannerShowing()
* Don't forget the invert!
* Adjust Nodelist Center Divider
Adjust Nodelist Center Divider
* Fix variable casting
* Fix entryText variable as empty before update to fix validation
* Altitude is int32_t
* Update PowerTelemetry to have correct data type
* Fix cppcheck warnings (#6945)
* Fix cppcheck warnings
* Adjust logic in Power.cpp for power sensor
---------
Co-authored-by: Jason P <applewiz@mac.com>
* More pixel wrangling so things line up NodeList edition
* Adjust NodeList alignments and plumb some background padding for a possible title fix
* Better alignment for banner notifications
* Move title into drawCommonHeader; initial screen tested
* Fonts make spacing items difficult
* Improved beeping booping and other buzzer based feedback (#6947)
* Improved beeping booping and other buzzer based feedback
* audible button feedback (#6949)
* Refactor
---------
Co-authored-by: todd-herbert <herbert.todd@gmail.com>
* Sandpapered the corners of the notification popup
* Finalize drawCommonHeader migration
* Update Title of Favorite Node Screens
* Update node metric alignment on LoRa screen
* Update the border for popups to separate it from background
* Update PaxcounterModule.cpp with CommonHeader
* Update WiFi screen with CommonHeader and related data reflow
* It was not, in fact, pointing up
* Fix build on wismeshtap
* T-deck trackball debounce
* Fix uptime on Device Focused page to actually detail
* Update Sys screen for new uptime, add label to Freq/Chan on LoRa
* Don't display DOP any longer, make Uptime consistent
* Revert Uptime change on Favorites, Apply to Device Focused
* Label the satelite number to avoid confusion
* Boop boop boop boop
* Correct GPS positioning and string consistency across strings for GPS
* Fix GPS text alignment
* Enable canned messages by default
* Don't wake screen on new nodes
* Cannedmessage list emote support added
* Fn+e emote picker for freetext screen
* Actually block CannedInput actions while display is shown
* Add selection menu to bannerOverlay
* Off by one
* Move to unified text layouts and spacing
* Still my Fav without an "e"
* Fully remove EVENT_NODEDB_UPDATED
* Simply LoRa screen
* Make some char pointers const to fix compilation on native targets
* Update drawCompassNorth to include radius
* Fix warning
* button thread cleanup
* Pull OneButton handling from PowerFSM and add MUI switch (#6973)
* Trunk
* Onebutton Menu Support
* Add temporary clock icon
* Add gps location to fsi
* Banner message state reset
* Cast to char to satisfy compiler
* Better fast handling of input during banner
* Fix warning
* Derp
* oops
* Update ref
* Wire buzzer_mode
* remove legacy string->print()
* Only init screen if one found
* Unsigned Char
* More buttonThread cleaning
* screen.cpp button handling cleanup
* The Great Event Rename of 2025
* Fix the Radiomaster
* Missed trackball type change
* Remove unused function
* Make ButtonThread an InputBroker
* Coffee hadn't kicked in yet
* Add clock icon for Navigation Bar
* Restore clock screen definition code - whoops
* ExternalNotifications now observe inputBroker
* Clock rework (#6992)
* Move Clock bits into ClockRenderer space
* Rework clock into all device navigation
* T-Watch Actually Builds Different
* Compile fix
---------
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
* Add AM/PM to Digital Clock
* Flip Seconds and AM/PM on Clock Display
* Tik-tok pixels are hard
* Fix builds on Thinknode M1
* Check for GPS and don't crash
* Don't endif til the end
* Rework the OneButton thread to be much less of a mess. (#6997)
* Rework the OneButton thread to be much less of a mess. And break lots of targets temporarily
* Update src/input/ButtonThread.h
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix GPS toggle
* Send the shutdown event, not just the kbchar
* Honor the back button in a notificaiton popup
* Draw the right size box for popup with options
* Try to un-break all the things
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* 24-hour Clock Should have leading zero, but not 12-hour
* Fixup some compile errors
* Add intRoutine to ButtonThread init, to get more responsive user button back
* Add Timezone picker
* Fix Warning
* Optionally set the initial selection for the chooser popup
* Make back buttons work in canned messages
* Drop the wrapper classes
* LonPressTime now configurable
* Clock Frame can not longer be blank; just add valid time
* Back buttons everywhere!
* Key Verification confirm banner
* Make Elecrow M* top button a back button
* Add settings saves
* EInk responsiveness fixes
* Linux Input Fixes
* Add Native Trackball/Joystick support, and move UserButton to Input
* No Flight Stick Mode
* Send input event
* Add Channel Utilization to Device Focused frame
* Don't shift screens when we draw new ones
* Add showOverlayBanner arguments to no-op
* trunk
* Default Native trackball to NC
* Fix crash in simulator mode
* Add longLong button press
* Get the args right
* Adjust Bluetooth Pairing Screen to account for bottom navigation.
* Trackball everywhere, and unPhone buttons
* Remap visionmaster secondary button to TB_UP
* Kill ScanAndSelect
* trunk
* No longer need the canned messages input filter
* All Canned All the time
* Fix stm32 compile error regarding inputBroker
* Unify tft lineheights (#7033)
* Create variable line heights based upon SCREEN_HEIGHT
* Refactor textPositions into method -> getTextPositions
* Update SharedUIDisplay.h
---------
Co-authored-by: Jason P <applewiz@mac.com>
* Adjust top distance for larger displays
* Adjust icon sizes for larger displays
* Fix Paxcounter compile errors after code updates
* Pixel wrangling to make larger screens fit better
* Alert frame has precedence over banner -- for now
* Unify on ALT_BUTTON
* Align AM/PM to the digit, not the segment on larger displays
* Move some global pin defines into configuration.h
* Scaffolding for BMM150 9-axis gyro
* Alt button behavior
* Don't add the blank GPS frames without HAS_GPS
* EVENT_NODEDB_UPDATED has been retired
* Clean out LOG_WARN messages from debugging
* Add dismiss message function
* Minor buttonThread cleanup
* Add BMM150 support
* Clean up last warning from dev
* Simplify bmm150 init return logic
* Add option to reply to messages
* Add minimal menu upon selecting home screen
* Move Messages to slot 2, rename GPS to Position, move variables nearer functional usage in Screen.cpp
* Properly dismiss message
* T-Deck Trackball press is not user button
* Add select on favorite frame to launch cannedMessage DM
* Minor wording change
* Less capital letters
* Fix empty message check, time isn't reliable
* drop dead code
* Make UIRenderer a static class instead of namespace
* Fix the select on favorite
* Check if message is empty early and then 'return'
* Add kb_found, and show the option to launch freetype if appropriate
* Ignore impossible touchscreen touches
* Auto scroll fix
* Move linebreak after "from" for banners to maximize screen usage.
* Center "No messages to show" on Message frame
* Start consolidating buzzer behavior
* Fixed signed / unsigned warning
* Cast second parameter of max() to make some targets happy
* Cast kbchar to (char) to make arduino string happy
* Shorten the notice of "No messages"
* Add buzzer mode chooser
* Add regionPicker to Lora icon
* Reduce line spacing and reorder Position screen to resolve overlapping issues
* Update message titles, fix GPS icons, add Back options
* Leftover boops
* Remove chirp
* Make the region selection dismissable when a region is already set
* Add read-aloud functionality on messages w/ esp8266sam
* "Last Heard" is a better label
* tweak the beep
* 5 options
* properly tear down freetext upon cancel
* de-convelute canned messages just a bit
* Correct height of Mail icon in navigation bar
* Remove unused warning
* Consolidate time methods into TimeFormatters
* Oops
* Change LoRa Picker Cancel to Back
* Tweak selection characters on Banner
* Message render not scrolling on 5th line
* More fixes for message scrolling
* Remove the safety next on text overflow - we found that root cause
* Add pin definitions to fix compilation for obscure target
* Don't let the touchscreen send unitialized kbchar values
* Make virtual KB just a bit quicker
* No more double tap, swipe!
* Left is left, and Right is right
* Update horizontal lightning bolt design
* Move from solid to dashed separator for Message Frame
* Single emote feature fix
* Manually sort overlapping elements for now
* Freetext and clearer choices
* Fix ESP32 InkHUD builds on the unify-tft branch (#7087)
* Remove BaseUI branding
* Capitalization is fun
* Revert Meshtastic Boot Frame Changes
* Add ANZ_433 LoRa region to picker
* Update settings.json
---------
Co-authored-by: HarukiToreda <116696711+HarukiToreda@users.noreply.github.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Jason P <applewiz@mac.com>
Co-authored-by: todd-herbert <herbert.todd@gmail.com>
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-21 06:36:04 -05:00
|
|
|
#define BMM150_ADDR 0x13
|
2023-03-23 11:32:04 -05:00
|
|
|
|
2023-05-06 07:17:40 -05:00
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
// LED
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
#define NCP5623_ADDR 0x38
|
2025-04-01 22:39:40 +02:00
|
|
|
#define LP5562_ADDR 0x30
|
2023-05-06 07:17:40 -05:00
|
|
|
|
2022-10-13 12:55:28 +02:00
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
// Security
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
2024-04-15 13:30:45 +01:00
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
// IO Expander
|
|
|
|
|
// -----------------------------------------------------------------------------
|
2024-09-12 13:44:30 +02:00
|
|
|
#define TCA9535_ADDR 0x20
|
2024-04-15 13:30:45 +01:00
|
|
|
#define TCA9555_ADDR 0x26
|
|
|
|
|
|
2024-09-12 13:44:30 +02:00
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
// Touchscreen
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
#define FT6336U_ADDR 0x48
|
2025-07-21 19:33:24 +02:00
|
|
|
#define CST328_ADDR 0x1A
|
2024-09-12 13:44:30 +02:00
|
|
|
|
Add rak12035 VB Soil Monitor Tested & Working (#6741)
* [WIP] Add RAK12035VB Soil Moisture Sensor support
Introduce the RAK12035 sensor as an environmental telemetry sensor,
including necessary calibration checks and default values. Update
relevant files to integrate the sensor into the existing telemetry system.
This hardware is not just one module, but a couple.. RAK12023 and
RAK12035 is the component stack, the RAK12023 does not seem to matter
much and allows for multiple RAK12035 devices to be used.
Co-Authored-By: @Justin-Mann
* [WIP] Add RAK12035VB Soil Moisture Sensor support
Introduce the RAK12035 sensor as an environmental telemetry sensor,
including necessary calibration checks and default values. Update
relevant files to integrate the sensor into the existing telemetry system.
This hardware is not just one module, but a couple.. RAK12023 and
RAK12035 is the component stack, the RAK12023 does not seem to matter
much and allows for multiple RAK12035 devices to be used.
Co-Authored-By: @Justin-Mann
* [WIP] Add RAK12035VB Soil Moisture Sensor support
Introduce the RAK12035 sensor as an environmental telemetry sensor,
including necessary calibration checks and default values. Update
relevant files to integrate the sensor into the existing telemetry system.
This hardware is not just one module, but a couple.. RAK12023 and
RAK12035 is the component stack, the RAK12023 does not seem to matter
much and allows for multiple RAK12035 devices to be used.
Co-Authored-By: @Justin-Mann
* [WIP] Add RAK12035VB Soil Moisture Sensor support
Introduce the RAK12035 sensor as an environmental telemetry sensor,
including necessary calibration checks and default values. Update
relevant files to integrate the sensor into the existing telemetry system.
This hardware is not just one module, but a couple.. RAK12023 and
RAK12035 is the component stack, the RAK12023 does not seem to matter
much and allows for multiple RAK12035 devices to be used.
Co-Authored-By: @Justin-Mann
* Update to 1.0.4 release of RAK12035_SoilMoisture
* cleanup
* cool
* .
* ..
* little bit of cleanup and recompile/upload/test on RAK WISBLAOCK STACK: RAK19007/RAK4631/RAK12035VB/RAK12500
looks like soil monitor is working correctly, new environmental metrics are comming thru [new protos soil_moisture, soil_temperature] and GPS is working again with the RAK 12500.
improvements could be made around the configuration of the monitor.
next steps include updating the client(s) to react to, log and display the new proto metrics for soil temp and humidity.
* . comments about current limitations and TODOs
* trunk update
* trying to autoformat..
* fix formatting attempt 2
* ..
* ...
* ...
* .
* some corrections and local build success
* correction in temp code
* grr formatting
* cleanup after a few experiments
* remove temp code to overwrite values for temp and humidity protos.. next step just update the clients to know about soil_temperature and soil_humidity protos.
* update some values in varient for rak wistap
* working out trunk formatting..
* wip
. corrections to other build variants
* .
* protobuffs?
* protobufs?
* Update protobufs ref
* Protobufs ref
* Trunk
* Update RAK12035Sensor.cpp
* Fmt
* comment changes
* dumb mistakes... resolved, actually built and tested.. all good..
* Update src/modules/Telemetry/Sensor/RAK12035Sensor.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/modules/Telemetry/Sensor/RAK12035Sensor.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* . proto submod
* proto
* proto
* merge master
* mabe a fix for GPS pin conflict, waiting on a new gps module to try
* merge master, attempt to fix gps (RAK12500) pin conflict with RAK12023/12035
* .
* .
---------
Co-authored-by: Tom Fifield <tom@tomfifield.net>
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-19 17:51:03 -06:00
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
// RAK12035VB Soil Monitor (using RAK12023 up to 3 RAK12035 monitors can be connected)
|
|
|
|
|
// - the default i2c address for this sensor is 0x20, and users are instructed to
|
|
|
|
|
// set 0x21 and 0x22 for the second and third sensor if present.
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
#define RAK120351_ADDR 0x20
|
|
|
|
|
#define RAK120352_ADDR 0x21
|
|
|
|
|
#define RAK120353_ADDR 0x22
|
|
|
|
|
|
2024-10-08 14:05:13 +02:00
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
// BIAS-T Generator
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
#define TPS65233_ADDR 0x60
|
|
|
|
|
|
2023-08-16 22:07:22 +02:00
|
|
|
// convert 24-bit color to 16-bit (56K)
|
|
|
|
|
#define COLOR565(r, g, b) (((r & 0xF8) << 8) | ((g & 0xFC) << 3) | ((b & 0xF8) >> 3))
|
|
|
|
|
|
2024-08-23 08:03:16 -07:00
|
|
|
#if defined(VEXT_ENABLE) && !defined(VEXT_ON_VALUE)
|
|
|
|
|
// Older variant.h files might not be defining this value, so stay with the old default
|
|
|
|
|
#define VEXT_ON_VALUE LOW
|
|
|
|
|
#endif
|
|
|
|
|
|
2025-09-19 02:25:58 +02:00
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
// Rotary encoder
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
#ifndef ROTARY_DELAY
|
|
|
|
|
#define ROTARY_DELAY 5
|
|
|
|
|
#endif
|
|
|
|
|
|
2025-01-02 16:05:12 +01:00
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
// GPS
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
Cleanup GPS, add UC6580 autodetect (#4319)
* Cleanup GPS, add UC6580 autodetect
Our GPS code autodetects devices by default. Previously UC6580 was
statically assigned, and had its own baudrate configuration inside
the GPS code.
This change adds autodetect functionality for the UC6580 and moves
any 'special' GPS baud rate requirements for a variant out into the
variant configuration. Thereby cleaning up core GPS code a little,
saving the whales, and curing global warming.
New Functionality:
* If GPS_BAUDRATE is defined in variant.h, GPS autodetection will
try that baudrate first.
* UC6580 GPS chips are now automatically detected
* Only run speedSelect skip the first time
* Cleanup GPS, add UC6580 autodetect
Our GPS code autodetects devices by default. Previously UC6580 was
statically assigned, and had its own baudrate configuration inside
the GPS code.
This change adds autodetect functionality for the UC6580 and moves
any 'special' GPS baud rate requirements for a variant out into the
variant configuration. Thereby cleaning up core GPS code a little,
saving the whales, and curing global warming.
New Functionality:
* If GPS_BAUDRATE is defined in variant.h, GPS autodetection will
try that baudrate first.
* UC6580 GPS chips are now automatically detected
* Cleanup GPS, add UC6580 autodetect
Our GPS code autodetects devices by default. Previously UC6580 was
statically assigned, and had its own baudrate configuration inside
the GPS code.
This change adds autodetect functionality for the UC6580 and moves
any 'special' GPS baud rate requirements for a variant out into the
variant configuration. Thereby cleaning up core GPS code a little,
saving the whales, and curing global warming.
New Functionality:
* If GPS_BAUDRATE is defined in variant.h, GPS autodetection will
try that baudrate first.
* UC6580 GPS chips are now automatically detected
* Remove Airoha baud rate code
It's no longer needed.
2024-07-23 19:18:27 +08:00
|
|
|
#ifndef GPS_BAUDRATE
|
|
|
|
|
#define GPS_BAUDRATE 9600
|
2024-11-02 20:51:12 +08:00
|
|
|
#define GPS_BAUDRATE_FIXED 0
|
|
|
|
|
#else
|
|
|
|
|
#define GPS_BAUDRATE_FIXED 1
|
Cleanup GPS, add UC6580 autodetect (#4319)
* Cleanup GPS, add UC6580 autodetect
Our GPS code autodetects devices by default. Previously UC6580 was
statically assigned, and had its own baudrate configuration inside
the GPS code.
This change adds autodetect functionality for the UC6580 and moves
any 'special' GPS baud rate requirements for a variant out into the
variant configuration. Thereby cleaning up core GPS code a little,
saving the whales, and curing global warming.
New Functionality:
* If GPS_BAUDRATE is defined in variant.h, GPS autodetection will
try that baudrate first.
* UC6580 GPS chips are now automatically detected
* Only run speedSelect skip the first time
* Cleanup GPS, add UC6580 autodetect
Our GPS code autodetects devices by default. Previously UC6580 was
statically assigned, and had its own baudrate configuration inside
the GPS code.
This change adds autodetect functionality for the UC6580 and moves
any 'special' GPS baud rate requirements for a variant out into the
variant configuration. Thereby cleaning up core GPS code a little,
saving the whales, and curing global warming.
New Functionality:
* If GPS_BAUDRATE is defined in variant.h, GPS autodetection will
try that baudrate first.
* UC6580 GPS chips are now automatically detected
* Cleanup GPS, add UC6580 autodetect
Our GPS code autodetects devices by default. Previously UC6580 was
statically assigned, and had its own baudrate configuration inside
the GPS code.
This change adds autodetect functionality for the UC6580 and moves
any 'special' GPS baud rate requirements for a variant out into the
variant configuration. Thereby cleaning up core GPS code a little,
saving the whales, and curing global warming.
New Functionality:
* If GPS_BAUDRATE is defined in variant.h, GPS autodetection will
try that baudrate first.
* UC6580 GPS chips are now automatically detected
* Remove Airoha baud rate code
It's no longer needed.
2024-07-23 19:18:27 +08:00
|
|
|
#endif
|
|
|
|
|
|
2025-01-02 16:05:12 +01:00
|
|
|
#ifndef GPS_THREAD_INTERVAL
|
|
|
|
|
#define GPS_THREAD_INTERVAL 200
|
|
|
|
|
#endif
|
|
|
|
|
|
2023-01-21 14:34:29 +01:00
|
|
|
/* Step #2: follow with defines common to the architecture;
|
2022-07-31 07:11:47 -05:00
|
|
|
also enable HAS_ option not specifically disabled by variant.h */
|
|
|
|
|
#include "architecture.h"
|
2020-02-03 20:18:36 -08:00
|
|
|
|
2024-03-24 19:41:45 +01:00
|
|
|
#ifndef DEFAULT_REBOOT_SECONDS
|
|
|
|
|
#define DEFAULT_REBOOT_SECONDS 7
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef DEFAULT_SHUTDOWN_SECONDS
|
|
|
|
|
#define DEFAULT_SHUTDOWN_SECONDS 2
|
|
|
|
|
#endif
|
|
|
|
|
|
2024-08-10 13:45:41 -05:00
|
|
|
#ifndef MINIMUM_SAFE_FREE_HEAP
|
|
|
|
|
#define MINIMUM_SAFE_FREE_HEAP 1500
|
|
|
|
|
#endif
|
|
|
|
|
|
2024-09-18 03:28:23 +12:00
|
|
|
#ifndef WIRE_INTERFACES_COUNT
|
|
|
|
|
// Officially an NRF52 macro
|
|
|
|
|
// Repurposed cross-platform to identify devices using Wire1
|
2024-09-24 08:16:44 +08:00
|
|
|
#if defined(I2C_SDA1) || defined(PIN_WIRE1_SDA)
|
2024-09-18 03:28:23 +12:00
|
|
|
#define WIRE_INTERFACES_COUNT 2
|
|
|
|
|
#elif HAS_WIRE
|
|
|
|
|
#define WIRE_INTERFACES_COUNT 1
|
|
|
|
|
#endif
|
|
|
|
|
#endif
|
|
|
|
|
|
2022-07-31 07:11:47 -05:00
|
|
|
/* Step #3: mop up with disabled values for HAS_ options not handled by the above two */
|
2021-05-11 09:44:41 +08:00
|
|
|
|
2022-07-31 07:11:47 -05:00
|
|
|
#ifndef HAS_WIFI
|
2023-01-21 14:34:29 +01:00
|
|
|
#define HAS_WIFI 0
|
2021-05-11 09:44:41 +08:00
|
|
|
#endif
|
2022-10-22 16:29:50 +02:00
|
|
|
#ifndef HAS_ETHERNET
|
2023-01-21 14:34:29 +01:00
|
|
|
#define HAS_ETHERNET 0
|
2022-10-22 16:29:50 +02:00
|
|
|
#endif
|
2022-07-31 07:11:47 -05:00
|
|
|
#ifndef HAS_SCREEN
|
2023-01-21 14:34:29 +01:00
|
|
|
#define HAS_SCREEN 0
|
2021-05-11 09:44:41 +08:00
|
|
|
#endif
|
2024-12-29 01:31:54 +11:00
|
|
|
#ifndef HAS_TFT
|
|
|
|
|
#define HAS_TFT 0
|
|
|
|
|
#endif
|
2022-07-31 07:11:47 -05:00
|
|
|
#ifndef HAS_WIRE
|
2023-01-21 14:34:29 +01:00
|
|
|
#define HAS_WIRE 0
|
2020-05-10 12:33:17 -07:00
|
|
|
#endif
|
2022-07-31 07:11:47 -05:00
|
|
|
#ifndef HAS_GPS
|
2023-01-21 14:34:29 +01:00
|
|
|
#define HAS_GPS 0
|
2022-07-31 07:11:47 -05:00
|
|
|
#endif
|
|
|
|
|
#ifndef HAS_BUTTON
|
2023-01-21 14:34:29 +01:00
|
|
|
#define HAS_BUTTON 0
|
2022-07-31 07:11:47 -05:00
|
|
|
#endif
|
2023-07-30 14:51:26 +02:00
|
|
|
#ifndef HAS_TRACKBALL
|
|
|
|
|
#define HAS_TRACKBALL 0
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef HAS_TOUCHSCREEN
|
|
|
|
|
#define HAS_TOUCHSCREEN 0
|
|
|
|
|
#endif
|
2022-07-31 07:11:47 -05:00
|
|
|
#ifndef HAS_TELEMETRY
|
2023-01-21 14:34:29 +01:00
|
|
|
#define HAS_TELEMETRY 0
|
2022-07-31 07:11:47 -05:00
|
|
|
#endif
|
2023-11-08 21:58:33 +00:00
|
|
|
#ifndef HAS_SENSOR
|
|
|
|
|
#define HAS_SENSOR 0
|
|
|
|
|
#endif
|
2022-07-31 07:11:47 -05:00
|
|
|
#ifndef HAS_RADIO
|
2023-01-21 14:34:29 +01:00
|
|
|
#define HAS_RADIO 0
|
2022-07-31 07:11:47 -05:00
|
|
|
#endif
|
|
|
|
|
#ifndef HAS_RTC
|
2023-01-21 14:34:29 +01:00
|
|
|
#define HAS_RTC 0
|
2020-02-01 14:23:21 -08:00
|
|
|
#endif
|
2022-10-30 10:02:11 -05:00
|
|
|
#ifndef HAS_CPU_SHUTDOWN
|
2023-01-21 14:34:29 +01:00
|
|
|
#define HAS_CPU_SHUTDOWN 0
|
2022-10-30 10:02:11 -05:00
|
|
|
#endif
|
|
|
|
|
#ifndef HAS_BLUETOOTH
|
2023-01-21 14:34:29 +01:00
|
|
|
#define HAS_BLUETOOTH 0
|
2022-10-30 10:02:11 -05:00
|
|
|
#endif
|
2020-02-01 14:23:21 -08:00
|
|
|
|
2022-07-31 07:11:47 -05:00
|
|
|
#ifndef HW_VENDOR
|
2023-01-21 14:34:29 +01:00
|
|
|
#error HW_VENDOR must be defined
|
2024-03-05 14:50:52 +01:00
|
|
|
#endif
|
|
|
|
|
|
Unify the native display config between legacy display and MUI (#6838)
* Add missed include
* Another Warning fix
* Add another HAS_SCREEN
* Namespace fixes
* Removed depricated destination types and re-factored destination screen
* Get rid of Arduino Strings
* Clean up after Copilot
* SixthLine Def, Screen Rename
Added Sixth Line Definition Screen Rename, and Automatic Line Adjustment
* Consistency is hard - fixed "Sixth"
* System Frame Updates
Adjusted line construction to ensure we fit maximum content per screen.
* Fix up notifications
* Add a couple more ifdef HAS_SCREEN lines
* Add screen->isOverlayBannerShowing()
* Don't forget the invert!
* Adjust Nodelist Center Divider
Adjust Nodelist Center Divider
* Fix variable casting
* Fix entryText variable as empty before update to fix validation
* Altitude is int32_t
* Update PowerTelemetry to have correct data type
* Fix cppcheck warnings (#6945)
* Fix cppcheck warnings
* Adjust logic in Power.cpp for power sensor
---------
Co-authored-by: Jason P <applewiz@mac.com>
* More pixel wrangling so things line up NodeList edition
* Adjust NodeList alignments and plumb some background padding for a possible title fix
* Better alignment for banner notifications
* Move title into drawCommonHeader; initial screen tested
* Fonts make spacing items difficult
* Improved beeping booping and other buzzer based feedback (#6947)
* Improved beeping booping and other buzzer based feedback
* audible button feedback (#6949)
* Refactor
---------
Co-authored-by: todd-herbert <herbert.todd@gmail.com>
* Sandpapered the corners of the notification popup
* Finalize drawCommonHeader migration
* Update Title of Favorite Node Screens
* Update node metric alignment on LoRa screen
* Update the border for popups to separate it from background
* Update PaxcounterModule.cpp with CommonHeader
* Update WiFi screen with CommonHeader and related data reflow
* It was not, in fact, pointing up
* Fix build on wismeshtap
* T-deck trackball debounce
* Fix uptime on Device Focused page to actually detail
* Update Sys screen for new uptime, add label to Freq/Chan on LoRa
* Don't display DOP any longer, make Uptime consistent
* Revert Uptime change on Favorites, Apply to Device Focused
* Label the satelite number to avoid confusion
* Boop boop boop boop
* Correct GPS positioning and string consistency across strings for GPS
* Fix GPS text alignment
* Enable canned messages by default
* Don't wake screen on new nodes
* Cannedmessage list emote support added
* Fn+e emote picker for freetext screen
* Actually block CannedInput actions while display is shown
* Add selection menu to bannerOverlay
* Off by one
* Move to unified text layouts and spacing
* Still my Fav without an "e"
* Fully remove EVENT_NODEDB_UPDATED
* Simply LoRa screen
* Make some char pointers const to fix compilation on native targets
* Update drawCompassNorth to include radius
* Fix warning
* button thread cleanup
* Pull OneButton handling from PowerFSM and add MUI switch (#6973)
* Trunk
* Onebutton Menu Support
* Add temporary clock icon
* Add gps location to fsi
* Banner message state reset
* Cast to char to satisfy compiler
* Better fast handling of input during banner
* Fix warning
* Derp
* oops
* Update ref
* Wire buzzer_mode
* remove legacy string->print()
* Only init screen if one found
* Unsigned Char
* More buttonThread cleaning
* screen.cpp button handling cleanup
* The Great Event Rename of 2025
* Fix the Radiomaster
* Missed trackball type change
* Remove unused function
* Make ButtonThread an InputBroker
* Coffee hadn't kicked in yet
* Add clock icon for Navigation Bar
* Restore clock screen definition code - whoops
* ExternalNotifications now observe inputBroker
* Clock rework (#6992)
* Move Clock bits into ClockRenderer space
* Rework clock into all device navigation
* T-Watch Actually Builds Different
* Compile fix
---------
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
* Add AM/PM to Digital Clock
* Flip Seconds and AM/PM on Clock Display
* Tik-tok pixels are hard
* Fix builds on Thinknode M1
* Check for GPS and don't crash
* Don't endif til the end
* Rework the OneButton thread to be much less of a mess. (#6997)
* Rework the OneButton thread to be much less of a mess. And break lots of targets temporarily
* Update src/input/ButtonThread.h
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix GPS toggle
* Send the shutdown event, not just the kbchar
* Honor the back button in a notificaiton popup
* Draw the right size box for popup with options
* Try to un-break all the things
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* 24-hour Clock Should have leading zero, but not 12-hour
* Fixup some compile errors
* Add intRoutine to ButtonThread init, to get more responsive user button back
* Add Timezone picker
* Fix Warning
* Optionally set the initial selection for the chooser popup
* Make back buttons work in canned messages
* Drop the wrapper classes
* LonPressTime now configurable
* Clock Frame can not longer be blank; just add valid time
* Back buttons everywhere!
* Key Verification confirm banner
* Make Elecrow M* top button a back button
* Add settings saves
* EInk responsiveness fixes
* Linux Input Fixes
* Add Native Trackball/Joystick support, and move UserButton to Input
* No Flight Stick Mode
* Send input event
* Add Channel Utilization to Device Focused frame
* Don't shift screens when we draw new ones
* Add showOverlayBanner arguments to no-op
* trunk
* Default Native trackball to NC
* Fix crash in simulator mode
* Add longLong button press
* Get the args right
* Adjust Bluetooth Pairing Screen to account for bottom navigation.
* Trackball everywhere, and unPhone buttons
* Remap visionmaster secondary button to TB_UP
* Kill ScanAndSelect
* trunk
* No longer need the canned messages input filter
* All Canned All the time
* Fix stm32 compile error regarding inputBroker
* Unify tft lineheights (#7033)
* Create variable line heights based upon SCREEN_HEIGHT
* Refactor textPositions into method -> getTextPositions
* Update SharedUIDisplay.h
---------
Co-authored-by: Jason P <applewiz@mac.com>
* Adjust top distance for larger displays
* Adjust icon sizes for larger displays
* Fix Paxcounter compile errors after code updates
* Pixel wrangling to make larger screens fit better
* Alert frame has precedence over banner -- for now
* Unify on ALT_BUTTON
* Align AM/PM to the digit, not the segment on larger displays
* Move some global pin defines into configuration.h
* Scaffolding for BMM150 9-axis gyro
* Alt button behavior
* Don't add the blank GPS frames without HAS_GPS
* EVENT_NODEDB_UPDATED has been retired
* Clean out LOG_WARN messages from debugging
* Add dismiss message function
* Minor buttonThread cleanup
* Add BMM150 support
* Clean up last warning from dev
* Simplify bmm150 init return logic
* Add option to reply to messages
* Add minimal menu upon selecting home screen
* Move Messages to slot 2, rename GPS to Position, move variables nearer functional usage in Screen.cpp
* Properly dismiss message
* T-Deck Trackball press is not user button
* Add select on favorite frame to launch cannedMessage DM
* Minor wording change
* Less capital letters
* Fix empty message check, time isn't reliable
* drop dead code
* Make UIRenderer a static class instead of namespace
* Fix the select on favorite
* Check if message is empty early and then 'return'
* Add kb_found, and show the option to launch freetype if appropriate
* Ignore impossible touchscreen touches
* Auto scroll fix
* Move linebreak after "from" for banners to maximize screen usage.
* Center "No messages to show" on Message frame
* Start consolidating buzzer behavior
* Fixed signed / unsigned warning
* Cast second parameter of max() to make some targets happy
* Cast kbchar to (char) to make arduino string happy
* Shorten the notice of "No messages"
* Add buzzer mode chooser
* Add regionPicker to Lora icon
* Reduce line spacing and reorder Position screen to resolve overlapping issues
* Update message titles, fix GPS icons, add Back options
* Leftover boops
* Remove chirp
* Make the region selection dismissable when a region is already set
* Add read-aloud functionality on messages w/ esp8266sam
* "Last Heard" is a better label
* tweak the beep
* 5 options
* properly tear down freetext upon cancel
* de-convelute canned messages just a bit
* Correct height of Mail icon in navigation bar
* Remove unused warning
* Consolidate time methods into TimeFormatters
* Oops
* Change LoRa Picker Cancel to Back
* Tweak selection characters on Banner
* Message render not scrolling on 5th line
* More fixes for message scrolling
* Remove the safety next on text overflow - we found that root cause
* Add pin definitions to fix compilation for obscure target
* Don't let the touchscreen send unitialized kbchar values
* Make virtual KB just a bit quicker
* No more double tap, swipe!
* Left is left, and Right is right
* Update horizontal lightning bolt design
* Move from solid to dashed separator for Message Frame
* Single emote feature fix
* Manually sort overlapping elements for now
* Freetext and clearer choices
* Fix ESP32 InkHUD builds on the unify-tft branch (#7087)
* Remove BaseUI branding
* Capitalization is fun
* Revert Meshtastic Boot Frame Changes
* Add ANZ_433 LoRa region to picker
* Update settings.json
---------
Co-authored-by: HarukiToreda <116696711+HarukiToreda@users.noreply.github.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Jason P <applewiz@mac.com>
Co-authored-by: todd-herbert <herbert.todd@gmail.com>
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-21 06:36:04 -05:00
|
|
|
#ifndef TB_DOWN
|
|
|
|
|
#define TB_DOWN 255
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef TB_UP
|
|
|
|
|
#define TB_UP 255
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef TB_LEFT
|
|
|
|
|
#define TB_LEFT 255
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef TB_RIGHT
|
|
|
|
|
#define TB_RIGHT 255
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef TB_PRESS
|
|
|
|
|
#define TB_PRESS 255
|
|
|
|
|
#endif
|
|
|
|
|
|
2025-04-01 22:39:40 +02:00
|
|
|
// Support multiple RGB LED configuration
|
|
|
|
|
#if defined(HAS_NCP5623) || defined(HAS_LP5562) || defined(RGBLED_RED) || defined(HAS_NEOPIXEL) || defined(UNPHONE)
|
|
|
|
|
#define HAS_RGB_LED
|
|
|
|
|
#endif
|
|
|
|
|
|
Unify the native display config between legacy display and MUI (#6838)
* Add missed include
* Another Warning fix
* Add another HAS_SCREEN
* Namespace fixes
* Removed depricated destination types and re-factored destination screen
* Get rid of Arduino Strings
* Clean up after Copilot
* SixthLine Def, Screen Rename
Added Sixth Line Definition Screen Rename, and Automatic Line Adjustment
* Consistency is hard - fixed "Sixth"
* System Frame Updates
Adjusted line construction to ensure we fit maximum content per screen.
* Fix up notifications
* Add a couple more ifdef HAS_SCREEN lines
* Add screen->isOverlayBannerShowing()
* Don't forget the invert!
* Adjust Nodelist Center Divider
Adjust Nodelist Center Divider
* Fix variable casting
* Fix entryText variable as empty before update to fix validation
* Altitude is int32_t
* Update PowerTelemetry to have correct data type
* Fix cppcheck warnings (#6945)
* Fix cppcheck warnings
* Adjust logic in Power.cpp for power sensor
---------
Co-authored-by: Jason P <applewiz@mac.com>
* More pixel wrangling so things line up NodeList edition
* Adjust NodeList alignments and plumb some background padding for a possible title fix
* Better alignment for banner notifications
* Move title into drawCommonHeader; initial screen tested
* Fonts make spacing items difficult
* Improved beeping booping and other buzzer based feedback (#6947)
* Improved beeping booping and other buzzer based feedback
* audible button feedback (#6949)
* Refactor
---------
Co-authored-by: todd-herbert <herbert.todd@gmail.com>
* Sandpapered the corners of the notification popup
* Finalize drawCommonHeader migration
* Update Title of Favorite Node Screens
* Update node metric alignment on LoRa screen
* Update the border for popups to separate it from background
* Update PaxcounterModule.cpp with CommonHeader
* Update WiFi screen with CommonHeader and related data reflow
* It was not, in fact, pointing up
* Fix build on wismeshtap
* T-deck trackball debounce
* Fix uptime on Device Focused page to actually detail
* Update Sys screen for new uptime, add label to Freq/Chan on LoRa
* Don't display DOP any longer, make Uptime consistent
* Revert Uptime change on Favorites, Apply to Device Focused
* Label the satelite number to avoid confusion
* Boop boop boop boop
* Correct GPS positioning and string consistency across strings for GPS
* Fix GPS text alignment
* Enable canned messages by default
* Don't wake screen on new nodes
* Cannedmessage list emote support added
* Fn+e emote picker for freetext screen
* Actually block CannedInput actions while display is shown
* Add selection menu to bannerOverlay
* Off by one
* Move to unified text layouts and spacing
* Still my Fav without an "e"
* Fully remove EVENT_NODEDB_UPDATED
* Simply LoRa screen
* Make some char pointers const to fix compilation on native targets
* Update drawCompassNorth to include radius
* Fix warning
* button thread cleanup
* Pull OneButton handling from PowerFSM and add MUI switch (#6973)
* Trunk
* Onebutton Menu Support
* Add temporary clock icon
* Add gps location to fsi
* Banner message state reset
* Cast to char to satisfy compiler
* Better fast handling of input during banner
* Fix warning
* Derp
* oops
* Update ref
* Wire buzzer_mode
* remove legacy string->print()
* Only init screen if one found
* Unsigned Char
* More buttonThread cleaning
* screen.cpp button handling cleanup
* The Great Event Rename of 2025
* Fix the Radiomaster
* Missed trackball type change
* Remove unused function
* Make ButtonThread an InputBroker
* Coffee hadn't kicked in yet
* Add clock icon for Navigation Bar
* Restore clock screen definition code - whoops
* ExternalNotifications now observe inputBroker
* Clock rework (#6992)
* Move Clock bits into ClockRenderer space
* Rework clock into all device navigation
* T-Watch Actually Builds Different
* Compile fix
---------
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
* Add AM/PM to Digital Clock
* Flip Seconds and AM/PM on Clock Display
* Tik-tok pixels are hard
* Fix builds on Thinknode M1
* Check for GPS and don't crash
* Don't endif til the end
* Rework the OneButton thread to be much less of a mess. (#6997)
* Rework the OneButton thread to be much less of a mess. And break lots of targets temporarily
* Update src/input/ButtonThread.h
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix GPS toggle
* Send the shutdown event, not just the kbchar
* Honor the back button in a notificaiton popup
* Draw the right size box for popup with options
* Try to un-break all the things
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* 24-hour Clock Should have leading zero, but not 12-hour
* Fixup some compile errors
* Add intRoutine to ButtonThread init, to get more responsive user button back
* Add Timezone picker
* Fix Warning
* Optionally set the initial selection for the chooser popup
* Make back buttons work in canned messages
* Drop the wrapper classes
* LonPressTime now configurable
* Clock Frame can not longer be blank; just add valid time
* Back buttons everywhere!
* Key Verification confirm banner
* Make Elecrow M* top button a back button
* Add settings saves
* EInk responsiveness fixes
* Linux Input Fixes
* Add Native Trackball/Joystick support, and move UserButton to Input
* No Flight Stick Mode
* Send input event
* Add Channel Utilization to Device Focused frame
* Don't shift screens when we draw new ones
* Add showOverlayBanner arguments to no-op
* trunk
* Default Native trackball to NC
* Fix crash in simulator mode
* Add longLong button press
* Get the args right
* Adjust Bluetooth Pairing Screen to account for bottom navigation.
* Trackball everywhere, and unPhone buttons
* Remap visionmaster secondary button to TB_UP
* Kill ScanAndSelect
* trunk
* No longer need the canned messages input filter
* All Canned All the time
* Fix stm32 compile error regarding inputBroker
* Unify tft lineheights (#7033)
* Create variable line heights based upon SCREEN_HEIGHT
* Refactor textPositions into method -> getTextPositions
* Update SharedUIDisplay.h
---------
Co-authored-by: Jason P <applewiz@mac.com>
* Adjust top distance for larger displays
* Adjust icon sizes for larger displays
* Fix Paxcounter compile errors after code updates
* Pixel wrangling to make larger screens fit better
* Alert frame has precedence over banner -- for now
* Unify on ALT_BUTTON
* Align AM/PM to the digit, not the segment on larger displays
* Move some global pin defines into configuration.h
* Scaffolding for BMM150 9-axis gyro
* Alt button behavior
* Don't add the blank GPS frames without HAS_GPS
* EVENT_NODEDB_UPDATED has been retired
* Clean out LOG_WARN messages from debugging
* Add dismiss message function
* Minor buttonThread cleanup
* Add BMM150 support
* Clean up last warning from dev
* Simplify bmm150 init return logic
* Add option to reply to messages
* Add minimal menu upon selecting home screen
* Move Messages to slot 2, rename GPS to Position, move variables nearer functional usage in Screen.cpp
* Properly dismiss message
* T-Deck Trackball press is not user button
* Add select on favorite frame to launch cannedMessage DM
* Minor wording change
* Less capital letters
* Fix empty message check, time isn't reliable
* drop dead code
* Make UIRenderer a static class instead of namespace
* Fix the select on favorite
* Check if message is empty early and then 'return'
* Add kb_found, and show the option to launch freetype if appropriate
* Ignore impossible touchscreen touches
* Auto scroll fix
* Move linebreak after "from" for banners to maximize screen usage.
* Center "No messages to show" on Message frame
* Start consolidating buzzer behavior
* Fixed signed / unsigned warning
* Cast second parameter of max() to make some targets happy
* Cast kbchar to (char) to make arduino string happy
* Shorten the notice of "No messages"
* Add buzzer mode chooser
* Add regionPicker to Lora icon
* Reduce line spacing and reorder Position screen to resolve overlapping issues
* Update message titles, fix GPS icons, add Back options
* Leftover boops
* Remove chirp
* Make the region selection dismissable when a region is already set
* Add read-aloud functionality on messages w/ esp8266sam
* "Last Heard" is a better label
* tweak the beep
* 5 options
* properly tear down freetext upon cancel
* de-convelute canned messages just a bit
* Correct height of Mail icon in navigation bar
* Remove unused warning
* Consolidate time methods into TimeFormatters
* Oops
* Change LoRa Picker Cancel to Back
* Tweak selection characters on Banner
* Message render not scrolling on 5th line
* More fixes for message scrolling
* Remove the safety next on text overflow - we found that root cause
* Add pin definitions to fix compilation for obscure target
* Don't let the touchscreen send unitialized kbchar values
* Make virtual KB just a bit quicker
* No more double tap, swipe!
* Left is left, and Right is right
* Update horizontal lightning bolt design
* Move from solid to dashed separator for Message Frame
* Single emote feature fix
* Manually sort overlapping elements for now
* Freetext and clearer choices
* Fix ESP32 InkHUD builds on the unify-tft branch (#7087)
* Remove BaseUI branding
* Capitalization is fun
* Revert Meshtastic Boot Frame Changes
* Add ANZ_433 LoRa region to picker
* Update settings.json
---------
Co-authored-by: HarukiToreda <116696711+HarukiToreda@users.noreply.github.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Jason P <applewiz@mac.com>
Co-authored-by: todd-herbert <herbert.todd@gmail.com>
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-21 06:36:04 -05:00
|
|
|
// default mapping of pins
|
|
|
|
|
#if defined(PIN_BUTTON2) && !defined(CANCEL_BUTTON_PIN)
|
|
|
|
|
#define ALT_BUTTON_PIN PIN_BUTTON2
|
|
|
|
|
#endif
|
|
|
|
|
#if defined ALT_BUTTON_PIN
|
|
|
|
|
|
|
|
|
|
#ifndef ALT_BUTTON_ACTIVE_LOW
|
|
|
|
|
#define ALT_BUTTON_ACTIVE_LOW true
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef ALT_BUTTON_ACTIVE_PULLUP
|
|
|
|
|
#define ALT_BUTTON_ACTIVE_PULLUP true
|
|
|
|
|
#endif
|
|
|
|
|
#endif
|
|
|
|
|
|
2024-03-25 05:33:57 -06:00
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
// Global switches to turn off features for a minimized build
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
// #define MESHTASTIC_MINIMIZE_BUILD 1
|
|
|
|
|
#ifdef MESHTASTIC_MINIMIZE_BUILD
|
|
|
|
|
#define MESHTASTIC_EXCLUDE_MODULES 1
|
|
|
|
|
#define MESHTASTIC_EXCLUDE_WIFI 1
|
|
|
|
|
#define MESHTASTIC_EXCLUDE_BLUETOOTH 1
|
|
|
|
|
#define MESHTASTIC_EXCLUDE_GPS 1
|
|
|
|
|
#define MESHTASTIC_EXCLUDE_SCREEN 1
|
|
|
|
|
#define MESHTASTIC_EXCLUDE_MQTT 1
|
2024-07-03 16:02:20 -07:00
|
|
|
#define MESHTASTIC_EXCLUDE_POWERMON 1
|
2024-07-26 03:16:21 +02:00
|
|
|
#define MESHTASTIC_EXCLUDE_I2C 1
|
2024-08-10 13:45:41 -05:00
|
|
|
#define MESHTASTIC_EXCLUDE_PKI 1
|
2024-08-06 18:48:55 -05:00
|
|
|
#define MESHTASTIC_EXCLUDE_POWER_FSM 1
|
2024-08-09 00:52:31 -05:00
|
|
|
#define MESHTASTIC_EXCLUDE_TZ 1
|
2024-03-25 05:33:57 -06:00
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
// Turn off all optional modules
|
2024-03-05 14:50:52 +01:00
|
|
|
#ifdef MESHTASTIC_EXCLUDE_MODULES
|
|
|
|
|
#define MESHTASTIC_EXCLUDE_AUDIO 1
|
|
|
|
|
#define MESHTASTIC_EXCLUDE_DETECTIONSENSOR 1
|
|
|
|
|
#define MESHTASTIC_EXCLUDE_ENVIRONMENTAL_SENSOR 1
|
2024-12-27 15:49:24 -06:00
|
|
|
#define MESHTASTIC_EXCLUDE_HEALTH_TELEMETRY 1
|
2024-03-05 14:50:52 +01:00
|
|
|
#define MESHTASTIC_EXCLUDE_EXTERNALNOTIFICATION 1
|
|
|
|
|
#define MESHTASTIC_EXCLUDE_PAXCOUNTER 1
|
|
|
|
|
#define MESHTASTIC_EXCLUDE_POWER_TELEMETRY 1
|
|
|
|
|
#define MESHTASTIC_EXCLUDE_RANGETEST 1
|
|
|
|
|
#define MESHTASTIC_EXCLUDE_REMOTEHARDWARE 1
|
|
|
|
|
#define MESHTASTIC_EXCLUDE_STOREFORWARD 1
|
2024-08-06 18:48:55 -05:00
|
|
|
#define MESHTASTIC_EXCLUDE_TEXTMESSAGE 1
|
2024-03-05 14:50:52 +01:00
|
|
|
#define MESHTASTIC_EXCLUDE_ATAK 1
|
|
|
|
|
#define MESHTASTIC_EXCLUDE_CANNEDMESSAGES 1
|
|
|
|
|
#define MESHTASTIC_EXCLUDE_NEIGHBORINFO 1
|
|
|
|
|
#define MESHTASTIC_EXCLUDE_TRACEROUTE 1
|
|
|
|
|
#define MESHTASTIC_EXCLUDE_WAYPOINT 1
|
2024-03-11 13:52:46 +01:00
|
|
|
#define MESHTASTIC_EXCLUDE_INPUTBROKER 1
|
|
|
|
|
#define MESHTASTIC_EXCLUDE_SERIAL 1
|
2024-07-03 16:02:20 -07:00
|
|
|
#define MESHTASTIC_EXCLUDE_POWERSTRESS 1
|
2024-08-17 11:06:00 -05:00
|
|
|
#define MESHTASTIC_EXCLUDE_ADMIN 1
|
2024-03-05 14:50:52 +01:00
|
|
|
#endif
|
2024-03-25 05:33:57 -06:00
|
|
|
|
|
|
|
|
// // Turn off wifi even if HW supports wifi (webserver relies on wifi and is also disabled)
|
|
|
|
|
#ifdef MESHTASTIC_EXCLUDE_WIFI
|
|
|
|
|
#define MESHTASTIC_EXCLUDE_WEBSERVER 1
|
|
|
|
|
#undef HAS_WIFI
|
|
|
|
|
#define HAS_WIFI 0
|
|
|
|
|
#endif
|
|
|
|
|
|
2024-07-03 15:39:09 -07:00
|
|
|
// Allow code that needs internet to just check HAS_NETWORKING rather than HAS_WIFI || HAS_ETHERNET
|
|
|
|
|
#define HAS_NETWORKING (HAS_WIFI || HAS_ETHERNET)
|
|
|
|
|
|
2024-03-25 05:33:57 -06:00
|
|
|
// // Turn off Bluetooth
|
|
|
|
|
#ifdef MESHTASTIC_EXCLUDE_BLUETOOTH
|
|
|
|
|
#undef HAS_BLUETOOTH
|
|
|
|
|
#define HAS_BLUETOOTH 0
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
// // Turn off GPS
|
|
|
|
|
#ifdef MESHTASTIC_EXCLUDE_GPS
|
|
|
|
|
#undef HAS_GPS
|
|
|
|
|
#define HAS_GPS 0
|
|
|
|
|
#undef MESHTASTIC_EXCLUDE_RANGETEST
|
|
|
|
|
#define MESHTASTIC_EXCLUDE_RANGETEST 1
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
// Turn off Screen
|
|
|
|
|
#ifdef MESHTASTIC_EXCLUDE_SCREEN
|
|
|
|
|
#undef HAS_SCREEN
|
|
|
|
|
#define HAS_SCREEN 0
|
2024-07-03 15:39:09 -07:00
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#include "DebugConfiguration.h"
|
2025-03-26 15:18:21 +01:00
|
|
|
#include "RF95Configuration.h"
|