After blowing away my libraries, and starting over, I was able to get the display to function again.
Still no luck getting it to see the SD card, though.
Using the “Hardware Test” example as-is, I have no issues aside from not detecting the SD card. the “tf-card” switch is on initially, and then 7 seconds pass and it switches off. (The 7 seconds is the hard-coded timeout in the example).
Switching to the “TFT_eSPI_GifPlayer.ino”, I get a boatload of errors if I do not include :
In file included from /tmp/.arduinoIDE-unsaved2024010-32782-bwx43m.kpdac/TFT_eSPI_GifPlayer/TFT_eSPI_GifPlayer.ino:2:
/home/ognalysis/Arduino/libraries/TFT_eSPI/TFT_eSPI.h:970:8: warning: #warning >>>>------>> TOUCH_CS pin not defined, TFT_eSPI touch functions will not be available! [-Wcpp]
970 | #warning >>>>------>> TOUCH_CS pin not defined, TFT_eSPI touch functions will not be available!
| ^~~~~~~
/tmp/.arduinoIDE-unsaved2024010-32782-bwx43m.kpdac/TFT_eSPI_GifPlayer/TFT_eSPI_GifPlayer.ino: In function 'int getGifInventory(const char*)':
/tmp/.arduinoIDE-unsaved2024010-32782-bwx43m.kpdac/TFT_eSPI_GifPlayer/TFT_eSPI_GifPlayer.ino:218:25: error: no matching function for call to 'std::vector<std::__cxx11::basic_string<char> >::push_back(const char*)'
218 | GifFiles.push_back( file.name() );
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
In file included from /home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/vector:64,
from /home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/queue:61,
from /home/ognalysis/.arduino15/packages/rp2040/hardware/rp2040/3.6.3/cores/rp2040/SerialUART.h:26,
from /home/ognalysis/.arduino15/packages/rp2040/hardware/rp2040/3.6.3/cores/rp2040/Arduino.h:120,
from /tmp/arduino/sketches/43A547574F88DDBCDC2FDD65C7FB41E2/sketch/TFT_eSPI_GifPlayer.ino.cpp:1:
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stl_vector.h:1276:7: note: candidate: 'void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = std::__cxx11::basic_string<char>; _Alloc = std::allocator<std::__cxx11::basic_string<char> >; value_type = std::__cxx11::basic_string<char>]'
1276 | push_back(const value_type& __x)
| ^~~~~~~~~
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stl_vector.h:1276:35: note: no known conversion for argument 1 from 'const char*' to 'const std::vector<std::__cxx11::basic_string<char> >::value_type&' {aka 'const std::__cxx11::basic_string<char>&'}
1276 | push_back(const value_type& __x)
| ~~~~~~~~~~~~~~~~~~^~~
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stl_vector.h:1293:7: note: candidate: 'void std::vector<_Tp, _Alloc>::push_back(value_type&&) [with _Tp = std::__cxx11::basic_string<char>; _Alloc = std::allocator<std::__cxx11::basic_string<char> >; value_type = std::__cxx11::basic_string<char>]'
1293 | push_back(value_type&& __x)
| ^~~~~~~~~
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stl_vector.h:1293:30: note: no known conversion for argument 1 from 'const char*' to 'std::vector<std::__cxx11::basic_string<char> >::value_type&&' {aka 'std::__cxx11::basic_string<char>&&'}
1293 | push_back(value_type&& __x)
| ~~~~~~~~~~~~~^~~
/tmp/.arduinoIDE-unsaved2024010-32782-bwx43m.kpdac/TFT_eSPI_GifPlayer/TFT_eSPI_GifPlayer.ino: In function 'void loop()':
/tmp/.arduinoIDE-unsaved2024010-32782-bwx43m.kpdac/TFT_eSPI_GifPlayer/TFT_eSPI_GifPlayer.ino:278:61: error: invalid use of incomplete type '__gnu_cxx::__alloc_traits<std::allocator<std::__cxx11::basic_string<char> >, std::__cxx11::basic_string<char> >::value_type' {aka 'class std::__cxx11::basic_string<char>'}
278 | const char * fileName = GifFiles[currentFile++%totalFiles].c_str();
| ^
In file included from /home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/iosfwd:39,
from /home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/shared_ptr.h:52,
from /home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/memory:76,
from /home/ognalysis/.arduino15/packages/rp2040/hardware/rp2040/3.6.3/cores/rp2040/FS.h:23,
from /home/ognalysis/.arduino15/packages/rp2040/hardware/rp2040/3.6.3/libraries/LittleFS/src/LittleFS.h:29,
from /home/ognalysis/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_RP2040.h:12,
from /home/ognalysis/Arduino/libraries/TFT_eSPI/TFT_eSPI.h:106:
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stringfwd.h:72:11: note: declaration of '__gnu_cxx::__alloc_traits<std::allocator<std::__cxx11::basic_string<char> >, std::__cxx11::basic_string<char> >::value_type' {aka 'class std::__cxx11::basic_string<char>'}
72 | class basic_string;
| ^~~~~~~~~~~~
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stl_vector.h: In instantiation of 'std::_Vector_base<_Tp, _Alloc>::~_Vector_base() [with _Tp = std::__cxx11::basic_string<char>; _Alloc = std::allocator<std::__cxx11::basic_string<char> >]':
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stl_vector.h:526:7: required from here
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stl_vector.h:367:49: error: invalid use of incomplete type 'class std::__cxx11::basic_string<char>'
367 | _M_impl._M_end_of_storage - _M_impl._M_start);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stringfwd.h:72:11: note: declaration of 'class std::__cxx11::basic_string<char>'
72 | class basic_string;
| ^~~~~~~~~~~~
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stl_vector.h: In instantiation of 'std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](size_type) [with _Tp = std::__cxx11::basic_string<char>; _Alloc = std::allocator<std::__cxx11::basic_string<char> >; reference = std::__cxx11::basic_string<char>&; size_type = unsigned int]':
/tmp/.arduinoIDE-unsaved2024010-32782-bwx43m.kpdac/TFT_eSPI_GifPlayer/TFT_eSPI_GifPlayer.ino:278:60: required from here
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stl_vector.h:1124:41: error: invalid use of incomplete type 'class std::__cxx11::basic_string<char>'
1124 | return *(this->_M_impl._M_start + __n);
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stringfwd.h:72:11: note: declaration of 'class std::__cxx11::basic_string<char>'
72 | class basic_string;
| ^~~~~~~~~~~~
In file included from /home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/arm-none-eabi/thumb/bits/c++allocator.h:33,
from /home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/allocator.h:46,
from /home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/deque:61,
from /home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/queue:60:
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/new_allocator.h: In instantiation of 'void std::__new_allocator<_Tp>::deallocate(_Tp*, size_type) [with _Tp = std::__cxx11::basic_string<char>; size_type = unsigned int]':
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/alloc_traits.h:496:23: required from 'static void std::allocator_traits<std::allocator<_Tp1> >::deallocate(allocator_type&, pointer, size_type) [with _Tp = std::__cxx11::basic_string<char>; allocator_type = std::allocator<std::__cxx11::basic_string<char> >; pointer = std::__cxx11::basic_string<char>*; size_type = unsigned int]'
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stl_vector.h:387:19: required from 'void std::_Vector_base<_Tp, _Alloc>::_M_deallocate(pointer, std::size_t) [with _Tp = std::__cxx11::basic_string<char>; _Alloc = std::allocator<std::__cxx11::basic_string<char> >; pointer = std::__cxx11::basic_string<char>*; std::size_t = unsigned int]'
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stl_vector.h:366:2: required from 'std::_Vector_base<_Tp, _Alloc>::~_Vector_base() [with _Tp = std::__cxx11::basic_string<char>; _Alloc = std::allocator<std::__cxx11::basic_string<char> >]'
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stl_vector.h:526:7: required from here
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/new_allocator.h:151:13: error: invalid application of '__alignof__' to incomplete type 'std::__cxx11::basic_string<char>'
151 | if (alignof(_Tp) > __STDCPP_DEFAULT_NEW_ALIGNMENT__)
| ^~~~~~~~~~~~
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/new_allocator.h:153:38: error: invalid application of 'sizeof' to incomplete type 'std::__cxx11::basic_string<char>'
153 | _GLIBCXX_OPERATOR_DELETE(_GLIBCXX_SIZED_DEALLOC(__p, __n),
| ^~~~~~~~~~~~~~~~~~~~~~
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/new_allocator.h:154:55: error: invalid application of '__alignof__' to incomplete type 'std::__cxx11::basic_string<char>'
154 | std::align_val_t(alignof(_Tp)));
| ^~~~~~~~~~~~
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/new_allocator.h:158:34: error: invalid application of 'sizeof' to incomplete type 'std::__cxx11::basic_string<char>'
158 | _GLIBCXX_OPERATOR_DELETE(_GLIBCXX_SIZED_DEALLOC(__p, __n));
| ^~~~~~~~~~~~~~~~~~~~~~
In file included from /home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stl_pair.h:60,
from /home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stl_algobase.h:64,
from /home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/specfun.h:45,
from /home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/cmath:1935,
from /home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/math.h:36,
from /home/ognalysis/.arduino15/packages/rp2040/hardware/rp2040/3.6.3/cores/rp2040/api/../../../ArduinoCore-API/api/ArduinoAPI.h:47,
from /home/ognalysis/.arduino15/packages/rp2040/hardware/rp2040/3.6.3/cores/rp2040/api/ArduinoAPI.h:2,
from /home/ognalysis/.arduino15/packages/rp2040/hardware/rp2040/3.6.3/cores/rp2040/Arduino.h:28:
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/type_traits: In instantiation of 'struct std::is_destructible<std::__cxx11::basic_string<char> >':
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stl_construct.h:188:51: required from 'void std::_Destroy(_ForwardIterator, _ForwardIterator) [with _ForwardIterator = __cxx11::basic_string<char>*]'
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/alloc_traits.h:850:15: required from 'void std::_Destroy(_ForwardIterator, _ForwardIterator, allocator<_T2>&) [with _ForwardIterator = __cxx11::basic_string<char>*; _Tp = __cxx11::basic_string<char>]'
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stl_vector.h:730:15: required from 'std::vector<_Tp, _Alloc>::~vector() [with _Tp = std::__cxx11::basic_string<char>; _Alloc = std::allocator<std::__cxx11::basic_string<char> >]'
/tmp/.arduinoIDE-unsaved2024010-32782-bwx43m.kpdac/TFT_eSPI_GifPlayer/TFT_eSPI_GifPlayer.ino:28:26: required from here
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/type_traits:910:52: error: static assertion failed: template argument must be a complete class or an unbounded array
910 | static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/type_traits:910:52: note: 'std::__is_complete_or_unbounded<__type_identity<__cxx11::basic_string<char> > >((std::__type_identity<std::__cxx11::basic_string<char> >(), std::__type_identity<std::__cxx11::basic_string<char> >()))' evaluates to false
In file included from /home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/deque:62:
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stl_construct.h: In instantiation of 'void std::_Destroy(_ForwardIterator, _ForwardIterator) [with _ForwardIterator = __cxx11::basic_string<char>*]':
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/alloc_traits.h:850:15: required from 'void std::_Destroy(_ForwardIterator, _ForwardIterator, allocator<_T2>&) [with _ForwardIterator = __cxx11::basic_string<char>*; _Tp = __cxx11::basic_string<char>]'
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stl_vector.h:730:15: required from 'std::vector<_Tp, _Alloc>::~vector() [with _Tp = std::__cxx11::basic_string<char>; _Alloc = std::allocator<std::__cxx11::basic_string<char> >]'
/tmp/.arduinoIDE-unsaved2024010-32782-bwx43m.kpdac/TFT_eSPI_GifPlayer/TFT_eSPI_GifPlayer.ino:28:26: required from here
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stl_construct.h:188:51: error: static assertion failed: value type is destructible
188 | static_assert(is_destructible<_Value_type>::value,
| ^~~~~
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stl_construct.h:188:51: note: 'std::integral_constant<bool, false>::value' evaluates to false
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stl_construct.h:195:25: error: invalid use of incomplete type 'std::iterator_traits<std::__cxx11::basic_string<char>*>::value_type' {aka 'class std::__cxx11::basic_string<char>'}
195 | std::_Destroy_aux<__has_trivial_destructor(_Value_type)>::
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ognalysis/.arduino15/packages/rp2040/tools/pqt-gcc/2.1.0-a-d3d2e6b/arm-none-eabi/include/c++/12.3.0/bits/stringfwd.h:72:11: note: declaration of 'std::iterator_traits<std::__cxx11::basic_string<char>*>::value_type' {aka 'class std::__cxx11::basic_string<char>'}
72 | class basic_string;
| ^~~~~~~~~~~~
Multiple libraries were found for "SD.h"
Used: /home/ognalysis/.arduino15/packages/rp2040/hardware/rp2040/3.6.3/libraries/SD
Not used: /home/ognalysis/Arduino/libraries/SD
exit status 1
Compilation error: no matching function for call to 'std::vector<std::__cxx11::basic_string<char> >::push_back(const char*)'
If I include , I only get the usual “TOUCH_CS pin not defined” warnings.
The SD Card is formatted FAT32, has a single directory named “gif” on it, and the gif file inside is 1.5MB in size.
32GB SanDisk Ultra, Class 10, MicroSD HC
Using library TFT_eSPI at version 2.5.23 in folder: /home/ognalysis/Arduino/libraries/TFT_eSPI
Using library SPI at version 1.0 in folder: /home/ognalysis/.arduino15/packages/rp2040/hardware/rp2040/3.6.3/libraries/SPI
Using library LittleFS at version 0.1.0 in folder: /home/ognalysis/.arduino15/packages/rp2040/hardware/rp2040/3.6.3/libraries/LittleFS
Using library SD at version 2.0.0 in folder: /home/ognalysis/.arduino15/packages/rp2040/hardware/rp2040/3.6.3/libraries/SD
Using library SDFS at version 0.1.0 in folder: /home/ognalysis/.arduino15/packages/rp2040/hardware/rp2040/3.6.3/libraries/SDFS
Using library ESP8266SdFat at version 2.1.1 in folder: /home/ognalysis/.arduino15/packages/rp2040/hardware/rp2040/3.6.3/libraries/ESP8266SdFat
Using library AnimatedGIF at version 1.4.7 in folder: /home/ognalysis/Arduino/libraries/AnimatedGIF
I’m at a loss as to what to try next to see why the SD card isn’t being read.