Merge branch 'master' into basicui-updates

This commit is contained in:
Ben Meadors 2025-02-10 05:58:40 -06:00 committed by GitHub
commit fe9c9dbfee
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 71 additions and 40 deletions

5
debian/changelog vendored
View File

@ -1,8 +1,9 @@
meshtasticd (2.5.21.0) UNRELEASED; urgency=medium meshtasticd (2.5.22.0) UNRELEASED; urgency=medium
* Initial packaging * Initial packaging
* GitHub Actions Automatic version bump * GitHub Actions Automatic version bump
* GitHub Actions Automatic version bump * GitHub Actions Automatic version bump
* GitHub Actions Automatic version bump * GitHub Actions Automatic version bump
* GitHub Actions Automatic version bump
-- Austin Lane <github-actions[bot]@users.noreply.github.com> Sat, 25 Jan 2025 01:39:16 +0000 -- Austin Lane <github-actions[bot]@users.noreply.github.com> Wed, 05 Feb 2025 01:10:33 +0000

View File

@ -11,7 +11,7 @@ platformio pkg install -e native -t platformio/tool-scons@4.40502.0
tar -cf pio.tar pio/ tar -cf pio.tar pio/
rm -rf pio rm -rf pio
# Download the latest meshtastic/web release build.tar to `web.tar` # Download the latest meshtastic/web release build.tar to `web.tar`
curl -L https://github.com/meshtastic/web/releases/download/latest/build.tar -o web.tar curl -L https://github.com/meshtastic/web/releases/latest/download/build.tar -o web.tar
package=$(dpkg-parsechangelog --show-field Source) package=$(dpkg-parsechangelog --show-field Source)

View File

@ -21,7 +21,7 @@ Summary: Meshtastic daemon for communicating with Meshtastic devices
License: GPL-3.0 License: GPL-3.0
URL: https://github.com/meshtastic/firmware URL: https://github.com/meshtastic/firmware
Source0: {{{ git_dir_pack }}} Source0: {{{ git_dir_pack }}}
Source1: https://github.com/meshtastic/web/releases/download/latest/build.tar Source1: https://github.com/meshtastic/web/releases/latest/download/build.tar
BuildRequires: systemd-rpm-macros BuildRequires: systemd-rpm-macros
BuildRequires: python3-devel BuildRequires: python3-devel

View File

