mirror of
https://github.com/meshtastic/firmware.git
synced 2025-08-03 04:15:53 +00:00
RP2040: Add SerialModule support (#2830)
* Support for SerialModule on RP2040 * Remove one !defined too many * Increase serial RX_BUFFER: more reliable for long packets Even results into an error for ESP32 --------- Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
This commit is contained in:
parent
04b2ab82dc
commit
a1c433748a
@ -31,7 +31,7 @@
|
|||||||
#if defined(ARCH_ESP32) || defined(ARCH_NRF52) || defined(ARCH_RP2040)
|
#if defined(ARCH_ESP32) || defined(ARCH_NRF52) || defined(ARCH_RP2040)
|
||||||
#include "modules/ExternalNotificationModule.h"
|
#include "modules/ExternalNotificationModule.h"
|
||||||
#include "modules/RangeTestModule.h"
|
#include "modules/RangeTestModule.h"
|
||||||
#if (defined(ARCH_ESP32) || defined(ARCH_NRF52)) && !defined(CONFIG_IDF_TARGET_ESP32S2)
|
#if (defined(ARCH_ESP32) || defined(ARCH_NRF52) || defined(ARCH_RP2040)) && !defined(CONFIG_IDF_TARGET_ESP32S2)
|
||||||
#include "modules/SerialModule.h"
|
#include "modules/SerialModule.h"
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
@ -92,7 +92,8 @@ void setupModules()
|
|||||||
new AirQualityTelemetryModule();
|
new AirQualityTelemetryModule();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#if (defined(ARCH_ESP32) || defined(ARCH_NRF52)) && !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3)
|
#if (defined(ARCH_ESP32) || defined(ARCH_NRF52) || defined(ARCH_RP2040)) && !defined(CONFIG_IDF_TARGET_ESP32S2) && \
|
||||||
|
!defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||||
new SerialModule();
|
new SerialModule();
|
||||||
#endif
|
#endif
|
||||||
#ifdef ARCH_ESP32
|
#ifdef ARCH_ESP32
|
||||||
|
@ -44,9 +44,10 @@
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if (defined(ARCH_ESP32) || defined(ARCH_NRF52)) && !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3)
|
#if (defined(ARCH_ESP32) || defined(ARCH_NRF52) || defined(ARCH_RP2040)) && !defined(CONFIG_IDF_TARGET_ESP32S2) && \
|
||||||
|
!defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||||
|
|
||||||
#define RX_BUFFER 128
|
#define RX_BUFFER 256
|
||||||
#define TIMEOUT 250
|
#define TIMEOUT 250
|
||||||
#define BAUD 38400
|
#define BAUD 38400
|
||||||
#define ACK 1
|
#define ACK 1
|
||||||
@ -141,7 +142,12 @@ int32_t SerialModule::runOnce()
|
|||||||
}
|
}
|
||||||
#elif !defined(TTGO_T_ECHO)
|
#elif !defined(TTGO_T_ECHO)
|
||||||
if (moduleConfig.serial.rxd && moduleConfig.serial.txd) {
|
if (moduleConfig.serial.rxd && moduleConfig.serial.txd) {
|
||||||
|
#ifdef ARCH_RP2040
|
||||||
|
Serial2.setFIFOSize(RX_BUFFER);
|
||||||
|
Serial2.setPinout(moduleConfig.serial.txd, moduleConfig.serial.rxd);
|
||||||
|
#else
|
||||||
Serial2.setPins(moduleConfig.serial.rxd, moduleConfig.serial.txd);
|
Serial2.setPins(moduleConfig.serial.rxd, moduleConfig.serial.txd);
|
||||||
|
#endif
|
||||||
Serial2.begin(baud, SERIAL_8N1);
|
Serial2.begin(baud, SERIAL_8N1);
|
||||||
Serial2.setTimeout(moduleConfig.serial.timeout > 0 ? moduleConfig.serial.timeout : TIMEOUT);
|
Serial2.setTimeout(moduleConfig.serial.timeout > 0 ? moduleConfig.serial.timeout : TIMEOUT);
|
||||||
} else {
|
} else {
|
||||||
@ -182,7 +188,7 @@ int32_t SerialModule::runOnce()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifndef TTGO_T_ECHO
|
#if !defined(TTGO_T_ECHO)
|
||||||
else {
|
else {
|
||||||
while (Serial2.available()) {
|
while (Serial2.available()) {
|
||||||
serialPayloadSize = Serial2.readBytes(serialBytes, meshtastic_Constants_DATA_PAYLOAD_LEN);
|
serialPayloadSize = Serial2.readBytes(serialBytes, meshtastic_Constants_DATA_PAYLOAD_LEN);
|
||||||
|
@ -8,7 +8,8 @@
|
|||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
#if (defined(ARCH_ESP32) || defined(ARCH_NRF52)) && !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3)
|
#if (defined(ARCH_ESP32) || defined(ARCH_NRF52) || defined(ARCH_RP2040)) && !defined(CONFIG_IDF_TARGET_ESP32S2) && \
|
||||||
|
!defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||||
|
|
||||||
class SerialModule : public StreamAPI, private concurrency::OSThread
|
class SerialModule : public StreamAPI, private concurrency::OSThread
|
||||||
{
|
{
|
||||||
@ -74,4 +75,4 @@ class SerialModuleRadio : public MeshModule
|
|||||||
|
|
||||||
extern SerialModuleRadio *serialModuleRadio;
|
extern SerialModuleRadio *serialModuleRadio;
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -17,6 +17,10 @@
|
|||||||
// SDA = 4
|
// SDA = 4
|
||||||
// SCL = 5
|
// SCL = 5
|
||||||
|
|
||||||
|
// Recommended pins for SerialModule:
|
||||||
|
// txd = 8
|
||||||
|
// rxd = 9
|
||||||
|
|
||||||
#define EXT_NOTIFY_OUT 22
|
#define EXT_NOTIFY_OUT 22
|
||||||
#define BUTTON_PIN 17
|
#define BUTTON_PIN 17
|
||||||
|
|
||||||
|
@ -17,6 +17,10 @@
|
|||||||
// SDA = 4
|
// SDA = 4
|
||||||
// SCL = 5
|
// SCL = 5
|
||||||
|
|
||||||
|
// Recommended pins for SerialModule:
|
||||||
|
// txd = 8
|
||||||
|
// rxd = 9
|
||||||
|
|
||||||
#define EXT_NOTIFY_OUT 22
|
#define EXT_NOTIFY_OUT 22
|
||||||
#define BUTTON_PIN 17
|
#define BUTTON_PIN 17
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user