Hi! I recently purchased some Wemos boards to test them out (D1, D1R2 and D1 mini)
Soon after trying my first DHT22 project, not being able to get a reading from the sensor, I tried moving the data pin to another IO in the Wemos. Then it started to work
So I realized that from the D0...D8 pins that are allegedly exposed as "General I/O pins", it looks like 3 of them (at least D3/4/8) are reserved for special operations and can't be tied to a different value, at least during bootup.
So am I missing something and maybe there's still a way ot take advantage of these pins? If not, why are they labeled as D0-D8 if they are not usable for general IO?
GPIO0: pull low during boot for flash mode (connects to a push button). Other than that, usable as GPIO but beware of waht you connect to it.
GPIO1, 3: TX and RX (Serial). Also usable as GPIO if not using serial.
GPIO2: is pulled up during boot & internal LED (active LOW).
GPIO15: fixed external pull-down (for boot).
GPIO4, 5, 12-14, 16: nothing special.
So you have 11 usable GPIO including the Serial pins plus the analog input, but some you have to be aware of what you connect to them. Anything that pulls it's pin low, is not suitable for GPIO0, for example. Using GPIO2 as output activates the internal LED if set LOW.
You have to look up yourself how WeMOS maps the GPIO to D numbers. There's no logic in that.
SO yes, it's kind of what I was understanding, they are not like GENERAL GENERAL purpose IO pins...you need to put special attention to those ones. Something that puts a "heavy" pulldown can't be plugged into GPIO0, for example.
At the end, all that's left for REALLY generic use of D-IO's are 6 pins. I can't live with serial debugging...
Thanks!