-
I'm hoping to get GEM up and running with this little guy: https://learn.adafruit.com/esp32-s3-reverse-tft-feather - it uses an ST7789 TFT controller, which is a little different from the ST7735 a lot of the Adafruit examples were built on, but it's supported by Adafruit GFX, and I'm kind of at a loss as to what's missing (without tearing apart GEM's Adafruit support looking for things that might somehow be incompatible. I initially tried implementing a POC into my project, but I'd end up back at the UF2 bootloader, basically exactly as described in this thread: https://forums.adafruit.com/viewtopic.php?t=205556 - the root cause there was apparently old library versions, but I'm on current (as of today) libraries for everything, as near as I can tell. So, I fell back to trying the GEM blink example, with the required changes for my display (code below). I never get to the Serial.println statements I added - after I reset the board (required after uploading a sketch), the builtin LED just fast blinks, and that's it. In contrast, running Adafruit's "Blink" and GFX example test code works as expected. I'm guessing some incompatibility - but figured it would be worth asking here before I try to dive into the GEM code, and also see if there are any pointers to sorting this out? Thanks! Here's the code I changed in the provided Blink.cpp
|
Beta Was this translation helpful? Give feedback.
Replies: 6 comments 7 replies
-
Hello, @davexre ! |
Beta Was this translation helpful? Give feedback.
-
@davexre Also, explicitly setting background and foreground colors may help with color-capable display issues, like it was done in this version of Basic example adapted for M0-based Feather. However that won't affect an issue with missing output to Serial, which you currently have. |
Beta Was this translation helpful? Give feedback.
-
Hmm... this might actually be a PlatformIO project issue... I completely replaced the code in the project with Adafruit's demo code, and it does the same thing. I'm going to start over with a fresh project, and see what develops from there! |
Beta Was this translation helpful? Give feedback.
-
Man, that thread is an adventure. I played with the pioarduino fork of the Espressif platformio support, but that had issues, too. Went back to Arduino IDE, and had some forward progress. I got the basic Adafruit Blink sketch to compile and load, and it showed the splash screen, but then nothing. KeyDetector was working, however, as witnessed by the serial monitor. The screen with the splash - it showed in a black square in the middle of the (very wide aspect) screen - that square stayed black after the splash stopped, and it showed colored static in the areas outside the square. So... I cut it way back. First, I switched to the Feather M0 code you posted, and udpated it to match the ST7789 screen needs. Then I cut out all the key detection stuff, and have no menu items. Code is below. I can see that it powers on the back light - and it goes through all the steps in the setup() (judging by the serial output), but all I get is a black screen. I originally had the menu items included, but it was the same story. In theory... this should work (the original blink example is ST7735, which should basically work the same as ST7789), but maybe there's an incompatibility between them, or something additional missing. So, that's my next step - start digging into those, and how GEM is using them. Unless you have a better idea 😄
|
Beta Was this translation helpful? Give feedback.
-
Thought I'd give it a try on Wokwi. There is ESP32-S3 board there, however no ST7789-based display. But they have ILI9341 instead, which should be close enough (at least it works with However, when I've made a copy of that project and swapped ESP32-C3 board with ESP32-S3, it stopped to display anything, although Serial works fine. Just like in your experiments. To be exact, I have no idea what to make of it=) Does S3 that much differ from C3? What should be changed in code to make it work? I used the same pins as where used in initial C3 example. Is this somehow related to SPI? I will try to dig deeper, but thought I'd let you know my findings so far. |
Beta Was this translation helpful? Give feedback.
-
Ok, I found my final issue.... I was failing to actually init the display (you can see that in my last code above). Adding:
Turns the display on, and I get the menu now! So, I think the root cause of my initial issue is platformio - thanks again for those pointers. I'll monitor what's going on there, and see if I can get it working again later, but for now... the suboptimal Arduino IDE will have to do, I suppose! |
Beta Was this translation helpful? Give feedback.
Oh, interesting. Probably, that is may be the case indeed, given that PlatformIO currently have struggles with support for most recent versions of ESP32 core. See this thread.