Closed bobemoe closed 3 years ago
A couple of things to note:
The WiFiEspAT actually works fine. Even in my big project with many other libs and extensive code, I'm able to communicate with the ESP8266, connect to WiFi and communicate to servers etc. It's just SD functionality that is lost.
When I remove #include <WiFiEspAT.h>
and return the sketch to a working code base, upon compiling and uploading it isn't actually working!! I have to pass --clean to the arduino-cli compile command to bypass the cache. What is being cached I wonder?
I tested the speed of the WiFiEspAT library with the SDWebServer sketch on many platforms including the stm32duino with a Blue Pill. One problem on the Blue Pill was the combined power consumption of SD and the esp8266.
Same issue in the IDE, but things are getting even weirder....
I now have a working binary of the SDWebServer example, but to compile it, it must be initially compiled without the WiFiEspAT include and related code, which compiles and shows the SD initialize ok. THEN add the WiFi code back to it, compile and everything works. I can make changes, compile, still working, nice! UNTIL I close that IDE window, reopen it exactly the same code, compile and the SD does not initialize. Even when I strip out the WiFi code again it still fails, UNTIL I close and reopen that window, then its working again!! WTF?
I'm guessing closing and reopening the IDE window is the same as providing --clean to the cli.
So its seems to be fairly consistent, it is the state of the first compile that determines successive results:
I have saved out the working and not working binaries, compiled from the exact same code but a different IDE session, they are slightly different size. I've done a hexdiff but it doesn't mean much to me!
49580 Oct 24 12:27 SDWebServer.FAIL.bin 49568 Oct 24 12:25 SDWebServer.WORKING.bin
Puzzled :/ Feels like its some sort of compiler caching issue but what is causing the problem initially I'm not sure. Maybe multiple things at play here.
@jandrassy thanks for the suggestion, the TFT is also running off 3.3v and I do see it flicker suggesting the PSU is struggling. I'm expecting this to be an issue soon, but for the sake of testing I'm seeing the scenario above even with the TFT and ESP8266 unplugged, that SD will or wont initialize depending on the compile sequence.
I tested the speed of the WiFiEspAT library with the SDWebServer sketch on many platforms including the stm32duino with a Blue Pill. -- @jandrassy
What was the max transfer speed you found during these tests? Do you have results online somewhere?
I tested the speed of the WiFiEspAT library with the SDWebServer sketch on many platforms including the stm32duino with a Blue Pill. -- @jandrassy
What was the max transfer speed you found during these tests? Do you have results online somewhere?
500000 baud on Mega hw Serial
As soon as I add
#include <WiFiEspAT.h>
to my project, not even create a client or call any functions, the SD card starts failing to initialize.To reproduce, I can take one of the SD lib examples, compile and confirm the SD is working. Then add
#include <WiFiEspAT.h>
, compile and then see SD fails to initialize.I'm compiling using arduino-cli and the stm32duino core for the STM32F4 BlackPill. WiFiEspAT 1.3.1
Setup
Compile
Even the SDWebServer example in this repo fails for me. If I comment out all the WiFi code and the include, then SD starts to work. So I guess its my environment!?
Can anyone confirm this working on STM32F4. I'm using the AdaFruit SD (and TFT) module, with core SD libs.
Tomorrow I will try installing the Arduino IDE and compiling there. But for now, any ideas?