Avoid WiFi channel 12-13-14 when working with ESP devices

Recently we are experimenting with Home Assistant installed on A20-OLinuXino-LIME2 Home server and attaching different nodes made with our ESP8266/ESP32 boards and noticed odd behaviour os ESP when WIFI router is set on the higher frequencies channels.

Most of WiFi router default settings are with channel Auto selection, this means the router will try first Channel 1 if too much noise and drop packets due to overwhelmed with WiFi devices area will change it up and so on, so our developers decided that it’s smart idea to use the WiFi router on the highest possible channel. This will guarantee that this channel will be most noise and interference free from other WiFi devices. So our router was set to WiFi channel 13:

We use the ESP standard firmware and ESPhome code. This is what happens: When the code is flashed for first time, it experience some errors while connecting but manage to connect to the router.

Access Point: TP Link
Hardware Version: Archer C1200 v2.0
Firmware Version: 2.0.0 Build 20170206 rel.46023 (EU)

SUCCESS CH13 (first attempt after flashing the code)
============================

[D][wifi:370]: Starting scan...
[D][wifi:385]: Found networks:
[I][wifi:429]: - 'OlimexTenda' (B0:4E:26:6E:B2:73) 
[D][wifi:430]:     Channel: 13
[D][wifi:431]:     RSSI: -40 dB
[D][wifi:434]: - 'OlimexGuests' (C8:3A:35:4B:10:78) 
[D][wifi:434]: - 'OlimexAP' (00:1F:1F:11:7B:B3) 
[D][wifi:434]: - 'OlimexTest' (78:32:1B:90:D7:38) 
[D][wifi:434]: - 'ubnt' (00:27:22:7C:3C:70) 
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:483]: Event: Disconnected ssid='OlimexTenda' bssid=B0:4E:26:6E:B2:73 reason='Association Expired'
[W][wifi:533]: Error while connecting to network.
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:479]: Event: Disconnected ssid='OlimexTenda' reason='Probe Request Unsuccessful'
[W][wifi:533]: Error while connecting to network.
[D][wifi:370]: Starting scan...
[D][wifi:385]: Found networks:
[I][wifi:429]: - 'OlimexTenda' (B0:4E:26:6E:B2:73) 
[D][wifi:430]:     Channel: 13
[D][wifi:431]:     RSSI: -52 dB
[D][wifi:434]: - 'Haxor' (B0:48:7A:CE:8D:BC) 
[D][wifi:434]: - 'OlimexGuests' (C8:3A:35:4B:10:78) 
[D][wifi:434]: - 'OlimexAP' (00:1F:1F:11:7B:B3) 
[D][wifi:434]: - 'OlimexTest' (78:32:1B:90:D7:38) 
[D][wifi:434]: - 'ubnt' (00:27:22:7C:3C:70) 
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:213]: wifi_apply_hostname_(esp8266-evb-pir-9c61de): lwIP error -16 on interface st (index 0)
[W][wifi_esp8266:483]: Event: Disconnected ssid='OlimexTenda' bssid=B0:4E:26:6E:B2:73 reason='Association Leave'
[W][wifi:533]: Error while connecting to network.
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:213]: wifi_apply_hostname_(esp8266-evb-pir-9c61de): lwIP error -16 on interface st (index 0)
[I][wifi:502]: WiFi Connected!
[C][wifi:350]:   Local MAC: 18:FE:34:9C:61:DE
[C][wifi:351]:   SSID: 'OlimexTenda'
[C][wifi:352]:   IP Address: 192.168.0.203
[C][wifi:354]:   BSSID: B0:4E:26:6E:B2:73
[C][wifi:355]:   Hostname: 'esp8266-evb-pir-9c61de'
[C][wifi:357]:   Signal strength: -56 dB 
[C][wifi:361]:   Channel: 13
[C][wifi:362]:   Subnet: 255.255.255.0
[C][wifi:363]:   Gateway: 192.168.0.1
[C][wifi:364]:   DNS1: 192.168.0.1
[C][wifi:365]:   DNS2: 0.0.0.0
[D][wifi:511]: Disabling AP...

As you can see from the above the ESP try to connect twice but gets error: ‘Association Expired’ and ‘Probe Request Unsuccessful’ but on the third attempt it connects.

