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