meshcore-repeater/platformio.ini
Ryan Malloy 7516c808a7 Add ENC28J60 Ethernet support with INetworkManager abstraction
- 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
2026-02-05 09:45:16 -07:00

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"'