Bodmer / TFT_eSPI

Arduino and PlatformIO IDE compatible TFT library optimised for the Raspberry Pi Pico (RP2040), STM32, ESP8266 and ESP32 that supports different driver chips
Other
3.79k stars 1.09k forks source link

TFT_eSPI, Nano 33 BLE and st7796s display. #1256

Closed IanBUK closed 3 years ago

IanBUK commented 3 years ago

Good evening.

Does TFT_eSPI work with the Nano 33 BLE? I am using the Nano with the st7796s display. All works fine using mcufriend and adafruit_gfx, but I want to use TFT_eSPI so I can get anti-aliased fonts and use lvgl.

I’ve created a user setup file, based on the setup 31 st7796s parallel stm one, commenting out the #define stm line. If I don’t disable that line I get a whole load of compile errors because my board is not an stm one. If I do comment that line, I get compile failures in the example because CONSTRUCTOR_INIT_TFT_DATA_BUS is not defined. So, I assume I need an equivalent of the stm or esp32 processor files.

So, does this library work with the Nano 33 BLE and st7796s? What obvious thing am I missing?

Thanks.

TFT pins shown below.

01ECACB1-CF91-46D1-B5A9-727538ACB9D9

_Originally posted by @IanBUK in https://github.com/Bodmer/TFT_eSPI/discussions/1248_

IanBUK commented 3 years ago

Any suggestions? Does/Can this library work on the Nano 33 BLE please?

Bodmer commented 3 years ago

The Nano 33 would be treated as a generic processor and only basic Arduino I/O functions used (no optimsed code in the library).

I do not have a Nano 33 to test but I would expect it to work albeit very slowly. I suspect it would be so slow however that LVGL would run too slow to be usable.

Bodmer commented 3 years ago

I will look into the CONSTRUCTOR_INIT_TFT_DATA_BUS error as that may be a bug.

Bodmer commented 3 years ago

Ah, I see from the picture you posted that it is an 8/16 bit parallel display. Unfortunately parallel displays are not currently supported for generic processors, only ESP32 and STM32F series.

I suspect an SPI display would work OK as this has been tested on other generic processors, but it would be too slow to use with LVGL as explained above. Both parallel and SPI displays really need optimised drivers to get the performance to acceptable levels.

dattasaurabh82 commented 8 months ago

I'm trying to Arduino Nano 33 BLE Sense Rev2 (based on nrf52840, running MBED_OS) I followed t5his thread and this is what I defined in User_setup.h (as to those digital pins I have my ST7789 connected)

The lib Version is: 2.5.34

#ifdef ARDUINO_ARCH_MBED
  #define TFT_MISO   p4     // Arduino pin D12
  #define TFT_MOSI   p7     // Arduino pin D11
  #define TFT_SCLK   p6     // Arduino pin D13
  #define TFT_CS     p20    // Arduino pin D8
  #define TFT_DC    p21     // Arduino pin D9
  #define TFT_RST   p19     // Arduino pin D7 
#else // For Earle Philhower's package the Arduino Dx pin designations must be used:
  #define TFT_MISO  D12
  #define TFT_MOSI  D11
  #define TFT_SCLK  D13
  #define TFT_CS    D8  
  #define TFT_DC    D9   
  #define TFT_RST   D7   
#endif

I'm getting compilation errors:

