platformio.ini 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. [LilyGo_TBeam_1W]
  2. extends = esp32_base
  3. board = t_beam_1w
  4. board_build.partitions = default_8MB.csv
  5. board_upload.maximum_size = 8388608
  6. build_flags =
  7. ${esp32_base.build_flags}
  8. -I variants/lilygo_tbeam_1w
  9. -D TBEAM_1W
  10. ; Radio - SX1262 with high-power PA (32dBm max output)
  11. ; Note: Set SX1262 output to 22dBm max, external PA provides additional gain
  12. -D USE_SX1262
  13. -D RADIO_CLASS=CustomSX1262
  14. -D WRAPPER_CLASS=CustomSX1262Wrapper
  15. -D P_LORA_DIO_1=1
  16. -D P_LORA_NSS=15
  17. -D P_LORA_RESET=3
  18. -D P_LORA_BUSY=38
  19. -D P_LORA_SCLK=13
  20. -D P_LORA_MISO=12
  21. -D P_LORA_MOSI=11
  22. ; RF switch configuration:
  23. ; DIO2 controls TX path (PA enable) via SX126X_DIO2_AS_RF_SWITCH
  24. ; GPIO21 controls RX path (LNA enable) via SX126X_RXEN
  25. ; Truth table: DIO2=1,RXEN=0 → TX | DIO2=0,RXEN=1 → RX
  26. -D SX126X_DIO2_AS_RF_SWITCH=true
  27. -D SX126X_RXEN=21
  28. -D SX126X_DIO3_TCXO_VOLTAGE=3.0
  29. -D SX126X_CURRENT_LIMIT=140
  30. -D SX126X_RX_BOOSTED_GAIN=1
  31. ; TX power: 22dBm to SX1262, PA module adds ~10dB for 32dBm total
  32. -D LORA_TX_POWER=22
  33. ; Battery - 2S 7.4V LiPo (6.0V min, 8.4V max)
  34. -D BATT_MIN_MILLIVOLTS=6000
  35. -D BATT_MAX_MILLIVOLTS=8400
  36. ; Display - SH1106 OLED at 0x3C
  37. -D DISPLAY_CLASS=SH1106Display
  38. ; I2C pins
  39. -D PIN_BOARD_SDA=8
  40. -D PIN_BOARD_SCL=9
  41. ; GPS - L76K module
  42. ; GNSS_TXD (IO5) = GPS transmits → MCU RX
  43. ; GNSS_RXD (IO6) = GPS receives → MCU TX
  44. -D PIN_GPS_TX=5
  45. -D PIN_GPS_RX=6
  46. -D PIN_GPS_EN=16
  47. -D ENV_INCLUDE_GPS=1
  48. ; User interface
  49. -D PIN_USER_BTN=17
  50. build_src_filter = ${esp32_base.build_src_filter}
  51. +<../variants/lilygo_tbeam_1w>
  52. +<helpers/ui/SH1106Display.cpp>
  53. +<helpers/ui/MomentaryButton.cpp>
  54. +<helpers/sensors>
  55. lib_deps =
  56. ${esp32_base.lib_deps}
  57. adafruit/Adafruit SH110X @ ~2.1.13
  58. stevemarple/MicroNMEA @ ~2.0.6
  59. ; === LILYGO T-Beam 1W Repeater ===
  60. [env:LilyGo_TBeam_1W_repeater]
  61. extends = LilyGo_TBeam_1W
  62. build_flags =
  63. ${LilyGo_TBeam_1W.build_flags}
  64. -D ADVERT_NAME='"T-Beam 1W Repeater"'
  65. -D ADVERT_LAT=0.0
  66. -D ADVERT_LON=0.0
  67. -D ADMIN_PASSWORD='"password"'
  68. -D MAX_NEIGHBOURS=50
  69. -D PERSISTANT_GPS=1
  70. -D ENV_SKIP_GPS_DETECT=1
  71. ; -D MESH_PACKET_LOGGING=1
  72. ; -D MESH_DEBUG=1
  73. build_src_filter = ${LilyGo_TBeam_1W.build_src_filter}
  74. +<../examples/simple_repeater>
  75. lib_deps =
  76. ${LilyGo_TBeam_1W.lib_deps}
  77. ${esp32_ota.lib_deps}
  78. ; === LILYGO T-Beam 1W Room Server ===
  79. [env:LilyGo_TBeam_1W_room_server]
  80. extends = LilyGo_TBeam_1W
  81. build_flags =
  82. ${LilyGo_TBeam_1W.build_flags}
  83. -D ADVERT_NAME='"T-Beam 1W Room"'
  84. -D ADVERT_LAT=0.0
  85. -D ADVERT_LON=0.0
  86. -D ADMIN_PASSWORD='"password"'
  87. -D ROOM_PASSWORD='"hello"'
  88. -D PERSISTANT_GPS=1
  89. -D ENV_SKIP_GPS_DETECT=1
  90. ; -D MESH_PACKET_LOGGING=1
  91. ; -D MESH_DEBUG=1
  92. build_src_filter = ${LilyGo_TBeam_1W.build_src_filter}
  93. +<../examples/simple_room_server>
  94. lib_deps =
  95. ${LilyGo_TBeam_1W.lib_deps}
  96. ${esp32_ota.lib_deps}
  97. ; === LILYGO T-Beam 1W Companion Radio (USB) ===
  98. [env:LilyGo_TBeam_1W_companion_radio_usb]
  99. extends = LilyGo_TBeam_1W
  100. build_flags =
  101. ${LilyGo_TBeam_1W.build_flags}
  102. -I examples/companion_radio/ui-new
  103. -D MAX_CONTACTS=350
  104. -D MAX_GROUP_CHANNELS=40
  105. -D PERSISTANT_GPS=1
  106. -D ENV_SKIP_GPS_DETECT=1
  107. ; -D MESH_PACKET_LOGGING=1
  108. ; -D MESH_DEBUG=1
  109. build_src_filter = ${LilyGo_TBeam_1W.build_src_filter}
  110. +<../examples/companion_radio/*.cpp>
  111. +<../examples/companion_radio/ui-new/*.cpp>
  112. lib_deps =
  113. ${LilyGo_TBeam_1W.lib_deps}
  114. densaugeo/base64 @ ~1.4.0
  115. ; === LILYGO T-Beam 1W Companion Radio (BLE) ===
  116. [env:LilyGo_TBeam_1W_companion_radio_ble]
  117. extends = LilyGo_TBeam_1W
  118. build_flags =
  119. ${LilyGo_TBeam_1W.build_flags}
  120. -I examples/companion_radio/ui-new
  121. -D MAX_CONTACTS=350
  122. -D MAX_GROUP_CHANNELS=40
  123. -D BLE_PIN_CODE=123456
  124. -D OFFLINE_QUEUE_SIZE=256
  125. -D PERSISTANT_GPS=1
  126. -D ENV_SKIP_GPS_DETECT=1
  127. ; -D BLE_DEBUG_LOGGING=1
  128. ; -D MESH_PACKET_LOGGING=1
  129. ; -D MESH_DEBUG=1
  130. build_src_filter = ${LilyGo_TBeam_1W.build_src_filter}
  131. +<helpers/esp32/*.cpp>
  132. +<../examples/companion_radio/*.cpp>
  133. +<../examples/companion_radio/ui-new/*.cpp>
  134. lib_deps =
  135. ${LilyGo_TBeam_1W.lib_deps}
  136. densaugeo/base64 @ ~1.4.0
  137. ; === LILYGO T-Beam 1W Companion Radio (WiFi) ===
  138. [env:LilyGo_TBeam_1W_companion_radio_wifi]
  139. extends = LilyGo_TBeam_1W
  140. build_flags =
  141. ${LilyGo_TBeam_1W.build_flags}
  142. -I examples/companion_radio/ui-new
  143. -D MAX_CONTACTS=350
  144. -D MAX_GROUP_CHANNELS=40
  145. -D OFFLINE_QUEUE_SIZE=256
  146. -D WIFI_DEBUG_LOGGING=1
  147. -D WIFI_SSID='"myssid"'
  148. -D WIFI_PWD='"mypwd"'
  149. -D PERSISTANT_GPS=1
  150. -D ENV_SKIP_GPS_DETECT=1
  151. ; -D MESH_PACKET_LOGGING=1
  152. ; -D MESH_DEBUG=1
  153. build_src_filter = ${LilyGo_TBeam_1W.build_src_filter}
  154. +<helpers/esp32/*.cpp>
  155. +<../examples/companion_radio/*.cpp>
  156. +<../examples/companion_radio/ui-new/*.cpp>
  157. lib_deps =
  158. ${LilyGo_TBeam_1W.lib_deps}
  159. densaugeo/base64 @ ~1.4.0
  160. ; === LILYGO T-Beam 1W Repeater with ESPNow Bridge ===
  161. [env:LilyGo_TBeam_1W_repeater_bridge_espnow]
  162. extends = LilyGo_TBeam_1W
  163. build_flags =
  164. ${LilyGo_TBeam_1W.build_flags}
  165. -D ADVERT_NAME='"T-Beam 1W ESPNow Bridge"'
  166. -D ADVERT_LAT=0.0
  167. -D ADVERT_LON=0.0
  168. -D ADMIN_PASSWORD='"password"'
  169. -D MAX_NEIGHBOURS=50
  170. -D WITH_ESPNOW_BRIDGE=1
  171. -D PERSISTANT_GPS=1
  172. -D ENV_SKIP_GPS_DETECT=1
  173. ; -D BRIDGE_DEBUG=1
  174. ; -D MESH_PACKET_LOGGING=1
  175. ; -D MESH_DEBUG=1
  176. build_src_filter = ${LilyGo_TBeam_1W.build_src_filter}
  177. +<helpers/bridges/ESPNowBridge.cpp>
  178. +<../examples/simple_repeater>
  179. lib_deps =
  180. ${LilyGo_TBeam_1W.lib_deps}
  181. ${esp32_ota.lib_deps}
  182. [env:LilyGo_TBeam_1W_kiss_modem]
  183. extends = LilyGo_TBeam_1W
  184. build_src_filter = ${LilyGo_TBeam_1W.build_src_filter}
  185. +<../examples/kiss_modem/>