diff --git a/platformio.ini b/platformio.ini
index 0021350dd..618c7cddb 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -50,7 +50,7 @@ lib_deps =
https://github.com/meshtastic/esp8266-oled-ssd1306.git#53580644255b48ebb7a737343c6b4e71c7e11cf2 ; ESP8266_SSD1306
mathertel/OneButton@^2.0.3 ; OneButton library for non-blocking button debounce
https://github.com/meshtastic/arduino-fsm.git#7db3702bf0cfe97b783d6c72595e3f38e0b19159
- https://github.com/meshtastic/TinyGPSPlus.git#2f0d0528d737000043e949f4c3bdfb623cf0b902
+ https://github.com/meshtastic/TinyGPSPlus.git#127ad674ef85f0201cb68a065879653ed94792c4
https://github.com/meshtastic/ArduinoThread.git#72921ac222eed6f526ba1682023cee290d9aa1b3
nanopb/Nanopb@^0.4.6
erriez/ErriezCRC32@^1.0.1
@@ -69,6 +69,7 @@ lib_deps =
${env.lib_deps}
; Portduino is using meshtastic fork for now
jgromes/RadioLib@5.4.1
+ mprograms/QMC5883LCompass@^1.1.1
https://github.com/meshtastic/SparkFun_ATECCX08a_Arduino_Library.git#52b5282639d08a8cbd4b748363089eed6102dc76
build_flags = ${env.build_flags} -Os
diff --git a/src/configuration.h b/src/configuration.h
index 4b157611d..e68bd8d16 100644
--- a/src/configuration.h
+++ b/src/configuration.h
@@ -110,6 +110,7 @@ along with this program. If not, see .
#define INA_ADDR_ALTERNATE 0x41
#define QMC6310_ADDR 0x1C
#define QMI8658_ADDR 0x6B
+#define QMC5883L_ADDR 0x1E
#define SHTC3_ADDR 0x70
#define LPS22HB_ADDR 0x5C
#define LPS22HB_ADDR_ALT 0x5D
diff --git a/src/detect/i2cScan.h b/src/detect/i2cScan.h
index 6fc9d67d3..19e405133 100644
--- a/src/detect/i2cScan.h
+++ b/src/detect/i2cScan.h
@@ -90,7 +90,7 @@ uint8_t oled_probe(byte addr)
return o_probe;
}
-void scanI2Cdevice(void)
+void scanI2Cdevice()
{
byte err, addr;
uint16_t registerValue = 0x00;
@@ -106,16 +106,16 @@ void scanI2Cdevice(void)
if (addr == SSD1306_ADDRESS) {
screen_found = addr;
screen_model = oled_probe(addr);
- if (screen_model == 1){
+ if (screen_model == 1) {
DEBUG_MSG("ssd1306 display found\n");
- } else if (screen_model == 2){
+ } else if (screen_model == 2) {
DEBUG_MSG("sh1106 display found\n");
} else {
DEBUG_MSG("unknown display found\n");
}
}
#ifndef ARCH_PORTDUINO
- if (addr == ATECC608B_ADDR){
+ if (addr == ATECC608B_ADDR) {
keystore_found = addr;
if (atecc.begin(keystore_found) == true) {
DEBUG_MSG("ATECC608B initialized\n");
@@ -163,50 +163,56 @@ void scanI2Cdevice(void)
DEBUG_MSG("axp192/axp2101 PMU found\n");
}
#endif
- if (addr == BME_ADDR || addr == BME_ADDR_ALTERNATE) {
- registerValue = getRegisterValue(addr, 0xD0, 1); // GET_ID
- if (registerValue == 0x61) {
- DEBUG_MSG("BME-680 sensor found at address 0x%x\n", (uint8_t)addr);
- nodeTelemetrySensorsMap[TelemetrySensorType_BME680] = addr;
- } else if (registerValue == 0x60) {
- DEBUG_MSG("BME-280 sensor found at address 0x%x\n", (uint8_t)addr);
- nodeTelemetrySensorsMap[TelemetrySensorType_BME280] = addr;
- } else {
- DEBUG_MSG("BMP-280 sensor found at address 0x%x\n", (uint8_t)addr);
- nodeTelemetrySensorsMap[TelemetrySensorType_BMP280] = addr;
+ if (addr == BME_ADDR || addr == BME_ADDR_ALTERNATE) {
+ registerValue = getRegisterValue(addr, 0xD0, 1); // GET_ID
+ if (registerValue == 0x61) {
+ DEBUG_MSG("BME-680 sensor found at address 0x%x\n", (uint8_t)addr);
+ nodeTelemetrySensorsMap[TelemetrySensorType_BME680] = addr;
+ } else if (registerValue == 0x60) {
+ DEBUG_MSG("BME-280 sensor found at address 0x%x\n", (uint8_t)addr);
+ nodeTelemetrySensorsMap[TelemetrySensorType_BME280] = addr;
+ } else {
+ DEBUG_MSG("BMP-280 sensor found at address 0x%x\n", (uint8_t)addr);
+ nodeTelemetrySensorsMap[TelemetrySensorType_BMP280] = addr;
+ }
}
- }
- if (addr == INA_ADDR || addr == INA_ADDR_ALTERNATE) {
- registerValue = getRegisterValue(addr, 0xFE, 2);
- DEBUG_MSG("Register MFG_UID: 0x%x\n", registerValue);
- if (registerValue == 0x5449) {
- DEBUG_MSG("INA260 sensor found at address 0x%x\n", (uint8_t)addr);
- nodeTelemetrySensorsMap[TelemetrySensorType_INA260] = addr;
- } else { // Assume INA219 if INA260 ID is not found
- DEBUG_MSG("INA219 sensor found at address 0x%x\n", (uint8_t)addr);
- nodeTelemetrySensorsMap[TelemetrySensorType_INA219] = addr;
+ if (addr == INA_ADDR || addr == INA_ADDR_ALTERNATE) {
+ registerValue = getRegisterValue(addr, 0xFE, 2);
+ DEBUG_MSG("Register MFG_UID: 0x%x\n", registerValue);
+ if (registerValue == 0x5449) {
+ DEBUG_MSG("INA260 sensor found at address 0x%x\n", (uint8_t)addr);
+ nodeTelemetrySensorsMap[TelemetrySensorType_INA260] = addr;
+ } else { // Assume INA219 if INA260 ID is not found
+ DEBUG_MSG("INA219 sensor found at address 0x%x\n", (uint8_t)addr);
+ nodeTelemetrySensorsMap[TelemetrySensorType_INA219] = addr;
+ }
+ }
+ if (addr == MCP9808_ADDR) {
+ nodeTelemetrySensorsMap[TelemetrySensorType_MCP9808] = addr;
+ DEBUG_MSG("MCP9808 sensor found\n");
+ }
+ if (addr == SHTC3_ADDR) {
+ DEBUG_MSG("SHTC3 sensor found\n");
+ nodeTelemetrySensorsMap[TelemetrySensorType_SHTC3] = addr;
+ }
+ if (addr == LPS22HB_ADDR || addr == LPS22HB_ADDR_ALT) {
+ DEBUG_MSG("LPS22HB sensor found\n");
+ nodeTelemetrySensorsMap[TelemetrySensorType_LPS22] = addr;
+ }
+
+ // High rate sensors, will be processed internally
+ if (addr == QMC6310_ADDR) {
+ DEBUG_MSG("QMC6310 Highrate 3-Axis magnetic sensor found\n");
+ nodeTelemetrySensorsMap[TelemetrySensorType_QMC6310] = addr;
+ }
+ if (addr == QMI8658_ADDR) {
+ DEBUG_MSG("QMI8658 Highrate 6-Axis inertial measurement sensor found\n");
+ nodeTelemetrySensorsMap[TelemetrySensorType_QMI8658] = addr;
+ }
+ if (addr == QMC5883L_ADDR) {
+ DEBUG_MSG("QMC5883L Highrate 3-Axis magnetic sensor found\n");
+ nodeTelemetrySensorsMap[TelemetrySensorType_QMC5883L] = addr;
}
- }
- if (addr == MCP9808_ADDR) {
- nodeTelemetrySensorsMap[TelemetrySensorType_MCP9808] = addr;
- DEBUG_MSG("MCP9808 sensor found at address 0x%x\n", (uint8_t)addr);
- }
- if (addr == QMC6310_ADDR) {
- DEBUG_MSG("QMC6310 3-Axis magnetic sensor found at address 0x%x\n", (uint8_t)addr);
- nodeTelemetrySensorsMap[TelemetrySensorType_QMC6310] = addr;
- }
- if (addr == QMI8658_ADDR) {
- DEBUG_MSG("QMI8658 6-Axis inertial measurement sensor found at address 0x%x\n", (uint8_t)addr);
- nodeTelemetrySensorsMap[TelemetrySensorType_QMI8658] = addr;
- }
- if (addr == SHTC3_ADDR) {
- DEBUG_MSG("SHTC3 sensor found at address 0x%x\n", (uint8_t)addr);
- nodeTelemetrySensorsMap[TelemetrySensorType_SHTC3] = addr;
- }
- if (addr == LPS22HB_ADDR || addr == LPS22HB_ADDR_ALT) {
- DEBUG_MSG("LPS22HB sensor found at address 0x%x\n", (uint8_t)addr);
- nodeTelemetrySensorsMap[TelemetrySensorType_LPS22] = addr;
- }
} else if (err == 4) {
DEBUG_MSG("Unknow error at address 0x%x\n", addr);
}
@@ -218,5 +224,5 @@ void scanI2Cdevice(void)
DEBUG_MSG("%i I2C devices found\n",nDevices);
}
#else
-void scanI2Cdevice(void) {}
+void scanI2Cdevice() {}
#endif
diff --git a/src/gps/NMEAWPL.cpp b/src/gps/NMEAWPL.cpp
index 222a2d04c..70812e87b 100644
--- a/src/gps/NMEAWPL.cpp
+++ b/src/gps/NMEAWPL.cpp
@@ -1,4 +1,5 @@
#include "NMEAWPL.h"
+#include "GeoCoord.h"
/* -------------------------------------------
* 1 2 3 4 5 6
@@ -17,7 +18,15 @@
uint32_t printWPL(char *buf, const Position &pos, const char *name)
{
- uint32_t len = sprintf(buf, "$GNWPL,%07.2f,%c,%08.2f,%c,%s", pos.latitude_i * 1e-5, pos.latitude_i < 0 ? 'S' : 'N', pos.longitude_i * 1e-5, pos.longitude_i < 0 ? 'W' : 'E', name);
+ GeoCoord geoCoord(pos.latitude_i,pos.longitude_i,pos.altitude);
+ uint32_t len = sprintf(buf, "$GNWPL,%02d%07.4f,%c,%03d%07.4f,%c,%s",
+ geoCoord.getDMSLatDeg(),
+ (abs(geoCoord.getLatitude()) - geoCoord.getDMSLatDeg() * 1e+7) * 6e-6,
+ geoCoord.getDMSLatCP(),
+ geoCoord.getDMSLonDeg(),
+ (abs(geoCoord.getLongitude()) - geoCoord.getDMSLonDeg() * 1e+7) * 6e-6,
+ geoCoord.getDMSLonCP(),
+ name);
uint32_t chk = 0;
for (uint32_t i = 1; i < len; i++) {
chk ^= buf[i];
@@ -52,15 +61,20 @@ uint32_t printWPL(char *buf, const Position &pos, const char *name)
uint32_t printGGA(char *buf, const Position &pos)
{
- uint32_t len = sprintf(buf, "$GNGGA,%06u.%03u,%07.2f,%c,%08.2f,%c,%u,%02u,%04u,%04d,%c,%04d,%c,%d,%04d",
+ GeoCoord geoCoord(pos.latitude_i,pos.longitude_i,pos.altitude);
+ uint32_t len = sprintf(buf, "$GNGGA,%06u.%03u,%02d%07.4f,%c,%03d%07.4f,%c,%u,%02u,%04u,%04d,%c,%04d,%c,%d,%04d",
pos.time / 1000,
pos.time % 1000,
- pos.latitude_i * 1e-5, pos.latitude_i < 0 ? 'S' : 'N',
- pos.longitude_i * 1e-5, pos.longitude_i < 0 ? 'W' : 'E',
+ geoCoord.getDMSLatDeg(),
+ (abs(geoCoord.getLatitude()) - geoCoord.getDMSLatDeg() * 1e+7) * 6e-6,
+ geoCoord.getDMSLatCP(),
+ geoCoord.getDMSLonDeg(),
+ (abs(geoCoord.getLongitude()) - geoCoord.getDMSLonDeg() * 1e+7) * 6e-6,
+ geoCoord.getDMSLonCP(),
pos.fix_type,
pos.sats_in_view,
pos.HDOP,
- pos.altitude,
+ geoCoord.getAltitude(),
'M',
pos.altitude_geoidal_separation,
'M',
@@ -73,4 +87,4 @@ uint32_t printGGA(char *buf, const Position &pos)
}
len += sprintf(buf + len, "*%02X\r\n", chk);
return len;
-}
+}
\ No newline at end of file
diff --git a/src/graphics/Screen.cpp b/src/graphics/Screen.cpp
index d6e90c6f9..277127d53 100644
--- a/src/graphics/Screen.cpp
+++ b/src/graphics/Screen.cpp
@@ -538,9 +538,10 @@ static void drawGPScoordinates(OLEDDisplay *display, int16_t x, int16_t y, const
display->drawString(x + (SCREEN_WIDTH - (display->getStringWidth(displayLine))) / 2, y, displayLine);
} else {
+ geoCoord.updateCoords(int32_t(gps->getLatitude()), int32_t(gps->getLongitude()), int32_t(gps->getAltitude()));
+
if (gpsFormat != Config_DisplayConfig_GpsCoordinateFormat_DMS) {
char coordinateLine[22];
- geoCoord.updateCoords(int32_t(gps->getLatitude()), int32_t(gps->getLongitude()), int32_t(gps->getAltitude()));
if (gpsFormat == Config_DisplayConfig_GpsCoordinateFormat_DEC) { // Decimal Degrees
sprintf(coordinateLine, "%f %f", geoCoord.getLatitude() * 1e-7, geoCoord.getLongitude() * 1e-7);
} else if (gpsFormat == Config_DisplayConfig_GpsCoordinateFormat_UTM) { // Universal Transverse Mercator
diff --git a/src/main.cpp b/src/main.cpp
index 0f7761b10..f83909869 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -87,8 +87,6 @@ uint8_t kb_model;
// The I2C address of the RTC Module (if found)
uint8_t rtc_found;
-bool rIf_wide_lora = false;
-
// Keystore Chips
uint8_t keystore_found;
#ifndef ARCH_PORTDUINO
@@ -102,7 +100,7 @@ uint32_t serialSinceMsec;
bool pmu_found;
// Array map of sensor types (as array index) and i2c address as value we'll find in the i2c scan
-uint8_t nodeTelemetrySensorsMap[TelemetrySensorType_QMI8658+1] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+uint8_t nodeTelemetrySensorsMap[_TelemetrySensorType_MAX + 1] = { 0 }; // one is enough, missing elements will be initialized to 0 anyway.
Router *router = NULL; // Users of router don't care what sort of subclass implements that API
@@ -305,14 +303,7 @@ void setup()
nodeDB.init();
playStartMelody();
-
-
- /*
- * Repeat the scanning for I2C devices after power initialization or look for 'latecomers'.
- * Boards with an PMU need to be powered on to correctly scan to the device address, such as t-beam-s3-core
- */
- // scanI2Cdevice();
-
+
// fixed screen override?
if (config.display.oled != Config_DisplayConfig_OledType_OLED_AUTO)
screen_model = config.display.oled;
@@ -404,7 +395,6 @@ void setup()
rIf = NULL;
} else {
DEBUG_MSG("SX1280 Radio init succeeded, using SX1280 radio\n");
- rIf_wide_lora = true;
}
}
#endif
diff --git a/src/main.h b/src/main.h
index bd24dec76..b7b41c250 100644
--- a/src/main.h
+++ b/src/main.h
@@ -17,7 +17,6 @@ extern uint8_t kb_model;
extern uint8_t rtc_found;
extern uint8_t keystore_found;
-extern bool rIf_wide_lora;
extern bool eink_found;
extern bool pmu_found;
extern bool isCharging;
@@ -27,7 +26,7 @@ extern bool isUSBPowered;
extern ATECCX08A atecc;
#endif
-extern uint8_t nodeTelemetrySensorsMap[TelemetrySensorType_QMI8658+1];
+extern uint8_t nodeTelemetrySensorsMap[_TelemetrySensorType_MAX + 1];
extern int TCPPort; // set by Portduino
diff --git a/src/mesh/RadioInterface.cpp b/src/mesh/RadioInterface.cpp
index 832877dbd..0c68b59a2 100644
--- a/src/mesh/RadioInterface.cpp
+++ b/src/mesh/RadioInterface.cpp
@@ -365,37 +365,37 @@ void RadioInterface::applyModemConfig()
switch (loraConfig.modem_preset) {
case Config_LoRaConfig_ModemPreset_SHORT_FAST:
- bw = (myRegion->wideLora && rIf_wide_lora) ? 800 : 250;
+ bw = (myRegion->wideLora) ? 812.5 : 250;
cr = 8;
sf = 7;
break;
case Config_LoRaConfig_ModemPreset_SHORT_SLOW:
- bw = (myRegion->wideLora && rIf_wide_lora) ? 800 : 250;
+ bw = (myRegion->wideLora) ? 812.5 : 250;
cr = 8;
sf = 8;
break;
case Config_LoRaConfig_ModemPreset_MEDIUM_FAST:
- bw = (myRegion->wideLora && rIf_wide_lora) ? 800 : 250;
+ bw = (myRegion->wideLora) ? 812.5 : 250;
cr = 8;
sf = 9;
break;
case Config_LoRaConfig_ModemPreset_MEDIUM_SLOW:
- bw = (myRegion->wideLora && rIf_wide_lora) ? 800 : 250;
+ bw = (myRegion->wideLora) ? 812.5 : 250;
cr = 8;
sf = 10;
break;
case Config_LoRaConfig_ModemPreset_LONG_FAST:
- bw = (myRegion->wideLora && rIf_wide_lora) ? 800 : 250;
+ bw = (myRegion->wideLora) ? 812.5 : 250;
cr = 8;
sf = 11;
break;
case Config_LoRaConfig_ModemPreset_LONG_SLOW:
- bw = (myRegion->wideLora && rIf_wide_lora) ? 400 : 125;
+ bw = (myRegion->wideLora) ? 406.25 : 125;
cr = 8;
sf = 12;
break;
case Config_LoRaConfig_ModemPreset_VERY_LONG_SLOW:
- bw = (myRegion->wideLora && rIf_wide_lora) ? 200 : 31.25;
+ bw = (myRegion->wideLora) ? 203.125 : 31.25;
cr = 8;
sf = 12;
break;
@@ -411,6 +411,14 @@ void RadioInterface::applyModemConfig()
bw = 31.25;
if (bw == 62) // Fix for 62.5Khz bandwidth
bw = 62.5;
+ if (bw == 200)
+ bw = 203.125;
+ if (bw == 400)
+ bw = 406.25;
+ if (bw == 800)
+ bw = 812.5;
+ if (bw == 1600)
+ bw = 1625.0;
}
power = loraConfig.tx_power;
@@ -443,7 +451,7 @@ void RadioInterface::applyModemConfig()
DEBUG_MSG("Set radio: region=%s, name=%s, config=%u, ch=%d, power=%d\n", myRegion->name, channelName, loraConfig.modem_preset, channel_num, power);
DEBUG_MSG("Radio myRegion->freqStart / myRegion->freqEnd: %f -> %f (%f mhz)\n", myRegion->freqStart, myRegion->freqEnd, myRegion->freqEnd - myRegion->freqStart);
- DEBUG_MSG("Radio myRegion->numChannels: %d\n", numChannels);
+ DEBUG_MSG("Radio myRegion->numChannels: %d x %.3fkHz\n", numChannels, bw);
DEBUG_MSG("Radio channel_num: %d\n", channel_num);
DEBUG_MSG("Radio frequency: %f\n", getFreq());
DEBUG_MSG("Slot time: %u msec\n", slotTimeMsec);
diff --git a/src/mesh/SX128xInterface.cpp b/src/mesh/SX128xInterface.cpp
index 10d791847..0044ae7e5 100644
--- a/src/mesh/SX128xInterface.cpp
+++ b/src/mesh/SX128xInterface.cpp
@@ -6,7 +6,7 @@
// Particular boards might define a different max power based on what their hardware can do
#ifndef SX128X_MAX_POWER
-#define SX128X_MAX_POWER 22
+#define SX128X_MAX_POWER 13
#endif
template
@@ -61,7 +61,7 @@ bool SX128xInterface::init()
#endif
if (res == RADIOLIB_ERR_NONE)
- res = lora.setCRC(RADIOLIB_SX128X_LORA_CRC_ON);
+ res = lora.setCRC(2);
if (res == RADIOLIB_ERR_NONE)
startReceive(); // start receiving
diff --git a/src/modules/esp32/AudioModule.cpp b/src/modules/esp32/AudioModule.cpp
index 7147db43c..c37a1b2a8 100644
--- a/src/modules/esp32/AudioModule.cpp
+++ b/src/modules/esp32/AudioModule.cpp
@@ -21,8 +21,9 @@
1) Enable the module by setting audio.codec2_enabled to 1.
2) Set the pins (audio.mic_pin / audio.amp_pin) for your preferred microphone and amplifier GPIO pins.
On tbeam, recommend to use:
- audio.mic_chan 7 (GPIO 35)
- audio.amp_pin 25 (GPIO 25)
+ audio.mic_chan 6 (GPIO 34)
+ audio.amp_pin 14
+ audio.ptt_pin 39
3) Set audio.timeout to the amount of time to wait before we consider
your voice stream as "done".
4) Set audio.bitrate to the desired codec2 rate (CODEC2_3200, CODEC2_2400, CODEC2_1600, CODEC2_1400, CODEC2_1300, CODEC2_1200, CODEC2_700, CODEC2_700B)
@@ -33,8 +34,8 @@
* Will not work on NRF and the Linux device targets.
*/
-#define AMIC 7
-#define AAMP 25
+#define AMIC 6
+#define AAMP 14
#define PTT_PIN 39
#define AUDIO_MODULE_RX_BUFFER 128
diff --git a/src/modules/esp32/RangeTestModule.cpp b/src/modules/esp32/RangeTestModule.cpp
index c9713d94e..b4cd9254e 100644
--- a/src/modules/esp32/RangeTestModule.cpp
+++ b/src/modules/esp32/RangeTestModule.cpp
@@ -12,7 +12,7 @@
//#include
/*
- As a sender, I can send packets every n-seonds. These packets include an incramented PacketID.
+ As a sender, I can send packets every n seconds. These packets include an incremented PacketID.
As a receiver, I can receive packets from multiple senders. These packets can be saved to the Filesystem.
*/
@@ -36,12 +36,12 @@ int32_t RangeTestModule::runOnce()
without having to configure it from the PythonAPI or WebUI.
*/
- //moduleConfig.range_test.enabled = 1;
- //moduleConfig.range_test.sender = 30;
+ // moduleConfig.range_test.enabled = 1;
+ // moduleConfig.range_test.sender = 30;
// moduleConfig.range_test.save = 1;
// Fixed position is useful when testing indoors.
- // radioConfig.preferences.fixed_position = 1;
+ // config.position.fixed_position = 1;
uint32_t senderHeartbeat = moduleConfig.range_test.sender * 1000;
@@ -57,7 +57,8 @@ int32_t RangeTestModule::runOnce()
return (5000); // Sending first message 5 seconds after initilization.
} else {
DEBUG_MSG("Initializing Range Test Module -- Receiver\n");
- return (500);
+ return (INT32_MAX);
+ // This thread does not need to run as a receiver
}
} else {
@@ -70,8 +71,7 @@ int32_t RangeTestModule::runOnce()
DEBUG_MSG("gpsStatus->getLongitude() %d\n", gpsStatus->getLongitude());
DEBUG_MSG("gpsStatus->getHasLock() %d\n", gpsStatus->getHasLock());
DEBUG_MSG("gpsStatus->getDOP() %d\n", gpsStatus->getDOP());
- DEBUG_MSG("gpsStatus->getHasLock() %d\n", gpsStatus->getHasLock());
- DEBUG_MSG("pref.fixed_position() %d\n", config.position.fixed_position);
+ DEBUG_MSG("fixed_position() %d\n", config.position.fixed_position);
// Only send packets if the channel is less than 25% utilized.
if (airTime->channelUtilizationPercent() < 25) {
@@ -82,11 +82,11 @@ int32_t RangeTestModule::runOnce()
return (senderHeartbeat);
} else {
- // Otherwise, we're a receiver.
-
- return (500);
+ return (INT32_MAX);
+ // This thread does not need to run as a receiver
}
- // TBD
+
+
}
} else {
@@ -221,6 +221,8 @@ bool RangeTestModuleRadio::appendFile(const MeshPacket &mp)
return 0;
}
+ FSCom.mkdir("/static");
+
// If the file doesn't exist, write the header.
if (!FSCom.exists("/static/rangetest.csv")) {
//--------- Write to file
diff --git a/src/platform/esp32/main-esp32.cpp b/src/platform/esp32/main-esp32.cpp
index c5c493997..aaa4f4efe 100644
--- a/src/platform/esp32/main-esp32.cpp
+++ b/src/platform/esp32/main-esp32.cpp
@@ -43,7 +43,7 @@ void setBluetoothEnable(bool on) {
static uint32_t calibrate_one(rtc_cal_sel_t cal_clk, const char *name)
{
const uint32_t cal_count = 1000;
- const float factor = (1 << 19) * 1000.0f;
+ // const float factor = (1 << 19) * 1000.0f; unused var?
uint32_t cali_val;
for (int i = 0; i < 5; ++i) {
cali_val = rtc_clk_cal(cal_clk, cal_count);
diff --git a/variants/rak4631/platformio.ini b/variants/rak4631/platformio.ini
index 3521a43ff..e08b54dae 100644
--- a/variants/rak4631/platformio.ini
+++ b/variants/rak4631/platformio.ini
@@ -8,7 +8,7 @@ lib_deps =
${nrf52840_base.lib_deps}
${networking_base.lib_deps}
melopero/Melopero RV3028@^1.1.0
- https://github.com/meshtastic/RAK13800-W5100S.git#b680706eb8006cd62c919ac74c8af1950eb82c81
+ https://github.com/RAKWireless/RAK13800-W5100S.git#1.0.2
debug_tool = jlink
; If not set we will default to uploading over serial (first it forces bootloader entry by talking 1200bps to cdcacm)
;upload_protocol = jlink
\ No newline at end of file
diff --git a/variants/tlora_v2_1_18/variant.h b/variants/tlora_v2_1_18/variant.h
index cd693a3d2..dd94847be 100644
--- a/variants/tlora_v2_1_18/variant.h
+++ b/variants/tlora_v2_1_18/variant.h
@@ -12,20 +12,17 @@
#define I2C_SDA 21 // I2C pins for this board
#define I2C_SCL 22
-// #define RESET_OLED 16 // If defined, this pin will be used to reset the display controller. Crashes on newer ESP-IDF and not needed per schematic
-
-#define VEXT_ENABLE 21 // active low, powers the oled display and the lora antenna boost
#define LED_PIN 25 // If defined we will blink this LED
#define BUTTON_PIN 12 // If defined, this will be used for user button presses,
#define BUTTON_NEED_PULLUP
#define USE_SX1280
-#define LORA_DIO0 26 // a No connect on the SX1262 module
#define LORA_RESET 23
#define SX128X_CS 18 // FIXME - we really should define LORA_CS instead
-#define SX128X_DIO1 33
+#define SX128X_DIO1 26
+#define SX128X_DIO2 33
#define SX128X_BUSY 32
#define SX128X_RESET LORA_RESET
#define SX128X_E22 // Not really an E22 but TTGO seems to be trying to clone that