platformio.ini 5.3 KB

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