-
Notifications
You must be signed in to change notification settings - Fork 678
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
ESP-AT New Features Collection #513
Comments
I've been asking for better AT+CIPSTART implementation with AT+CIPSTARTEX, where application doesn't set connection number by itself. Instead, we should do it like that:
In this case we have well defined strategy when we use client and server at the same time. Otherwise we may have race conditions. However all pushes have been well defined w/o proper argument. |
[MQTT][ALPN] ALPN support within the MQTT client. |
[MQTT over WS][HTTP header] Customized HTTP header with MQTT over web socket client. |
Hi @MaJerle, |
@como-221e Thanks for the feedback, had added to the esp-at TODO list. |
@como-221e In fact, the path parameter configured by the AT+MQTTUSERCFG command will be passed to the Generally speaking, authorization is implemented through wss certificate or subprotocol of websocket. It is recommended that use username and password parameter of MQTT to authorize. If authorization is mandatory in websocket request, user can modify the implement of websocket here. |
[TCP-IP] AT+CIPSERVER - please add support for more TCP servers. servers can be identified with port. |
About Wi-Fi roaming feature. |
Thank you. We have this plan in v2.3.0.0. |
How to make UDP server to be discovered by Alexa? |
This is not easy to add this feature to ESP-AT common firmware. Because:
Here, it is suggested that the user carry out the secondary development based on AT framework, this is a recommended way. |
AFAIK, udp may not have the concept of server. udp can receive the data from the port which it listens, or send the data to the port. |
Indeed, but ESP AT syntax is forcing me to use one IP. So which one should I use to get discovered by someone on known port? Is there a way for "any" IP? |
emmm, i am not sure what is "any ip". |
Thanks. |
servers are identified by ports. incoming clients have local port information in CIPSTATUS. so no AT commands need to be changed. |
I am not sure what kind of udp packet type Alexa sends out. let's say it is the udp broadcast. so the AT commands like the following:
more see as: https://docs.espressif.com/projects/esp-at/en/latest/AT_Command_Set/TCP-IP_AT_Commands.html#establish-udp-transmission. |
i can understand what you expected, there is always a way to be as compatible as possible with previous AT commands. |
Classic Bluetooth SPP - improve receiving. Currently on data receiving there is URC filled with data: +BTDATA:4,test It would be more convenient to have only a notification (indicator) about new data receiving in URC (+BTSPPRCV:<conn_index>). And then user can use additional command something like AT+BTSPPREAD=0,255 (read data from SPP id 0, max length is 255 bytes). AT+BTSPPREAD response:
This way it would be much easier to parse raw binary data that can includes
This way is similar to Quectel M66 GSM module with Bluetooth, I like how they implemented it. And as I see ESP32 TCP-IP commands already use this approach with notification +IPD, so it is doubly sad that bluetooth receiving doesn't follows common practice. Please pay attention that other URCs must not interpose between +BTSPPREAD and OK. |
[SNTP] Setting the synchronization interval Another possible feature would be to force the time to synchronize. As an additional question, in the current version (2.2.0), this synchronization interval is (https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/kconfig.html# config-lwip-sntp-update-delay) of 3600000? Translated with www.DeepL.com/Translator (free version) |
@TakashiKusachi Thanks for your suggestion. we will add the feature to the next version. |
BLE 5.x features AT commands for BLE 5.x features, such as extended advertising, PHY management, etc. |
@foldl ESP32-C3 supports BLE 4.2 now, and will supports BLE 5.0 in the next few months. we planed to release v2.4.0.0 for ESP32-C3 in March 2022, which includes BLE 5.0. |
@foldl ESP32-C3 supports BLE 5.0 now, please get the latest code. esp-at plans to release v2.4.0.0 for ESP32-C3 in April 2022. |
[INTERFACE][USB] Support for USB VCP as an at command interface |
@matt-wood-ct We has finished it, but it will output some logs to USB from ROM API, unfortunately, these logs cannot be masked. We can evaluate it again. |
I think for me this would be OK, is there a branch or bin I can try? Many Thanks, |
@matt-wood-ct C3 USB need IDF v4.4 or later, we have not ported AT to this IDF. |
[CWSTAPROTO][WIFI_PROTOCOL_LR] Support for long range protocol |
thanks for the feature request. will add this in one month. |
it's not a bad idea, we had considered it before. but file operation will cost massive flash space and ram space, so it is not that common for all esp chips. such as ESP8266 and ESP32-C2 has a relatively less flash and ram so that esp-at disabled the FS commands. btw, esp-at has a light private key and certificate update steps here: https://docs.espressif.com/projects/esp-at/en/latest/esp32/Compile_and_Develop/how_to_generate_pki_files.html |
@ustccw - what if we use AT+SYSFLASH commands to hardcode load information there? Can we do it? I simply want to avoid modify official AT command firmware coming from Espressif. I want to load everything through AT commands. |
@MaJerle yeah, |
I don't think so, actually. In the
So it means I have to build on my own, no? |
in the released firmware: https://docs.espressif.com/projects/esp-at/en/latest/esp32/AT_Binary_Lists/ESP32_AT_binaries.html |
this commit should include it: 5435e9a |
@matt-wood-ct When we tested USB AT, we found a serious problem, because WiFi and USB share the phy clock, the USB output could get stuck when WiFi and USB are used together, which caused the ESP32-C3 to not support the USB AT solution. |
@matt-wood-ct I've uploaded the patch that implements USB AT, which can be used for testing. It should be noted that this patch cannot be used for production. |
Hi, |
When dealing with SSL connections, today the only way is to use A proposal is to extend Or, maybe even better, make a |
@DynamicLoader May I ask why you didn't consider using SPI interface for both AT commands and data? Are there any specific limitations? To be honest, ESP-AT did consider supporting multiple medium interfaces (including UART, SPI, SDIO, socket, etc., similar to netif on the PC side, managed through routing). However, this feature was later abandoned mainly due to the following reasons:
Therefore, the general firmware does not support this feature. |
@MaJerle thanks for your proposal. will discuss it internally and feedback here within one week. |
sorry for late reply. We have had an in-depth internal discussion regarding this requirement, and we believe that |
Then we can remove cipstartex command, no? |
i'm afraid not. For compatibility reasons, we have to keep this command. However, we do not highly recommend using this command in multi-connection mode. |
Allow scanning in BLEINIT 2 (dual role) #743 |
What about supporting SHA-256 (or similar algo) for flash/manuf_data integrity check? As it is flash underlying system, it has its maximum write/erase cycles. Especially for large binary entries, it would make sense to do a integrity check, mainly to verify if the data you have on your host side matches the one on the device. If it does, no need for erase/write operation. Typical case would be certificates, that you may have in the MCU and want them to upload to ESP for TCP SSL connection. You can do erase/write only if integrity on the host doesn't match the one on the MCU. Today the solution is to read everything and compare. Quite a long time to do it. Integrity should have partition, offset and length options. Or just partition, or just partition + offset (up to the end). |
crc32, not SHA-256 on embedded |
Add option to receive ESP-AT is used by dedicated host, not for "user friendly" day in a week. Option can be done with SYSMSG if we need backward compatibility. It can reduce the processing on HOST and it is generally not needed in the format as we have today. |
CRC32, with very defined CRC specifications, can indeed also work. I agree. |
What about adding parameters to AT+WSCFG (or AT+WSOPEN) and AT+HTTPCLIENT to manage SSL certificate verification, i.e. like the parameters used in AT+MQTTUSERCFG? |
@ustccw can we get a reply on this one please? Actually several options may be added (CRC32, SHA1, MD5, SHA-256). |
[WebSocket][Server] 可以支持一下ws服务器吗,对于开不出ws服务器的小程序、uniapp等来说交互可能会更方便些 |
Hello @MaJerle , thanks for your suggestion. esp-at uses manufacturing nvs stores all the data now, and nvs itself has the features you mentioned. NVS will reject writing data if the data to be written is the same as the data already written; NVS will write to different sectors to prevent excessive erasure of the same sector; NVS has its own CRC32 check. |
the time format comes from asctime() style, you can obtain each sub-item by the |
I would like to suggest customizing a your own AT command for configuring HTTP/WebSocket certificates and connecting to the server. Typically, HTTP/WebSocket servers do not require clients to provide certificates. |
在 IoT 设备上运行 WebSocket 服务器,不是一个好的设计。因为 IoT 设备资源受限,导致无法满足多客户端的连接,也难以支持诸多服务器端丰富的特性;另外一点,服务器一般用于给其他客户端提供服务的,而 IoT 设备通常是没有广域网 IP 的,不太能直接给客户端提供服务。 |
ESP-AT New Features Collection
A. Brief Introduction
Currently, many AT commands have been added to the esp-at project, but esp-at still does not meet the requirements of all products.
Here, we are committed to extracting some common features and adding them to the general esp-at firmware to reduce the cost of customer development, accelerate the landing of customer products and inject fresh blood into the esp-at project at the same time.
So...o, suggest any feature request for this project would be welcomed!
B. Code of Conduct
C. Sample of New Feature Request
Short Description:
As the AWS Device communication protocols designed, clients that connect on port 443 with X.509 client certificate authentication must implement the Application Layer Protocol Negotiation (ALPN) TLS extension and use the ALPN protocol name listed in the ALPN ProtocolNameList sent by the client as part of the ClientHello message.
D. Feature Statistics
802.11r
only make sure that we will skip 4 way handshake during roam; 3. Device may get disconnected for various reasons, right now we don't initiate roaming automatically based on disconnection; 4.It was more a request from customer in mesh solutions in which they expect devices to move automatically between the APs as APs wants and timing should be pretty low.The text was updated successfully, but these errors were encountered: