Adafruit 1.8" TFT Display Incompatible with Nano 33 BLE

EL Wire/Tape/Panels, LEDs, pixels and strips, LCDs and TFTs, etc products from Adafruit

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
GoodBetterBest
 
Posts: 3
Joined: Fri Jun 03, 2022 2:59 pm

Adafruit 1.8" TFT Display Incompatible with Nano 33 BLE

Post by GoodBetterBest »

Can someone please confirm that the Adafruit 1.8" TFT display board is not fully compatible with the Nano 33 BLE? The GFX libraries work fine but the ImageReader library will not compile due to out-of-scope pin definitions for:

PIN_QSPI_SCK
PIN_QSPI_CS
PIN_QSPI_IO0
PIN_QSPI_IO1
PIN_QSPI_IO2
PIN_QSPI_IO3

I've searched through all the dependent libraries and believe the issue is with Adafruit_FlashTransport_QSPI_NRF.cpp. A constructor in that file uses these pin definitions and fails due to out of scope. Here is an example error for one 0f the pins:

/Users/evanthayer/Documents/Arduino/libraries/Adafruit_SPIFlash/src/qspi/Adafruit_FlashTransport_QSPI_NRF.cpp: In constructor 'Adafruit_FlashTransport_QSPI::Adafruit_FlashTransport_QSPI()':
/Users/evanthayer/Documents/Arduino/libraries/Adafruit_SPIFlash/src/qspi/Adafruit_FlashTransport_QSPI_NRF.cpp:42:36: error: 'PIN_QSPI_SCK' was not declared in this scope
: Adafruit_FlashTransport_QSPI(PIN_QSPI_SCK, PIN_QSPI_CS, PIN_QSPI_IO0,

Am I chasing my tail? Is there a fundamental compatibility issue here?

Thanks!

Evan

User avatar
dastels
 
Posts: 15653
Joined: Tue Oct 20, 2015 3:22 pm

Re: Adafruit 1.8" TFT Display Incompatible with Nano 33 BLE

Post by dastels »

The nano33ble doesn't appear to have any QSPI flash. All Adafruit's nRF52840 boards do, so my guess is that an nRF52840 is assumed to have QSPI flash. Can you give more of the error trace so as to provide a bit more context?

Dave

User avatar
GoodBetterBest
 
Posts: 3
Joined: Fri Jun 03, 2022 2:59 pm

Re: Adafruit 1.8" TFT Display Incompatible with Nano 33 BLE

Post by GoodBetterBest »

Hi Dave,

Thanks for responding! Here is the full error trace from the failed compilation of Adafruit ImageReader example sketch BreakoutST7735-160x128.ino:

--------------------

Code: Select all

/Users/evanthayer/Documents/Arduino/libraries/Adafruit_SPIFlash/src/qspi/Adafruit_FlashTransport_QSPI_NRF.cpp: In constructor 'Adafruit_FlashTransport_QSPI::Adafruit_FlashTransport_QSPI()':
/Users/evanthayer/Documents/Arduino/libraries/Adafruit_SPIFlash/src/qspi/Adafruit_FlashTransport_QSPI_NRF.cpp:42:36: error: 'PIN_QSPI_SCK' was not declared in this scope
     : Adafruit_FlashTransport_QSPI(PIN_QSPI_SCK, PIN_QSPI_CS, PIN_QSPI_IO0,
                                    ^~~~~~~~~~~~
/Users/evanthayer/Documents/Arduino/libraries/Adafruit_SPIFlash/src/qspi/Adafruit_FlashTransport_QSPI_NRF.cpp:42:36: note: suggested alternative: 'PIN_SPI_SCK'
     : Adafruit_FlashTransport_QSPI(PIN_QSPI_SCK, PIN_QSPI_CS, PIN_QSPI_IO0,
                                    ^~~~~~~~~~~~
                                    PIN_SPI_SCK
/Users/evanthayer/Documents/Arduino/libraries/Adafruit_SPIFlash/src/qspi/Adafruit_FlashTransport_QSPI_NRF.cpp:42:50: error: 'PIN_QSPI_CS' was not declared in this scope
     : Adafruit_FlashTransport_QSPI(PIN_QSPI_SCK, PIN_QSPI_CS, PIN_QSPI_IO0,
                                                  ^~~~~~~~~~~
/Users/evanthayer/Documents/Arduino/libraries/Adafruit_SPIFlash/src/qspi/Adafruit_FlashTransport_QSPI_NRF.cpp:42:50: note: suggested alternative: 'PIN_SPI_SS'
     : Adafruit_FlashTransport_QSPI(PIN_QSPI_SCK, PIN_QSPI_CS, PIN_QSPI_IO0,
                                                  ^~~~~~~~~~~
                                                  PIN_SPI_SS
/Users/evanthayer/Documents/Arduino/libraries/Adafruit_SPIFlash/src/qspi/Adafruit_FlashTransport_QSPI_NRF.cpp:42:63: error: 'PIN_QSPI_IO0' was not declared in this scope
     : Adafruit_FlashTransport_QSPI(PIN_QSPI_SCK, PIN_QSPI_CS, PIN_QSPI_IO0,
                                                               ^~~~~~~~~~~~
/Users/evanthayer/Documents/Arduino/libraries/Adafruit_SPIFlash/src/qspi/Adafruit_FlashTransport_QSPI_NRF.cpp:42:63: note: suggested alternative: 'PIN_SPI_MISO'
     : Adafruit_FlashTransport_QSPI(PIN_QSPI_SCK, PIN_QSPI_CS, PIN_QSPI_IO0,
                                                               ^~~~~~~~~~~~
                                                               PIN_SPI_MISO
/Users/evanthayer/Documents/Arduino/libraries/Adafruit_SPIFlash/src/qspi/Adafruit_FlashTransport_QSPI_NRF.cpp:43:36: error: 'PIN_QSPI_IO1' was not declared in this scope
                                    PIN_QSPI_IO1, PIN_QSPI_IO2, PIN_QSPI_IO3) {}
                                    ^~~~~~~~~~~~
/Users/evanthayer/Documents/Arduino/libraries/Adafruit_SPIFlash/src/qspi/Adafruit_FlashTransport_QSPI_NRF.cpp:43:36: note: suggested alternative: 'PIN_SPI_MISO'
                                    PIN_QSPI_IO1, PIN_QSPI_IO2, PIN_QSPI_IO3) {}
                                    ^~~~~~~~~~~~
                                    PIN_SPI_MISO
/Users/evanthayer/Documents/Arduino/libraries/Adafruit_SPIFlash/src/qspi/Adafruit_FlashTransport_QSPI_NRF.cpp:43:50: error: 'PIN_QSPI_IO2' was not declared in this scope
                                    PIN_QSPI_IO1, PIN_QSPI_IO2, PIN_QSPI_IO3) {}
                                                  ^~~~~~~~~~~~
/Users/evanthayer/Documents/Arduino/libraries/Adafruit_SPIFlash/src/qspi/Adafruit_FlashTransport_QSPI_NRF.cpp:43:50: note: suggested alternative: 'PIN_SPI_MISO'
                                    PIN_QSPI_IO1, PIN_QSPI_IO2, PIN_QSPI_IO3) {}
                                                  ^~~~~~~~~~~~
                                                  PIN_SPI_MISO
/Users/evanthayer/Documents/Arduino/libraries/Adafruit_SPIFlash/src/qspi/Adafruit_FlashTransport_QSPI_NRF.cpp:43:64: error: 'PIN_QSPI_IO3' was not declared in this scope
                                    PIN_QSPI_IO1, PIN_QSPI_IO2, PIN_QSPI_IO3) {}
                                                                ^~~~~~~~~~~~
/Users/evanthayer/Documents/Arduino/libraries/Adafruit_SPIFlash/src/qspi/Adafruit_FlashTransport_QSPI_NRF.cpp:43:64: note: suggested alternative: 'PIN_SPI_MISO'
                                    PIN_QSPI_IO1, PIN_QSPI_IO2, PIN_QSPI_IO3) {}
                                                                ^~~~~~~~~~~~
                                                                PIN_SPI_MISO
/Users/evanthayer/Documents/Arduino/libraries/Adafruit_SPIFlash/src/qspi/Adafruit_FlashTransport_QSPI_NRF.cpp: In member function 'virtual void Adafruit_FlashTransport_QSPI::begin()':
/Users/evanthayer/Documents/Arduino/libraries/Adafruit_SPIFlash/src/qspi/Adafruit_FlashTransport_QSPI_NRF.cpp:63:35: error: 'g_ADigitalPinMap' was not declared in this scope
               .sck_pin = (uint8_t)g_ADigitalPinMap[_sck],
                                   ^~~~~~~~~~~~~~~~

exit status 1

Compilation error: exit status 1
--------------------

Thanks!

Evan

User avatar
GoodBetterBest
 
Posts: 3
Joined: Fri Jun 03, 2022 2:59 pm

Re: Adafruit 1.8" TFT Display Incompatible with Nano 33 BLE

Post by GoodBetterBest »

Additionally, and this may show tautologically that the board is not compatible, I switched the IDE to the AVR regular Arduino Nano and the example sketch quickly compiled with no issue.

User avatar
dastels
 
Posts: 15653
Joined: Tue Oct 20, 2015 3:22 pm

Re: Adafruit 1.8" TFT Display Incompatible with Nano 33 BLE

Post by dastels »

Right. The AVR MCUs just support SPI flash, not QSPI. From the code it seems that only nRF and SAMD boards support QSPI (and it has to be supported by the board support package as well). Again, Adafruit libraries are designed primarily for Adafruit hardware.

Dave

Locked
Please be positive and constructive with your questions and comments.

Return to “Glowy things (LCD, LED, TFT, EL) purchased at Adafruit”