-
Notifications
You must be signed in to change notification settings - Fork 7.6k
ESP32 ESP-WHO IDF with Arduino component can't build software #5276
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
Comments
What IDF version are you using? |
@me-no-dev I just used the master branch of https://github.com/espressif/esp-idf As shown for the examples with the esp-who in combination with the esp32-arduino component I executed both the idf.py build and menu flash monitor commands and got different results. But are you suggesting the esp-who with esp32-arduino component should work and I should follow the idf.py menuconfig, idf.py build and idf.py flash monitor commands? |
Does esp-who compile on its own with esp-idf master? These components may not compile on every version of esp-idf. You typically need to match the version of arduino-esp32 with a specific version of idf (https://github.com/espressif/arduino-esp32/blob/master/tools/sdk/esp32/include/config/sdkconfig.h#L661). Currently, arduino-esp32 master compiles on esp-idf master. Earlier versions of arduino are unlikely to work with idf master. If you then want to put esp-who into the mix, you need to be sure it compiles separately on the version of esp-idf you are using. |
For the ESP-who I used following tutorial provided by Espressif. The ESP-IDF was part of the ESP-WHO folder after cloning. I did not do anything extra to get the ESP-IDF. As seen also here the master branch is used for ESP-WHO he steps to build esp-who SDK on Ubuntu are as follows: Step 1. Install Prerequisites : Step 2. Get ESP-WHO: Step 3. Set up the esp-idf environment variables under esp-who: Step 4. Set up the tools Step 5. Start a Project: |
esp-who expects idf4.0. arduino-esp32 expects idf4.4(ish). It will not be possible to integrate this without a significant effort on your part. It might be possible to get this working with the 4.0 release container at https://hub.docker.com/r/lbernstone/esp32-arduino-lib-builder. |
Thanks for the tips. |
And when I want to use the ESP-IDF I have to come up with a different solution for the setup and loop function of my main file and a different solution of the HardwareSerial I am currently using? |
the docker container includes the esp-idf at a specific point in time (in this case idf4.0 about 8 months ago) along with the arduino that compiled then. You can clone esp-who into the container and build your project there, or else build the arduino libraries there and copy them out into your normal environment. I can provide no guarantees that any of this will work, since you are trying to mix and match pieces. I don't know where your HTTP header issues are coming from. If that is your actual problem, it would probably be more direct to solve that problem, instead of going down a very long rabbit hole. |
That is indeed the initial issue I am trying to solve, which took me already a long road down the rabbit hole. But I will try every possible solution. |
generally you do not need the full esp-who. All you need is esp-face :) https://github.com/espressif/esp-dl ESP-IDF master should compile fine with arduino master, esp32-camera master and esp-dl master. |
That sounds as an easier solution. So I have to install the ESP-IDF and add in the components folder of the ESP-IDF installation the following components:
Then I can take the hello world example and edit it with my sketch based on the examples/esp32/camera/CameraWebServer from the Arduino IDE? |
It is still missing some files which are not part of the esp-dl ../main/app_httpd.cpp:22:10: fatal error: fb_gfx.h: No such file or directory |
ahh :) fb_gfx component you need to copy from ESP-WHO. It is used to draw the frames around faces |
Thanks for your help! That got me further. Only got a problem with
|
You have selected 8MB flash but have 4MB on the module |
Feeling a bit stupid right now......... found it and fixed it. Camera is working. Thanks for the help! |
Got only one error left which appears after a while. W (303806) httpd_txrx: httpd_sock_err: error in send : 11 But in all my webpage I even didn't specify favicon.ico. Also in the example webservers I didn't saw the use of a favicon. |
that request comes from the web browser. It wants to decorate the tab. You can provide one as a static file if you really want. |
You may be interested in serving the icon inline im your main html to prevent multiple requests. Found some details here about it: |
That's an interesting idea, but if you are serving more than one page, you would need to embed it in every page (or use a template). |
[STALE_SET] This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 14 days if no further activity occurs. Thank you for your contributions. |
[STALE_DEL] This stale issue has been automatically closed. Thank you for your contributions. |
Hardware:
Board: ESP-EYE DevKit for AIoT Developers
IDE name: ESP-IDF, ESP-WHO, Arduino Esp32 component
Upload Speed: 115200
Computer OS: Windows 10 (Virtual box with Ubuntu 20.04.2.0 Desktop AMD64)
Description:
I have an ESP-EYE DevKit for AIoT Developers and wanted to develop my own program for it based on the examples/esp32/camera/CameraWebServer example as was available in the Arduino IDE. I developed the program with the Arduino IDE. The program includes HardwareSerial in order to communicate via the DOUT and DIN pin to another ESP-32. Also, I made some extensions to the webserver to support multiple web pages. Most of the source code is below.
This all is working pretty well via the Arduino IDE on Windows 10. However, when I connect with some browsers to the webserver running on my ESP-EYE, the Camera and options bar cannot be displayed due to an HTTP header issue (
Header field are too long for the server to interpret
). This HTTP header issue can be solved by changing the header length in the sdkconfig file (Max HTTP Request Header Length
andMax HTTP URI Length
). When I tried to do this in my Arduino installation (on various locations over the file system within Windows 10), did not improve anything.So I got the suggestion to try to build the environment of ESP-IDF in Ubuntu. For this, I created a virtual box with Ubuntu 20.04.2.0-desktop-amd64 version.
Next, I followed this tutorial: https://gist.github.com/abobija/2721427f18d78e439fa9875cac960ffa. With this, I was able to run the Hello World example on my ESP-EYE.
Then I followed this tutorial to include the Arduino component: https://github.com/espressif/arduino-esp32/blob/master/docs/esp-idf_component.md. I also managed to run the hello world example.
In order to run the CameraWebServer example, instead of the ESP-IDF from the tutorial, I learned I needed the ESP-WHO environment, with the camera_web_server example as base.
So followed all those steps:
Afterwards, I was able to successfully run the camera_web_server example on my ESP-EYE.
Again I followed this tutorial: https://github.com/espressif/arduino-esp32/blob/master/docs/esp-idf_component.md to include the Arduino component to the camera_web_server example folder, and I modified the program files in the camera_web_server example folder to my developed program.
Files I had in the camera_web_server/main folder after copying my own program to it:
Run
make menuconfig
and modified the HTTP request and HTTP URi Header length. Set in the Arduino configuration the flash size to Hugh App.When I then run
idf.py build
this results in the error:When I then run
make flash monitor
instead ofidf.py build
this results in the following error:I have no clue anymore which steps to take in order to solve one of the two error messages, all in order to solve my initial issue:
That I need to increase the numbers for Max HTTP Request Header Length and Max HTTP URI Length.
Does some has an idea to help me out and to solve the bug I am facing?
Thanks already for all your ideas and suggestions.
Main.cpp
app_httpd.cpp
communication.h
The text was updated successfully, but these errors were encountered: