; PlatformIO Project Configuration File ; ; Build options: build flags, source filter ; Upload options: custom upload port, speed and extra flags ; Library options: dependencies, extra library storages ; Advanced options: extra scripting ; ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html [platformio] default_envs = view src_dir = firmware/src lib_dir = firmware/lib include_dir = firmware/include test_dir = firmware/test data_dir = firmware/data [base_config] platform = espressif32@3.4 framework = arduino monitor_speed = 921600 monitor_flags = --eol=CRLF --echo --filter=esp32_exception_decoder upload_speed = 921600 lib_deps = infineon/TLV493D-Magnetic-Sensor @ 1.0.3 bxparks/AceButton @ 1.9.1 bakercp/PacketSerial @ 1.4.0 nanopb/Nanopb @ 0.4.7 ; Ideally this would reference the nanopb submodule, but that would require ; everyone to check out submodules to just compile, so we use the library ; registry for the runtime. The submodule is available for manually updating ; the pre-compiled (checked in) .pb.h/c files when proto files change, but is ; otherwise not used during application firmware compilation. build_flags = -DMONITOR_SPEED=921600 [env:view] extends = base_config board = esp32doit-devkit-v1 board_build.partitions = default_ffat.csv lib_deps = ${base_config.lib_deps} askuric/Simple FOC @ 2.2.0 bodmer/TFT_eSPI@2.4.25 fastled/FastLED @ 3.5.0 bogde/HX711 @ 0.7.5 adafruit/Adafruit VEML7700 Library @ 1.1.1 build_flags = ${base_config.build_flags} ; Display enabled: 1=enable, 0=disable -DSK_DISPLAY=1 ; Display orientation: 0=usb bottom, 2=usb top -DSK_DISPLAY_ROTATION=0 ; LEDs enabled: 1=enable, 0=disable -DSK_LEDS=1 ; Number of LEDs -DNUM_LEDS=8 ; Strain-gauge press input enabled: 1=enable, 0=disable -DSK_STRAIN=1 ; Ambient light sensor (VEML7700) enabled: 1=enable (display/LEDs match ambient brightness), 0=disable (100% brightness all the time) -DSK_ALS=1 ; Use MT6701 magnetic encoder -DSENSOR_MT6701=1 ; Invert direction of angle sensor (motor direction is detected relative to angle sensor as part of the calibration procedure) -DSK_INVERT_ROTATION=1 -DMOTOR_WANZHIDA_ONCE_TOP=1 ; Pin configurations -DPIN_UH=26 -DPIN_UL=25 -DPIN_VH=27 -DPIN_VL=32 -DPIN_WH=12 -DPIN_WL=33 -DPIN_BUTTON_NEXT=-1 -DPIN_BUTTON_PREV=-1 -DPIN_SDA=15 -DPIN_SCL=8 -DPIN_MT_DATA=37 -DPIN_MT_CLOCK=13 -DPIN_MT_CSN=14 -DPIN_LED_DATA=7 -DPIN_LCD_BACKLIGHT=19 -DPIN_STRAIN_DO=38 -DPIN_STRAIN_SCK=2 -DDESCRIPTION_FONT=Roboto_Thin_24 -DDESCRIPTION_Y_OFFSET=20 -DVALUE_OFFSET=30 -DDRAW_ARC=0 -DSK_BACKLIGHT_BIT_DEPTH=16 ; TFT_eSPI setup -DUSER_SETUP_LOADED=1 -DGC9A01_DRIVER=1 -DCGRAM_OFFSET=1 -DTFT_WIDTH=240 -DTFT_HEIGHT=240 -DTFT_MISO=-1 -DTFT_MOSI=5 -DTFT_SCLK=20 -DTFT_CS=21 -DTFT_DC=22 -DTFT_RST=4 -DTFT_BL=-1 -DLOAD_GLCD=1 -DLOAD_GFXFF=1 -DSPI_FREQUENCY=40000000 ; Reduce loop task stack size (only works on newer IDF Arduino core) ; -DARDUINO_LOOP_STACK_SIZE=2048 -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG ; FastLED setup ; Modify the default unusable pin mask to allow GPIO 7 (allowed to use on ESP32-PICO-V3-02) ; Unusable bits: 6, 8, 9, 10, 20 ; (0ULL | _FL_BIT(6) | _FL_BIT(8) | _FL_BIT(9) | _FL_BIT(10) | _FL_BIT(20)) -DFASTLED_UNUSABLE_PIN_MASK=0x100740LL ; 0~39 except from 24, 28~31 are valid ; (0xFFFFFFFFFFULL & ~(0ULL | _FL_BIT(24) | _FL_BIT(28) | _FL_BIT(29) | _FL_BIT(30) | _FL_BIT(31))) -DSOC_GPIO_VALID_GPIO_MASK=0xFF0EFFFFFF ; GPIO >= 34 are input only ; (SOC_GPIO_VALID_GPIO_MASK & ~(0ULL | _FL_BIT(34) | _FL_BIT(35) | _FL_BIT(36) | _FL_BIT(37) | _FL_BIT(38) | _FL_BIT(39))) -DSOC_GPIO_VALID_OUTPUT_GPIO_MASK=0x30EFFFFFF [env:nanofoc] extends = base_config platform = espressif32@6.3.1 board = adafruit_feather_esp32s3 board_build.partitions = firmware/partitions-4MB-fat.csv lib_deps = ${base_config.lib_deps} askuric/Simple FOC@2.3.0 bodmer/TFT_eSPI@2.5.0 build_flags = ${base_config.build_flags} ; Display enabled: 1=enable, 0=disable -DSK_DISPLAY=0 ; Display orientation: 0=usb bottom, 2=usb top -DSK_DISPLAY_ROTATION=0 ; LEDs enabled: 1=enable, 0=disable -DSK_LEDS=0 ; Number of LEDs -DNUM_LEDS=8 ; Strain-gauge press input enabled: 1=enable, 0=disable -DSK_STRAIN=0 ; Ambient light sensor (VEML7700) enabled: 1=enable (display/LEDs match ambient brightness), 0=disable (100% brightness all the time) -DSK_ALS=0 -DSENSOR_MAQ430=1 -DPIN_MAQ_SCK=6 -DPIN_MAQ_MISO=7 -DPIN_MAQ_MOSI=5 -DPIN_MAQ_SS=4 ; Invert direction of angle sensor (motor direction is detected relative to angle sensor as part of the calibration procedure) -DSK_INVERT_ROTATION=1 -DMOTOR_MAD2804=1 ; Pin configurations -DPIN_UH=21 -DPIN_UL=12 -DPIN_VH=14 -DPIN_VL=10 -DPIN_WH=13 -DPIN_WL=11 -DPIN_BUTTON_NEXT=-1 -DPIN_BUTTON_PREV=-1 -DPIN_LED_DATA=7 -DPIN_LCD_BACKLIGHT=08 -DPIO_FRAMEWORK_ARDUINO_ENABLE_CDC=1 -DUSBCON=1 -DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_USB_MODE=1 -DCORE_DEBUG_LEVEL=2 -DHSPI_SPEED=100000 ; MA/MAQ Nominal SPI Speed in Mhz (HSPI) -DVSPI_SPEED=400000 ; TFt Nominal SPI Speed in Mhz (VSPI) ; Reduce loop task stack size (only works on newer IDF Arduino core) ; -DARDUINO_LOOP_STACK_SIZE=2048 [env:brushknight_esp32s3] extends = base_config platform = espressif32@6.3.1 board = esp32-s3-devkitc-1 board_build.partitions = default_ffat.csv monitor_speed = 115200 lib_deps = ${base_config.lib_deps} bodmer/TFT_eSPI@2.5.0 fastled/FastLED @ 3.5.0 bogde/HX711 @ 0.7.5 adafruit/Adafruit VEML7700 Library @ 1.1.1 askuric/Simple FOC@2.3.0 build_flags = ${base_config.build_flags} ; Use physical UART for the serial stream rather than the S3 default USB CDC -DSK_FORCE_UART_STREAM=1 -DMONITOR_SPEED=115200 ; Display enabled: 1=enable, 0=disable -DSK_DISPLAY=1 ; PWM bit resolution (even esp32s3 claims that there are 13 bits, max is 12, after it panics) -DSK_BACKLIGHT_BIT_DEPTH=12 ; Display orientation: 0=usb bottom, 2=usb top -DSK_DISPLAY_ROTATION=0 ; LEDs enabled: 1=enable, 0=disable -DSK_LEDS=1 ; Number of LEDs -DNUM_LEDS=8 ; Strain-gauge press input enabled: 1=enable, 0=disable -DSK_STRAIN=1 ; Ambient light sensor (VEML7700) enabled: 1=enable (display/LEDs match ambient brightness), 0=disable (100% brightness all the time) -DSK_ALS=0 ; Use MT6701 magnetic encoder -DSENSOR_MT6701=1 ; Invert direction of angle sensor (motor direction is detected relative to angle sensor as part of the calibration procedure) -DSK_INVERT_ROTATION=1 -DMOTOR_WANZHIDA_ONCE_TOP=1 ; Pin configurations ; Motor -DPIN_UH=20 -DPIN_UL=19 -DPIN_VH=21 -DPIN_VL=17 -DPIN_WH=12 -DPIN_WL=18 -DPIN_BUTTON_NEXT=-1 -DPIN_BUTTON_PREV=-1 -DPIN_LED_DATA=7 -DPIN_LCD_BACKLIGHT=5 -DPIN_SDA=15 -DPIN_SCL=8 -DPIN_MT_DATA=37 -DPIN_MT_CLOCK=13 -DPIN_MT_CSN=14 -DPIN_STRAIN_DO=38 -DPIN_STRAIN_SCK=1 -DDESCRIPTION_FONT=Roboto_Thin_24 -DDESCRIPTION_Y_OFFSET=20 -DVALUE_OFFSET=30 -DDRAW_ARC=0 ; TFT_eSPI setup -DUSER_SETUP_LOADED=1 -DGC9A01_DRIVER=1 -DCGRAM_OFFSET=1 -DTFT_WIDTH=240 -DTFT_HEIGHT=240 -DTFT_MISO=-1 # fake -DTFT_MOSI=3 -DTFT_SCLK=4 -DTFT_CS=9 -DTFT_DC=2 -DTFT_RST=6 -DTFT_BL=-1 -DLOAD_GLCD=1 -DLOAD_GFXFF=1 -DSPI_FREQUENCY=40000000 ; Reduce loop task stack size (only works on newer IDF Arduino core) ; -DARDUINO_LOOP_STACK_SIZE=2048 -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG ; FastLED setup ; Modify the default unusable pin mask to allow GPIO 7 (allowed to use on ESP32-PICO-V3-02) ; Unusable bits: 6, 8, 9, 10, 20 ; (0ULL | _FL_BIT(6) | _FL_BIT(8) | _FL_BIT(9) | _FL_BIT(10) | _FL_BIT(20)) -DFASTLED_UNUSABLE_PIN_MASK=0x100740LL ; 0~39 except from 24, 28~31 are valid ; (0xFFFFFFFFFFULL & ~(0ULL | _FL_BIT(24) | _FL_BIT(28) | _FL_BIT(29) | _FL_BIT(30) | _FL_BIT(31))) -DSOC_GPIO_VALID_GPIO_MASK=0xFF0EFFFFFF ; GPIO >= 34 are input only ; (SOC_GPIO_VALID_GPIO_MASK & ~(0ULL | _FL_BIT(34) | _FL_BIT(35) | _FL_BIT(36) | _FL_BIT(37) | _FL_BIT(38) | _FL_BIT(39))) -DSOC_GPIO_VALID_OUTPUT_GPIO_MASK=0x30EFFFFFF