Description
Basic Infos
I have two ESP12E modules. One came mounted to a NodeMCU breakout board.
https://drive.google.com/file/d/0BwFbwCQ9LBckUTdSR2RmdEVtMkE/view?usp=sharing
The other is a generic board that I have wired myself (see pics for wiring)
https://drive.google.com/file/d/0BwFbwCQ9LBckMTk4MWVVSUtGYTA/view?usp=sharing
https://drive.google.com/file/d/0BwFbwCQ9LBckdWhMUVRGNl9UMUk/view?usp=sharing
I am able to upload sketeches to both of them using the Arduino IDE (version 1.6.8 with version 2.1.0 of Arduino core for ESP8266).
Both boards produce identical output from the CheckFlashConfig sketch. They behave the same until I try to use a sketch that connects to Wifi. Then, the NodeMCU board works but the generic board panics. Sketches that don't connect to Wifi work fine on both. My operating system is Debian (Jessie).
This is being continued from #1675 at the request of @Links2004
Hardware
Hardware: ESP12E
Core Version: 2.1.0 ( I don't know which revision)
Settings in IDE
Module: Generic ESP8266 Module
Flash Size: 4MB w/ 1MB SPIFFS (tried all 4MB settings)
CPU Frequency: 80Mhz (tried 40Mhz also)
Flash Mode: qio
Flash Frequency: 80Mhz (tried 40Mhz also)
Upload Using: SERIAL
Reset Method: ck
Sketch
This is the original CheckFlashConfig script modified to connect to my local wireless network.
/*
ESP8266 CheckFlashConfig by Markus Sattler
This sketch tests if the EEPROM settings of the IDE match to the Hardware
*/
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <Hash.h>
ESP8266WiFiMulti WiFiMulti;
void setup(void) {
Serial.begin(115200);
Serial.setDebugOutput(true);
uint32_t realSize = ESP.getFlashChipRealSize();
uint32_t ideSize = ESP.getFlashChipSize();
FlashMode_t ideMode = ESP.getFlashChipMode();
Serial.printf("Flash real id: %08X\n", ESP.getFlashChipId());
Serial.printf("Flash real size: %u\n\n", realSize);
Serial.printf("Flash ide size: %u\n", ideSize);
Serial.printf("Flash ide speed: %u\n", ESP.getFlashChipSpeed());
Serial.printf("Flash ide mode: %s\n", (ideMode == FM_QIO ? "QIO" : ideMode == FM_QOUT ? "QOUT" : ideMode == FM_DIO ? "DIO" : ideMode == FM_DOUT ? "DOUT" : "UNKNOWN"));
if(ideSize != realSize) {
Serial.println("Flash Chip configuration wrong!\n");
} else {
Serial.println("Flash Chip configuration ok.\n");
}
for(uint8_t t = 4; t > 0; t--) {
delay(1000);
}
Serial.println("Joining network");
WiFiMulti.addAP("myNetworkName", "hackon!!");
while(WiFiMulti.run() != WL_CONNECTED) {
delay(100);
}
Serial.println("Connected using IP:");
Serial.println(WiFi.localIP());
Serial.println("And MAC address:");
Serial.println(WiFi.macAddress());
}
void loop() {
Serial.println("...still connected!\n");
delay(5000);
}
Debug Messages
From NodeMCU board
tail 0
chksum 0x42
csum 0x42
Flash real id: 001640E0
Flash real size: 4194304
Flash ide size: 4194304
Flash ide speed: 40000000
Flash ide mode: DIO
Flash Chip configuration ok.
Joining network
Connected using IP:
10.100.20.136
And MAC address:
5C:CF:7F:0B:70:E0
...still connected!
...still connected!
...still connected!
From generic board
Flash real id: 001640E0
Flash real size: 4194304
Flash ide size: 4194304
Flash ide speed: 40000000
Flash ide mode: QIO
Flash Chip configuration ok.
Joining network
[WIFI][APlistAdd] add SSID: myNetworkName
[WIFI] delete old wifi config...
there is no poison after the block. Expected poison address: 0x3fff0ff8, actual data: 0x0 0xef 0xef 0xfe
Panic /home/tink/arduino-nightly/hardware/esp8266com/esp8266/cores/esp8266/umm_malloc/umm_malloc.c:851 check_poison_block
ctx: cont
sp: 3fff0090 end: 3fff04d0 offset: 01b0
>>>stack>>>
Stack
See image for decoded stack