Closed Bonekrovvn closed 9 months ago
Hi @Bonekrovvn, sorry I cannot read from your description what the exact error is. I am not aware of any required file called "Ext_nimble_config.h". Is there any way you can show me where exactly you face the issue? Do you have any compiler output or other error message you could add to this issue?
Hello, this is that problem what Bonekrovvn wrote. We are not sure where we can find this library. Thanks for help.
Thanks for the additional information. On which platform are you building and which IDE are you using? I have checked the code of the NimBLE library and it shows the following in the file "nimconfig.h":
As I am building for an ESP32, the variable ESP_PLATFORM is defined, which means that the line '#include "ext_nimble_config.h"' is NOT executed in my case. Can you please check also if you have configured your IDE to build for the right platform? The README.md file should describe it in detail in the software building part. Maybe something was missed here?
@Bonekrovvn It looks good from what I can see. Have you double checked that you configured the board correctly in the IDE? I would assume that this would determine the variable to be set correctly.
This issue will be closed soon due to inactivity. I assume it worked in the end?!
Hello @stangreg, I am completely lost with any progress, do You think it would be possible to connect with remote desktop to my laptop and check what is wrong and possibly compile and upload code? I was able to run some primitive stuff like LED diode light but this project is way above my skill...
Thank You.
@Bonekrovvn we could do this, I just need to sort out when I can take time for this. In the meantime, you could send the following information:
Attach the screenshots to this issue, then I can maybe see already if it is configured correctly.
Just a shot in the dark, but have you checked that you chose the right board? You could try other boards with a ESP32-WROOM-32 module, for example "Expressif ESP32 Dev Module". Maybe try a few other fitting ones.
@Bonekrovvn another thing you could try if the above does not work is to add the compile flag "-DESP_PLATFORM" in the build configuration.
I tried some examples and uploaded oled display test sketch and it works so I assume that board is set up correctly.
Have you tried setting the compiler flag as I described in my last comment? For the NimBLE library to compile the flag has to be set. It seems that through the Bord config, it is not set, so you could try to set it manually in the IDE to get it compiled. Your example is probably not relying on that flag to be set.
Sorry, I have no idea how to add compiler flag... :-(
Please check here, the first answer has the information you need.
https://forum.arduino.cc/t/additional-compiler-options/631297/2
Summary:
compiler.cpp.flags=-DESP_PLATFORM -DUSE_NIMBLE
Save the file and try to recompile. If it does not work, double check that you are in the right folder. For each board configuration, there is a separate platform.txt in the respective folder. If the folder is correct and it still does not work, you can also try to search the file platform.txt for the pattern "compiler.cpp.flags" and add the two flags as mentioned above.
If it does not work, check if the error message you get is still the same or a different one.
Hope this helps..
I think that is not the right folder to put the platform.local.txt file. Please move it up two levels, into the folder "2.0.11". there should already be a platform.txt, the local file must be in the same folder. Then try again to compile.
Note: The error you sent now is related to the USE_NIMBLE flag, so it seems you don't get the initial error anymore.
In file included from C:\Users\vkocmal.PKD.arduinoIDE\Ignitron-main\Ignitron\src\SparkDataControl.h:16, from C:\Users\vkocmal.PKD.arduinoIDE\Ignitron-main\Ignitron\src\SparkButtonHandler.h:13, from C:\Users\vkocmal.PKD.arduinoIDE\Ignitron-main\Ignitron\Ignitron.ino:11: C:\Users\vkocmal.PKD.arduinoIDE\Ignitron-main\Ignitron\src\SparkBLEKeyboard.h:11: warning: "USE_NIMBLE" redefined
There is a lot of undefined references in the compile which should not come if all paths are set up correctly. Can you please try to do a clean build (i.e. delete the compiled files first) and rebuild again?
I think we are wasting time because I have no idea what to do...
I could actually replicate the same compiling errors in my Arduino IDE. Usually I am using Sloeber as the IDE which works fine. I will have another look what is causing the failure in the Arduino IDE. In the meantime you could try to switch to Slobber (which gives some other benefits), but I will try to get the build running on Arduino IDE (which strangely worked the last time I tried a few months ago).
Probably all those problems are caused by my noob approach to IDE so there is something missing for sure. I downloaded and run Sloeber but it is even more complicated than Arduino IDE...
As mentioned, I could reproduce the issue in my Arduino IDE. It happens even with the minimal example file. I suspect either the Arduino version, or the board version acting strange (although Sloeber uses the same board version, afaik).
Sloeber looks more complicated in the beginning, but basically you just need to create a new project with the existing files, configure the board and select the libraries (it uses the same as Arduino IDE). Just note that some settings can be found in the Sloeber menu item and some in the project properties menu after creating the project. Maybe you can give it a try, Google might also help to set it up. In case I find the reason for the Arduino build to fail, I will comment here.
OK, I just tried to set up Ignitron as a new project in Slobber, these are the steps I took:
File -> New -> Arduino Sketch (this should create a new empty sketch)
Name the Project "Ignitron"
Copy the cloned local git folder into the workspace (don't use the Import Wizard)
Refresh the project in Sloeber. The structure should look similar to this:
Select the options and libraries similar to what you have already done in the screenshots above. You might need to select the library "SPIFFS". Library "FreeRTOS" does not need to be selected. Not sure if you can select something else for the "upload protocol", but in my case it says "EspTool".
Try to build the workspace.
If it does not work, you can also try to create a new Empty test project and try to compile after setting the board config.
If you still get an error, please post the full log output here as well
13:19:04 Build of configuration Release for project Ignitron "C:\Sloeber\arduinoPlugin\tools\make\make" all C:/Sloeber/arduinoPlugin/tools/make/make --no-print-directory pre-build cmd /c if exist "C:\sloeber-workspace\Ignitron\partitions.csv" COPY /y "C:\sloeber-workspace\Ignitron\partitions.csv" "C:\sloeber-workspace\Ignitron\Release\partitions.csv" cmd /c if not exist "C:\sloeber-workspace\Ignitron\Release\partitions.csv" if exist "C:\Sloeber\arduinoPlugin\packages\esp32\hardware\esp32\2.0.11\variants\esp32dapartitions.csv" COPY "C:\Sloeber\arduinoPlugin\packages\esp32\hardware\esp32\2.0.11\variants\esp32dapartitions.csv" "C:\sloeber-workspace\Ignitron\Release\partitions.csv" cmd /c if not exist "C:\sloeber-workspace\Ignitron\Release\partitions.csv" COPY "C:\Sloeber\/arduinoPlugin/packages/esp32/hardware/esp32/2.0.11\tools\partitionsdefault_8MB.csv" "C:\sloeber-workspace\Ignitron\Release\partitions.csv" Syst‚m nem…§e nal‚zt uvedeně soubor. makefile:138: recipe for target 'pre-build' failed make[1]: [pre-build] Error 1 makefile:98: recipe for target 'all' failed make: [all] Error 2 "C:/Sloeber/arduinoPlugin/tools/make/make all" terminated with exit code 2. Build might be incomplete.
13:19:05 Build Failed. 4 errors, 0 warnings. (took 1s.286ms)
The line "Syst‚m nem…§e nal‚zt uvedeně soubor." looks like partially czech and partially broken (maybe due to special characters in the message). Do you see the line different in the application? Maybe you could try to set the Slobber language to English (if not already done)?
Another thing you could try is to change the board version in Sloeber to 2.0.9. You can do this in the menu "Sloeber" -> "Preferences", then select Platform and Boards and deselect the current selected board and select the version 2.0.9. Depending on your setup, you need to add the following URLs first in the item "Third party index URLs":
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json https://dl.espressif.com/dl/package_esp32_index.json
Then the versions should be present in the Board menu.
To be on the safe side, select "Project" -> "Clean..." and confirm to do a clean build.
The line "Syst‚m nem…§e nal‚zt uvedeně soubor." looks like partially czech and partially broken (maybe due to special characters in the message). Do you see the line different in the application? Maybe you could try to set the Slobber language to English (if not already done)?
It says something like: system cannot find listed file
Sloeber looks like it has default english and I wasn´t able to find where to change it.
Another thing you could try is to change the board version in Sloeber to 2.0.9. You can do this in the menu "Sloeber" -> "Preferences", then select Platform and Boards and deselect the current selected board and select the version 2.0.9. Depending on your setup, you need to add the following URLs first in the item "Third party index URLs":
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json https://dl.espressif.com/dl/package_esp32_index.json
Then the versions should be present in the Board menu.
To be on the safe side, select "Project" -> "Clean..." and confirm to do a clean build.
Ok the version change, you have to select/install it first in the menu Arduino->Preferences. It seems that the menu is called Arduino on Windows, on Mac it is called Sloeber.
I had to restart Sloeber then 2.0.9 appeared but still that same error message:
19:09:08 Build of configuration Release for project Ignitron "C:\Sloeber\arduinoPlugin\tools\make\make" all C:/Sloeber/arduinoPlugin/tools/make/make --no-print-directory pre-build cmd /c if exist "C:\sloeber-workspace\Ignitron\partitions.csv" COPY /y "C:\sloeber-workspace\Ignitron\partitions.csv" "C:\sloeber-workspace\Ignitron\Release\partitions.csv" cmd /c if not exist "C:\sloeber-workspace\Ignitron\Release\partitions.csv" if exist "C:\Sloeber\arduinoPlugin\packages\esp32\hardware\esp32\2.0.9\variants\esp32dapartitions.csv" COPY "C:\Sloeber\arduinoPlugin\packages\esp32\hardware\esp32\2.0.9\variants\esp32dapartitions.csv" "C:\sloeber-workspace\Ignitron\Release\partitions.csv" cmd /c if not exist "C:\sloeber-workspace\Ignitron\Release\partitions.csv" COPY "C:\Sloeber\/arduinoPlugin/packages/esp32/hardware/esp32/2.0.9\tools\partitionsnoota_ffat.csv" "C:\sloeber-workspace\Ignitron\Release\partitions.csv" Syst‚m nem…§e nal‚zt uvedeně soubor. makefile:138: recipe for target 'pre-build' failed make[1]: [pre-build] Error 1 makefile:98: recipe for target 'all' failed make: [all] Error 2 "C:/Sloeber/arduinoPlugin/tools/make/make all" terminated with exit code 2. Build might be incomplete.
19:09:10 Build Failed. 4 errors, 0 warnings. (took 1s.296ms)
Can you see the file partitions.csv in the Release folder? If not, maybe you can try a different partition schema, Default for example.
There is no such file in release folder, after trying several different partition schemes still same error.
OK, I think I found something. There seems to be an issue with Sloeber with ESP versions greater than 2.0.10. I had a similar issue as you (file not found) when trying to use version 2.0.14.
The issue is described here and I could successfully build after applying the suggested solution. Let me summarize for you:
recipe.hooks.prebuild.7.pattern=bash -c "[ -f "{build.path}"/file_opts ] || touch "{build.path}"/file_opts" recipe.hooks.prebuild.7.pattern.windows=cmd /c if not exist "{build.path}\file_opts" type nul > "{build.path}\file_opts"
You can add them anywhere (I assume), I just put them near the other lines starting with "recipe.hooks".
Let me know if it works and what the log output is. Please send the whole output in case of failure.
OK, I think I found something. There seems to be an issue with Sloeber with ESP versions greater than 2.0.10. I had a similar issue as you (file not found) when trying to use version 2.0.14.
The issue is described here and I could successfully build after applying the suggested solution. Let me summarize for you:
* Open the folder "C:/Sloeber/arduinoPlugin/packages/esp32/hardware/esp32/2.0.14" * Delete the file "platform.sloeber.txt" * Open the file "platform.txt" with a text editor and add the following lines
recipe.hooks.prebuild.7.pattern=bash -c "[ -f "{build.path}"/file_opts ] || touch "{build.path}"/file_opts" recipe.hooks.prebuild.7.pattern.windows=cmd /c if not exist "{build.path}\file_opts" type nul > "{build.path}\file_opts"
You can add them anywhere (I assume), I just put them near the other lines starting with "recipe.hooks".
* Save and close the file platform.txt * Open the Ignitron project properties in Sloeber * Check that the folder mentioned above is selected for the board configuration (2.0.14) and click "Apply and Close". Even if you are sure you have the right board, you need to open the properties and click "Apply and Close". This should trigger the recreation of the platform.sloeber.txt file. * Check if the file platform.sloeber.txt is created and contains one of the two lines. For Windows systems, only the second line should be in the file, for Linux systems the first. * Delete the build folder "Release" in the project Workspace. This will force Sloeber to rebuild the makefiles. * Build
Let me know if it works and what the log output is. Please send the whole output in case of failure.
Tried several times, still same...
18:17:45 Incremental Build of configuration Release for project Ignitron "C:\Sloeber\arduinoPlugin\tools\make\make" all C:/Sloeber/arduinoPlugin/tools/make/make --no-print-directory pre-build cmd /c if exist "C:\sloeber-workspace\Ignitron\partitions.csv" COPY /y "C:\sloeber-workspace\Ignitron\partitions.csv" "C:\sloeber-workspace\Ignitron\Release\partitions.csv" cmd /c if not exist "C:\sloeber-workspace\Ignitron\Release\partitions.csv" if exist "C:\Sloeber\arduinoPlugin\packages\esp32\hardware\esp32\2.0.14\variants\esp32dapartitions.csv" COPY "C:\Sloeber\arduinoPlugin\packages\esp32\hardware\esp32\2.0.14\variants\esp32dapartitions.csv" "C:\sloeber-workspace\Ignitron\Release\partitions.csv" cmd /c if not exist "C:\sloeber-workspace\Ignitron\Release\partitions.csv" COPY "C:\Sloeber\/arduinoPlugin/packages/esp32/hardware/esp32/2.0.14\tools\partitionsdefault.csv" "C:\sloeber-workspace\Ignitron\Release\partitions.csv" Syst‚m nem…§e nal‚zt uvedeně soubor. makefile:138: recipe for target 'pre-build' failed make[1]: [pre-build] Error 1 makefile:98: recipe for target 'all' failed make: [all] Error 2 "C:/Sloeber/arduinoPlugin/tools/make/make all" terminated with exit code 2. Build might be incomplete.
18:17:46 Build Failed. 4 errors, 0 warnings. (took 1s.296ms)
The log starts with incremental build. Can you please remove the Release folder and do a clean build? Then send the log file.
And have you checked that the additional lines are found innthe platform.sloeber.txt file?
18:35:58 Build of configuration Release for project Ignitron "C:\Sloeber\arduinoPlugin\tools\make\make" all C:/Sloeber/arduinoPlugin/tools/make/make --no-print-directory pre-build cmd /c if exist "C:\sloeber-workspace\Ignitron\partitions.csv" COPY /y "C:\sloeber-workspace\Ignitron\partitions.csv" "C:\sloeber-workspace\Ignitron\Release\partitions.csv" cmd /c if not exist "C:\sloeber-workspace\Ignitron\Release\partitions.csv" if exist "C:\Sloeber\arduinoPlugin\packages\esp32\hardware\esp32\2.0.14\variants\esp32dapartitions.csv" COPY "C:\Sloeber\arduinoPlugin\packages\esp32\hardware\esp32\2.0.14\variants\esp32dapartitions.csv" "C:\sloeber-workspace\Ignitron\Release\partitions.csv" cmd /c if not exist "C:\sloeber-workspace\Ignitron\Release\partitions.csv" COPY "C:\Sloeber\/arduinoPlugin/packages/esp32/hardware/esp32/2.0.14\tools\partitionsdefault.csv" "C:\sloeber-workspace\Ignitron\Release\partitions.csv" Syst‚m nem…§e nal‚zt uvedeně soubor. makefile:138: recipe for target 'pre-build' failed make[1]: [pre-build] Error 1 makefile:98: recipe for target 'all' failed make: [all] Error 2 "C:/Sloeber/arduinoPlugin/tools/make/make all" terminated with exit code 2. Build might be incomplete.
18:35:59 Build Failed. 4 errors, 0 warnings. (took 1s.501ms)
The log starts with incremental build. Can you please remove the Release folder and do a clean build? Then send the log file.
And have you checked that the additional lines are found innthe platform.sloeber.txt file?
Both of those lines are present in that txt.
I am still confused about the line "Syst‚m nem…§e nal‚zt uvedeně soubor." That looks really strange, not like a proper message. Does that look correct to you (because of language) or does it also look strange to you?
Also, I would have expected to have only one line in the platform.sloeber.txt file.
Can you confirm that you have executed the steps exactly as described above? I.e. edit the platform.txt, not the platform.sloeber.txt.
Previously I had also an error about file not found, but it was more specific on the file it did not found. I can see no specific error message in your build, really strange..
Does the message mean something like access denied or like file not found?
Does the message mean something like access denied or like file not found?
It goes: system cannot find the specified file
I am still confused about the line "Syst‚m nem…§e nal‚zt uvedeně soubor." That looks really strange, not like a proper message. Does that look correct to you (because of language) or does it also look strange to you? Little bit of font failure because of specific czech letters.
Also, I would have expected to have only one line in the platform.sloeber.txt file.
Can you confirm that you have executed the steps exactly as described above? I.e. edit the platform.txt, not the platform.sloeber.txt. I did several times.
Previously I had also an error about file not found, but it was more specific on the file it did not found. I can see no specific error message in your build, really strange..
Does the message mean something like access denied or like file not found?
It goes: system cannot find the specified file
It would be interesting to know which file it is missing. Is there any way to switch on a more verbose logging?
I am not sure how to get more complex log - I copied those above from build console.
The screenshot is unrelated to the build.
I am running out of ideas here. For me it works fine. You could try to compile it for "Node32s" board, the it would be the same as for me.
Another alternative would bea complete reinstall (including Arduino IDE uninstall), there is something strange here.
I tried for few different versions of boards but that error remains same. Should I try to install older version of Arduino IDE and Sloeber?
I tried for few different versions of boards but that error remains same.
Should I try to install older version of Arduino IDE and Sloeber?
I would actually completely uninstall both Sloeber and Arduino IDE, delete the folder C:/Sloeber, Delete the workspace folder, delete the cloned GitHub directory, then maybe even restart the machine.
Then install Arduino IDE again, Sloeber again, clone the repository and try to setup from scratch.
Hello stangreg, I'm done with hardware and my friend is doing software side, but he has problem with this missing library Ext_nimble_config.h. Could You please help me what is missing or what shoudl we do? Thank You! Vit, Czech republic