Click here to Skip to main content
15,881,516 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
GeneralRe: Engineer Pin
ormonds25-Jan-23 17:46
ormonds25-Jan-23 17:46 
GeneralWSO CCC OTD 2023-01-24 Pin
OriginalGriff23-Jan-23 21:39
mveOriginalGriff23-Jan-23 21:39 
GeneralRe: WSO CCC OTD 2023-01-24 Pin
pkfox23-Jan-23 21:42
professionalpkfox23-Jan-23 21:42 
GeneralRe: WSO CCC OTD 2023-01-24 - we have a winner! Pin
OriginalGriff23-Jan-23 21:50
mveOriginalGriff23-Jan-23 21:50 
GeneralRe: WSO CCC OTD 2023-01-24 - we have a winner! Pin
pkfox23-Jan-23 21:55
professionalpkfox23-Jan-23 21:55 
GeneralRe: WSO CCC OTD 2023-01-24 - we have a winner! Pin
Peter_in_278023-Jan-23 22:09
professionalPeter_in_278023-Jan-23 22:09 
GeneralRe: WSO CCC OTD 2023-01-24 - we have a winner! Pin
pkfox23-Jan-23 22:18
professionalpkfox23-Jan-23 22:18 
RantIt's been more than a year of S3 woes Pin
honey the codewitch23-Jan-23 18:32
mvahoney the codewitch23-Jan-23 18:32 
I love the ESP32S3
I hate the ESP32S3

It has far more GPIO pins available than the traditional ESP32, which I'll call the S1 since they should have to begin with, probably.

Typically you can read or write as many as 32 pins at a time in one shot, for very fast GPIO switching or sampling of multiple pins. This is necessary to drive LCD displays connected via an 8 or 16 bit i8080 bus for example.

The problem is Espressif has the header for the function to read the high pins, but you get a linker error if you try to use it - it's not implemented.

And the S3 is often driving LCDs at least in part from the high pins. This isn't an issue on the "S1" because it doesn't have very many. Barely more than 32. The first 32 can be read and written just fine.

The higher pins can be written to but not read from, at least not using these high speed functions.

Long story short, this means you can't read the frame buffer back off on LCD display. That doesn't seem like a big deal until you need to do alpha blending. You may not think you need to do alpha blending but it's necessary for anti-aliasing, which is necessary for rendering smooth crisp vector fonts.

You can work around it by drawing to your own in memory bitmap buffer and then sending that to the display as a unit but sometimes that's not practical.

I've contacted Espressif about it and they haven't been very helpful. I opened an issue on github and it went nowhere.

So I tried another approach. I tried endeavoring to get them to revise their LCD Panel API for driving LCDs only to find out they're not doing anything that I haven't already tried, and don't support reads at all, even on low pins.

Well, come to find out, a similar (but different) graphics library than mine came around to supporting the S3, and I was intrigued. I've used Bodmer's code as a guide before (with appropriate accreditation) and so I thought this was a huge win.

Until I looked at it and found he doesn't support reads either. They're just not implemented.

*headdesk*

There's only one graphics library that works well under these write only constraints, and all the complications it brings involving rendering things like PNGs with an alpha layer, or true type fonts, and that library is LVGL.

And the only reason they can do it is because they use a "widget" / "user control" paradigm where each screen keeps state of all its controls, and - this is critical - can redraw them on a whim.

So it can move around the screen with a small bitmap, drawing parts of controls, and sending that to the display all day long, and that's exactly what it does, very efficiently, for a system that uses controls and screen state at least.

But if you want a stateless setup (direct drawing rather than controls - more suitable for animations for example) you are out of luck.

htcw_gfx (my library) and TFT_eSPI (Bodmer's) leave you with half measures at best.

And Espressif looks to want nothing to do with any of it.

It's a shame too, because it's such a great platform otherwise, and this is such a minor issue, with such major ramifications. If only they would just implement that function.

It might be possible for me to go to the machine datasheet for this chip but holy hell diving through those register offsets has got to be a nightmare. Even thinking about it makes me feel overwhelmed. Unsure | :~
To err is human. Fortune favors the monsters.

GeneralRe: It's been more than a year of S3 woes Pin
CPallini24-Jan-23 7:44
mveCPallini24-Jan-23 7:44 
GeneralRe: It's been more than a year of S3 woes Pin
charlieg24-Jan-23 12:30
charlieg24-Jan-23 12:30 
GeneralRe: It's been more than a year of S3 woes Pin
jmaida24-Jan-23 17:50
jmaida24-Jan-23 17:50 
GeneralWordle 584 Pin
StarNamer@work23-Jan-23 13:37
professionalStarNamer@work23-Jan-23 13:37 
GeneralRe: Wordle 584 Pin
Sandeep Mewara23-Jan-23 15:20
mveSandeep Mewara23-Jan-23 15:20 
GeneralRe: Wordle 584 Pin
Amarnath S23-Jan-23 16:41
professionalAmarnath S23-Jan-23 16:41 
GeneralRe: Wordle 584 Pin
Shane010323-Jan-23 17:05
Shane010323-Jan-23 17:05 
GeneralRe: Wordle 584 Pin
OriginalGriff23-Jan-23 20:36
mveOriginalGriff23-Jan-23 20:36 
GeneralRe: Wordle 584 3/6 Pin
den2k8823-Jan-23 20:38
professionalden2k8823-Jan-23 20:38 
GeneralRe: Wordle 584 Pin
Sander Rossel23-Jan-23 21:12
professionalSander Rossel23-Jan-23 21:12 
GeneralRe: Wordle 584 Pin
pkfox23-Jan-23 21:53
professionalpkfox23-Jan-23 21:53 
GeneralRe: Wordle 584 Pin
Cp-Coder24-Jan-23 3:04
Cp-Coder24-Jan-23 3:04 
GeneralRe: Wordle 584 Pin
ChandraRam24-Jan-23 3:07
ChandraRam24-Jan-23 3:07 
GeneralRe: Wordle 584 (4/6) Pin
musefan24-Jan-23 3:12
musefan24-Jan-23 3:12 
GeneralRe: Wordle 584 4/6 Pin
jmaida24-Jan-23 14:58
jmaida24-Jan-23 14:58 
GeneralDon't Let Me Catch You Napping Pin
Gerry Schmitz23-Jan-23 10:01
mveGerry Schmitz23-Jan-23 10:01 
GeneralRe: Don't Let Me Catch You Napping Pin
Slacker00723-Jan-23 10:46
professionalSlacker00723-Jan-23 10:46 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.