The problem comes later if for some reason ESP lose power and start again. This could easily happen if the ESP is powered by the mains and there is power blackout and power restore.

FAILURE CH13 (after cold restart)
=================================
[C][wifi:037]: Setting up WiFi...
[D][wifi:046]: Loaded saved wifi settings: OlimexTenda
[D][wifi:370]: Starting scan...
[D][binary_sensor:036]: 'PIR Sensor': Sending state OFF
[D][wifi:385]: Found networks:
[I][wifi:429]: - 'OlimexTenda' (B0:4E:26:6E:B2:73) 
[D][wifi:430]:     Channel: 13
[D][wifi:431]:     RSSI: -55 dB
[D][wifi:434]: - 'Haxor' (B0:48:7A:CE:8D:BC) 
[D][wifi:434]: - 'OlimexAP' (00:1F:1F:11:7B:B3) 
[D][wifi:434]: - 'OlimexTest' (78:32:1B:90:D7:38) 
[D][wifi:434]: - 'OlimexGuests' (C8:3A:35:4B:10:78) 
[D][wifi:434]: - 'ubnt' (00:27:22:7C:3C:70) 
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:483]: Event: Disconnected ssid='OlimexTenda' bssid=B0:4E:26:6E:B2:73 reason='Auth Expired'
[W][wifi:533]: Error while connecting to network.
[W][wifi:568]: Restarting WiFi adapter...
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:483]: Event: Disconnected ssid='OlimexTenda' bssid=B0:4E:26:6E:B2:73 reason='Auth Expired'
[W][wifi:533]: Error while connecting to network.
[W][wifi:568]: Restarting WiFi adapter...
[D][wifi:370]: Starting scan...
[D][wifi:385]: Found networks:
[I][wifi:429]: - 'OlimexTenda' (B0:4E:26:6E:B2:73) 
[D][wifi:430]:     Channel: 13
[D][wifi:431]:     RSSI: -54 dB
[D][wifi:434]: - 'Haxor' (B0:48:7A:CE:8D:BC) 
[D][wifi:434]: - 'OlimexAP' (00:1F:1F:11:7B:B3) 
[D][wifi:434]: - 'OlimexGuests' (C8:3A:35:4B:10:78) 
[D][wifi:434]: - 'ubnt' (00:27:22:7C:3C:70) 
[D][wifi:434]: - 'OlimexTest' (78:32:1B:90:D7:38) 
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:483]: Event: Disconnected ssid='OlimexTenda' bssid=B0:4E:26:6E:B2:73 reason='Auth Expired'
[W][wifi:533]: Error while connecting to network.
[W][wifi:568]: Restarting WiFi adapter...
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:483]: Event: Disconnected ssid='OlimexTenda' bssid=B0:4E:26:6E:B2:73 reason='Auth Expired'
[W][wifi:533]: Error while connecting to network.
[W][wifi:568]: Restarting WiFi adapter...
[D][wifi:370]: Starting scan...
[D][wifi:385]: Found networks:
[I][wifi:429]: - 'OlimexTenda' (B0:4E:26:6E:B2:73) 
[D][wifi:430]:     Channel: 13
[D][wifi:431]:     RSSI: -52 dB
[D][wifi:434]: - 'OlimexAP' (00:1F:1F:11:7B:B3) 
[D][wifi:434]: - 'OlimexGuests' (C8:3A:35:4B:10:78) 
[D][wifi:434]: - 'ubnt' (00:27:22:7C:3C:70) 
[D][wifi:434]: - 'OlimexTest' (78:32:1B:90:D7:38) 
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:483]: Event: Disconnected ssid='OlimexTenda' bssid=B0:4E:26:6E:B2:73 reason='Auth Expired'
[W][wifi:533]: Error while connecting to network.
[W][wifi:568]: Restarting WiFi adapter...
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[I][wifi:135]: Starting fallback AP!
[C][wifi:198]: Setting up AP...
[C][wifi:200]:   AP SSID: 'esp8266-evb-pir-9c61de'
[C][wifi:201]:   AP Password: ''
[C][wifi:210]:   IP Address: 192.168.4.1
[W][wifi:527]: Timeout while connecting to WiFi.
[D][wifi:370]: Starting scan...
[D][wifi:385]: Found networks:
[I][wifi:429]: - 'OlimexTenda' (B0:4E:26:6E:B2:73) 
[D][wifi:430]:     Channel: 13
[D][wifi:431]:     RSSI: -57 dB
[D][wifi:434]: - 'Haxor' (B0:48:7A:CE:8D:BC) 
[D][wifi:434]: - 'OlimexGuests' (C8:3A:35:4B:10:78) 
[D][wifi:434]: - 'OlimexAP' (00:1F:1F:11:7B:B3) 
[D][wifi:434]: - 'ubnt' (00:27:22:7C:3C:70) 
[D][wifi:434]: - 'OlimexTest' (78:32:1B:90:D7:38) 
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:213]: wifi_apply_hostname_(esp8266-evb-pir-9c61de): lwIP error -16 on interface st (index 0)
[W][wifi_esp8266:483]: Event: Disconnected ssid='OlimexTenda' bssid=B0:4E:26:6E:B2:73 reason='Association Leave'
[W][wifi:533]: Error while connecting to network.
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:213]: wifi_apply_hostname_(esp8266-evb-pir-9c61de): lwIP error -16 on interface st (index 0)
[W][wifi:527]: Timeout while connecting to WiFi.
[D][wifi:370]: Starting scan...
[D][wifi:385]: Found networks:
[I][wifi:429]: - 'OlimexTenda' (B0:4E:26:6E:B2:73) 
[D][wifi:430]:     Channel: 13
[D][wifi:431]:     RSSI: -56 dB
[D][wifi:434]: - 'OlimexGuests' (C8:3A:35:4B:10:78) 
[D][wifi:434]: - 'OlimexAP' (00:1F:1F:11:7B:B3) 
[D][wifi:434]: - 'OlimexTest' (78:32:1B:90:D7:38) 
[D][wifi:434]: - 'ubnt' (00:27:22:7C:3C:70) 
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:213]: wifi_apply_hostname_(esp8266-evb-pir-9c61de): lwIP error -16 on interface st (index 0)
[W][wifi_esp8266:483]: Event: Disconnected ssid='OlimexTenda' bssid=B0:4E:26:6E:B2:73 reason='Association Leave'
[W][wifi:533]: Error while connecting to network.
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:213]: wifi_apply_hostname_(esp8266-evb-pir-9c61de): lwIP error -16 on interface st (index 0)
[W][wifi_esp8266:479]: Event: Disconnected ssid='OlimexTenda' reason='Probe Request Unsuccessful'
[W][wifi:533]: Error while connecting to network.
[D][wifi:370]: Starting scan...
[D][wifi:385]: Found networks:
[I][wifi:429]: - 'OlimexTenda' (B0:4E:26:6E:B2:73) 
[D][wifi:430]:     Channel: 13
[D][wifi:431]:     RSSI: -51 dB
[D][wifi:434]: - 'Haxor' (B0:48:7A:CE:8D:BC) 
[D][wifi:434]: - 'OlimexAP' (00:1F:1F:11:7B:B3) 
[D][wifi:434]: - 'OlimexGuests' (C8:3A:35:4B:10:78) 
[D][wifi:434]: - 'OlimexTest' (78:32:1B:90:D7:38) 
[D][wifi:434]: - 'ubnt' (00:27:22:7C:3C:70) 
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:213]: wifi_apply_hostname_(esp8266-evb-pir-9c61de): lwIP error -16 on interface st (index 0)
[W][wifi_esp8266:483]: Event: Disconnected ssid='OlimexTenda' bssid=B0:4E:26:6E:B2:73 reason='Auth Expired'
[W][wifi:533]: Error while connecting to network.
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:213]: wifi_apply_hostname_(esp8266-evb-pir-9c61de): lwIP error -16 on interface st (index 0)
[W][wifi_esp8266:483]: Event: Disconnected ssid='OlimexTenda' bssid=B0:4E:26:6E:B2:73 reason='Auth Expired'
[W][wifi:533]: Error while connecting to network.
[D][wifi:370]: Starting scan...
[D][wifi:385]: Found networks:
[D][wifi:434]: - 'Haxor' (B0:48:7A:CE:8D:BC) 
[D][wifi:434]: - 'OlimexAP' (00:1F:1F:11:7B:B3) 
[D][wifi:434]: - 'OlimexGuests' (C8:3A:35:4B:10:78) 
[D][wifi:434]: - 'ubnt' (00:27:22:7C:3C:70) 
[D][wifi:434]: - 'OlimexTest' (78:32:1B:90:D7:38) 
[W][wifi:439]: No matching network found!
[D][wifi:370]: Starting scan...
[D][wifi:385]: Found networks:
[I][wifi:429]: - 'OlimexTenda' (B0:4E:26:6E:B2:73) 
[D][wifi:430]:     Channel: 13
[D][wifi:431]:     RSSI: -54 dB
[D][wifi:434]: - 'Haxor' (B0:48:7A:CE:8D:BC) 
[D][wifi:434]: - 'OlimexAP' (00:1F:1F:11:7B:B3) 
[D][wifi:434]: - 'OlimexGuests' (C8:3A:35:4B:10:78) 
[D][wifi:434]: - 'OlimexTest' (78:32:1B:90:D7:38) 
[D][wifi:434]: - 'ubnt' (00:27:22:7C:3C:70) 
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:213]: wifi_apply_hostname_(esp8266-evb-pir-9c61de): lwIP error -16 on interface st (index 0)
[W][wifi_esp8266:483]: Event: Disconnected ssid='OlimexTenda' bssid=B0:4E:26:6E:B2:73 reason='Auth Expired'
[W][wifi:533]: Error while connecting to network.
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:213]: wifi_apply_hostname_(esp8266-evb-pir-9c61de): lwIP error -16 on interface st (index 0)
[W][wifi_esp8266:483]: Event: Disconnected ssid='OlimexTenda' bssid=B0:4E:26:6E:B2:73 reason='Auth Expired'
[W][wifi:533]: Error while connecting to network.
[D][wifi:370]: Starting scan...
[D][wifi:385]: Found networks:
[I][wifi:429]: - 'OlimexTenda' (B0:4E:26:6E:B2:73) 
[D][wifi:430]:     Channel: 13
[D][wifi:431]:     RSSI: -53 dB
[D][wifi:434]: - 'OlimexAP' (00:1F:1F:11:7B:B3) 
[D][wifi:434]: - 'OlimexGuests' (C8:3A:35:4B:10:78) 
[D][wifi:434]: - 'ESP_CA17E1' (8C:4B:14:CA:17:E1) 
[D][wifi:434]: - 'ubnt' (00:27:22:7C:3C:70) 
[D][wifi:434]: - 'OlimexTest' (78:32:1B:90:D7:38) 
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:213]: wifi_apply_hostname_(esp8266-evb-pir-9c61de): lwIP error -16 on interface st (index 0)
[W][wifi_esp8266:483]: Event: Disconnected ssid='OlimexTenda' bssid=B0:4E:26:6E:B2:73 reason='Auth Expired'
[W][wifi:533]: Error while connecting to network.
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:213]: wifi_apply_hostname_(esp8266-evb-pir-9c61de): lwIP error -16 on interface st (index 0)
[W][wifi_esp8266:483]: Event: Disconnected ssid='OlimexTenda' bssid=B0:4E:26:6E:B2:73 reason='Auth Expired'
[W][wifi:533]: Error while connecting to network.
[D][wifi:370]: Starting scan...
[D][wifi:385]: Found networks:
[I][wifi:429]: - 'OlimexTenda' (B0:4E:26:6E:B2:73) 
[D][wifi:430]:     Channel: 13
[D][wifi:431]:     RSSI: -54 dB
[D][wifi:434]: - 'Haxor' (B0:48:7A:CE:8D:BC) 
[D][wifi:434]: - 'OlimexGuests' (C8:3A:35:4B:10:78) 
[D][wifi:434]: - 'OlimexAP' (00:1F:1F:11:7B:B3) 
[D][wifi:434]: - 'OlimexTest' (78:32:1B:90:D7:38) 
[D][wifi:434]: - 'ubnt' (00:27:22:7C:3C:70) 
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:213]: wifi_apply_hostname_(esp8266-evb-pir-9c61de): lwIP error -16 on interface st (index 0)
[W][wifi_esp8266:483]: Event: Disconnected ssid='OlimexTenda' bssid=B0:4E:26:6E:B2:73 reason='Auth Expired'
[W][wifi:533]: Error while connecting to network.
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:213]: wifi_apply_hostname_(esp8266-evb-pir-9c61de): lwIP error -16 on interface st (index 0)
[W][wifi_esp8266:483]: Event: Disconnected ssid='OlimexTenda' bssid=B0:4E:26:6E:B2:73 reason='Auth Expired'
[W][wifi:533]: Error while connecting to network.
[D][wifi:370]: Starting scan...
[D][wifi:385]: Found networks:
[I][wifi:429]: - 'OlimexTenda' (B0:4E:26:6E:B2:73) 
[D][wifi:430]:     Channel: 13
[D][wifi:431]:     RSSI: -53 dB
[D][wifi:434]: - 'Haxor' (B0:48:7A:CE:8D:BC) 
[D][wifi:434]: - 'OlimexAP' (00:1F:1F:11:7B:B3) 
[D][wifi:434]: - 'OlimexGuests' (C8:3A:35:4B:10:78) 
[D][wifi:434]: - 'OlimexTest' (78:32:1B:90:D7:38) 
[D][wifi:434]: - 'ubnt' (00:27:22:7C:3C:70) 
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:213]: wifi_apply_hostname_(esp8266-evb-pir-9c61de): lwIP error -16 on interface st (index 0)
[W][wifi_esp8266:483]: Event: Disconnected ssid='OlimexTenda' bssid=B0:4E:26:6E:B2:73 reason='Auth Expired'
[W][wifi:533]: Error while connecting to network.
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[W][wifi_esp8266:213]: wifi_apply_hostname_(esp8266-evb-pir-9c61de): lwIP error -16 on interface st (index 0)
[W][wifi_esp8266:483]: Event: Disconnected ssid='OlimexTenda' bssid=B0:4E:26:6E:B2:73 reason='Auth Expired'
[W][wifi:533]: Error while connecting to network.
[D][wifi:370]: Starting scan...
[D][wifi:385]: Found networks:
[I][wifi:429]: - 'OlimexTenda' (B0:4E:26:6E:B2:73) 
[D][wifi:430]:     Channel: 13
[D][wifi:431]:     RSSI: -53 dB
[D][wifi:434]: - 'Haxor' (B0:48:7A:CE:8D:BC) 
[D][wifi:434]: - 'OlimexGuests' (C8:3A:35:4B:10:78) 
[D][wifi:434]: - 'OlimexAP' (00:1F:1F:11:7B:B3) 
[D][wifi:434]: - 'OlimexTest' (78:32:1B:90:D7:38) 
[D][wifi:434]: - 'ubnt' (00:27:22:7C:3C:70) 