Compilation Output ``` FQBN: arduino:mbed_nano:nano33ble Using board 'nano33ble' from platform in folder: /Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1 Using core 'arduino' from platform in folder: /Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1 Detecting libraries used... /Users/sdatta/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/bin/arm-none-eabi-g++ -c -w -g3 -nostdlib @/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE/defines.txt @/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE/cxxflags.txt -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -w -x c++ -E -CC -DARDUINO=10607 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED_NANO -DARDUINO_ARCH_MBED -DARDUINO_LIBRARY_DISCOVERY_PHASE=1 -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino/api/deprecated -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino/api/deprecated-avr-comp -iprefix/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino @/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE/includes.txt /private/var/folders/1n/b1z5c12n5xv_w78jc8xnqt186nc7wn/T/arduino/sketches/8001FCF898624E977393870AE559F5AF/sketch/Read_User_Setup.ino.cpp -o /dev/null Alternatives for SPI.h: [SPI] ResolveLibrary(SPI.h) -> candidates: [SPI] /Users/sdatta/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/bin/arm-none-eabi-g++ -c -w -g3 -nostdlib @/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE/defines.txt @/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE/cxxflags.txt -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -w -x c++ -E -CC -DARDUINO=10607 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED_NANO -DARDUINO_ARCH_MBED -DARDUINO_LIBRARY_DISCOVERY_PHASE=1 -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/libraries/SPI -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino/api/deprecated -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino/api/deprecated-avr-comp -iprefix/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino @/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE/includes.txt /private/var/folders/1n/b1z5c12n5xv_w78jc8xnqt186nc7wn/T/arduino/sketches/8001FCF898624E977393870AE559F5AF/sketch/Read_User_Setup.ino.cpp -o /dev/null Alternatives for TFT_eSPI.h: [TFT_eSPI@2.5.34] ResolveLibrary(TFT_eSPI.h) -> candidates: [TFT_eSPI@2.5.34] /Users/sdatta/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/bin/arm-none-eabi-g++ -c -w -g3 -nostdlib @/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE/defines.txt @/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE/cxxflags.txt -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -w -x c++ -E -CC -DARDUINO=10607 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED_NANO -DARDUINO_ARCH_MBED -DARDUINO_LIBRARY_DISCOVERY_PHASE=1 -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/libraries/SPI -I/Users/sdatta/Documents/Arduino/libraries/TFT_eSPI -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino/api/deprecated -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino/api/deprecated-avr-comp -iprefix/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino @/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE/includes.txt /private/var/folders/1n/b1z5c12n5xv_w78jc8xnqt186nc7wn/T/arduino/sketches/8001FCF898624E977393870AE559F5AF/sketch/Read_User_Setup.ino.cpp -o /dev/null Using cached library dependencies for file: /Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/libraries/SPI/SPI.cpp /Users/sdatta/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/bin/arm-none-eabi-g++ -c -w -g3 -nostdlib @/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE/defines.txt @/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE/cxxflags.txt -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -w -x c++ -E -CC -DARDUINO=10607 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED_NANO -DARDUINO_ARCH_MBED -DARDUINO_LIBRARY_DISCOVERY_PHASE=1 -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/libraries/SPI -I/Users/sdatta/Documents/Arduino/libraries/TFT_eSPI -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino/api/deprecated -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino/api/deprecated-avr-comp -iprefix/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino @/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE/includes.txt /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp -o /dev/null Generating function prototypes... /Users/sdatta/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/bin/arm-none-eabi-g++ -c -w -g3 -nostdlib @/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE/defines.txt @/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE/cxxflags.txt -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -w -x c++ -E -CC -DARDUINO=10607 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED_NANO -DARDUINO_ARCH_MBED -DARDUINO_LIBRARY_DISCOVERY_PHASE=1 -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/libraries/SPI -I/Users/sdatta/Documents/Arduino/libraries/TFT_eSPI -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino/api/deprecated -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino/api/deprecated-avr-comp -iprefix/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino @/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE/includes.txt /private/var/folders/1n/b1z5c12n5xv_w78jc8xnqt186nc7wn/T/arduino/sketches/8001FCF898624E977393870AE559F5AF/sketch/Read_User_Setup.ino.cpp -o /private/var/folders/1n/b1z5c12n5xv_w78jc8xnqt186nc7wn/T/428249653/sketch_merged.cpp /Users/sdatta/Library/Arduino15/packages/builtin/tools/ctags/5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives /private/var/folders/1n/b1z5c12n5xv_w78jc8xnqt186nc7wn/T/428249653/sketch_merged.cpp Compiling sketch... /Users/sdatta/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/bin/arm-none-eabi-g++ -c -Wall -Wextra -g3 -nostdlib @/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE/defines.txt @/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE/cxxflags.txt -DARDUINO_ARCH_NRF52840 -MMD -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -DARDUINO=10607 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED_NANO -DARDUINO_ARCH_MBED -DARDUINO_LIBRARY_DISCOVERY_PHASE=0 -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/libraries/SPI -I/Users/sdatta/Documents/Arduino/libraries/TFT_eSPI -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino/api/deprecated -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino/api/deprecated-avr-comp -iprefix/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino @/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE/includes.txt /private/var/folders/1n/b1z5c12n5xv_w78jc8xnqt186nc7wn/T/arduino/sketches/8001FCF898624E977393870AE559F5AF/sketch/Read_User_Setup.ino.cpp -o /private/var/folders/1n/b1z5c12n5xv_w78jc8xnqt186nc7wn/T/arduino/sketches/8001FCF898624E977393870AE559F5AF/sketch/Read_User_Setup.ino.cpp.o Compiling libraries... Compiling library "SPI" Using previously compiled file: /private/var/folders/1n/b1z5c12n5xv_w78jc8xnqt186nc7wn/T/arduino/sketches/8001FCF898624E977393870AE559F5AF/libraries/SPI/SPI.cpp.o Compiling library "TFT_eSPI" /Users/sdatta/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/bin/arm-none-eabi-g++ -c -Wall -Wextra -g3 -nostdlib @/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE/defines.txt @/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE/cxxflags.txt -DARDUINO_ARCH_NRF52840 -MMD -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -DARDUINO=10607 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED_NANO -DARDUINO_ARCH_MBED -DARDUINO_LIBRARY_DISCOVERY_PHASE=0 -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/libraries/SPI -I/Users/sdatta/Documents/Arduino/libraries/TFT_eSPI -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino/api/deprecated -I/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino/api/deprecated-avr-comp -iprefix/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino @/Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/variants/ARDUINO_NANO33BLE/includes.txt /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp -o /private/var/folders/1n/b1z5c12n5xv_w78jc8xnqt186nc7wn/T/arduino/sketches/8001FCF898624E977393870AE559F5AF/libraries/TFT_eSPI/TFT_eSPI.cpp.o In file included from /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:31:0: /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c: In member function 'void TFT_eSPI::pushBlock(uint16_t, uint32_t)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:529:29: error: 'SPI_X' was not declared in this scope while (!spi_is_writable(SPI_X)){}; ^~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:529:29: note: suggested alternative: 'SPI_1' while (!spi_is_writable(SPI_X)){}; ^~~~~ SPI_1 /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:529:13: error: 'spi_is_writable' was not declared in this scope while (!spi_is_writable(SPI_X)){}; ^~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:529:13: note: suggested alternative: 'spiwrite' while (!spi_is_writable(SPI_X)){}; ^~~~~~~~~~~~~~~ spiwrite /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:530:16: error: 'SPI_X' was not declared in this scope spi_get_hw(SPI_X)->dr = (uint32_t)color; ^~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:530:16: note: suggested alternative: 'SPI_1' spi_get_hw(SPI_X)->dr = (uint32_t)color; ^~~~~ SPI_1 /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:530:5: error: 'spi_get_hw' was not declared in this scope spi_get_hw(SPI_X)->dr = (uint32_t)color; ^~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:530:5: note: suggested alternative: 'spi_begin' spi_get_hw(SPI_X)->dr = (uint32_t)color; ^~~~~~~~~~ spi_begin /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c: In member function 'void TFT_eSPI::pushPixels(const void*, uint32_t)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:543:31: error: 'SPI_X' was not declared in this scope while (!spi_is_writable(SPI_X)){}; ^~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:543:31: note: suggested alternative: 'SPI_1' while (!spi_is_writable(SPI_X)){}; ^~~~~ SPI_1 /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:543:15: error: 'spi_is_writable' was not declared in this scope while (!spi_is_writable(SPI_X)){}; ^~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:543:15: note: suggested alternative: 'spiwrite' while (!spi_is_writable(SPI_X)){}; ^~~~~~~~~~~~~~~ spiwrite /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:544:18: error: 'SPI_X' was not declared in this scope spi_get_hw(SPI_X)->dr = (uint32_t)(*data++); ^~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:544:18: note: suggested alternative: 'SPI_1' spi_get_hw(SPI_X)->dr = (uint32_t)(*data++); ^~~~~ SPI_1 /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:544:7: error: 'spi_get_hw' was not declared in this scope spi_get_hw(SPI_X)->dr = (uint32_t)(*data++); ^~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:544:7: note: suggested alternative: 'spi_begin' spi_get_hw(SPI_X)->dr = (uint32_t)(*data++); ^~~~~~~~~~ spi_begin /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:553:31: error: 'SPI_X' was not declared in this scope while (!spi_is_writable(SPI_X)){}; ^~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:553:31: note: suggested alternative: 'SPI_1' while (!spi_is_writable(SPI_X)){}; ^~~~~ SPI_1 /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:553:15: error: 'spi_is_writable' was not declared in this scope while (!spi_is_writable(SPI_X)){}; ^~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:553:15: note: suggested alternative: 'spiwrite' while (!spi_is_writable(SPI_X)){}; ^~~~~~~~~~~~~~~ spiwrite /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:554:18: error: 'SPI_X' was not declared in this scope spi_get_hw(SPI_X)->dr = (uint32_t)color; ^~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:554:18: note: suggested alternative: 'SPI_1' spi_get_hw(SPI_X)->dr = (uint32_t)color; ^~~~~ SPI_1 /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:554:7: error: 'spi_get_hw' was not declared in this scope spi_get_hw(SPI_X)->dr = (uint32_t)color; ^~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:554:7: note: suggested alternative: 'spi_begin' spi_get_hw(SPI_X)->dr = (uint32_t)color; ^~~~~~~~~~ spi_begin In file included from /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:36:0: /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_Generic.c: At global scope: /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_Generic.c:13:13: error: conflicting declaration 'arduino::SPIClass& spi' SPIClass& spi = SPI; ^~~ In file included from /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:31:0: /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:14:13: note: previous declaration as 'arduino::MbedSPI spi' MbedSPI spi = MbedSPI(TFT_MISO, TFT_MOSI, TFT_SCLK); ^~~ In file included from /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:36:0: /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_Generic.c:226:6: error: redefinition of 'void TFT_eSPI::pushBlock(uint16_t, uint32_t)' void TFT_eSPI::pushBlock(uint16_t color, uint32_t len){ ^~~~~~~~ In file included from /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:31:0: /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:526:6: note: 'void TFT_eSPI::pushBlock(uint16_t, uint32_t)' previously defined here void TFT_eSPI::pushBlock(uint16_t color, uint32_t len){ ^~~~~~~~ In file included from /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:36:0: /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_Generic.c:235:6: error: redefinition of 'void TFT_eSPI::pushPixels(const void*, uint32_t)' void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){ ^~~~~~~~ In file included from /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:31:0: /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.c:538:6: note: 'void TFT_eSPI::pushPixels(const void*, uint32_t)' previously defined here void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){ ^~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'void TFT_eSPI::pushImage(int32_t, int32_t, int32_t, int32_t, uint16_t*, uint16_t)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:1490:23: warning: variable length array 'lineBuf' is used [-Wvla] uint16_t lineBuf[dw]; // Use buffer to minimise setWindow call count ^ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'void TFT_eSPI::pushImage(int32_t, int32_t, int32_t, int32_t, const uint16_t*)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:1549:22: warning: variable length array 'buffer' is used [-Wvla] uint16_t buffer[dw]; ^ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'void TFT_eSPI::pushImage(int32_t, int32_t, int32_t, int32_t, const uint16_t*, uint16_t)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:1580:23: warning: variable length array 'lineBuf' is used [-Wvla] uint16_t lineBuf[dw]; ^ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'void TFT_eSPI::pushImage(int32_t, int32_t, int32_t, int32_t, const uint8_t*, bool, uint16_t*)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:1636:23: warning: variable length array 'lineBuf' is used [-Wvla] uint16_t lineBuf[dw]; ^ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'void TFT_eSPI::pushImage(int32_t, int32_t, int32_t, int32_t, uint8_t*, bool, uint16_t*)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:1769:23: warning: variable length array 'lineBuf' is used [-Wvla] uint16_t lineBuf[dw]; ^ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'void TFT_eSPI::pushImage(int32_t, int32_t, int32_t, int32_t, uint8_t*, uint8_t, bool, uint16_t*)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:1901:23: warning: variable length array 'lineBuf' is used [-Wvla] uint16_t lineBuf[dw]; ^ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'int16_t TFT_eSPI::textWidth(const arduino::String&)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3056:18: warning: variable length array 'buffer' is used [-Wvla] char buffer[len]; ^ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'int16_t TFT_eSPI::textWidth(const arduino::String&, uint8_t)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3064:18: warning: variable length array 'buffer' is used [-Wvla] char buffer[len]; ^ In file included from /Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino/api/String.h:33:0, from /Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino/api/IPAddress.h:24, from /Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino/api/ArduinoAPI.h:30, from /Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino/Arduino.h:27, from /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.h:30, from /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:16: /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'int16_t TFT_eSPI::textWidth(const char*, uint8_t)': /Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/cores/arduino/api/deprecated-avr-comp/avr/pgmspace.h:106:60: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] #define pgm_read_dword(addr) (*(const unsigned long *)(addr)) ^ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3103:32: note: in expansion of macro 'pgm_read_dword' char *widthtable = (char *)pgm_read_dword( &(fontdata[font].widthtbl ) ) - 32; //subtract the 32 outside the loop ^~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'virtual void TFT_eSPI::setWindow(int32_t, int32_t, int32_t, int32_t)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3420:25: error: 'SPI_X' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3420:25: note: suggested alternative: 'SPI_1' while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~ SPI_1 /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3420:14: error: 'spi_get_hw' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3420:14: note: suggested alternative: 'spi_begin' while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~ spi_begin /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3420:38: error: 'SPI_SSPSR_BSY_BITS' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3426:39: error: 'SPI_X' was not declared in this scope hw_write_masked(&spi_get_hw(SPI_X)->cr0, (8 - 1) << SPI_SSPCR0_DSS_LSB, SPI_SSPCR0_DSS_BITS); ^~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3426:39: note: suggested alternative: 'SPI_1' hw_write_masked(&spi_get_hw(SPI_X)->cr0, (8 - 1) << SPI_SSPCR0_DSS_LSB, SPI_SSPCR0_DSS_BITS); ^~~~~ SPI_1 /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3426:28: error: 'spi_get_hw' was not declared in this scope hw_write_masked(&spi_get_hw(SPI_X)->cr0, (8 - 1) << SPI_SSPCR0_DSS_LSB, SPI_SSPCR0_DSS_BITS); ^~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3426:28: note: suggested alternative: 'spi_begin' hw_write_masked(&spi_get_hw(SPI_X)->cr0, (8 - 1) << SPI_SSPCR0_DSS_LSB, SPI_SSPCR0_DSS_BITS); ^~~~~~~~~~ spi_begin /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3426:63: error: 'SPI_SSPCR0_DSS_LSB' was not declared in this scope hw_write_masked(&spi_get_hw(SPI_X)->cr0, (8 - 1) << SPI_SSPCR0_DSS_LSB, SPI_SSPCR0_DSS_BITS); ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3426:83: error: 'SPI_SSPCR0_DSS_BITS' was not declared in this scope hw_write_masked(&spi_get_hw(SPI_X)->cr0, (8 - 1) << SPI_SSPCR0_DSS_LSB, SPI_SSPCR0_DSS_BITS); ^~~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3426:11: error: 'hw_write_masked' was not declared in this scope hw_write_masked(&spi_get_hw(SPI_X)->cr0, (8 - 1) << SPI_SSPCR0_DSS_LSB, SPI_SSPCR0_DSS_BITS); ^~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3431:38: error: 'SPI_SSPSR_BSY_BITS' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3438:38: error: 'SPI_SSPSR_BSY_BITS' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3442:38: error: 'SPI_SSPSR_BSY_BITS' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3449:38: error: 'SPI_SSPSR_BSY_BITS' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3453:38: error: 'SPI_SSPSR_BSY_BITS' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'void TFT_eSPI::readAddrWindow(int32_t, int32_t, int32_t, int32_t)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3523:21: error: 'SPI_X' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3523:21: note: suggested alternative: 'SPI_1' while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~ SPI_1 /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3523:10: error: 'spi_get_hw' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3523:10: note: suggested alternative: 'spi_begin' while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~ spi_begin /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3523:34: error: 'SPI_SSPSR_BSY_BITS' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3525:31: error: 'SPI_X' was not declared in this scope hw_write_masked(&spi_get_hw(SPI_X)->cr0, (8 - 1) << SPI_SSPCR0_DSS_LSB, SPI_SSPCR0_DSS_BITS); ^~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3525:31: note: suggested alternative: 'SPI_1' hw_write_masked(&spi_get_hw(SPI_X)->cr0, (8 - 1) << SPI_SSPCR0_DSS_LSB, SPI_SSPCR0_DSS_BITS); ^~~~~ SPI_1 /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3525:20: error: 'spi_get_hw' was not declared in this scope hw_write_masked(&spi_get_hw(SPI_X)->cr0, (8 - 1) << SPI_SSPCR0_DSS_LSB, SPI_SSPCR0_DSS_BITS); ^~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3525:20: note: suggested alternative: 'spi_begin' hw_write_masked(&spi_get_hw(SPI_X)->cr0, (8 - 1) << SPI_SSPCR0_DSS_LSB, SPI_SSPCR0_DSS_BITS); ^~~~~~~~~~ spi_begin /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3525:55: error: 'SPI_SSPCR0_DSS_LSB' was not declared in this scope hw_write_masked(&spi_get_hw(SPI_X)->cr0, (8 - 1) << SPI_SSPCR0_DSS_LSB, SPI_SSPCR0_DSS_BITS); ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3525:75: error: 'SPI_SSPCR0_DSS_BITS' was not declared in this scope hw_write_masked(&spi_get_hw(SPI_X)->cr0, (8 - 1) << SPI_SSPCR0_DSS_LSB, SPI_SSPCR0_DSS_BITS); ^~~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3525:3: error: 'hw_write_masked' was not declared in this scope hw_write_masked(&spi_get_hw(SPI_X)->cr0, (8 - 1) << SPI_SSPCR0_DSS_LSB, SPI_SSPCR0_DSS_BITS); ^~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3528:34: error: 'SPI_SSPSR_BSY_BITS' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3535:34: error: 'SPI_SSPSR_BSY_BITS' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3539:34: error: 'SPI_SSPSR_BSY_BITS' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3546:34: error: 'SPI_SSPSR_BSY_BITS' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3550:34: error: 'SPI_SSPSR_BSY_BITS' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3554:10: error: 'spi_is_readable' was not declared in this scope while (spi_is_readable(SPI_X)) (void)spi_get_hw(SPI_X)->dr; ^~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3554:10: note: suggested alternative: 'spi_end_read' while (spi_is_readable(SPI_X)) (void)spi_get_hw(SPI_X)->dr; ^~~~~~~~~~~~~~~ spi_end_read /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3555:28: error: 'SPI_SSPICR_RORIC_BITS' was not declared in this scope spi_get_hw(SPI_X)->icr = SPI_SSPICR_RORIC_BITS; ^~~~~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3555:28: note: suggested alternative: '__NVIC_PRIO_BITS' spi_get_hw(SPI_X)->icr = SPI_SSPICR_RORIC_BITS; ^~~~~~~~~~~~~~~~~~~~~ __NVIC_PRIO_BITS /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'virtual void TFT_eSPI::drawPixel(int32_t, int32_t, uint32_t)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3642:23: error: 'SPI_X' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3642:23: note: suggested alternative: 'SPI_1' while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~ SPI_1 /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3642:12: error: 'spi_get_hw' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3642:12: note: suggested alternative: 'spi_begin' while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~ spi_begin /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3642:36: error: 'SPI_SSPSR_BSY_BITS' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3647:35: error: 'SPI_X' was not declared in this scope hw_write_masked(&spi_get_hw(SPI_X)->cr0, (8 - 1) << SPI_SSPCR0_DSS_LSB, SPI_SSPCR0_DSS_BITS); ^~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3647:35: note: suggested alternative: 'SPI_1' hw_write_masked(&spi_get_hw(SPI_X)->cr0, (8 - 1) << SPI_SSPCR0_DSS_LSB, SPI_SSPCR0_DSS_BITS); ^~~~~ SPI_1 /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3647:24: error: 'spi_get_hw' was not declared in this scope hw_write_masked(&spi_get_hw(SPI_X)->cr0, (8 - 1) << SPI_SSPCR0_DSS_LSB, SPI_SSPCR0_DSS_BITS); ^~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3647:24: note: suggested alternative: 'spi_begin' hw_write_masked(&spi_get_hw(SPI_X)->cr0, (8 - 1) << SPI_SSPCR0_DSS_LSB, SPI_SSPCR0_DSS_BITS); ^~~~~~~~~~ spi_begin /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3647:59: error: 'SPI_SSPCR0_DSS_LSB' was not declared in this scope hw_write_masked(&spi_get_hw(SPI_X)->cr0, (8 - 1) << SPI_SSPCR0_DSS_LSB, SPI_SSPCR0_DSS_BITS); ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3647:79: error: 'SPI_SSPCR0_DSS_BITS' was not declared in this scope hw_write_masked(&spi_get_hw(SPI_X)->cr0, (8 - 1) << SPI_SSPCR0_DSS_LSB, SPI_SSPCR0_DSS_BITS); ^~~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3647:7: error: 'hw_write_masked' was not declared in this scope hw_write_masked(&spi_get_hw(SPI_X)->cr0, (8 - 1) << SPI_SSPCR0_DSS_LSB, SPI_SSPCR0_DSS_BITS); ^~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3653:38: error: 'SPI_SSPSR_BSY_BITS' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS){}; ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3660:38: error: 'SPI_SSPSR_BSY_BITS' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3666:38: error: 'SPI_SSPSR_BSY_BITS' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3673:38: error: 'SPI_SSPSR_BSY_BITS' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3687:38: error: 'SPI_SSPSR_BSY_BITS' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:3696:36: error: 'SPI_SSPSR_BSY_BITS' was not declared in this scope while (spi_get_hw(SPI_X)->sr & SPI_SSPSR_BSY_BITS) {}; ^~~~~~~~~~~~~~~~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'int16_t TFT_eSPI::drawString(const arduino::String&, int32_t, int32_t)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:5479:18: warning: variable length array 'buffer' is used [-Wvla] char buffer[len]; ^ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'int16_t TFT_eSPI::drawString(const arduino::String&, int32_t, int32_t, uint8_t)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:5487:18: warning: variable length array 'buffer' is used [-Wvla] char buffer[len]; ^ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'int16_t TFT_eSPI::drawCentreString(const arduino::String&, int32_t, int32_t, uint8_t)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:5726:18: warning: variable length array 'buffer' is used [-Wvla] char buffer[len]; ^ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'int16_t TFT_eSPI::drawRightString(const arduino::String&, int32_t, int32_t, uint8_t)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:5749:18: warning: variable length array 'buffer' is used [-Wvla] char buffer[len]; ^ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'int16_t TFT_eSPI::drawNumber(long int, int32_t, int32_t)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:5773:3: error: 'ltoa' was not declared in this scope ltoa(long_num, str, 10); ^~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:5773:3: note: suggested alternative: 'utoa' ltoa(long_num, str, 10); ^~~~ utoa /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'int16_t TFT_eSPI::drawNumber(long int, int32_t, int32_t, uint8_t)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:5781:3: error: 'ltoa' was not declared in this scope ltoa(long_num, str, 10); ^~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:5781:3: note: suggested alternative: 'utoa' ltoa(long_num, str, 10); ^~~~ utoa /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'int16_t TFT_eSPI::drawFloat(float, uint8_t, int32_t, int32_t, uint8_t)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:5837:3: error: 'ltoa' was not declared in this scope ltoa(temp, str + ptr, 10); ^~~~ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:5837:3: note: suggested alternative: 'utoa' ltoa(temp, str + ptr, 10); ^~~~ utoa In file included from /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:6139:0: /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Extensions/Sprite.cpp: In member function 'bool TFT_eSprite::pushRotated(int16_t, uint32_t)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Extensions/Sprite.cpp:409:42: warning: variable length array 'sline_buffer' is used [-Wvla] uint16_t sline_buffer[max_x - min_x + 1]; ^ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Extensions/Sprite.cpp: In member function 'bool TFT_eSprite::pushRotated(TFT_eSprite*, int16_t, uint32_t)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Extensions/Sprite.cpp:483:42: warning: variable length array 'sline_buffer' is used [-Wvla] uint16_t sline_buffer[max_x - min_x + 1]; ^ /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Extensions/Sprite.cpp: In member function 'bool TFT_eSprite::pushToSprite(TFT_eSprite*, int32_t, int32_t, uint16_t)': /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI/Extensions/Sprite.cpp:762:32: warning: variable length array 'sline_buffer' is used [-Wvla] uint16_t sline_buffer[width()]; ^ Using library SPI in folder: /Users/sdatta/Library/Arduino15/packages/arduino/hardware/mbed_nano/4.1.1/libraries/SPI (legacy) Using library TFT_eSPI at version 2.5.34 in folder: /Users/sdatta/Documents/Arduino/libraries/TFT_eSPI exit status 1 Compilation error: exit status 1 ```

Any Idea, how to proceed?