mirror of
https://github.com/meshtastic/firmware.git
synced 2025-09-21 17:20:01 +00:00
Merge branch 'master' into use-ina-currentflow-for-charging-detection
This commit is contained in:
commit
bfe5568df0
@ -14,7 +14,7 @@ USER root
|
|||||||
# trunk-ignore(hadolint/DL3008): Use latest version of packages for buildchain
|
# trunk-ignore(hadolint/DL3008): Use latest version of packages for buildchain
|
||||||
RUN apt-get update && apt-get install --no-install-recommends -y wget python3 python3-pip python3-wheel python3-venv g++ zip git \
|
RUN apt-get update && apt-get install --no-install-recommends -y wget python3 python3-pip python3-wheel python3-venv g++ zip git \
|
||||||
ca-certificates libgpiod-dev libyaml-cpp-dev libbluetooth-dev \
|
ca-certificates libgpiod-dev libyaml-cpp-dev libbluetooth-dev \
|
||||||
libulfius-dev liborcania-dev libssl-dev pkg-config && \
|
libusb-1.0-0-dev libulfius-dev liborcania-dev libssl-dev pkg-config && \
|
||||||
apt-get clean && rm -rf /var/lib/apt/lists/* && mkdir /tmp/firmware
|
apt-get clean && rm -rf /var/lib/apt/lists/* && mkdir /tmp/firmware
|
||||||
|
|
||||||
RUN groupadd -g 1000 mesh && useradd -ml -u 1000 -g 1000 mesh && chown mesh:mesh /tmp/firmware
|
RUN groupadd -g 1000 mesh && useradd -ml -u 1000 -g 1000 mesh && chown mesh:mesh /tmp/firmware
|
||||||
@ -37,7 +37,7 @@ ENV TZ=Etc/UTC
|
|||||||
|
|
||||||
# trunk-ignore(terrascan/AC_DOCKER_0002): Known terrascan issue
|
# trunk-ignore(terrascan/AC_DOCKER_0002): Known terrascan issue
|
||||||
# trunk-ignore(hadolint/DL3008): Use latest version of packages for buildchain
|
# trunk-ignore(hadolint/DL3008): Use latest version of packages for buildchain
|
||||||
RUN apt-get update && apt-get --no-install-recommends -y install libc-bin libc6 libgpiod2 libyaml-cpp0.7 libulfius2.7 liborcania2.3 libssl3 && \
|
RUN apt-get update && apt-get --no-install-recommends -y install libc-bin libc6 libgpiod2 libyaml-cpp0.7 libulfius2.7 libusb-1.0-0-dev liborcania2.3 libssl3 && \
|
||||||
apt-get clean && rm -rf /var/lib/apt/lists/*
|
apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
RUN groupadd -g 1000 mesh && useradd -ml -u 1000 -g 1000 mesh
|
RUN groupadd -g 1000 mesh && useradd -ml -u 1000 -g 1000 mesh
|
||||||
@ -51,4 +51,4 @@ VOLUME /home/mesh/data
|
|||||||
|
|
||||||
CMD [ "sh", "-cx", "./meshtasticd -d /home/mesh/data --hwid=${HWID:-$RANDOM}" ]
|
CMD [ "sh", "-cx", "./meshtasticd -d /home/mesh/data --hwid=${HWID:-$RANDOM}" ]
|
||||||
|
|
||||||
HEALTHCHECK NONE
|
HEALTHCHECK NONE
|
@ -34,7 +34,9 @@ build_flags =
|
|||||||
-Isrc/platform/portduino
|
-Isrc/platform/portduino
|
||||||
-DRADIOLIB_EEPROM_UNSUPPORTED
|
-DRADIOLIB_EEPROM_UNSUPPORTED
|
||||||
-DPORTDUINO_LINUX_HARDWARE
|
-DPORTDUINO_LINUX_HARDWARE
|
||||||
|
-lpthread
|
||||||
-lstdc++fs
|
-lstdc++fs
|
||||||
-lbluetooth
|
-lbluetooth
|
||||||
-lgpiod
|
-lgpiod
|
||||||
-lyaml-cpp
|
-lyaml-cpp
|
||||||
|
-std=c++17
|
@ -1,16 +0,0 @@
|
|||||||
---
|
|
||||||
Lora:
|
|
||||||
## Ebyte E22-900M30S, E22-900M22S with no external RF switching setup
|
|
||||||
## Will work with any module without RF switching, and with TCXO
|
|
||||||
Module: sx1262
|
|
||||||
gpiochip: 1 # subtract 32 from the gpio numbers
|
|
||||||
DIO2_AS_RF_SWITCH: true
|
|
||||||
DIO3_TCXO_VOLTAGE: true
|
|
||||||
CS: 16 #pin6 / GPIO48 1C0
|
|
||||||
IRQ: 23 #pin17 / GPIO55 1C7
|
|
||||||
Busy: 22 #pin16 / GPIO54 1C6
|
|
||||||
Reset: 25 #pin13 / GPIO57 1D1
|
|
||||||
RXen: 24 #pin12 / GPIO56 1D0
|
|
||||||
#TXen: bridge to DIO2 on E22 module
|
|
||||||
spidev: spidev0.0
|
|
||||||
spiSpeed: 2000000
|
|
@ -1,16 +0,0 @@
|
|||||||
---
|
|
||||||
Lora:
|
|
||||||
## Ebyte E22-900MM22S with no external RF switching setup
|
|
||||||
## Will work with any module without RF switching and no TCXO
|
|
||||||
Module: sx1262
|
|
||||||
gpiochip: 1 # subtract 32 from the gpio numbers
|
|
||||||
DIO2_AS_RF_SWITCH: true
|
|
||||||
DIO3_TCXO_VOLTAGE: true
|
|
||||||
CS: 16 #pin6 / GPIO48 1C0
|
|
||||||
IRQ: 23 #pin17 / GPIO55 1C7
|
|
||||||
Busy: 22 #pin16 / GPIO54 1C6
|
|
||||||
Reset: 25 #pin13 / GPIO57 1D1
|
|
||||||
RXen: 24 #pin12 / GPIO56 1D0
|
|
||||||
#TXen: bridge to DIO2 on E22 module
|
|
||||||
spidev: spidev0.0
|
|
||||||
spiSpeed: 2000000
|
|
@ -1,14 +0,0 @@
|
|||||||
---
|
|
||||||
Lora:
|
|
||||||
## Heltec HT-RA62, Seeed WIO SX1262
|
|
||||||
## Will work with any module with automatic RF switching, and with TCXO
|
|
||||||
Module: sx1262
|
|
||||||
gpiochip: 1 # subtract 32 from the gpio numbers
|
|
||||||
DIO2_AS_RF_SWITCH: true
|
|
||||||
DIO3_TCXO_VOLTAGE: true
|
|
||||||
CS: 16 #pin6 (GPIO pin 48 1C0)
|
|
||||||
IRQ: 23 #pin17 (GPIO pin 55 1C7)
|
|
||||||
Reset: 25 #pin13 (GPIO pin 57 1D1)
|
|
||||||
Busy: 22 #pin16 (GPIO pin 54 1C6)
|
|
||||||
spidev: spidev0.0 #pins are (CS=6, CLK=7, MOSI=8, MISO=9)
|
|
||||||
spiSpeed: 2000000
|
|
20
bin/config.d/femtofox/femtofox_LR1121_TCXO.yaml
Normal file
20
bin/config.d/femtofox/femtofox_LR1121_TCXO.yaml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
Lora:
|
||||||
|
## Ebyte E80-900M22S
|
||||||
|
## This is a bit experimental
|
||||||
|
##
|
||||||
|
##
|
||||||
|
Module: lr1121
|
||||||
|
gpiochip: 1 # subtract 32 from the gpio numbers
|
||||||
|
DIO3_TCXO_VOLTAGE: 1.8
|
||||||
|
CS: 16 #pin6 / GPIO48 1C0
|
||||||
|
IRQ: 23 #pin17 / GPIO55 1C7
|
||||||
|
Busy: 22 #pin16 / GPIO54 1C6
|
||||||
|
Reset: 25 #pin13 / GPIO57 1D1
|
||||||
|
|
||||||
|
|
||||||
|
spidev: spidev0.0 #pins are (CS=16, CLK=17, MOSI=18, MISO=19)
|
||||||
|
spiSpeed: 2000000
|
||||||
|
|
||||||
|
General:
|
||||||
|
MACAddressSource: eth0
|
21
bin/config.d/femtofox/femtofox_SX1262_TCXO.yaml
Normal file
21
bin/config.d/femtofox/femtofox_SX1262_TCXO.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
Lora:
|
||||||
|
## Ebyte E22-900M30S, E22-900M22S with or without external RF switching setup
|
||||||
|
## HT-RA62 (Has internal switching, but whatever)
|
||||||
|
## Seeed WIO SX1262 (already has TXEN-DIO2 link, but needs RXEN)
|
||||||
|
## Will work with any module with or without RF switching, and with TCXO
|
||||||
|
Module: sx1262
|
||||||
|
gpiochip: 1 # subtract 32 from the gpio numbers
|
||||||
|
DIO2_AS_RF_SWITCH: true
|
||||||
|
DIO3_TCXO_VOLTAGE: true
|
||||||
|
CS: 16 #pin6 / GPIO48 1C0
|
||||||
|
IRQ: 23 #pin17 / GPIO55 1C7
|
||||||
|
Busy: 22 #pin16 / GPIO54 1C6
|
||||||
|
Reset: 25 #pin13 / GPIO57 1D1
|
||||||
|
RXen: 24 #pin12 / GPIO56 1D0 # Not strictly needed for auto-switching, but why complicate things?
|
||||||
|
# TXen: bridge to DIO2 on E22 module
|
||||||
|
spidev: spidev0.0 #pins are (CS=16, CLK=17, MOSI=18, MISO=19)
|
||||||
|
spiSpeed: 2000000
|
||||||
|
|
||||||
|
General:
|
||||||
|
MACAddressSource: eth0
|
21
bin/config.d/femtofox/femtofox_SX1262_XTAL.yaml
Normal file
21
bin/config.d/femtofox/femtofox_SX1262_XTAL.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
Lora:
|
||||||
|
## Ebyte E22-900MM22S with no external RF switching setup
|
||||||
|
## Waveshare SX126X XXXM, AI Thinker RA-01SH
|
||||||
|
## Will work with any module with or without RF switching and no TCXO
|
||||||
|
|
||||||
|
Module: sx1262
|
||||||
|
gpiochip: 1 # subtract 32 from the gpio numbers
|
||||||
|
DIO2_AS_RF_SWITCH: true
|
||||||
|
DIO3_TCXO_VOLTAGE: false
|
||||||
|
CS: 16 #pin6 / GPIO48 1C0
|
||||||
|
IRQ: 23 #pin17 / GPIO55 1C7
|
||||||
|
Busy: 22 #pin16 / GPIO54 1C6
|
||||||
|
Reset: 25 #pin13 / GPIO57 1D1
|
||||||
|
RXen: 24 #pin12 / GPIO56 1D0 # Not strictly needed for auto-switching, but why complicate things?
|
||||||
|
# TXen: bridge to DIO2 on E22 module
|
||||||
|
spidev: spidev0.0 #pins are (CS=16, CLK=17, MOSI=18, MISO=19)
|
||||||
|
spiSpeed: 2000000
|
||||||
|
|
||||||
|
General:
|
||||||
|
MACAddressSource: eth0
|
@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
Lora:
|
|
||||||
## Waveshare SX126X XXXM, AI Thinker RA-01SH
|
|
||||||
## Will work with any module with automatic RF switching, and with no TCXO
|
|
||||||
Module: sx1262
|
|
||||||
gpiochip: 1 # subtract 32 from the gpio numbers
|
|
||||||
DIO2_AS_RF_SWITCH: true
|
|
||||||
CS: 16 #pin6 (GPIO pin 48 1C0)
|
|
||||||
IRQ: 23 #pin17 (GPIO pin 55 1C7)
|
|
||||||
Reset: 25 #pin13 (GPIO pin 57 1D1)
|
|
||||||
Busy: 22 #pin16 (GPIO pin 54 1C6)
|
|
||||||
spidev: spidev0.0 #pins are (CS=6, CLK=7, MOSI=8, MISO=9)
|
|
||||||
spiSpeed: 2000000
|
|
41
boards/esp32-s3-zero.json
Normal file
41
boards/esp32-s3-zero.json
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"partitions": "default.csv",
|
||||||
|
"memory_type": "qio_qspi"
|
||||||
|
},
|
||||||
|
"core": "esp32",
|
||||||
|
"extra_flags": [
|
||||||
|
"-DARDUINO_ESP32S3_DEV",
|
||||||
|
"-DARDUINO_RUNNING_CORE=1",
|
||||||
|
"-DARDUINO_EVENT_RUNNING_CORE=1",
|
||||||
|
"-DARDUINO_USB_CDC_ON_BOOT=1",
|
||||||
|
"-DBOARD_HAS_PSRAM"
|
||||||
|
],
|
||||||
|
"f_cpu": "240000000L",
|
||||||
|
"f_flash": "80000000L",
|
||||||
|
"flash_mode": "qio",
|
||||||
|
"psram_type": "qio",
|
||||||
|
"hwids": [["0x303A", "0x1001"]],
|
||||||
|
"mcu": "esp32s3",
|
||||||
|
"variant": "esp32s3"
|
||||||
|
},
|
||||||
|
"connectivity": ["wifi", "bluetooth"],
|
||||||
|
"debug": {
|
||||||
|
"default_tool": "esp-builtin",
|
||||||
|
"onboard_tools": ["esp-builtin"],
|
||||||
|
"openocd_target": "esp32s3.cfg"
|
||||||
|
},
|
||||||
|
"frameworks": ["arduino", "espidf"],
|
||||||
|
"platforms": ["espressif32"],
|
||||||
|
"name": "Espressif ESP32-S3-FH4R2 (4 MB QD, 2MB PSRAM)",
|
||||||
|
"upload": {
|
||||||
|
"flash_size": "4MB",
|
||||||
|
"maximum_ram_size": 327680,
|
||||||
|
"maximum_size": 4194304,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"speed": 921600
|
||||||
|
},
|
||||||
|
"url": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html",
|
||||||
|
"vendor": "Espressif"
|
||||||
|
}
|
@ -19,8 +19,10 @@
|
|||||||
#include <WiFi.h>
|
#include <WiFi.h>
|
||||||
#endif
|
#endif
|
||||||
#include "Default.h"
|
#include "Default.h"
|
||||||
|
#if !defined(ARCH_NRF52) || NRF52_USE_JSON
|
||||||
#include "serialization/JSON.h"
|
#include "serialization/JSON.h"
|
||||||
#include "serialization/MeshPacketSerializer.h"
|
#include "serialization/MeshPacketSerializer.h"
|
||||||
|
#endif
|
||||||
#include <Throttle.h>
|
#include <Throttle.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <pb_decode.h>
|
#include <pb_decode.h>
|
||||||
@ -119,6 +121,7 @@ inline void onReceiveProto(char *topic, byte *payload, size_t length)
|
|||||||
router->enqueueReceivedMessage(p.release());
|
router->enqueueReceivedMessage(p.release());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !defined(ARCH_NRF52) || NRF52_USE_JSON
|
||||||
// returns true if this is a valid JSON envelope which we accept on downlink
|
// returns true if this is a valid JSON envelope which we accept on downlink
|
||||||
inline bool isValidJsonEnvelope(JSONObject &json)
|
inline bool isValidJsonEnvelope(JSONObject &json)
|
||||||
{
|
{
|
||||||
@ -204,6 +207,7 @@ inline void onReceiveJson(byte *payload, size_t length)
|
|||||||
LOG_DEBUG("JSON ignore downlink message with unsupported type");
|
LOG_DEBUG("JSON ignore downlink message with unsupported type");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/// Determines if the given IPAddress is a private IPv4 address, i.e. not routable on the public internet.
|
/// Determines if the given IPAddress is a private IPv4 address, i.e. not routable on the public internet.
|
||||||
bool isPrivateIpAddress(const IPAddress &ip)
|
bool isPrivateIpAddress(const IPAddress &ip)
|
||||||
@ -228,14 +232,21 @@ bool isPrivateIpAddress(const IPAddress &ip)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::pair<std::string, uint16_t> parseHostAndPort(std::string address, uint16_t port = 0)
|
// Separate a <host>[:<port>] string. Returns a pair containing the parsed host and port. If the port is
|
||||||
|
// not present in the input string, or is invalid, the value of the `port` argument will be returned.
|
||||||
|
std::pair<String, uint16_t> parseHostAndPort(String server, uint16_t port = 0)
|
||||||
{
|
{
|
||||||
const size_t delimIndex = address.find_first_of(':');
|
const int delimIndex = server.indexOf(':');
|
||||||
if (delimIndex > 0) {
|
if (delimIndex > 0) {
|
||||||
port = std::stoul(address.substr(delimIndex + 1, address.length()));
|
const long parsedPort = server.substring(delimIndex + 1, server.length()).toInt();
|
||||||
address.resize(delimIndex);
|
if (parsedPort < 1 || parsedPort > UINT16_MAX) {
|
||||||
|
LOG_WARN("Invalid MQTT port %d: %s", parsedPort, server.c_str());
|
||||||
|
} else {
|
||||||
|
port = parsedPort;
|
||||||
|
}
|
||||||
|
server[delimIndex] = 0;
|
||||||
}
|
}
|
||||||
return std::make_pair(std::move(address), port);
|
return std::make_pair(std::move(server), port);
|
||||||
}
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
@ -258,6 +269,7 @@ void MQTT::onReceive(char *topic, byte *payload, size_t length)
|
|||||||
|
|
||||||
// check if this is a json payload message by comparing the topic start
|
// check if this is a json payload message by comparing the topic start
|
||||||
if (moduleConfig.mqtt.json_enabled && (strncmp(topic, jsonTopic.c_str(), jsonTopic.length()) == 0)) {
|
if (moduleConfig.mqtt.json_enabled && (strncmp(topic, jsonTopic.c_str(), jsonTopic.length()) == 0)) {
|
||||||
|
#if !defined(ARCH_NRF52) || NRF52_USE_JSON
|
||||||
// parse the channel name from the topic string
|
// parse the channel name from the topic string
|
||||||
// the topic has been checked above for having jsonTopic prefix, so just move past it
|
// the topic has been checked above for having jsonTopic prefix, so just move past it
|
||||||
char *channelName = topic + jsonTopic.length();
|
char *channelName = topic + jsonTopic.length();
|
||||||
@ -271,6 +283,7 @@ void MQTT::onReceive(char *topic, byte *payload, size_t length)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
onReceiveJson(payload, length);
|
onReceiveJson(payload, length);
|
||||||
|
#endif
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -429,7 +442,7 @@ void MQTT::reconnect()
|
|||||||
pubSub.setClient(mqttClient);
|
pubSub.setClient(mqttClient);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
std::pair<std::string, uint16_t> hostAndPort = parseHostAndPort(serverAddr, serverPort);
|
std::pair<String, uint16_t> hostAndPort = parseHostAndPort(serverAddr, serverPort);
|
||||||
serverAddr = hostAndPort.first.c_str();
|
serverAddr = hostAndPort.first.c_str();
|
||||||
serverPort = hostAndPort.second;
|
serverPort = hostAndPort.second;
|
||||||
pubSub.setServer(serverAddr, serverPort);
|
pubSub.setServer(serverAddr, serverPort);
|
||||||
@ -444,9 +457,6 @@ void MQTT::reconnect()
|
|||||||
enabled = true; // Start running background process again
|
enabled = true; // Start running background process again
|
||||||
runASAP = true;
|
runASAP = true;
|
||||||
reconnectCount = 0;
|
reconnectCount = 0;
|
||||||
#if !defined(ARCH_PORTDUINO)
|
|
||||||
isMqttServerAddressPrivate = isPrivateIpAddress(mqttClient.remoteIP());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
publishNodeInfo();
|
publishNodeInfo();
|
||||||
sendSubscriptions();
|
sendSubscriptions();
|
||||||
@ -754,4 +764,4 @@ void MQTT::perhapsReportToMap()
|
|||||||
|
|
||||||
// Update the last report time
|
// Update the last report time
|
||||||
last_report_to_map = millis();
|
last_report_to_map = millis();
|
||||||
}
|
}
|
@ -5,7 +5,9 @@
|
|||||||
#include "concurrency/OSThread.h"
|
#include "concurrency/OSThread.h"
|
||||||
#include "mesh/Channels.h"
|
#include "mesh/Channels.h"
|
||||||
#include "mesh/generated/meshtastic/mqtt.pb.h"
|
#include "mesh/generated/meshtastic/mqtt.pb.h"
|
||||||
|
#if !defined(ARCH_NRF52) || NRF52_USE_JSON
|
||||||
#include "serialization/JSON.h"
|
#include "serialization/JSON.h"
|
||||||
|
#endif
|
||||||
#if HAS_WIFI
|
#if HAS_WIFI
|
||||||
#include <WiFiClient.h>
|
#include <WiFiClient.h>
|
||||||
#if !defined(ARCH_PORTDUINO)
|
#if !defined(ARCH_PORTDUINO)
|
||||||
@ -127,4 +129,4 @@ class MQTT : private concurrency::OSThread
|
|||||||
|
|
||||||
void mqttInit();
|
void mqttInit();
|
||||||
|
|
||||||
extern MQTT *mqtt;
|
extern MQTT *mqtt;
|
@ -33,4 +33,6 @@
|
|||||||
#define HW_VENDOR meshtastic_HardwareModel_RP2040_LORA
|
#define HW_VENDOR meshtastic_HardwareModel_RP2040_LORA
|
||||||
#elif defined(RP2040_FEATHER_RFM95)
|
#elif defined(RP2040_FEATHER_RFM95)
|
||||||
#define HW_VENDOR meshtastic_HardwareModel_RP2040_FEATHER_RFM95
|
#define HW_VENDOR meshtastic_HardwareModel_RP2040_FEATHER_RFM95
|
||||||
|
#elif defined(PRIVATE_HW)
|
||||||
|
#define HW_VENDOR meshtastic_HardwareModel_PRIVATE_HW
|
||||||
#endif
|
#endif
|
6
variants/nibble_esp32/platformio.ini
Normal file
6
variants/nibble_esp32/platformio.ini
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[env:nibble-esp32]
|
||||||
|
extends = esp32s3_base
|
||||||
|
board = esp32-s3-zero
|
||||||
|
board_level = extra
|
||||||
|
build_flags =
|
||||||
|
${esp32_base.build_flags} -D PRIVATE_HW -I variants/nibble_esp32
|
18
variants/nibble_esp32/variant.h
Normal file
18
variants/nibble_esp32/variant.h
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#define I2C_SDA 11 // I2C pins for this board
|
||||||
|
#define I2C_SCL 10
|
||||||
|
|
||||||
|
#define LED_PIN 1 // If defined we will blink this LED
|
||||||
|
|
||||||
|
#define BUTTON_PIN 0 // If defined, this will be used for user button presses
|
||||||
|
#define BUTTON_NEED_PULLUP
|
||||||
|
|
||||||
|
#define USE_RF95
|
||||||
|
#define LORA_SCK 6
|
||||||
|
#define LORA_MISO 7
|
||||||
|
#define LORA_MOSI 8
|
||||||
|
#define LORA_CS 9
|
||||||
|
#define LORA_DIO0 5 // a No connect on the SX1262 module
|
||||||
|
#define LORA_RESET 4
|
||||||
|
|
||||||
|
#define LORA_DIO1 RADIOLIB_NC
|
||||||
|
#define LORA_DIO2 RADIOLIB_NC
|
17
variants/nibble_rp2040/platformio.ini
Normal file
17
variants/nibble_rp2040/platformio.ini
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
[env:nibble-rp2040]
|
||||||
|
extends = rp2040_base
|
||||||
|
board = rpipico
|
||||||
|
board_level = extra
|
||||||
|
upload_protocol = picotool
|
||||||
|
|
||||||
|
# add our variants files to the include and src paths
|
||||||
|
build_flags = ${rp2040_base.build_flags}
|
||||||
|
-DPRIVATE_HW
|
||||||
|
-Ivariants/nibble_rp2040
|
||||||
|
-DDEBUG_RP2040_PORT=Serial
|
||||||
|
-DHW_SPI1_DEVICE
|
||||||
|
-L "${platformio.libdeps_dir}/${this.__env__}/bsec2/src/cortex-m0plus"
|
||||||
|
lib_deps =
|
||||||
|
${rp2040_base.lib_deps}
|
||||||
|
debug_build_flags = ${rp2040_base.build_flags}, -g
|
||||||
|
debug_tool = cmsis-dap ; for e.g. Picotool
|
18
variants/nibble_rp2040/variant.h
Normal file
18
variants/nibble_rp2040/variant.h
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#define ARDUINO_ARCH_AVR
|
||||||
|
|
||||||
|
#define BUTTON_PIN -1 // Pin 17 used for antenna switching via DIO4
|
||||||
|
|
||||||
|
#define LED_PIN 1
|
||||||
|
|
||||||
|
#define HAS_CPU_SHUTDOWN 1
|
||||||
|
|
||||||
|
#define USE_RFM95
|
||||||
|
#define LORA_SCK 10
|
||||||
|
#define LORA_MISO 12
|
||||||
|
#define LORA_MOSI 11
|
||||||
|
#define LORA_CS 13
|
||||||
|
|
||||||
|
#define LORA_DIO0 14
|
||||||
|
#define LORA_RESET 15
|
||||||
|
#define LORA_DIO1 RADIOLIB_NC
|
||||||
|
#define LORA_DIO2 RADIOLIB_NC
|
6
variants/nugget_s2_lora/platformio.ini
Normal file
6
variants/nugget_s2_lora/platformio.ini
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[env:nugget-s2-lora]
|
||||||
|
extends = esp32s2_base
|
||||||
|
board = lolin_s2_mini
|
||||||
|
board_level = extra
|
||||||
|
build_flags =
|
||||||
|
${esp32s2_base.build_flags} -D PRIVATE_HW -I variants/nugget_s2_lora
|
23
variants/nugget_s2_lora/variant.h
Normal file
23
variants/nugget_s2_lora/variant.h
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#define I2C_SDA 34 // I2C pins for this board
|
||||||
|
#define I2C_SCL 36
|
||||||
|
|
||||||
|
#define LED_PIN 15 // If defined we will blink this LED
|
||||||
|
|
||||||
|
#define HAS_NEOPIXEL // Enable the use of neopixels
|
||||||
|
#define NEOPIXEL_COUNT 3 // How many neopixels are connected
|
||||||
|
#define NEOPIXEL_DATA 12 // gpio pin used to send data to the neopixels
|
||||||
|
#define NEOPIXEL_TYPE (NEO_GRB + NEO_KHZ800) // type of neopixels in use
|
||||||
|
|
||||||
|
#define BUTTON_PIN 0 // If defined, this will be used for user button presses
|
||||||
|
#define BUTTON_NEED_PULLUP
|
||||||
|
|
||||||
|
#define USE_RF95
|
||||||
|
#define LORA_SCK 6
|
||||||
|
#define LORA_MISO 8
|
||||||
|
#define LORA_MOSI 10
|
||||||
|
#define LORA_CS 13
|
||||||
|
#define LORA_DIO0 16
|
||||||
|
#define LORA_RESET 5
|
||||||
|
|
||||||
|
#define LORA_DIO1 RADIOLIB_NC
|
||||||
|
#define LORA_DIO2 RADIOLIB_NC
|
6
variants/nugget_s3_lora/platformio.ini
Normal file
6
variants/nugget_s3_lora/platformio.ini
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[env:nugget-s3-lora]
|
||||||
|
extends = esp32s3_base
|
||||||
|
board = lolin_s3_mini
|
||||||
|
board_level = extra
|
||||||
|
build_flags =
|
||||||
|
${esp32s3_base.build_flags} -D PRIVATE_HW -I variants/nugget_s3_lora
|
23
variants/nugget_s3_lora/variant.h
Normal file
23
variants/nugget_s3_lora/variant.h
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#define I2C_SDA 34 // I2C pins for this board
|
||||||
|
#define I2C_SCL 38
|
||||||
|
|
||||||
|
#define LED_PIN 15 // If defined we will blink this LED
|
||||||
|
|
||||||
|
#define HAS_NEOPIXEL // Enable the use of neopixels
|
||||||
|
#define NEOPIXEL_COUNT 3 // How many neopixels are connected
|
||||||
|
#define NEOPIXEL_DATA 10 // gpio pin used to send data to the neopixels
|
||||||
|
#define NEOPIXEL_TYPE (NEO_GRB + NEO_KHZ800) // type of neopixels in use
|
||||||
|
|
||||||
|
#define BUTTON_PIN 0 // If defined, this will be used for user button presses
|
||||||
|
#define BUTTON_NEED_PULLUP
|
||||||
|
|
||||||
|
#define USE_RF95
|
||||||
|
#define LORA_SCK 6
|
||||||
|
#define LORA_MISO 7
|
||||||
|
#define LORA_MOSI 8
|
||||||
|
#define LORA_CS 9
|
||||||
|
#define LORA_DIO0 16 // a No connect on the SX1262 module
|
||||||
|
#define LORA_RESET 4
|
||||||
|
|
||||||
|
#define LORA_DIO1 RADIOLIB_NC
|
||||||
|
#define LORA_DIO2 RADIOLIB_NC
|
@ -3,7 +3,6 @@ extends = portduino_base
|
|||||||
; Optional libraries should be appended to `PLATFORMIO_BUILD_FLAGS`
|
; Optional libraries should be appended to `PLATFORMIO_BUILD_FLAGS`
|
||||||
; environment variable in the buildroot environment.
|
; environment variable in the buildroot environment.
|
||||||
build_flags = ${portduino_base.build_flags} -O0 -I variants/portduino-buildroot
|
build_flags = ${portduino_base.build_flags} -O0 -I variants/portduino-buildroot
|
||||||
-std=c++17
|
|
||||||
board = buildroot
|
board = buildroot
|
||||||
lib_deps = ${portduino_base.lib_deps}
|
lib_deps = ${portduino_base.lib_deps}
|
||||||
build_src_filter = ${portduino_base.build_src_filter}
|
build_src_filter = ${portduino_base.build_src_filter}
|
Loading…
Reference in New Issue
Block a user