diff --git a/platformio.ini b/platformio.ini
index 5671ab513..84c0b56b4 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -35,6 +35,7 @@ build_flags = -Wno-missing-field-initializers
-Isrc -Isrc/mesh -Isrc/gps -Isrc/buzz -Wl,-Map,.pio/build/output.map
-DUSE_THREAD_NAMES
-DTINYGPS_OPTION_NO_CUSTOM_FIELDS
+ -DPB_ENABLE_MALLOC=1
monitor_speed = 921600
@@ -49,7 +50,7 @@ lib_deps =
https://github.com/meshtastic/AXP202X_Library.git#8404abb6d4b486748636bc6ad72d2a47baaf5460
Wire ; explicitly needed here because the AXP202 library forgets to add it
SPI
- https://github.com/geeksville/ArduinoThread.git#72921ac222eed6f526ba1682023cee290d9aa1b3
+ https://github.com/meshtastic/ArduinoThread.git#72921ac222eed6f526ba1682023cee290d9aa1b3
PubSubClient
nanopb/Nanopb@^0.4.6
meshtastic/json11@^1.0.2
diff --git a/src/buzz/buzz.cpp b/src/buzz/buzz.cpp
index a667df004..279c64842 100644
--- a/src/buzz/buzz.cpp
+++ b/src/buzz/buzz.cpp
@@ -1,10 +1,6 @@
#include "buzz.h"
#include "configuration.h"
-#ifdef NRF52_SERIES
-#include "variant.h"
-#endif
-
#ifndef PIN_BUZZER
// Noop methods for boards w/o buzzer
diff --git a/src/gps/RTC.cpp b/src/gps/RTC.cpp
index 335dbe37d..04e7043e5 100644
--- a/src/gps/RTC.cpp
+++ b/src/gps/RTC.cpp
@@ -120,7 +120,7 @@ bool perhapsSetRTC(RTCQuality q, const struct timeval *tv)
#endif
// nrf52 doesn't have a readable RTC (yet - software not written)
-#if defined(PORTDUINO) || !defined(NO_ESP32) || defined(RV3028_RTC)
+#if defined(PORTDUINO) || !defined(NO_ESP32) || defined(RV3028_RTC) || defined(PCF8563_RTC)
readFromRTC();
#endif
diff --git a/src/graphics/Screen.cpp b/src/graphics/Screen.cpp
index ac0378ce3..406d6639b 100644
--- a/src/graphics/Screen.cpp
+++ b/src/graphics/Screen.cpp
@@ -20,6 +20,7 @@ along with this program. If not, see .
*/
#include "configuration.h"
+#ifndef NO_SCREEN
#include
#include "GPS.h"
@@ -1665,3 +1666,4 @@ int Screen::handleUIFrameEvent(const UIFrameEvent *event)
}
} // namespace graphics
+#endif // NO_SCREEN
\ No newline at end of file
diff --git a/src/graphics/Screen.h b/src/graphics/Screen.h
index 259598b80..6d9147e79 100644
--- a/src/graphics/Screen.h
+++ b/src/graphics/Screen.h
@@ -1,6 +1,7 @@
#pragma once
#ifdef NO_SCREEN
+#include "power.h"
namespace graphics
{
// Noop class for boards without screen.
@@ -15,6 +16,8 @@ class Screen
void adjustBrightness(){}
void doDeepSleep() {}
void forceDisplay() {}
+ void startBluetoothPinScreen(uint32_t pin) {}
+ void stopBluetoothPinScreen() {}
};
}
diff --git a/src/mesh/NodeDB.cpp b/src/mesh/NodeDB.cpp
index 3546650e4..46150c906 100644
--- a/src/mesh/NodeDB.cpp
+++ b/src/mesh/NodeDB.cpp
@@ -440,7 +440,7 @@ uint32_t sinceLastSeen(const NodeInfo *n)
return delta;
}
-#define NUM_ONLINE_SECS (60 & 60 * 2) // 2 hrs to consider someone offline
+#define NUM_ONLINE_SECS (60 * 60 * 2) // 2 hrs to consider someone offline
size_t NodeDB::getNumOnlineNodes()
{
diff --git a/src/mesh/http/ContentHandler.cpp b/src/mesh/http/ContentHandler.cpp
index ba78b4ea5..1ce2c293d 100644
--- a/src/mesh/http/ContentHandler.cpp
+++ b/src/mesh/http/ContentHandler.cpp
@@ -798,7 +798,9 @@ void handleBlinkLED(HTTPRequest *req, HTTPResponse *res)
count = count - 1;
}
} else {
+#ifndef NO_SCREEN
screen->blink();
+#endif
}
Json jsonObjOuter = Json::object{{"status", "ok"}};
diff --git a/src/mesh/http/WebServer.cpp b/src/mesh/http/WebServer.cpp
index 1f376390b..271adc6c2 100644
--- a/src/mesh/http/WebServer.cpp
+++ b/src/mesh/http/WebServer.cpp
@@ -152,10 +152,11 @@ void createSSLCert()
yield();
esp_task_wdt_reset();
-
+#ifndef NO_SCREEN
if (millis() / 1000 >= 3) {
screen->setSSLFrames();
}
+#endif
}
runLoop = false;
} else {
diff --git a/src/modules/CannedMessageModule.cpp b/src/modules/CannedMessageModule.cpp
index aa52cf6cd..d526f5712 100644
--- a/src/modules/CannedMessageModule.cpp
+++ b/src/modules/CannedMessageModule.cpp
@@ -1,4 +1,5 @@
#include "configuration.h"
+#ifndef NO_SCREEN
#include "CannedMessageModule.h"
#include "PowerFSM.h" // neede for button bypass
#include "MeshService.h"
@@ -548,3 +549,4 @@ void CannedMessageModule::handleSetCannedMessageModulePart4(const char *from_msg
this->saveProtoForModule();
}
}
+#endif
\ No newline at end of file
diff --git a/src/modules/CannedMessageModule.h b/src/modules/CannedMessageModule.h
index 9a755c54e..f393882d5 100644
--- a/src/modules/CannedMessageModule.h
+++ b/src/modules/CannedMessageModule.h
@@ -1,4 +1,6 @@
#pragma once
+#ifdef NO_SCREEN
+#else
#include "ProtobufModule.h"
#include "input/InputBroker.h"
@@ -84,3 +86,4 @@ class CannedMessageModule :
};
extern CannedMessageModule *cannedMessageModule;
+#endif
\ No newline at end of file
diff --git a/src/modules/Modules.cpp b/src/modules/Modules.cpp
index 0221418e6..2d308ca43 100644
--- a/src/modules/Modules.cpp
+++ b/src/modules/Modules.cpp
@@ -47,7 +47,9 @@ void setupModules()
cardKbI2cImpl->init();
facesKbI2cImpl = new FacesKbI2cImpl();
facesKbI2cImpl->init();
+#ifndef NO_SCREEN
cannedMessageModule = new CannedMessageModule();
+#endif
#ifndef PORTDUINO
new DeviceTelemetryModule();
new EnvironmentTelemetryModule();
diff --git a/src/modules/Telemetry/EnvironmentTelemetry.h b/src/modules/Telemetry/EnvironmentTelemetry.h
index 48360312f..9f1551d92 100644
--- a/src/modules/Telemetry/EnvironmentTelemetry.h
+++ b/src/modules/Telemetry/EnvironmentTelemetry.h
@@ -15,7 +15,11 @@ class EnvironmentTelemetryModule : private concurrency::OSThread, public Protobu
lastMeasurementPacket = nullptr;
}
virtual bool wantUIFrame() override;
+#ifdef NO_SCREEN
+ void drawFrame(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y);
+#else
virtual void drawFrame(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y) override;
+#endif
protected:
/** Called to handle a particular incoming message
diff --git a/variants/heltec_v1/variant.h b/variants/heltec_v1/variant.h
index 7e1af42d1..9ea07eb0c 100644
--- a/variants/heltec_v1/variant.h
+++ b/variants/heltec_v1/variant.h
@@ -3,7 +3,7 @@
#undef GPS_RX_PIN
#undef GPS_TX_PIN
#define GPS_RX_PIN 36
-#define GPS_TX_PIN 34
+#define GPS_TX_PIN 33
#ifndef USE_JTAG // gpio15 is TDO for JTAG, so no I2C on this board while doing jtag
#define I2C_SDA 4 // I2C pins for this board
@@ -20,8 +20,8 @@
#ifndef USE_JTAG
#define LORA_RESET 14
#endif
-#define LORA_DIO1 33 // Not really used
-#define LORA_DIO2 32 // Not really used
+#define LORA_DIO1 35 // Not really used
+#define LORA_DIO2 34 // Not really used
// ratio of voltage divider = 3.20 (R1=100k, R2=220k)
#define ADC_MULTIPLIER 3.2
diff --git a/variants/portduino/platformio.ini b/variants/portduino/platformio.ini
index dd37c3bc9..adc018666 100644
--- a/variants/portduino/platformio.ini
+++ b/variants/portduino/platformio.ini
@@ -1,6 +1,6 @@
; The Portduino based sim environment on top of any host OS, all hardware will be simulated
[env:native]
-platform = https://github.com/geeksville/platform-native.git
+platform = https://github.com/meshtastic/platform-native.git
src_filter =
${env.src_filter}
-
@@ -19,7 +19,7 @@ lib_deps =
; The Portduino based sim environment on top of a linux OS and touching linux hardware devices
[env:linux]
-platform = https://github.com/geeksville/platform-native.git
+platform = https://github.com/meshtastic/platform-native.git
src_filter =
${env.src_filter}
-
@@ -34,4 +34,4 @@ framework = arduino
board = linux_hardware
lib_deps =
${arduino_base.lib_deps}
- rweather/Crypto
\ No newline at end of file
+ rweather/Crypto
diff --git a/variants/rak4631/variant.h b/variants/rak4631/variant.h
index bae5d957a..f1e144324 100644
--- a/variants/rak4631/variant.h
+++ b/variants/rak4631/variant.h
@@ -201,6 +201,9 @@ static const uint8_t SCK = PIN_SPI_SCK;
// RAK12002 RTC Module
#define RV3028_RTC (uint8_t) 0b1010010
+// RAK18001 Buzzer in Slot C
+#define PIN_BUZZER 21 // IO3 is PWM2
+
// Battery
// The battery sense is hooked to pin A0 (5)
#define BATTERY_PIN PIN_A0