From 73e340961ef5b55d0d2b5f9a2ea14d55252bc46b Mon Sep 17 00:00:00 2001 From: blakadder Date: Thu, 7 Nov 2019 11:39:43 +0100 Subject: [PATCH] Updated Expanding Tasmota (markdown) --- Expanding-Tasmota.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/Expanding-Tasmota.md b/Expanding-Tasmota.md index 67813f31..65447d1e 100644 --- a/Expanding-Tasmota.md +++ b/Expanding-Tasmota.md @@ -24,7 +24,17 @@ If you can avoid it, don't use GPIOs: **0, 1, 2, 6-11, 15 and 16**. That leaves Others ***can*** be used but you have to mind the constraints outlined in [this document](https://tttapa.github.io/ESP8266/Chap04%20-%20Microcontroller.html). -### Electrical considerations +## :red_circle: Voltage and Current +The ESP8266 is a 3.3V microcontroller, so its I/O operates at 3.3V as well. The pins are **not** 5V tolerant, applying more than 3.6V on any pin will release the [magic smoke](https://en.wikipedia.org/wiki/Magic_smoke) (fry the chip). + +The maximum current that can be drawn from a single GPIO pin is 12mA. + +## :red_circle: Power Supply +The [power supplied to the device](https://www.letscontrolit.com/wiki/index.php?title=Power) is **one of the most important elements** for stable device operation. Many devices on the market have barely adequate power supplies for normal operation. ***Connected peripherals may strain the ability of the power supply on the device to deliver appropriate power to all the components, both on-board as well as externally connected.*** + +Voltage regulation issues typically result in fatal exception [fault code](https://github.com/esp8266/Arduino/blob/master/doc/exception_causes.rst) `1`. You must ensure that the device receives sufficient power (current **and** appropriate voltage level). Take into account the current that each wired component (f.e. sensor) will draw from the device itself. + +### Electrical Considerations When you switch a GPIO pin to an input and hang a long wire off of it, that wire can pick up stray signals and cause the voltage on the GPIO pin to vary. This can cause the system to think the switch has changed. To fix this, there are several things you can do. @@ -47,13 +57,6 @@ Shielding or using twisted pair wiring are other ways to reduce the effect of ra ## Digital I/O Just like a normal Arduino, the ESP8266 has digital input/output pins (I/O or GPIO, General Purpose Input/Output pins). As the name implies, they can be used as digital inputs to read a digital voltage, or as digital outputs to output either 0V (sink current) or 3.3V (source current). -## :red_circle: Voltage and current restrictions -The ESP8266 is a 3.3V microcontroller, so its I/O operates at 3.3V as well. The pins are not 5V tolerant, applying more than 3.6V on any pin will kill the chip. - -The maximum current that can be drawn from a single GPIO pin is 12mA. - -The [power supplied to the device](https://www.letscontrolit.com/wiki/index.php?title=Power) is **one of the most important elements** for stable device operation. Voltage regulation issues typically result in fatal exception [fault code](https://github.com/esp8266/Arduino/blob/master/doc/exception_causes.rst) `1`. You must ensure that the device receives sufficient power (current AND appropriate voltage level). You must take into account the current that each sensor powered from the device itself will draw. Connected sensors may strain the ability of the power supply on the device to deliver appropriate power to all the components, both on-board as well as externally connected. - ## Usable pins The ESP8266 and ESP8255 have 17 GPIO pins (0-16) but several are [reserved or have constraints](https://i.imgur.com/IH1fYqF.jpg). Do not use any of the _**reserved**_ pins. If you do, you might crash your program. On the ESP8266, six pins (GPIO 6 - 11) are used to interface the flash memory (the small 8-legged chip usually right next to the ESP8266). The ESP8255 has its flash memory integrated into the chip which frees up GPIO 9 and 10.