As seen from the log above, after power cycling ESP can’t connect to WiFi router anymore, most of the errors shown are ‘Auth Expired’

If we change the WiFi router settings to Channel 1-11:

All problems now are gone and ESP connects every time no matter how many time power is cycled.

SUCCESS CH11 (after cold restart)
=================================
[D][wifi:046]: Loaded saved wifi settings: OlimexTenda
[D][wifi:370]: Starting scan...
[D][binary_sensor:036]: 'PIR Sensor': Sending state OFF
[D][wifi:385]: Found networks:
[I][wifi:429]: - 'OlimexTenda' (B0:4E:26:6E:B2:73) 
[D][wifi:430]:     Channel: 11
[D][wifi:431]:     RSSI: -54 dB
[D][wifi:434]: - 'Haxor' (B0:48:7A:CE:8D:BC) 
[D][wifi:434]: - 'OlimexGuests' (C8:3A:35:4B:10:78) 
[D][wifi:434]: - 'OlimexAP' (00:1F:1F:11:7B:B3) 
[D][wifi:434]: - 'OlimexTest' (78:32:1B:90:D7:38) 
[D][wifi:434]: - 'ubnt' (00:27:22:7C:3C:70) 
[I][wifi:245]: WiFi Connecting to 'OlimexTenda'...
[I][wifi:502]: WiFi Connected!
[C][wifi:350]:   Local MAC: 18:FE:34:9C:61:DE
[C][wifi:351]:   SSID: 'OlimexTenda'
[C][wifi:352]:   IP Address: 192.168.0.203
[C][wifi:354]:   BSSID: B0:4E:26:6E:B2:73
[C][wifi:355]:   Hostname: 'esp8266-evb-pir-9c61de'
[C][wifi:357]:   Signal strength: -55 dB 
[C][wifi:361]:   Channel: 11
[C][wifi:362]:   Subnet: 255.255.255.0
[C][wifi:363]:   Gateway: 192.168.0.1
[C][wifi:364]:   DNS1: 192.168.0.1
[C][wifi:365]:   DNS2: 0.0.0.0
[D][wifi:511]: Disabling AP...
[C][ota:082]: Over-The-Air Updates:
[C][ota:083]:   Address: esp8266-evb-pir.local:8266
[C][api:025]: Setting up Home Assistant API server...
[I][app:060]: setup() finished successfully!
[I][app:099]: ESPHome version 2021.11.4 compiled on Dec  9 2021, 11:08:14
[I][app:101]: Project olimex.esphome-esp8266-evb-pir version 1.0
[C][wifi:488]: WiFi:
[C][wifi:350]:   Local MAC: 18:FE:34:9C:61:DE
[C][wifi:351]:   SSID: 'OlimexTenda'
[C][wifi:352]:   IP Address: 192.168.0.203
[C][wifi:354]:   BSSID: B0:4E:26:6E:B2:73
[C][wifi:355]:   Hostname: 'esp8266-evb-pir-9c61de'
[C][wifi:357]:   Signal strength: -55 dB 
[C][wifi:361]:   Channel: 11
[C][wifi:362]:   Subnet: 255.255.255.0
[C][wifi:363]:   Gateway: 192.168.0.1
[C][wifi:364]:   DNS1: 192.168.0.1
[C][wifi:365]:   DNS2: 0.0.0.0
[C][logger:233]: Logger:
[C][logger:234]:   Level: DEBUG
[C][logger:235]:   Log Baud Rate: 115200
[C][logger:236]:   Hardware UART: UART0
[C][gpio.binary_sensor:015]: GPIO Binary Sensor 'PIR Sensor'
[C][gpio.binary_sensor:015]:   Device Class: 'motion'
[C][gpio.binary_sensor:016]:   Pin: GPIO16
[C][captive_portal:151]: Captive Portal:
[C][ota:082]: Over-The-Air Updates:
[C][ota:083]:   Address: esp8266-evb-pir.local:8266
[C][api:134]: API Server:
[C][api:135]:   Address: esp8266-evb-pir.local:6053
[C][api:139]:   Using noise encryption: NO
[C][mdns:084]: mDNS:
[C][mdns:085]:   Hostname: esp8266-evb-pir-9c61de

