- Create INetworkManager interface for network abstraction - Add EthernetManager for ENC28J60 module using EthernetENC library - Update WiFiManager to implement INetworkManager interface - Update MQTTBridge to use INetworkManager* instead of WiFiManager& - Add heltec_v3_ethernet PlatformIO environment - Uses HSPI bus (GPIO 19/20/47/48) separate from LoRa SPI
178 lines
4.9 KiB
INI
178 lines
4.9 KiB
INI
; RPM's Heltec V3 Repeater
|
|
; Uses MeshCore as a library
|
|
|
|
[platformio]
|
|
default_envs = heltec_v3_repeater
|
|
|
|
[env:heltec_v3_repeater]
|
|
platform = platformio/espressif32@6.11.0
|
|
framework = arduino
|
|
board = esp32-s3-devkitc-1
|
|
monitor_speed = 115200
|
|
monitor_filters = esp32_exception_decoder
|
|
lib_ldf_mode = deep+
|
|
|
|
; MeshCore as local library + its dependencies
|
|
lib_deps =
|
|
symlink://../MeshCore
|
|
symlink://../MeshCore/arch/esp32/AsyncElegantOTA
|
|
symlink://../MeshCore/lib/ed25519
|
|
SPI
|
|
Wire
|
|
WiFi
|
|
WebServer
|
|
FS
|
|
Update
|
|
SPIFFS
|
|
LittleFS
|
|
jgromes/RadioLib @ ^7.3.0
|
|
rweather/Crypto @ ^0.4.0
|
|
adafruit/RTClib @ ^2.1.3
|
|
melopero/Melopero RV3028 @ ^1.1.0
|
|
electroniccats/CayenneLPP @ 1.6.1
|
|
bakercp/CRC32 @ ^2.0.0
|
|
me-no-dev/ESPAsyncWebServer @ ^3.6.0
|
|
adafruit/Adafruit GFX Library @ ^1.12.4
|
|
adafruit/Adafruit SSD1306 @ ^2.5.16
|
|
adafruit/Adafruit Unified Sensor @ ^1.1.14
|
|
adafruit/Adafruit AHTX0 @ ^2.0.5
|
|
adafruit/Adafruit BME280 Library @ ^2.3.0
|
|
adafruit/Adafruit BMP280 Library @ ^2.6.8
|
|
adafruit/Adafruit SHTC3 Library @ ^1.0.2
|
|
sensirion/Sensirion I2C SHT4x @ ^1.1.2
|
|
|
|
build_flags =
|
|
-w
|
|
-DNDEBUG
|
|
; Include paths for MeshCore
|
|
-I ../MeshCore/variants/heltec_v3
|
|
-I ../MeshCore/src
|
|
-I ../MeshCore/lib/ed25519
|
|
-DRADIOLIB_STATIC_ONLY=1
|
|
-DRADIOLIB_GODMODE=1
|
|
; LoRa parameters
|
|
-D LORA_FREQ=910.525
|
|
-D LORA_BW=62.5
|
|
-D LORA_SF=7
|
|
-D LORA_CR=5
|
|
; Security
|
|
-D ENABLE_PRIVATE_KEY_IMPORT=1
|
|
-D ENABLE_PRIVATE_KEY_EXPORT=1
|
|
; RadioLib excludes (reduce binary size)
|
|
-D RADIOLIB_EXCLUDE_CC1101=1
|
|
-D RADIOLIB_EXCLUDE_RF69=1
|
|
-D RADIOLIB_EXCLUDE_SX1231=1
|
|
-D RADIOLIB_EXCLUDE_SI443X=1
|
|
-D RADIOLIB_EXCLUDE_RFM2X=1
|
|
-D RADIOLIB_EXCLUDE_SX128X=1
|
|
-D RADIOLIB_EXCLUDE_AFSK=1
|
|
-D RADIOLIB_EXCLUDE_AX25=1
|
|
-D RADIOLIB_EXCLUDE_HELLSCHREIBER=1
|
|
-D RADIOLIB_EXCLUDE_MORSE=1
|
|
-D RADIOLIB_EXCLUDE_APRS=1
|
|
-D RADIOLIB_EXCLUDE_BELL=1
|
|
-D RADIOLIB_EXCLUDE_RTTY=1
|
|
-D RADIOLIB_EXCLUDE_SSTV=1
|
|
; Tell MeshCore library what to build
|
|
-D ESP32
|
|
-D MC_VARIANT=heltec_v3
|
|
-D DISPLAY_CLASS=SSD1306Display
|
|
; Heltec V3 hardware pins
|
|
-D HELTEC_LORA_V3
|
|
-D ESP32_CPU_FREQ=80
|
|
-D P_LORA_DIO_1=14
|
|
-D P_LORA_NSS=8
|
|
-D P_LORA_RESET=RADIOLIB_NC
|
|
-D P_LORA_BUSY=13
|
|
-D P_LORA_SCLK=9
|
|
-D P_LORA_MISO=11
|
|
-D P_LORA_MOSI=10
|
|
-D RADIO_CLASS=CustomSX1262
|
|
-D WRAPPER_CLASS=CustomSX1262Wrapper
|
|
-D LORA_TX_POWER=22
|
|
-D P_LORA_TX_LED=35
|
|
-D PIN_BOARD_SDA=17
|
|
-D PIN_BOARD_SCL=18
|
|
-D PIN_USER_BTN=0
|
|
-D PIN_VEXT_EN=36
|
|
-D SX126X_DIO2_AS_RF_SWITCH=true
|
|
-D SX126X_DIO3_TCXO_VOLTAGE=1.8
|
|
-D SX126X_CURRENT_LIMIT=140
|
|
-D SX126X_RX_BOOSTED_GAIN=1
|
|
-D PIN_GPS_RX=47
|
|
-D PIN_GPS_TX=48
|
|
-D PIN_GPS_EN=26
|
|
; ===== CUSTOMIZE THESE =====
|
|
-D ADVERT_NAME='"acrazy"'
|
|
-D ADVERT_LAT=43.562937
|
|
-D ADVERT_LON=-116.480520
|
|
-D ADMIN_PASSWORD='"2087651921"'
|
|
-D MAX_NEIGHBOURS=50
|
|
; Debug
|
|
-D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
|
|
upload_port = /dev/ttyUSB0
|
|
monitor_port = /dev/ttyUSB0
|
|
|
|
; =============================================================================
|
|
; MQTT Gateway Environment
|
|
; Adds WiFi + MQTT bridging capability to the repeater
|
|
; Configure WiFi credentials and MQTT broker below or via web UI
|
|
; =============================================================================
|
|
[env:heltec_v3_mqtt]
|
|
extends = env:heltec_v3_repeater
|
|
|
|
; Additional libraries for MQTT functionality
|
|
lib_deps =
|
|
${env:heltec_v3_repeater.lib_deps}
|
|
knolleary/PubSubClient @ ^2.8
|
|
bblanchon/ArduinoJson @ ^7.0
|
|
|
|
build_flags =
|
|
${env:heltec_v3_repeater.build_flags}
|
|
; Enable MQTT gateway feature
|
|
-D WITH_MQTT=1
|
|
; WiFi credentials (configure these or use web UI)
|
|
-D MQTT_WIFI_SSID='"tsunami"'
|
|
-D MQTT_WIFI_PASS='"2089916341"'
|
|
; MQTT broker settings (defaults, can be changed via web UI)
|
|
-D MQTT_BROKER='"192.168.1.38"'
|
|
-D MQTT_PORT=11883
|
|
-D MQTT_USE_TLS=0
|
|
-D MQTT_USER='""'
|
|
-D MQTT_PASS='""'
|
|
-D MQTT_TOPIC_PREFIX='"meshcore/repeater"'
|
|
|
|
; =============================================================================
|
|
; Ethernet Gateway Environment (ENC28J60)
|
|
; Uses wired Ethernet instead of WiFi for more reliable MQTT bridging
|
|
; Requires ENC28J60 module connected to GPIO19/20/47/48
|
|
; =============================================================================
|
|
[env:heltec_v3_ethernet]
|
|
extends = env:heltec_v3_repeater
|
|
|
|
; Additional libraries for Ethernet + MQTT functionality
|
|
lib_deps =
|
|
${env:heltec_v3_repeater.lib_deps}
|
|
knolleary/PubSubClient @ ^2.8
|
|
bblanchon/ArduinoJson @ ^7.0
|
|
jandrassy/EthernetENC @ ^2.0.4
|
|
|
|
build_flags =
|
|
${env:heltec_v3_repeater.build_flags}
|
|
; Enable Ethernet gateway feature (instead of WiFi)
|
|
-D WITH_ETHERNET=1
|
|
; ENC28J60 SPI pins (safe GPIOs that don't conflict with LoRa)
|
|
-D ETH_SPI_SCK=19
|
|
-D ETH_SPI_MOSI=20
|
|
-D ETH_SPI_MISO=47
|
|
-D ETH_SPI_CS=48
|
|
-D ETH_INT_PIN=-1
|
|
; MQTT broker settings (configure these for your network)
|
|
-D MQTT_BROKER='"192.168.1.38"'
|
|
-D MQTT_PORT=11883
|
|
-D MQTT_USER='""'
|
|
-D MQTT_PASS='""'
|
|
-D MQTT_TOPIC_PREFIX='"meshcore/repeater"'
|