esp-idf | Espressif IoT Development Framework
kandi X-RAY | esp-idf Summary
kandi X-RAY | esp-idf Summary
ESP-IDF is the development framework for Espressif SoCs supported on Windows, Linux and macOS.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of esp-idf
esp-idf Key Features
esp-idf Examples and Code Snippets
Community Discussions
Trending Discussions on esp-idf
QUESTION
Hi stackoverflow community,
I am trying to get a project leveraging Tensorflow Lite Micro to run on my ESP32 using PlatformIO and the Arduino framework (not ESP-IDF). Basically, I followed the guide in this medium post https://towardsdatascience.com/tensorflow-meet-the-esp32-3ac36d7f32c7 and then included everything in my already existing ESP32 project.
My project was compiling fine prior to the integration of Tensorflow Lite Micro but since integrating it, I am getting the following compile errors which seem to be related to the Tensorflow framework itself. When I uncomment everything related to Tensorflow, it compiles fine. But just when only including the following header files, it breaks:
...ANSWER
Answered 2022-Apr-05 at 03:13I resolved this for now by switching from the Arduino framework to the ESP-IDF framework. With this, it works like a charm.
QUESTION
Currently I'm working on a Demo program to better understand working with FreeRTOS. Therefore I would like to try to initialize a Queue on my second core(core1). After initializing i would like to add something to it in a 1 second interval and whenever nothing happens I would like to check my queue and work its content off. Everything related to that queue should work on the second core. The reason being that I previously worked on a Webserver which operates on the main core. My future Queue is supposed to work in parallel on the second core.
This is my current demoprogram:
...ANSWER
Answered 2022-Jan-14 at 16:52You don't need to assume where the problem is; the answer is in the backtrace that you posted. The exception happened during a particular function call in your code:
QUESTION
I'm writing a webserver for an ESP32, written primarily in C and using platformio and ESP-IDF on VSCode. With a single client, the server works great, but as soon as I try to load a page on more than 1 device (doesn't matter if all the same page or different), everything slows to a crawl. I can see the page requests arriving on the server nice and snappily, but the pages won't load/be sent for up to a minute.
When this is happening, the server seems to favour an arbitrary device; my android phone, for example, will load pages at normal speeds while my PC and iPhone will be stuck, or on another occasion the PC will be loading fast and the other two devices stuck. This makes me wonder if it's related to my server/socket handling task, but ESP-IDF is such a tangled web of dependencies I'm not sure where to begin looking. I've made a post on the Espressif forum, but haven't had any responses yet. It's not the wifi connection alone, as if I connect all 3 devices but only access the webpages from one, that device still loads everything fine.
Updates:
07/02 - I'm more and more convinced that the culprit is the socket task, as it doesn't seem to allow for multiple sockets simultaneously; after accepting one it handles everything for that one socket before looping back and accepting another one.
08/02 - I modified tcp_server_task
to start a new task for each socket (below is now the modified function and additional task), but this if anything made things worse, leaving me more confused than before.
09/02 - I tried increasing the backlog argument of listen()
from 1 to 32, this also made no difference.
Attempted (failed) solutions now include:
Setting keepAlive to 0
changing dest_addr_ip4 from INADDR_ANY to 192.168.4.1, the desired address for devices to connect to
pinning the socket handling task to a different core to the tcp_server_task
adding vTaskDelay(pdMS_TO_TICKS(x)) at various points with various values of x
Stuck devices are still consistently loading simultaneously after however long it takes (usually 30 to 60 seconds, sometimes longer)
10/02 - I forgot to mention, the ESP has bluetooth enabled as well, as we want users to be able to control stuff over both wireless methods.
socket handling task(s):
...ANSWER
Answered 2022-Feb-09 at 20:27Fixed it! The solution that worked in the end wasn't actually anything to do with sockets, all I did was set the lru_purge_enable
of my httpd_config_t
to true
. All 3 devices are now very happily loading everything. I'd still be curious if anyone knows why the http (connections?) weren't being dropped and required purging.
QUESTION
I'm using ESP-IDF 4.3.2 to create an ESP32 project with the following command:
idf.py create-project --path test test
I then modify main/main.c to contain the following code:
...ANSWER
Answered 2022-Jan-29 at 20:57Im not exactly familiar with cmake
and ESP-IDF
. I use platformio
in nvim
and make
. But try create in root directory CMakeLists.txt
contains:
QUESTION
I am attempting to send camera frames to a web socket server from an ESP32 with a camera. I am using the ESP-IDF to implement the client web socket on the device. Specifically, I am using: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/protocols/esp_websocket_client.html.
I have noticed an issue where the server does not receive full frames from the device. I did some digging, read through RFC6455 and became aware of the concept of frame fragmentation. My thinking now is that the camera frames (640 x 480 pixels) need to be fragmented before being sent. I read through the ESP-IDF docs and only saw one mention of fragmentation.
I feel comfortable enough to implement it myself, but it seems that there is no way to set the FIN bit, OPCODE, or any other parameters of the header described by RFC6455 using the ESP-IDF web socket client library.
Does any one have any idea how these parameters can be set, or if there is some way to enable native frame fragmentation on the device?
...ANSWER
Answered 2022-Jan-21 at 19:15Looking at the source code, it appears that the message is already being fragmented, if the message exceeds the size of buffer_size
.
The default size of buffer_size
is 1024 bytes. You can change it in the config.
QUESTION
I am working on the esp-idf as submodule for my development and I have also integrated Jenkins for the same. It is running perfectly without shallow clone feature added over Jenkins. But, when I tried to clone submodule with shallow clone with depth 1, 5 to 10 it is throwing same error as below,
Cloning into 'platform/esp32'... fatal: reference is not a tree: 286202caa31b61c2182209f37f8069a0b60fb942 Unable to checkout '286202caa31b61c2182209f37f8069a0b60fb942' in submodule path 'SDK/platform/esp32' Failed to recurse into submodule path 'SDK'
However, it is working fine with git commands and without Jenkins.
Any help would be benefits to me.
My Jenkins setup as shown below,
...ANSWER
Answered 2022-Jan-15 at 20:51This was also reported in Jenkins issue 60204 for git-scm plugin.
Make sure you have the latest version for that plugin.
Try and cleanup the Jenkins workspace associated with the job (with the help of the WS cleanup plugin)
As noted in JENKINS 63581:
The job definition you uploaded as config.xml includes the "clean before checkout" behavior but does not include the "wipe workspace" behavior.
The "clean before checkout" behavior retains the existing git repository (the
.git
directory) but removes untracked files.
It does that with thegit clean -xfd
command.If the workspace had been previously populated with repository content, the "clean before checkout" does not remove that previously created content.
The git plugin tries to reduce data transfer by retaining the git repository across multiple builds in the same workspace.
You would need to add "Wipe workspace" to assure that the two workspaces have the same content.If wipe workspace still shows a difference, then it is likely that there is a difference due to the two versions of command line git being used.
The OP Bhargav Lalaji adds in the comments:
I was checking the
git
command line on the different system and Jenkins was setup on other system.
After check the git versions both of them have different version.After upgrade the git version from 2.7.4 to 2.34.1, I am able to checkout submodule with shallow clone with Jenkins
QUESTION
I'm working on the ESP-idf via Visual Studio Code. Currently I'm working on a Webserver implementation and i would like to accept the following url:
IPADDRESS/command/on/5(number between 1 and 32)
The easiest(but not very efficient) solution would be, to initialize every single uri like this
...ANSWER
Answered 2021-Oct-28 at 12:00The ISP IDF HTTP server supports custom URI matchers, where you can create your own logic for matching the incoming request URIs or use basic wildcard expressions. I don't have time to dig into the API documentation for producing sample code, but it looks fairly simple.
QUESTION
Several of the examples in the esp-idf contain a sdkconfig.ci
file (e.g. examples/bluetooth/nimble/blehr).
I understand the usage of sdkconfig.defaults
but I can't find any reference to sdkconfig.ci
in the Espressif build system API guide.
When should the .ci
file be used and under what conditions are the configurations in it applied?
ANSWER
Answered 2021-Aug-05 at 06:27sdkconfig.ci are configs used when building apps in their own CI system, so these by default won't do anything in your project.
Usually, we can set config values using menuconfig, and these will be saved to sdkconfig. If there is a need to set some default values ( without using menuconfig), then this is possible by adding a sdkconfig.default file, and then add the new options there.
QUESTION
Framework:
ESP-IDF v4.3.1 - Eclipse Plugin
Project with 1 active component (my plan is to add ble scanning, mqtt messaging and wifi access)
...ANSWER
Answered 2021-Nov-18 at 11:27You have a naming conflict. You're trying to create a custom component named mqtt
which requires the system component named mqtt
and you expect the build system to figure it out. That's just asking for trouble :)
Name your component myproject-mqtt
or something. Watch out for similar problems with your components wifi
and ble
.
QUESTION
I am using VSCode and ESP-IDF to program Arduino. Some of the Arduino library files are generating warnings such as below.
...ANSWER
Answered 2021-Oct-24 at 03:53Navigate to your ESP-IDF
directory and look for build.cmake
file under esp-idf/tools/cmake
directory.
In the build.cmake
file - look for the section called function(__build_set_default_build_specifications)
- this contains all the default compiler options that are executed at build time. Include -Wno-unused-function
here, save and recompile your project!
But be aware that this will disable this warning globally and affect other projects as well.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install esp-idf
(See the Getting Started guide listed above for a full list of required steps with more details.).
Install host build dependencies mentioned in the Getting Started guide.
Run the install script to set up the build environment. The options include install.bat or install.ps1 for Windows, and install.sh or install.fish for Unix shells.
Run the export script on Windows (export.bat) or source it on Unix (source export.sh) in every shell environment before using ESP-IDF.
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page