Good afternoon !
I want to use the
P3RGB64x32MatrixPanel library for ESP32.
Installation is says:
You should patch the
tools/sdk/ld/esp32.peripherals.ld to avoid random pixel noise on the display as following:
/* PROVIDE ( GPIO = 0x3ff44000 ); */
PROVIDE ( GPIO = 0x60004000 );
Please refer section 3.3. in
https://www.espressif.com/sites/default/files/documentation/eco_and_workarounds_for_bugs_in_esp32_en.pdf for more details.
tools/sdk/ld/esp32.peripherals.ld is easy to find when using Arduino IDE, but not so when using VSC and PlatformIO IDE.
Under section 3.3 of the .pdf it says:
This issue is automatically worked around in the drivers of ESP-IDF V1.0 and newer.
This is what’s inside my platformio.ini:
platform = https://github.com/platformio/platform-espressif32.git#feature/stage
board = esp32dev
framework = arduino
In the February 22 release we got ESP-IDF framework updated to 3.1.3.
Is it safe to assume that the issue found with the GPIO is fixed now and I don’t have to go look around for
tools/sdk/ld/esp32.peripherals.ld and modify the aforementioned values ?
Or do I still have to get in there and change those values ?
Thank you !
The workaround seems to be to write to the different series of addresses, if the issue wasn’t resolved in your ESP32’s silicon revision. I can’t comment as to whether the issue is fixed or not, or still relevant.
However, the path to
tools/sdk/ld/esp32.peripherals.ld using your platformio.ini config on windows is (just add
%localappdata%\.platformio\packages\framework-arduinoespressif32 to what you had before):
I don’t know if the issue was resolved. Also I am using Linux and I have a hard time finding
On Linux, you’ll want the
Sorry, for some reason I thought you were on Windows so gave you the Windows-style path…
Thank you !
It’s my fault for not specifying what OS I’m using.
It hasn’t been fixed ! You still have to replace
PROVIDE ( GPIO = 0x3ff44000 ); with
PROVIDE ( GPIO = 0x60004000 );.
If I’m reading the errata right, the fix would mean that this workaround would not need to be applied… but it is board specific because it is a update to the actual processor revision.
Fixes: This issue is fixed in silicon revision 1.
I really don’t know which revision I have.
PROVIDE ( GPIO = 0x3ff44000 ); and I thought that the correct value should be
PROVIDE ( GPIO = 0x60004000 ); and so I changed it accordingly.
You can follow this if you want to find out which revision you have … 0, or 1… but if you need that workaround, it’s most likely you have revision 0.
How to Check the Revision Level of Your ESP32: Up till now, Espressif released two chip revisions: Last September Rev 0 and in February, Rev 1. And there are rumors, that Espressif sells its old revision 0 chips cheap, and some of our manufacturers...
I can’t check the revision as in that tutorial because I can’t upload anything to the ESP right now. I think it’s broken.
Please read here for more info:
08:58AM - 02 Apr 19 UTC
09:30AM - 29 May 19 UTC
* **Operating system:** Linux Mint 19.1
* **Python version:** Python 2.7.15rc1
* **ESP hardware in use:** ESP Wroom-32
I couldn't upload any sketch to the ESP32 and it began to run very hot. I thought that by erasing the flash I will make it work again.
## Full esptool.py command line as run:
## Full output from esptool.py :
Found 2 serial ports
Serial port /dev/ttyUSB0
/dev/ttyUSB0 failed to connect: Failed to connect to Espressif device: Timed out waiting for packet header
Serial port /dev/ttyS0
/dev/ttyS0 failed to connect: Failed to connect to Espressif device: Timed out waiting for packet header
A fatal error occurred: All of the 2 available serial ports could not connect to a Espressif device.
## What is the expected behaviour?
Shouldn't it erase the flash ? I kept the boot button pressed, I tried with it unpressed. I've always uploaded sketches while the button was pressed.
## Do you have any other information from investigating this?
Here is the whole story !
# Right now the ESP is connected to the PIC via a USB Cable. It has no pin connections.