Just in case you are not familiar with the kit mentioned here, it is the ESP-LAUNCHER, an ESP8266 development board designed and manufactured by Espressif Systems. It is a really good tool to get started with the ESP8266 if you are using the SDK for programming it. For Arduino users and other folks using just the AT command set and ESP8266, I believe the board is no good.
Getting down to the problem – the GPIO13 just does not seem to work. You cannot toggle it fast, use as HSPI port or use it for bit-banging. Someone reported that the GPIO13 is not at all able to work properly when part of the HSPI interface.
I faced the same and wonder what might be wrong with it. My first guess is – the system uses FreeRTOS as the RTOS to run tasks. Maybe some task of high priority is altering the GPIO13 configuration and configuring it as something other than simple GPIO. That is why the GPIO APIs have no effect.
To rule this out, I would create a proper startup task for bringing the ESP8266 to a completely known state every time it boots up. I’ll post it in another blog so do subscribe if you want to stay updated.
Why is GPIO13 not working?
If you are unable to even make an LED blink with the GPIO, I think there might be a programming issue. I can toggle the GPIO13 now, and will include the code in another post.
But again, when I try to implement an SPI interface for driving a Nokia 3110 LCD display with the ESP8266, I just tend to get the same issue again – though I can see cativity on GPIO13, the LCD just cannot get the data right for some reason. I switched GPIO13 with GPIO4 and it worked just fine.
Update: This is weird!
I just noticed when looking at the schematics that the port GPIO13 is connectde to a 1uF capacitor! WHAT?! :O
I think it has been sitting there grounding all my high speed signals and that os probably the reason why I cannot get my LCD to work properly. Obviously a 1-4 MHz bus will never work with a 1uFcapacitor grounding the pin. Take a look at the schematics for yourself. This has been taken from the latest release of the ESP-LAUNCHER schematic found on Espressif GitiHub page.
Here is the port GPIO13:
And next, take a look at the capacitor connected to the pin!
To be honest, I don’t think this would ever let a high speed SPI interface work properly at all. Forget 1MHz clock, even a 10kHz clock might fail with a capacitor that big on the same pin.
What I plan to do is, de-solder and remove this capacitor from the ESP-LAUNCHER, which should not really have any other side effects, considering the fact that the capacitor is not a critical one for the circuit.
I will post another update after removing it and checking whether things work as they should. Do subscribe to the blog if you wish to stay updated. Feel free to leave your opinion in the comments below!