Our blind guess is that ESP can’t connect reliable on the higher frequency channels. As far as you choose channels 1-11 everything is fine. We think that most people even do not notice this kind of erros if they routers are set to Auto channels as the chances to go up to 12-13-14 are very slim.

Espressif ESP8266 Bug Bounty Program – Report a bug and win USD1000

ESP8266-EVB

Espressif is working hard to remove bugs in their very popular ESP8266 WiFi SoC. They want to make superior solution to CC3000 competetive product from TI, which is well known for it’s security issues.

So on March 20th Espressif boldly posted on their BBS the Bug Bounty Program – they will give USD 1000 to anyone who reports bug in ESP8266 .

We are working intensively with ESP8266 to make our plug and play IoT solution with pluggable UEXT modules to ESP8266-EVB and one of our developers Peter found bug in SSL implementation where you can brick or reset ESP8266 by sending large amount of data over https. He reported the bug to Espressif and today he got this e-mail:

From: Quote
Sent: Wednesday, April 8, 2015 5:26 PM
To: peter@
Subject: ESP8266-Bug Bounty Winner Information Requirement (BBP#29)

Thank you for your bug report, which will help us improve our SDK.
Our engineer has confirmed your bug report and they will release debug method to you later.
I am assigned to give the reward to you.
Please provide some information to us, which is needed for us to keep record.

a.. The company you are working for
b.. Your name
c.. Your nickname that you want to be announced
d.. contact number or mail
e.. Paypal account or bank account
You should declare tax according to your local law by yourself.

Yay! Quick USD1000 earned 🙂 Glad to see Espressif stands behind their word.

And from the e-mail header seems Peter is not alone but #29 in the Bug Bounty Program.

In other hand if they have decided to open source their binary blobs these bugs would be fixed by the community (which is huge and growing with each next day). So they could save themself these $30K.

Having the sources would also make less nervous people who want to use ESP8266 in more serious stuff where is not good to have “black boxes” with unknown code inside.

imx233 weird DCDC capacitor problems

Image

We started our OSHW Linux computers with imx233 processors from Freescale. The reason was that it was cheap and possible to buy in any quantity + they came in TQFP package and are easy for DIY at home, so anyone can build his own Linux computer.

Many thousands of imx233 based OLinuXino devices are sold and work reliable in many applications, but recently we were bumped in weird problem with the imx233 DCDC.

imx233 is highly integrated SoC as it’s purpose when designed was media player, so the all internal voltages are generated with internal DCDC.

If you look at the schematic above you will see L1 with C74 C75 are used in the internal DCDC. Freescale recommends C74 and C75 to be not populated in the users manual, but we found when ran the first lot of OLinuXino that if C75 is missing the board will never start when powered by LiPo battery only. Touching the C75 pads with scope probe started the boards, so initially we decided to put there small 10 pf capacitor, with this value the boards were starting reliable if LiPo is only connected.

We all know that processors and components have tolerances, after we ran more boards we got some statistic and some of boards didn’t want to start with 10 pf, we play more than week and found that if we rise C75 to 100 pf this solve all startup problems and all boards which were failed on the test for this condition were cured with C75=100 pf

So far so good, we put 100 pf in the production manuals and continue to manufacture imx233 boards, while last week we got call from customer, who bought 50 pcs imx233-mini and some of them failed to work with USB. He did some analyze and found that the difference between boards which work and do not work use different date code USB hub chips GL850. We asked these boards back and start investigation.

When we received them we run them on our functional tests and … all they pass the test, this was weird as customer reported these to have problems. After a while we found the difference – in our tests we use ARCH linux image, while the customer was using Debian, we run Debian Linux and same boards which worked with ARCH image start to give errors ONLY in case you attach USB flash drive to the USB port!

NOW this was really weird, as with the old data code USB GL850 hubs the boards were working with both Debian and ARCH but with the new date code hub only ARCH image was working and Debian image was giving errors when USB Flash drive is attached.

We spent about week to chase this problem as it is some mix of both hardware and software issues and after a week of investigation we found the problem is caused by … C75(!) reducing C75 to 15 pf solves the USB port problems. Now this is really weird.

If C75 is lowered problems with startup of the DCDC when powered with only LiPo occur, when C75 is with higher value the DCDC becomes very sensitive to the overall power consumption and when USB flash drive is attached to some USB hubs which obviously have different power consumption due to tolerances the USB port start to give errors.

We obviously have no intern knowledge how this DCDC is implemented in imx233 and why it interference with USB ports to dig to the root of the problem, for the moment replacing the C75 solves the problems, but anyway this still is weird bug.

We can’t also understand why ARCH linux image is more immune to these problems and what is the difference between USB port initialization with ARCH and Debian images.

Any help and comments on above is welcome from people who know more 🙂

 

EDIT: Here is some more information which I forgot to attach at the beginning:

this is with ARCH Linux distribution build with Kernel 2.6.35 we use when mass storage is plug in USB: http://pastie.org/9283768

this is with Debian distribution built with Kernel 3.11 when MOD-RTL8188CU is plug in USB: http://pastie.org/9283772 everything is normal

these are the error messages with same Debian distribution when USB flash drive is plug in: http://pastie.org/9283780

 

EDIT2: This issue only happens when hub is connected to imx233 USB host – either GL850 either LAN9512, the issue do not happens on Micro and Nano where there is no hub between imx233 host and USB mass storage.