@ -449,7 +449,22 @@ bool GPS::setup()
if (!didSerialInit) { if (!didSerialInit) {
int msglen = 0; int msglen = 0;
if (tx_gpio && gnssModel == GNSS_MODEL_UNKNOWN) { if (tx_gpio && gnssModel == GNSS_MODEL_UNKNOWN) {
#ifdef TRACKER_T1000_E
// add power up/down strategy, improve ag3335 detection success
digitalWrite(PIN_GPS_EN, LOW);
delay(500);
digitalWrite(GPS_VRTC_EN, LOW);
delay(1000);
digitalWrite(GPS_VRTC_EN, HIGH);
delay(500);
digitalWrite(PIN_GPS_EN, HIGH);
delay(1000);
#endif
#ifdef TRACKER_T1000_E
if (probeTries < 5) {
#else
if (probeTries < 2) { if (probeTries < 2) {
#endif
LOG_DEBUG("Probe for GPS at %d", serialSpeeds[speedSelect]); LOG_DEBUG("Probe for GPS at %d", serialSpeeds[speedSelect]);
gnssModel = probe(serialSpeeds[speedSelect]); gnssModel = probe(serialSpeeds[speedSelect]);
if (gnssModel == GNSS_MODEL_UNKNOWN) { if (gnssModel == GNSS_MODEL_UNKNOWN) {
@ -460,7 +475,11 @@ bool GPS::setup()
} }
} }
// Rare Serial Speeds // Rare Serial Speeds
#ifdef TRACKER_T1000_E
if (probeTries == 5) {
#else
if (probeTries == 2) { if (probeTries == 2) {
#endif
LOG_DEBUG("Probe for GPS at %d", rareSerialSpeeds[speedSelect]); LOG_DEBUG("Probe for GPS at %d", rareSerialSpeeds[speedSelect]);
gnssModel = probe(rareSerialSpeeds[speedSelect]); gnssModel = probe(rareSerialSpeeds[speedSelect]);
if (gnssModel == GNSS_MODEL_UNKNOWN) { if (gnssModel == GNSS_MODEL_UNKNOWN) {
@ -772,6 +791,9 @@ void GPS::setPowerState(GPSPowerState newState, uint32_t sleepTime)
setPowerPMU(true); // Power (PMU): on setPowerPMU(true); // Power (PMU): on
writePinStandby(false); // Standby (pin): awake (not standby) writePinStandby(false); // Standby (pin): awake (not standby)
setPowerUBLOX(true); // Standby (UBLOX): awake setPowerUBLOX(true); // Standby (UBLOX): awake
#ifdef GNSS_AIROHA
lastFixStartMsec = 0;
#endif
break; break;
case GPS_SOFTSLEEP: case GPS_SOFTSLEEP:

View File

@ -74,7 +74,7 @@ bool CryptoEngine::encryptCurve25519(uint32_t toNode, uint32_t fromNode, meshtas
auth = bytesOut + numBytes; auth = bytesOut + numBytes;
memcpy((uint8_t *)(auth + 8), &extraNonceTmp, memcpy((uint8_t *)(auth + 8), &extraNonceTmp,
sizeof(uint32_t)); // do not use dereference on potential non aligned pointers : *extraNonce = extraNonceTmp; sizeof(uint32_t)); // do not use dereference on potential non aligned pointers : *extraNonce = extraNonceTmp;
LOG_INFO("Random nonce value: %d", extraNonceTmp); LOG_DEBUG("Random nonce value: %d", extraNonceTmp);
if (remotePublic.size == 0) { if (remotePublic.size == 0) {
LOG_DEBUG("Node %d or their public_key not found", toNode); LOG_DEBUG("Node %d or their public_key not found", toNode);
return false; return false;

View File

@ -407,7 +407,7 @@ bool NodeDB::resetRadioConfig(bool factory_reset)
rebootAtMsec = millis() + (5 * 1000); rebootAtMsec = millis() + (5 * 1000);
} }
#if (defined(T_DECK) || defined(T_WATCH_S3) || defined(UNPHONE) || defined(PICOMPUTER_S3)) && defined(HAS_TFT) #if (defined(T_DECK) || defined(T_WATCH_S3) || defined(UNPHONE) || defined(PICOMPUTER_S3)) && HAS_TFT
// as long as PhoneAPI shares BT and TFT app switch BT off // as long as PhoneAPI shares BT and TFT app switch BT off
config.bluetooth.enabled = false; config.bluetooth.enabled = false;
if (moduleConfig.external_notification.nag_timeout == 60) if (moduleConfig.external_notification.nag_timeout == 60)
@ -1528,4 +1528,4 @@ void recordCriticalError(meshtastic_CriticalErrorCode code, uint32_t address, co
LOG_ERROR("A critical failure occurred, portduino is exiting"); LOG_ERROR("A critical failure occurred, portduino is exiting");
exit(2); exit(2);
#endif #endif
} }

View File

@ -850,18 +850,26 @@ std::string JSONValue::StringifyString(const std::string &str)
str_out += "\\r"; str_out += "\\r";
} else if (chr == '\t') { } else if (chr == '\t') {
str_out += "\\t"; str_out += "\\t";
} else if (chr < ' ' || chr > 126) { } else if (chr < 0x20 || chr == 0x7F) {
str_out += "\\u"; char buf[7];
for (int i = 0; i < 4; i++) { snprintf(buf, sizeof(buf), "\\u%04x", chr);
int value = (chr >> 12) & 0xf; str_out += buf;
if (value >= 0 && value <= 9) } else if (chr < 0x80) {
str_out += (char)('0' + value); str_out += chr;
else if (value >= 10 && value <= 15)
str_out += (char)('A' + (value - 10));
chr <<= 4;
}
} else { } else {
str_out += chr; str_out += chr;
size_t remain = str.end() - iter - 1;
if ((chr & 0xE0) == 0xC0 && remain >= 1) {
++iter;
str_out += *iter;
} else if ((chr & 0xF0) == 0xE0 && remain >= 2) {
str_out += *(++iter);
str_out += *(++iter);
} else if ((chr & 0xF8) == 0xF0 && remain >= 3) {
str_out += *(++iter);
str_out += *(++iter);
str_out += *(++iter);
}
} }
++iter; ++iter;

View File

@ -31,7 +31,7 @@ Also worth noting that the Seeed WIO SX1262 in particular only has RXEN exposed
| NiceRF | Lora1262 | yes | Int | | | NiceRF | Lora1262 | yes | Int | |
| Waveshare | Core1262-HF | yes | Ext | | | Waveshare | Core1262-HF | yes | Ext | |
| Waveshare | LoRa Node Module | yes | Int | | | Waveshare | LoRa Node Module | yes | Int | |
| Seeed | Wio-SX1262 | yes | Int | Sooooo cute! | | Seeed | Wio-SX1262 | yes | Ext | Cute! DIO2/TXEN are not exposed |
| AI-Thinker | RA-02 | No | Int | SX1278 **433mhz band only** | | AI-Thinker | RA-02 | No | Int | SX1278 **433mhz band only** |
| RF Solutions | RFM95 | No | Int | Untested | | RF Solutions | RFM95 | No | Int | Untested |
| Ebyte | E80-900M2213S | Yes | Int | LR1121 radio | | Ebyte | E80-900M2213S | Yes | Int | LR1121 radio |

View File

@ -22,26 +22,26 @@ extern "C" {
/* /*
NRF52 PRO MICRO PIN ASSIGNMENT NRF52 PRO MICRO PIN ASSIGNMENT
| Pin   | Function   |   | Pin     | Function     | RF95 | | Pin   | Function   |   | Pin     | Function     | RF95 |
| ----- | ----------- | --- | -------- | ------------ | ----- | | ----- | ----------- | --- | -------- | ------------ | ----- |
| Gnd   |             |   | vbat     |             | | | Gnd   |             |   | vbat     |             | |
| P0.06 | Serial2 RX |   | vbat     |             | | | P0.06 | Serial2 RX |   | vbat     |             | |
| P0.08 | Serial2 TX |   | Gnd     |             | | | P0.08 | Serial2 TX |   | Gnd     |             | |
| Gnd   |             |   | reset   |             | | | Gnd   |             |   | reset   |             | |
| Gnd   |             |   | ext_vcc | *see 0.13   | | | Gnd   |             |   | ext_vcc | *see 0.13   | |
| P0.17 | RXEN       |   | P0.31   | BATTERY_PIN | | | P0.17 | RXEN       |   | P0.31   | BATTERY_PIN | |
| P0.20 | GPS_RX     |   | P0.29   | BUSY         | DIO0 | | P0.20 | GPS_RX     |   | P0.29   | BUSY         | DIO0 |
| P0.22 | GPS_TX     |   | P0.02   | MISO | MISO | | P0.22 | GPS_TX     |   | P0.02   | MISO | MISO |
| P0.24 | GPS_EN     |   | P1.15   | MOSI         | MOSI | | P0.24 | GPS_EN     |   | P1.15   | MOSI         | MOSI |
| P1.00 | BUTTON_PIN |   | P1.13   | CS           | CS   | | P1.00 | BUTTON_PIN |   | P1.13   | CS           | CS   |
| P0.11 | SCL         |   | P1.11   | SCK         | SCK | | P0.11 | SCL         |   | P1.11   | SCK         | SCK |
| P1.04 | SDA         |   | P0.10   | DIO1/IRQ     | DIO1 | | P1.04 | SDA         |   | P0.10   | DIO1/IRQ     | DIO1 |
| P1.06 | Free pin   |   | P0.09   | RESET       | RST | | P1.06 | Free pin   |   | P0.09   | RESET       | RST |
|       |             |   |         |             | | |       |             |   |         |             | |
|       | Mid board   |   |         | Internal     | | |       | Mid board   |   |         | Internal     | |
| P1.01 | Free pin   |   | 0.15     | LED         | | | P1.01 | Free pin   |   | 0.15     | LED         | |
| P1.02 | Free pin   |   | 0.13     | 3V3_EN       | | | P1.02 | Free pin   |   | 0.13     | 3V3_EN       | |
| P1.07 | Free pin   |   |         |             | | | P1.07 | Free pin   |   |         |             | |
*/ */
// Number of pins defined in PinDescription array // Number of pins defined in PinDescription array
@ -175,7 +175,7 @@ settings.
| NiceRF | Lora1262 | yes | Int | | | NiceRF | Lora1262 | yes | Int | |
| Waveshare | Core1262-HF | yes | Ext | | | Waveshare | Core1262-HF | yes | Ext | |
| Waveshare | LoRa Node Module | yes | Int | | | Waveshare | LoRa Node Module | yes | Int | |
| Seeed | Wio-SX1262 | yes | Int | Sooooo cute! | | Seeed | Wio-SX1262 | yes | Ext | Cute! DIO2/TXEN are not exposed |
| AI-Thinker | RA-02 | No | Int | SX1278 **433mhz band only** | | AI-Thinker | RA-02 | No | Int | SX1278 **433mhz band only** |
| RF Solutions | RFM95 | No | Int | Untested | | RF Solutions | RFM95 | No | Int | Untested |
| Ebyte | E80-900M2213S | Yes | Int | LR1121 radio | | Ebyte | E80-900M2213S | Yes | Int | LR1121 radio |

View File

@ -55,7 +55,7 @@ extern "C" {
#define BUTTON_PIN (0 + 6) // P0.06 #define BUTTON_PIN (0 + 6) // P0.06
#define BUTTON_ACTIVE_LOW false #define BUTTON_ACTIVE_LOW false
#define BUTTON_ACTIVE_PULLUP false #define BUTTON_ACTIVE_PULLUP false
#define BUTTON_SENSE_TYPE 0x6 #define BUTTON_SENSE_TYPE 0x5 // enable input pull-down
#define HAS_WIRE 1 #define HAS_WIRE 1

View File

@ -1,4 +1,4 @@
[VERSION] [VERSION]
major = 2 major = 2
minor = 5 minor = 5
build = 21 build = 22