platformio.ini 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. ; PlatformIO Project Configuration File
  2. ;
  3. ; Build options: build flags, source filter
  4. ; Upload options: custom upload port, speed and extra flags
  5. ; Library options: dependencies, extra library storages
  6. ; Advanced options: extra scripting
  7. ;
  8. ; Please visit documentation for the other options and examples
  9. ; https://docs.platformio.org/page/projectconf.html
  10. [platformio]
  11. default_envs = view
  12. src_dir = firmware/src
  13. lib_dir = firmware/lib
  14. include_dir = firmware/include
  15. test_dir = firmware/test
  16. data_dir = firmware/data
  17. [base_config]
  18. platform = espressif32@3.4
  19. framework = arduino
  20. monitor_speed = 921600
  21. monitor_flags =
  22. --eol=CRLF
  23. --echo
  24. --filter=esp32_exception_decoder
  25. upload_speed = 921600
  26. lib_deps =
  27. infineon/TLV493D-Magnetic-Sensor @ 1.0.3
  28. bxparks/AceButton @ 1.9.1
  29. bakercp/PacketSerial @ 1.4.0
  30. nanopb/Nanopb @ 0.4.7 ; Ideally this would reference the nanopb submodule, but that would require
  31. ; everyone to check out submodules to just compile, so we use the library
  32. ; registry for the runtime. The submodule is available for manually updating
  33. ; the pre-compiled (checked in) .pb.h/c files when proto files change, but is
  34. ; otherwise not used during application firmware compilation.
  35. build_flags =
  36. -DMONITOR_SPEED=921600
  37. [env:view]
  38. extends = base_config
  39. board = esp32doit-devkit-v1
  40. board_build.partitions = default_ffat.csv
  41. lib_deps =
  42. ${base_config.lib_deps}
  43. askuric/Simple FOC @ 2.2.0
  44. bodmer/TFT_eSPI@2.4.25
  45. fastled/FastLED @ 3.5.0
  46. bogde/HX711 @ 0.7.5
  47. adafruit/Adafruit VEML7700 Library @ 1.1.1
  48. build_flags =
  49. ${base_config.build_flags}
  50. ; Display enabled: 1=enable, 0=disable
  51. -DSK_DISPLAY=1
  52. ; Display orientation: 0=usb bottom, 2=usb top
  53. -DSK_DISPLAY_ROTATION=0
  54. ; LEDs enabled: 1=enable, 0=disable
  55. -DSK_LEDS=1
  56. ; Number of LEDs
  57. -DNUM_LEDS=8
  58. ; Strain-gauge press input enabled: 1=enable, 0=disable
  59. -DSK_STRAIN=1
  60. ; Ambient light sensor (VEML7700) enabled: 1=enable (display/LEDs match ambient brightness), 0=disable (100% brightness all the time)
  61. -DSK_ALS=1
  62. ; Use MT6701 magnetic encoder
  63. -DSENSOR_MT6701=1
  64. ; Invert direction of angle sensor (motor direction is detected relative to angle sensor as part of the calibration procedure)
  65. -DSK_INVERT_ROTATION=1
  66. -DMOTOR_WANZHIDA_ONCE_TOP=1
  67. ; Pin configurations
  68. -DPIN_UH=26
  69. -DPIN_UL=25
  70. -DPIN_VH=27
  71. -DPIN_VL=32
  72. -DPIN_WH=12
  73. -DPIN_WL=33
  74. -DPIN_BUTTON_NEXT=-1
  75. -DPIN_BUTTON_PREV=-1
  76. -DPIN_SDA=15
  77. -DPIN_SCL=8
  78. -DPIN_MT_DATA=37
  79. -DPIN_MT_CLOCK=13
  80. -DPIN_MT_CSN=14
  81. -DPIN_LED_DATA=7
  82. -DPIN_LCD_BACKLIGHT=19
  83. -DPIN_STRAIN_DO=38
  84. -DPIN_STRAIN_SCK=2
  85. -DDESCRIPTION_FONT=Roboto_Thin_24
  86. -DDESCRIPTION_Y_OFFSET=20
  87. -DVALUE_OFFSET=30
  88. -DDRAW_ARC=0
  89. -DSK_BACKLIGHT_BIT_DEPTH=16
  90. ; TFT_eSPI setup
  91. -DUSER_SETUP_LOADED=1
  92. -DGC9A01_DRIVER=1
  93. -DCGRAM_OFFSET=1
  94. -DTFT_WIDTH=240
  95. -DTFT_HEIGHT=240
  96. -DTFT_MISO=-1
  97. -DTFT_MOSI=5
  98. -DTFT_SCLK=20
  99. -DTFT_CS=21
  100. -DTFT_DC=22
  101. -DTFT_RST=4
  102. -DTFT_BL=-1
  103. -DLOAD_GLCD=1
  104. -DLOAD_GFXFF=1
  105. -DSPI_FREQUENCY=40000000
  106. ; Reduce loop task stack size (only works on newer IDF Arduino core)
  107. ; -DARDUINO_LOOP_STACK_SIZE=2048
  108. -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG
  109. ; FastLED setup
  110. ; Modify the default unusable pin mask to allow GPIO 7 (allowed to use on ESP32-PICO-V3-02)
  111. ; Unusable bits: 6, 8, 9, 10, 20
  112. ; (0ULL | _FL_BIT(6) | _FL_BIT(8) | _FL_BIT(9) | _FL_BIT(10) | _FL_BIT(20))
  113. -DFASTLED_UNUSABLE_PIN_MASK=0x100740LL
  114. ; 0~39 except from 24, 28~31 are valid
  115. ; (0xFFFFFFFFFFULL & ~(0ULL | _FL_BIT(24) | _FL_BIT(28) | _FL_BIT(29) | _FL_BIT(30) | _FL_BIT(31)))
  116. -DSOC_GPIO_VALID_GPIO_MASK=0xFF0EFFFFFF
  117. ; GPIO >= 34 are input only
  118. ; (SOC_GPIO_VALID_GPIO_MASK & ~(0ULL | _FL_BIT(34) | _FL_BIT(35) | _FL_BIT(36) | _FL_BIT(37) | _FL_BIT(38) | _FL_BIT(39)))
  119. -DSOC_GPIO_VALID_OUTPUT_GPIO_MASK=0x30EFFFFFF
  120. [env:nanofoc]
  121. extends = base_config
  122. platform = espressif32@6.3.1
  123. board = adafruit_feather_esp32s3
  124. board_build.partitions = firmware/partitions-4MB-fat.csv
  125. lib_deps =
  126. ${base_config.lib_deps}
  127. askuric/Simple FOC@2.3.0
  128. bodmer/TFT_eSPI@2.5.0
  129. build_flags =
  130. ${base_config.build_flags}
  131. ; Display enabled: 1=enable, 0=disable
  132. -DSK_DISPLAY=0
  133. ; Display orientation: 0=usb bottom, 2=usb top
  134. -DSK_DISPLAY_ROTATION=0
  135. ; LEDs enabled: 1=enable, 0=disable
  136. -DSK_LEDS=0
  137. ; Number of LEDs
  138. -DNUM_LEDS=8
  139. ; Strain-gauge press input enabled: 1=enable, 0=disable
  140. -DSK_STRAIN=0
  141. ; Ambient light sensor (VEML7700) enabled: 1=enable (display/LEDs match ambient brightness), 0=disable (100% brightness all the time)
  142. -DSK_ALS=0
  143. -DSENSOR_MAQ430=1
  144. -DPIN_MAQ_SCK=6
  145. -DPIN_MAQ_MISO=7
  146. -DPIN_MAQ_MOSI=5
  147. -DPIN_MAQ_SS=4
  148. ; Invert direction of angle sensor (motor direction is detected relative to angle sensor as part of the calibration procedure)
  149. -DSK_INVERT_ROTATION=1
  150. -DMOTOR_MAD2804=1
  151. ; Pin configurations
  152. -DPIN_UH=21
  153. -DPIN_UL=12
  154. -DPIN_VH=14
  155. -DPIN_VL=10
  156. -DPIN_WH=13
  157. -DPIN_WL=11
  158. -DPIN_BUTTON_NEXT=-1
  159. -DPIN_BUTTON_PREV=-1
  160. -DPIN_LED_DATA=7
  161. -DPIN_LCD_BACKLIGHT=08
  162. -DPIO_FRAMEWORK_ARDUINO_ENABLE_CDC=1
  163. -DUSBCON=1
  164. -DARDUINO_USB_CDC_ON_BOOT=1
  165. -DARDUINO_USB_MODE=1
  166. -DCORE_DEBUG_LEVEL=2
  167. -DHSPI_SPEED=100000 ; MA/MAQ Nominal SPI Speed in Mhz (HSPI)
  168. -DVSPI_SPEED=400000 ; TFt Nominal SPI Speed in Mhz (VSPI)
  169. ; Reduce loop task stack size (only works on newer IDF Arduino core)
  170. ; -DARDUINO_LOOP_STACK_SIZE=2048
  171. [env:brushknight_esp32s3]
  172. extends = base_config
  173. platform = espressif32@6.3.1
  174. board = esp32-s3-devkitc-1
  175. board_build.partitions = default_ffat.csv
  176. monitor_speed = 115200
  177. lib_deps =
  178. ${base_config.lib_deps}
  179. bodmer/TFT_eSPI@2.5.0
  180. fastled/FastLED @ 3.5.0
  181. bogde/HX711 @ 0.7.5
  182. adafruit/Adafruit VEML7700 Library @ 1.1.1
  183. askuric/Simple FOC@2.3.0
  184. build_flags =
  185. ${base_config.build_flags}
  186. ; Use physical UART for the serial stream rather than the S3 default USB CDC
  187. -DSK_FORCE_UART_STREAM=1
  188. -DMONITOR_SPEED=115200
  189. ; Display enabled: 1=enable, 0=disable
  190. -DSK_DISPLAY=1
  191. ; PWM bit resolution (even esp32s3 claims that there are 13 bits, max is 12, after it panics)
  192. -DSK_BACKLIGHT_BIT_DEPTH=12
  193. ; Display orientation: 0=usb bottom, 2=usb top
  194. -DSK_DISPLAY_ROTATION=0
  195. ; LEDs enabled: 1=enable, 0=disable
  196. -DSK_LEDS=1
  197. ; Number of LEDs
  198. -DNUM_LEDS=8
  199. ; Strain-gauge press input enabled: 1=enable, 0=disable
  200. -DSK_STRAIN=1
  201. ; Ambient light sensor (VEML7700) enabled: 1=enable (display/LEDs match ambient brightness), 0=disable (100% brightness all the time)
  202. -DSK_ALS=0
  203. ; Use MT6701 magnetic encoder
  204. -DSENSOR_MT6701=1
  205. ; Invert direction of angle sensor (motor direction is detected relative to angle sensor as part of the calibration procedure)
  206. -DSK_INVERT_ROTATION=1
  207. -DMOTOR_WANZHIDA_ONCE_TOP=1
  208. ; Pin configurations
  209. ; Motor
  210. -DPIN_UH=20
  211. -DPIN_UL=19
  212. -DPIN_VH=21
  213. -DPIN_VL=17
  214. -DPIN_WH=12
  215. -DPIN_WL=18
  216. -DPIN_BUTTON_NEXT=-1
  217. -DPIN_BUTTON_PREV=-1
  218. -DPIN_LED_DATA=7
  219. -DPIN_LCD_BACKLIGHT=5
  220. -DPIN_SDA=15
  221. -DPIN_SCL=8
  222. -DPIN_MT_DATA=37
  223. -DPIN_MT_CLOCK=13
  224. -DPIN_MT_CSN=14
  225. -DPIN_STRAIN_DO=38
  226. -DPIN_STRAIN_SCK=1
  227. -DDESCRIPTION_FONT=Roboto_Thin_24
  228. -DDESCRIPTION_Y_OFFSET=20
  229. -DVALUE_OFFSET=30
  230. -DDRAW_ARC=0
  231. ; TFT_eSPI setup
  232. -DUSER_SETUP_LOADED=1
  233. -DGC9A01_DRIVER=1
  234. -DCGRAM_OFFSET=1
  235. -DTFT_WIDTH=240
  236. -DTFT_HEIGHT=240
  237. -DTFT_MISO=-1 # fake
  238. -DTFT_MOSI=3
  239. -DTFT_SCLK=4
  240. -DTFT_CS=9
  241. -DTFT_DC=2
  242. -DTFT_RST=6
  243. -DTFT_BL=-1
  244. -DLOAD_GLCD=1
  245. -DLOAD_GFXFF=1
  246. -DSPI_FREQUENCY=40000000
  247. ; Reduce loop task stack size (only works on newer IDF Arduino core)
  248. ; -DARDUINO_LOOP_STACK_SIZE=2048
  249. -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG
  250. ; FastLED setup
  251. ; Modify the default unusable pin mask to allow GPIO 7 (allowed to use on ESP32-PICO-V3-02)
  252. ; Unusable bits: 6, 8, 9, 10, 20
  253. ; (0ULL | _FL_BIT(6) | _FL_BIT(8) | _FL_BIT(9) | _FL_BIT(10) | _FL_BIT(20))
  254. -DFASTLED_UNUSABLE_PIN_MASK=0x100740LL
  255. ; 0~39 except from 24, 28~31 are valid
  256. ; (0xFFFFFFFFFFULL & ~(0ULL | _FL_BIT(24) | _FL_BIT(28) | _FL_BIT(29) | _FL_BIT(30) | _FL_BIT(31)))
  257. -DSOC_GPIO_VALID_GPIO_MASK=0xFF0EFFFFFF
  258. ; GPIO >= 34 are input only
  259. ; (SOC_GPIO_VALID_GPIO_MASK & ~(0ULL | _FL_BIT(34) | _FL_BIT(35) | _FL_BIT(36) | _FL_BIT(37) | _FL_BIT(38) | _FL_BIT(39)))
  260. -DSOC_GPIO_VALID_OUTPUT_GPIO_MASK=0x30EFFFFFF