From 1c605e27ac4c53b92bba46bdff6b23eb1bdfafb3 Mon Sep 17 00:00:00 2001 From: kevin Date: Mon, 9 Mar 2026 22:00:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0e22-400M33S=20Signed-off-by:?= =?UTF-8?q?=20kevin=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PCB/Moonshine_MV.eprj2 | Bin 2015232 -> 2015232 bytes PCB/Moonshine_PCB.eprj2 | Bin 4358144 -> 4358144 bytes .../src/mesh/RadioInterface.cpp | 2 +- .../diy/esp32c3_moonshine/pins_arduino.h | 4 +-- .../diy/esp32c3_moonshine/platformio.ini | 2 ++ .../esp32c3/diy/esp32c3_moonshine/variant.h | 25 +++++++++++++----- .../diy/esp32c3_moonshine_mv/variant.h | 15 +++++++++++ 7 files changed, 39 insertions(+), 9 deletions(-) diff --git a/PCB/Moonshine_MV.eprj2 b/PCB/Moonshine_MV.eprj2 index 22a1851b6575699d4e0394b1edc4c44638428960..329ffbf1a6bc36397b06a1cf47f1a773de0fb707 100644 GIT binary patch delta 109 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 C(AQW1 delta 22963 zcmbuHO>A3P700oY*h${Au(W;MR?%*3UHE41DRAQ{La90pBWm zlR<3`mo+yfpzn42ioQ(He^DT~FA=oM!N6^S*m{R#8h1Jf&*%{0-IXZXI~{>50=(Xk z1h2F}c#)9*u|QEjhAZCM@`jETy`kfpgmLq@K(Xk}9M>d#*G`Dk(kDb}>z%k-)+`5A zdUpCHZte>dskoFowTpsm={@xbCga=3P-i!cI<^$XCdG6} zl40li8X(yQb?kf?U5<}H2{SZIlTr!$uq5l)x^eSJw+FaTzj}}OutK90{qFvfuV|+u zI+k-*?KhDilBH@NkF?_+cF2h63YvDgO2mH&2{LQd76(wQIp7m4dLBSdxl~I}H391@9gFbXwJ;cx`BPxUKx1l6g zgx34Oyoa)mMa6Y1O-=&w%^ARr}i+XtJ_) z=?qwE71f%MiV}X$HwsVH_$UOWy692*dy%^6F+nDNOGKv@*I4@%C_}8;Cu0y=)^rl1 zItF^ECT&BC6*;SRlj6W|;|`QBzLS+xgz47!1QPXB;?ZbhL9CZm1_YXX{#2NUecAc_f{ zKhcWfgn+_HsmP@73fnKM_UDKG zde9XrdIs~FP&d$uhih&M#R&3LBaqu7-Tbr&@{UN%naTb}An(d`2OH77C( zIp&^i1oDwcw<3dlA`){TryGGhkn7GiqN|^m)V|Pp(emsSi8BeM`OCm7` z@^g(qzAD%KLL<8CB3(mf?lqB^WA4`)f!q}7X6lgqXDsHnqr*SI&YY(W`m!61f3SH+ zr1rW{?Jlae1KW2Gm2m9)ju2=cRV%|lk5CB*==(yTCnB{U3e^rkwcWV0=>Yky$FV2U z_0{xKAx|%=7J-4Hs6;C6Y1O?lAbQRjr#26G$-s8xd@?!e{BE|$4kcY(^+f#Cuxj5F zu^s96_;QLZAY@D9Y}Z9>N7_7$?WB;+$(I*o2h&{$6tjR@sphRu7G8ZV9O>@(p3-9* zl&vIT8)<~?NK?mWQ=X1BqB|iwm>#X5o>nEEPRYWn=gW~^j_)bmai0N8b!Y}GnQGqV z8(}-r!Xa$qD4SDOUXsPCFfYgswUel)^wdhkcBEnBTdCMSFJv=twyPqxBYhgi_EjO9 zlP_PF9ZdK1QOrDQrJA>I$il0a6=BO})&7LC?MT?Z-3Xhod!wg&C|fGN*j!xv$IORK z>_;VP=DsVWt2kCNpKsFcrf`^}?aB=G1@6X;d7$F?fs2QE*zT;_Y?y;-Gn++G+&vpp zMxp!!N2y!)GyFiSHjZG$5X*=q>%l{^W3!Y7?tYEw9qn5POA2Lald`z`Gd9argvGJ! zI3AyxqGR}Bb_Vs%-HS0TsON#Z4`UukJs9F$0cCObUd)i{EbhLGc_8&%2#b>kXYdJC zdEjoln9VIZyzATCNDV6^jl7HKRR3pl@W>7pcs3Uh79%zXsJL|X+g z+OEuL$Xxm7u^jp`?9Q`K+e7nE4kduN=s5^5+D^`ENHJUk&aLw2HK{`e=Fk=p7u^Hl zkEV*4pKn8wsK`ILvp-%ISmeA#Uz&&Zv5$bbXqoXxlSLKGBL4!m&J5flJG7vE7AVte zKuGjBjz5~*F&3bDXz@?(B#`@-5_czaK4vZ~KnYX?;-dBh7;TpppuPSnaBfwFuHpHk zUeVq2Ekb2_bP-GIH}J6R*dpZA1`rZmeeg$9TBjGGx@hrF?xgjPVRtB|0v6MKASSv6 z%O6dllo#8O0@SsHC6DCe80WR~$P$#)uK;n;jW%Gkomzr&c?&oiiN^ z7XJu@MUNk@K3Ia z&^zweV3-!!>1C+tuz-;04kj?#j1AK5j>2*a)QtfG$|1oQRd!`rdkwfYORPZo1B`ao zdvXO@?`y#Ml|kL`KK86hG_bhd0^*`CH-XW1W(8^zE#TbBA@|R0Fc(?d+bx5_Lep==v|$7^^;{jotzTltY5g@ZJkk zdCadu)D(--XYO9B141Gc^Y1Fc{y1ONa4 diff --git a/code/firmware-2.7.15.567b8ea/src/mesh/RadioInterface.cpp b/code/firmware-2.7.15.567b8ea/src/mesh/RadioInterface.cpp index 3c0da44..c0968fd 100644 --- a/code/firmware-2.7.15.567b8ea/src/mesh/RadioInterface.cpp +++ b/code/firmware-2.7.15.567b8ea/src/mesh/RadioInterface.cpp @@ -58,7 +58,7 @@ const RegionInfo regions[] = { /* https://lora-alliance.org/wp-content/uploads/2020/11/lorawan_regional_parameters_v1.0.3reva_0.pdf */ - RDEF(CN, 470.0f, 510.0f, 100, 0, 19, true, false, false), + RDEF(CN, 470.0f, 510.0f, 100, 0, SETTING_MAX_POWER, true, false, false), /* https://lora-alliance.org/wp-content/uploads/2020/11/lorawan_regional_parameters_v1.0.3reva_0.pdf diff --git a/code/firmware-2.7.15.567b8ea/variants/esp32c3/diy/esp32c3_moonshine/pins_arduino.h b/code/firmware-2.7.15.567b8ea/variants/esp32c3/diy/esp32c3_moonshine/pins_arduino.h index a717a37..7304e82 100644 --- a/code/firmware-2.7.15.567b8ea/variants/esp32c3/diy/esp32c3_moonshine/pins_arduino.h +++ b/code/firmware-2.7.15.567b8ea/variants/esp32c3/diy/esp32c3_moonshine/pins_arduino.h @@ -6,8 +6,8 @@ static const uint8_t TX = 21; static const uint8_t RX = 20; -static const uint8_t SDA = 1; -static const uint8_t SCL = 0; +static const uint8_t SDA = 12; +static const uint8_t SCL = 13; static const uint8_t SS = 8; static const uint8_t MOSI = 7; diff --git a/code/firmware-2.7.15.567b8ea/variants/esp32c3/diy/esp32c3_moonshine/platformio.ini b/code/firmware-2.7.15.567b8ea/variants/esp32c3/diy/esp32c3_moonshine/platformio.ini index 9db1b38..0626c23 100644 --- a/code/firmware-2.7.15.567b8ea/variants/esp32c3/diy/esp32c3_moonshine/platformio.ini +++ b/code/firmware-2.7.15.567b8ea/variants/esp32c3/diy/esp32c3_moonshine/platformio.ini @@ -9,6 +9,8 @@ build_flags = ${esp32c3_base.build_flags} -D PRIVATE_HW -I variants/esp32c3/diy/esp32c3_moonshine + -D ARDUINO_USB_MODE=1 + -D ARDUINO_USB_CDC_ON_BOOT=1 monitor_speed = 115200 upload_protocol = esptool ;upload_port = /dev/ttyUSB0 diff --git a/code/firmware-2.7.15.567b8ea/variants/esp32c3/diy/esp32c3_moonshine/variant.h b/code/firmware-2.7.15.567b8ea/variants/esp32c3/diy/esp32c3_moonshine/variant.h index 5576077..8c32cf8 100644 --- a/code/firmware-2.7.15.567b8ea/variants/esp32c3/diy/esp32c3_moonshine/variant.h +++ b/code/firmware-2.7.15.567b8ea/variants/esp32c3/diy/esp32c3_moonshine/variant.h @@ -4,17 +4,30 @@ // https://resource.heltec.cn/download/HT-CT62/HT-CT62_Reference_Design.pdf // https://resource.heltec.cn/download/HT-DEV-ESP/HT-DEV-ESP_V3_Sch.pdf +#define HAS_SCREEN 0 -#define LED_POWER 12 // LED +#define HAS_I2C 0 +#define WIRE_INTERFACES_COUNT (0) +#define I2C_SDA 12 +#define I2C_SCL 13 + + + +#define BATTERY_PIN 1 +#define ADC_CHANNEL ADC1_GPIO1_CHANNEL +#define ADC_MULTIPLIER 2.0f + +#define LED_POWER 0 // LED #define LED_STATE_ON 1 // State when LED is lit -#define HAS_SCREEN 0 + #define HAS_GPS 0 #undef GPS_RX_PIN #undef GPS_TX_PIN -#define E220_400M30S +//#define E220_400M30S //#define E220_400M33S +#define E22_400M33S #ifdef E220_400M30S #define SETTING_MAX_POWER 30 @@ -22,10 +35,10 @@ #define SX126X_MAX_POWER 22 #endif -#ifdef E220_400M33S +#ifdef E22_400M33S #define SETTING_MAX_POWER 33 -#define TX_GAIN_LORA 25 -#define SX126X_MAX_POWER 8 +#define TX_GAIN_LORA 12 +#define SX126X_MAX_POWER 21 #endif #define USE_LLCC68 diff --git a/code/firmware-2.7.15.567b8ea/variants/esp32c3/diy/esp32c3_moonshine_mv/variant.h b/code/firmware-2.7.15.567b8ea/variants/esp32c3/diy/esp32c3_moonshine_mv/variant.h index 77f4555..d1de630 100644 --- a/code/firmware-2.7.15.567b8ea/variants/esp32c3/diy/esp32c3_moonshine_mv/variant.h +++ b/code/firmware-2.7.15.567b8ea/variants/esp32c3/diy/esp32c3_moonshine_mv/variant.h @@ -23,6 +23,21 @@ #define GPS_POWER_TOGGLE 1 #define PIN_GPS_EN 12 +#define HAS_PCF8574_BUTTON +#define PCF8574_ADDR 0x27 +#define PCF8574_INT_PIN 9 + +#define PCF8574_BUTTON_MAP { \ + INPUT_BROKER_SELECT, /* P0: 确定 */ \ + INPUT_BROKER_DOWN, /* P1: 下 */ \ + INPUT_BROKER_UP, /* P2: 上 */ \ + INPUT_BROKER_LEFT, /* P3: 左 */ \ + INPUT_BROKER_RIGHT, /* P4: 右 */ \ + INPUT_BROKER_SELECT, /* P5: 确定 */ \ + INPUT_BROKER_CANCEL, /* P6: 取消 */ \ + INPUT_BROKER_NONE, /* P7: 未使用 */ \ +} + #define BATTERY_PIN 2 #define ADC_CHANNEL ADC1_GPIO2_CHANNEL