Skip to content

add better docu and schematics for easy setup the ESP #370

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Jun 5, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 51 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,28 @@ Libraries that don't rely on low-level access to AVR registers should work well.
Pick the correct serial port.
You need to put ESP8266 into bootloader mode before uploading code.

#### Power Supply ####

For stable use of the ESP8266 a power supply with 3V3 and >= 250mA is required.

* Note
- using Power from USB to Serial is may unstable, they not deliver enough current.

#### Serial Adapter ####

There are many different USB to Serial adapters / boards.

* Note
- for full upload management you need RTS and DTR
- the chip need to have 3V3 TTL (5V may damage the chip)
- not all board have all pins of the ICs as breakout (check before order)
- CTS and DSR are not useful for upload (they are Inputs)

* Working ICs
- FT232RL
- CP2102
- may others (drop a comment)

#### Minimal hardware Setup for Bootloading and usage ####

ESPxx Hardware
Expand All @@ -221,26 +243,43 @@ ESPxx Hardware
- Reset is also named RSBT or REST (adding PullUp improves the stability of the Module)
- GPIO2 is alternative TX for the boot loader mode

ESP01 example:

![ESP01 connect](https://raw.githubusercontent.com/Links2004/Arduino/esp8266/docs/ESP01_connect.jpg)
###### esp to Serial
![ESP to Serial](https://raw.githubusercontent.com/Links2004/Arduino/esp8266/docs/ESP_to_serial.png)

#### Minimal hardware Setup for Bootloading only ####
ESPxx Hardware

| PIN | Resistor | Serial Adapter |
| ------------- | -------- | -------------- |
| VCC | | VCC (3.3V) |
| GND | | GND |
| TX or GPIO2 | | RX |
| RX | | TX |
| GPIO0 | | GND |
| PIN | Resistor | Serial Adapter |
| ------------- | -------- | --------------- |
| VCC | | VCC (3.3V) |
| GND | | GND |
| TX or GPIO2 | | RX |
| RX | | TX |
| GPIO0 | | GND |
| Reset | | RTS* |
| GPIO15 | PullDown | |
| CH_PD | PullUp | |
| GPIO15 | PullDown | |
| CH_PD | PullUp | |

* Note
- if no RTS is used a manual power toggle is needed

#### Minimal hardware Setup for running only ####

ESPxx Hardware

| PIN | Resistor | Power supply |
| ------------- | -------- | --------------- |
| VCC | | VCC (3.3V) |
| GND | | GND |
| GPIO0 | PullUp | |
| GPIO15 | PullDown | |
| CH_PD | PullUp | |

###### minimal
![ESP min](https://raw.githubusercontent.com/Links2004/Arduino/esp8266/docs/ESP_min.png)

###### improved stability
![ESP improved stability](https://raw.githubusercontent.com/Links2004/Arduino/esp8266/docs/ESP_improved_stability.png)

### Issues and support ###

Expand Down
Binary file added docs/ESP_improved_stability.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/ESP_min.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/ESP_to_serial.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@ ESP8266WiFiClass::ESP8266WiFiClass()

void ESP8266WiFiClass::mode(WiFiMode m)
{
if(wifi_get_opmode() == (uint8)m) {
return;
}
ETS_UART_INTR_DISABLE();
wifi_set_opmode(m);
ETS_UART_INTR_ENABLE();
Expand Down Expand Up @@ -333,10 +336,14 @@ void ESP8266WiFiClass::_scanDone(void* result, int status)

int8_t ESP8266WiFiClass::scanNetworks()
{
if ((wifi_get_opmode() & 1) == 0)//1 and 3 have STA enabled
{
if(_useApMode) {
// turn on AP+STA mode
mode(WIFI_AP_STA);
} else {
// turn on STA mode
mode(WIFI_STA);
}

int status = wifi_station_get_connect_status();
if (status != STATION_GOT_IP && status != STATION_IDLE)
{
Expand Down Expand Up @@ -508,9 +515,12 @@ void ESP8266WiFiClass::beginSmartConfig()
if (_smartConfigStarted)
return;

if ((wifi_get_opmode() & 1) == 0)//1 and 3 have STA enabled
{
if(_useApMode) {
// turn on AP+STA mode
mode(WIFI_AP_STA);
} else {
// turn on STA mode
mode(WIFI_STA);
}

_smartConfigStarted = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ wl_status_t ESP8266WiFiMulti::run(void) {

WiFi.getNetworkInfo(i, ssid_scan, sec_scan, rssi_scan, BSSID_scan, chan_scan, hidden_scan);


bool known = false;
for(uint32_t x = 0; x < APlist.size(); x++) {
WifiAPlist_t entry = APlist[x];
Expand Down Expand Up @@ -152,7 +151,17 @@ bool ESP8266WiFiMulti::APlistAdd(const char* ssid, const char *passphrase) {

WifiAPlist_t newAP;

newAP.ssid = (char*) malloc(strlen(ssid));
if(!ssid || strlen(ssid) > 31) {
// fail SSID to long or missing!
return false;
}

if(passphrase && strlen(passphrase) > 63) {
// fail passphrase to long!
return false;
}

newAP.ssid = (char*) malloc((strlen(ssid) + 1));

if(!newAP.ssid) {
return false;
Expand All @@ -161,16 +170,14 @@ bool ESP8266WiFiMulti::APlistAdd(const char* ssid, const char *passphrase) {
strcpy(newAP.ssid, ssid);

if(passphrase && *passphrase != 0x00) {
newAP.passphrase = (char*) malloc(strlen(passphrase));
}

if(!newAP.passphrase) {
free(newAP.ssid);
return false;
newAP.passphrase = (char*) malloc((strlen(passphrase) + 1));
if(!newAP.passphrase) {
free(newAP.ssid);
return false;
}
strcpy(newAP.passphrase, passphrase);
}

strcpy(newAP.passphrase, passphrase);

APlist.push_back(newAP);
return true;
}
Expand Down
2 changes: 1 addition & 1 deletion libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ uint16_t Adafruit_ILI9341::getWidth(void){
#ifdef SPI_HAS_TRANSACTION

#ifdef ESP8266
SPISettings spiSettings = SPISettings(SPI_MAX_SPEED, MSBFIRST, SPI_MODE0);
SPISettings spiSettings = SPISettings(ESP8266_CLOCK, MSBFIRST, SPI_MODE0);
#else
SPISettings spiSettings = SPISettings(8000000, MSBFIRST, SPI_MODE0);
#endif
Expand Down