Signed-off-by: 吴文峰 <kevin@lmve.net>
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
[env:CDEBYTE_E77-MBL]
|
||||
extends = stm32_base
|
||||
board = ebyte_e77_dev
|
||||
board_upload.maximum_size = 233472 ; reserve the last 28KB for filesystem
|
||||
board_level = extra
|
||||
build_flags =
|
||||
${stm32_base.build_flags}
|
||||
-Ivariants/stm32/CDEBYTE_E77-MBL
|
||||
-DSERIAL_UART_INSTANCE=2
|
||||
-DPIN_SERIAL_RX=PA3
|
||||
-DPIN_SERIAL_TX=PA2
|
||||
-DENABLE_HWSERIAL1
|
||||
-DPIN_SERIAL1_RX=PB7
|
||||
-DPIN_SERIAL1_TX=PB6
|
||||
-DMESHTASTIC_EXCLUDE_ENVIRONMENTAL_SENSOR=1
|
||||
-DMESHTASTIC_EXCLUDE_AIR_QUALITY_SENSOR=1
|
||||
-DMESHTASTIC_EXCLUDE_I2C=1
|
||||
-DMESHTASTIC_EXCLUDE_GPS=1
|
||||
|
||||
upload_port = stlink
|
||||
@@ -0,0 +1,9 @@
|
||||
// From E77-900M22S Product Specification
|
||||
// https://www.cdebyte.com/pdf-down.aspx?id=2963
|
||||
// Note 1: PA6 and PA7 pins are used as internal control RF switches of the module, PA6 = RF_TXEN, PA7 = RF_RXEN, RF_TXEN=1
|
||||
// RF_RXEN=0 is the transmit channel, and RF_TXEN=0 RF_RXEN=1 is the receiving channel
|
||||
|
||||
static const RADIOLIB_PIN_TYPE rfswitch_pins[5] = {PA7, PA6, RADIOLIB_NC, RADIOLIB_NC, RADIOLIB_NC};
|
||||
|
||||
static const Module::RfSwitchMode_t rfswitch_table[4] = {
|
||||
{STM32WLx::MODE_IDLE, {LOW, LOW}}, {STM32WLx::MODE_RX, {HIGH, LOW}}, {STM32WLx::MODE_TX_HP, {LOW, HIGH}}, END_OF_MODE_TABLE};
|
||||
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
EByte E77-MBL series
|
||||
https://www.cdebyte.com/products/E77-900MBL-01
|
||||
https://www.cdebyte.com/products/E77-400MBL-01
|
||||
https://github.com/olliw42/mLRS-docu/blob/master/docs/EBYTE_E77_MBL.md
|
||||
*/
|
||||
|
||||
/*
|
||||
This variant is a work in progress.
|
||||
Do not expect a working Meshtastic device with this target.
|
||||
*/
|
||||
|
||||
#ifndef _VARIANT_EBYTE_E77_
|
||||
#define _VARIANT_EBYTE_E77_
|
||||
|
||||
#define USE_STM32WLx
|
||||
|
||||
#define LED_POWER PB4 // LED1
|
||||
// #define LED_POWER PB3 // LED2
|
||||
#define LED_STATE_ON 1
|
||||
|
||||
#define SERIAL_PRINT_PORT 1
|
||||
|
||||
#define EBYTE_E77_MBL
|
||||
#endif
|
||||
@@ -0,0 +1,24 @@
|
||||
; Milesight GS301 Bathroom Odor Detector
|
||||
; https://www.milesight.com/iot/product/lorawan-sensor/gs301
|
||||
[env:milesight_gs301]
|
||||
extends = stm32_base
|
||||
board = wiscore_rak3172 ; Convenient choice as the same USART is used for programming/debug
|
||||
board_level = extra
|
||||
board_upload.maximum_size = 233472 ; reserve the last 28KB for filesystem
|
||||
build_flags =
|
||||
${stm32_base.build_flags}
|
||||
-Ivariants/stm32/milesight_gs301
|
||||
-DPRIVATE_HW
|
||||
-DMESHTASTIC_EXCLUDE_GPS=1
|
||||
-DMESHTASTIC_EXCLUDE_I2C=1 # Analog ADuCM355 (unsupported) so no point building support for I2C in
|
||||
-DMESHTASTIC_EXCLUDE_ENVIRONMENTAL_SENSOR=1
|
||||
-DMESHTASTIC_EXCLUDE_AIR_QUALITY_SENSOR=1
|
||||
build_unflags =
|
||||
-DDEBUG_MUTE # We have space for debug output until sensor support is added
|
||||
build_src_filter =
|
||||
${stm32_base.build_src_filter}
|
||||
+<../variants/stm32/milesight_gs301>
|
||||
lib_deps =
|
||||
${stm32_base.lib_deps}
|
||||
|
||||
upload_port = stlink
|
||||
@@ -0,0 +1,7 @@
|
||||
// Seems to use the same RF switch pins as RAK3172… getting Tx/Rx SNR +11dB with a nearby node
|
||||
// PB8, PC13
|
||||
|
||||
static const RADIOLIB_PIN_TYPE rfswitch_pins[5] = {PB8, PC13, RADIOLIB_NC, RADIOLIB_NC, RADIOLIB_NC};
|
||||
|
||||
static const Module::RfSwitchMode_t rfswitch_table[4] = {
|
||||
{STM32WLx::MODE_IDLE, {LOW, LOW}}, {STM32WLx::MODE_RX, {HIGH, LOW}}, {STM32WLx::MODE_TX_HP, {LOW, HIGH}}, END_OF_MODE_TABLE};
|
||||
@@ -0,0 +1,8 @@
|
||||
#include "variant.h"
|
||||
#include "Arduino.h"
|
||||
|
||||
void earlyInitVariant()
|
||||
{
|
||||
pinMode(USER_LED, OUTPUT);
|
||||
digitalWrite(USER_LED, HIGH ^ LED_STATE_ON);
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
#ifndef _VARIANT_MILESIGHT_GS301_
|
||||
#define _VARIANT_MILESIGHT_GS301_
|
||||
|
||||
#define USE_STM32WLx
|
||||
|
||||
// I/O
|
||||
#define LED_STATE_ON 1
|
||||
#define PIN_LED1 PA0 // Green LED
|
||||
#define LED_POWER PIN_LED1
|
||||
#define PIN_LED2 PA0 // Red LED
|
||||
#define USER_LED PIN_LED2
|
||||
#define BUTTON_PIN PC13
|
||||
#define BUTTON_ACTIVE_LOW true
|
||||
#define BUTTON_ACTIVE_PULLUP false
|
||||
#define PIN_BUZZER PA6
|
||||
|
||||
// EC Sense DGM10 Double Gas Module
|
||||
// Analog ADuCM355 (unsupported); SHTC3 is connected to ADuCM355 and not directly accessible
|
||||
#define PIN_WIRE_SDA PB7
|
||||
#define PIN_WIRE_SCL PB8
|
||||
// Commented out to keep sensor powered down due to lack of support
|
||||
/*
|
||||
#define VEXT_ENABLE PB12 // TI TPS61291DRV VSEL - set LOW before ENable for Vout = 3.3V
|
||||
#define VEXT_ON_VALUE LOW
|
||||
#define SENSOR_POWER_CTRL_PIN PB2 // TI TPS61291DRV EN pin
|
||||
#define SENSOR_POWER_ON HIGH
|
||||
#define HAS_SENSOR 1
|
||||
*/
|
||||
|
||||
#define ENABLE_HWSERIAL1
|
||||
#define PIN_SERIAL1_RX NC
|
||||
#define PIN_SERIAL1_TX PB6
|
||||
|
||||
// LoRa
|
||||
#define SX126X_DIO3_TCXO_VOLTAGE 3.0
|
||||
|
||||
// Required to avoid Serial1 conflicts due to board definition here:
|
||||
// https://github.com/stm32duino/Arduino_Core_STM32/blob/main/variants/STM32WLxx/WL54CCU_WL55CCU_WLE4C(8-B-C)U_WLE5C(8-B-C)U/variant_RAK3172_MODULE.h
|
||||
#define RAK3172
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,19 @@
|
||||
[env:rak3172]
|
||||
extends = stm32_base
|
||||
board = wiscore_rak3172
|
||||
board_level = pr
|
||||
board_upload.maximum_size = 233472 ; reserve the last 28KB for filesystem
|
||||
build_flags =
|
||||
${stm32_base.build_flags}
|
||||
-Ivariants/stm32/rak3172
|
||||
-DENABLE_HWSERIAL1
|
||||
-DPIN_SERIAL1_RX=PB7
|
||||
-DPIN_SERIAL1_TX=PB6
|
||||
-DPIN_WIRE_SDA=PA11
|
||||
-DPIN_WIRE_SCL=PA12
|
||||
-DMESHTASTIC_EXCLUDE_ENVIRONMENTAL_SENSOR=1
|
||||
-DMESHTASTIC_EXCLUDE_AIR_QUALITY_SENSOR=1
|
||||
-DMESHTASTIC_EXCLUDE_I2C=1
|
||||
-DMESHTASTIC_EXCLUDE_GPS=1
|
||||
|
||||
upload_port = stlink
|
||||
@@ -0,0 +1,7 @@
|
||||
// Pins from https://forum.rakwireless.com/t/rak3172-internal-schematic/4557/2
|
||||
// PB8, PC13
|
||||
|
||||
static const RADIOLIB_PIN_TYPE rfswitch_pins[5] = {PB8, PC13, RADIOLIB_NC, RADIOLIB_NC, RADIOLIB_NC};
|
||||
|
||||
static const Module::RfSwitchMode_t rfswitch_table[4] = {
|
||||
{STM32WLx::MODE_IDLE, {LOW, LOW}}, {STM32WLx::MODE_RX, {HIGH, LOW}}, {STM32WLx::MODE_TX_HP, {LOW, HIGH}}, END_OF_MODE_TABLE};
|
||||
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
STM32WLE5 Core Module for LoRaWAN® RAK3372
|
||||
https://store.rakwireless.com/products/wisblock-core-module-rak3372
|
||||
*/
|
||||
|
||||
/*
|
||||
This variant is a work in progress.
|
||||
Do not expect a working Meshtastic device with this target.
|
||||
*/
|
||||
|
||||
#ifndef _VARIANT_RAK3172_
|
||||
#define _VARIANT_RAK3172_
|
||||
|
||||
#define USE_STM32WLx
|
||||
|
||||
#define LED_POWER PA0 // Green LED
|
||||
#define LED_STATE_ON 1
|
||||
|
||||
#define RAK3172
|
||||
#define SERIAL_PRINT_PORT 1
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,21 @@
|
||||
; Russell is a board designed to mount on an ER34615/IFR32700 cell and go Up! on a balloon
|
||||
; Hardware repository: https://github.com/Meshtastic-Malaysia/russell
|
||||
; - RAK3172 STM32WLE5CCU6 MCU + integrated SX1262 LoRa
|
||||
; - CDtop CD-PA1010D GPS
|
||||
; - Bosch Sensortec BME280 sensor
|
||||
; - Consonance CN3158 LiFePO4 solar charger
|
||||
[env:russell]
|
||||
extends = stm32_base
|
||||
board = wiscore_rak3172
|
||||
board_level = extra
|
||||
board_upload.maximum_size = 233472 ; reserve the last 28KB for filesystem
|
||||
build_flags =
|
||||
${stm32_base.build_flags}
|
||||
-Ivariants/stm32/russell
|
||||
-DPRIVATE_HW
|
||||
lib_deps =
|
||||
${stm32_base.lib_deps}
|
||||
# renovate: datasource=custom.pio depName=Adafruit BME280 packageName=adafruit/library/Adafruit BME280 Library
|
||||
adafruit/Adafruit BME280 Library@2.3.0
|
||||
|
||||
upload_port = stlink
|
||||
@@ -0,0 +1,7 @@
|
||||
// Pins from https://forum.rakwireless.com/t/rak3172-internal-schematic/4557/2
|
||||
// PB8, PC13
|
||||
|
||||
static const RADIOLIB_PIN_TYPE rfswitch_pins[5] = {PB8, PC13, RADIOLIB_NC, RADIOLIB_NC, RADIOLIB_NC};
|
||||
|
||||
static const Module::RfSwitchMode_t rfswitch_table[4] = {
|
||||
{STM32WLx::MODE_IDLE, {LOW, LOW}}, {STM32WLx::MODE_RX, {HIGH, LOW}}, {STM32WLx::MODE_TX_HP, {LOW, HIGH}}, END_OF_MODE_TABLE};
|
||||
@@ -0,0 +1,41 @@
|
||||
#ifndef _VARIANT_RUSSELL_
|
||||
#define _VARIANT_RUSSELL_
|
||||
|
||||
#define USE_STM32WLx
|
||||
|
||||
// I/O
|
||||
#define LED_POWER PA0 // Red LED
|
||||
#define LED_STATE_ON 1
|
||||
#define BUTTON_PIN PH3 // Shared with BOOT0
|
||||
#define BUTTON_NEED_PULLUP
|
||||
// Charger IC charge/standby pins are open-drain with no hardware pull-up:
|
||||
// Internal pull-up is needed on STM32 (TODO)
|
||||
// #define EXT_CHRG_DETECT PA5
|
||||
// #define EXT_PWR_DETECT PA4
|
||||
|
||||
// Bosch Sensortec BME280
|
||||
#define HAS_SENSOR 1
|
||||
|
||||
// CDtop CD-PA1010D
|
||||
#define ENABLE_HWSERIAL1
|
||||
#define PIN_SERIAL1_RX PB7
|
||||
#define PIN_SERIAL1_TX PB6
|
||||
#define HAS_GPS 1
|
||||
#define PIN_GPS_STANDBY PA15
|
||||
#define GPS_RX_PIN PB7
|
||||
#define GPS_TX_PIN PB6
|
||||
|
||||
// LoRa
|
||||
/*
|
||||
* RAK3172 (-20–85°C) -> No TCXO
|
||||
* RAK3172-T (-40–85°C) -> 3.0V TCXO
|
||||
* https://github.com/RAKWireless/RAK-STM32-RUI/blob/e5a28be8fab1a492bd9223dd425ca33a8a297d90/variants/WisDuo_RAK3172-T_Board/radio_conf.h#L91
|
||||
*/
|
||||
#define TCXO_OPTIONAL
|
||||
#define SX126X_DIO3_TCXO_VOLTAGE 3.0
|
||||
|
||||
// Required to avoid Serial1 conflicts due to board definition here:
|
||||
// https://github.com/stm32duino/Arduino_Core_STM32/blob/main/variants/STM32WLxx/WL54CCU_WL55CCU_WLE4C(8-B-C)U_WLE5C(8-B-C)U/variant_RAK3172_MODULE.h
|
||||
#define RAK3172
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,58 @@
|
||||
[stm32_base]
|
||||
extends = arduino_base
|
||||
platform =
|
||||
# renovate: datasource=custom.pio depName=platformio/ststm32 packageName=platformio/platform/ststm32
|
||||
platformio/ststm32@19.5.0
|
||||
platform_packages =
|
||||
# renovate: datasource=github-tags depName=Arduino_Core_STM32 packageName=stm32duino/Arduino_Core_STM32
|
||||
platformio/framework-arduinoststm32@https://github.com/stm32duino/Arduino_Core_STM32/archive/2.10.1.zip
|
||||
extra_scripts =
|
||||
${env.extra_scripts}
|
||||
extra_scripts/stm32_extra.py
|
||||
|
||||
build_type = release
|
||||
|
||||
build_flags =
|
||||
${arduino_base.build_flags}
|
||||
-flto
|
||||
-Isrc/platform/stm32wl -g
|
||||
-DMESHTASTIC_EXCLUDE_AUDIO=1
|
||||
-DMESHTASTIC_EXCLUDE_ATAK=1 ; ATAK is quite big, disable it for big flash savings.
|
||||
-DMESHTASTIC_EXCLUDE_INPUTBROKER=1
|
||||
-DMESHTASTIC_EXCLUDE_POWERMON=1
|
||||
-DMESHTASTIC_EXCLUDE_SCREEN=1
|
||||
-DMESHTASTIC_EXCLUDE_MQTT=1
|
||||
-DMESHTASTIC_EXCLUDE_BLUETOOTH=1
|
||||
-DMESHTASTIC_EXCLUDE_WIFI=1
|
||||
-DMESHTASTIC_EXCLUDE_TZ=1 ; Exclude TZ to save some flash space.
|
||||
-DSERIAL_RX_BUFFER_SIZE=256 ; For GPS - the default of 64 is too small.
|
||||
-DHAS_SCREEN=0 ; Always disable screen for STM32, it is not supported.
|
||||
-DPIO_FRAMEWORK_ARDUINO_NANOLIB_FLOAT_PRINTF ; This is REQUIRED for at least traceroute debug prints - without it the length ends up uninitialized.
|
||||
-DDEBUG_MUTE ; You can #undef DEBUG_MUTE in certain source files if you need the logs.
|
||||
-fmerge-all-constants
|
||||
-ffunction-sections
|
||||
-fdata-sections
|
||||
-DRADIOLIB_EXCLUDE_SX128X=1
|
||||
-DRADIOLIB_EXCLUDE_SX127X=1
|
||||
-DRADIOLIB_EXCLUDE_LR11X0=1
|
||||
-DHAL_DAC_MODULE_ONLY
|
||||
-DHAL_RNG_MODULE_ENABLED
|
||||
-Wl,--wrap=__assert_func
|
||||
-Wl,--wrap=strerror
|
||||
-Wl,--wrap=_tzset_unlocked_r
|
||||
|
||||
build_src_filter =
|
||||
${arduino_base.build_src_filter} -<platform/esp32/> -<nimble/> -<mesh/api/> -<mesh/wifi/> -<mesh/http/> -<modules/esp32> -<mesh/eth/> -<input> -<buzz> -<modules/RemoteHardwareModule.cpp> -<platform/nrf52> -<platform/portduino> -<platform/rp2xx0> -<mesh/raspihttp>
|
||||
|
||||
board_upload.offset_address = 0x08000000
|
||||
upload_protocol = stlink
|
||||
debug_tool = stlink
|
||||
|
||||
lib_deps =
|
||||
${env.lib_deps}
|
||||
${radiolib_base.lib_deps}
|
||||
# renovate: datasource=git-refs depName=caveman99-stm32-Crypto packageName=https://github.com/caveman99/Crypto gitBranch=main
|
||||
https://github.com/caveman99/Crypto/archive/1aa30eb536bd52a576fde6dfa393bf7349cf102d.zip
|
||||
|
||||
lib_ignore =
|
||||
OneButton
|
||||
@@ -0,0 +1,22 @@
|
||||
[env:wio-e5]
|
||||
extends = stm32_base
|
||||
board = lora_e5_dev_board
|
||||
board_level = pr
|
||||
board_upload.maximum_size = 233472 ; reserve the last 28KB for filesystem
|
||||
build_flags =
|
||||
${stm32_base.build_flags}
|
||||
-Ivariants/stm32/wio-e5
|
||||
-DSERIAL_UART_INSTANCE=1
|
||||
-DPIN_SERIAL_RX=PB7
|
||||
-DPIN_SERIAL_TX=PB6
|
||||
-DPIN_WIRE_SDA=PA15
|
||||
-DPIN_WIRE_SCL=PB15
|
||||
-DHAS_SENSOR=1
|
||||
-DENABLE_HWSERIAL2
|
||||
-DPIN_SERIAL2_TX=PA2
|
||||
-DPIN_SERIAL2_RX=PA3
|
||||
-DHAS_GPS=1
|
||||
-DGPS_SERIAL_PORT=Serial2
|
||||
-DMESHTASTIC_EXCLUDE_AIR_QUALITY_SENSOR=1
|
||||
|
||||
upload_port = stlink
|
||||
@@ -0,0 +1,8 @@
|
||||
/* https://wiki.seeedstudio.com/LoRa-E5_STM32WLE5JC_Module/
|
||||
* Wio-E5 module ONLY transmits through RFO_HP
|
||||
* Receive: PA4=1, PA5=0
|
||||
* Transmit(high output power, SMPS mode): PA4=0, PA5=1 */
|
||||
static const RADIOLIB_PIN_TYPE rfswitch_pins[5] = {PA4, PA5, RADIOLIB_NC, RADIOLIB_NC, RADIOLIB_NC};
|
||||
|
||||
static const Module::RfSwitchMode_t rfswitch_table[4] = {
|
||||
{STM32WLx::MODE_IDLE, {LOW, LOW}}, {STM32WLx::MODE_RX, {HIGH, LOW}}, {STM32WLx::MODE_TX_HP, {LOW, HIGH}}, END_OF_MODE_TABLE};
|
||||
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
Wio-E5 mini (formerly LoRa-E5 mini)
|
||||
https://www.seeedstudio.com/LoRa-E5-mini-STM32WLE5JC-p-4869.html
|
||||
https://www.seeedstudio.com/LoRa-E5-Wireless-Module-p-4745.html
|
||||
*/
|
||||
|
||||
/*
|
||||
This variant is a work in progress.
|
||||
Do not expect a working Meshtastic device with this target.
|
||||
*/
|
||||
|
||||
#ifndef _VARIANT_WIOE5_
|
||||
#define _VARIANT_WIOE5_
|
||||
|
||||
#define USE_STM32WLx
|
||||
|
||||
#define LED_POWER PB5
|
||||
#define LED_STATE_ON 0
|
||||
|
||||
#define WIO_E5
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user