From 87ac1145719197c57f58b5bf72c2e45868d39afd Mon Sep 17 00:00:00 2001 From: Marcin Niestroj Date: Mon, 4 Oct 2021 11:10:02 +0200 Subject: [PATCH] drivers: wifi: esp_at: fix connect to open network According to ESP-AT documentation ([1] for version before 2.0 and [2] for version 2.1) of AT+CWJAP command, both SSID and PSK are required. Even for newest ESP-AT release 2.2 ([3]) "," (comma) is needed even if SSID or PSK are not explicitly provided. Send 'AT+CWJAP="SSID",""' instead of 'AT+CWJAP="SSID"' when connecting to open WiFi network, to follow AT commands documentation. Tested with ESP-AT firmware 2.1. [1] https://www.espressif.com/sites/default/files/documentation/4a-esp8266_at_instruction_set_en.pdf [2] https://github.com/espressif/esp-at/blob/release/v2.1.0.0_esp8266/docs/en/AT_Command_Set/Wi-Fi_AT_Commands.md#atcwjapconnects-to-an-ap [3] https://github.com/espressif/esp-at/blob/release/v2.2.0.0_esp8266/docs/en/AT_Command_Set/Wi-Fi_AT_Commands.rst#refatcwjap-wifi-at-connect-to-an-ap Signed-off-by: Marcin Niestroj --- drivers/wifi/esp_at/esp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/wifi/esp_at/esp.c b/drivers/wifi/esp_at/esp.c index bbe75d62eb2..aeef5ab4531 100644 --- a/drivers/wifi/esp_at/esp.c +++ b/drivers/wifi/esp_at/esp.c @@ -829,9 +829,10 @@ static int esp_mgmt_connect(const struct device *dev, memcpy(&data->conn_cmd[len], params->ssid, params->ssid_length); len += params->ssid_length; - if (params->security == WIFI_SECURITY_TYPE_PSK) { - len += snprintk(&data->conn_cmd[len], + len += snprintk(&data->conn_cmd[len], sizeof(data->conn_cmd) - len, "\",\""); + + if (params->security == WIFI_SECURITY_TYPE_PSK) { memcpy(&data->conn_cmd[len], params->psk, params->psk_length); len += params->psk_length; }