Having re-scanned through the ESP32 course, and arriving at module 7 –
MQTT Project – MQTT Client ESP32 #1,
I see that the code example requires FreeRTOS, and it is included via an Extern C command. I’ve spent the morning exploring a bit of this requirement, and searching for appropriate installation commands. There has been some progress, in that I have downloaded and unzipped the FreeRTOS from source forge into a subdirectory of my home directory. (Async was no problem) My presumption is I will change the code example to follow that path and it should work, but I see no mention in the unzipped directories for other “.h” files as part of FreeRTOS, so I have my doubts. I also found a Git Hub version of FreeRTOS specifically for Arduino that I installed in my Arduino libraries directory that does not have the other “.h” library listed either? (e.g., freertos/timers.h)
Essentially, I would like some direction regarding the version, location, and other requirementd for FreeRTOS. Or where I can find this info in the courses I have subscribed to: Home Automation & ESP32.
Thanks! Dave
New info from attempted compilation. I added a bunch of events in the switch statement to satisfy the compiler due to enumeration errors, but now I am getting BLE errors, and as far as I can see, know BLE is being requested, which leads me to believe I have a library issue. Below is the error log and code as it now stands:
Thanks!
OK; Day 3
Checking through my system, I found that even though the ESP32 boards were available in the tools>boards menu, I had never actually added the ESP32 boards .json to preferences, and therefore did not have them “installed” as a part of Boards Manager. So I did add them and install them. Now I have 2 sets of them in the Boards Manager, and I tried compiling for both. Still no joy! A new un-handled item in the switch statement appeared, added it, and now I am getting Async issues. Please find new updated error log and code links below. It seems the correct libraries are being used even in the case of multiple versions, but, alas, still no joy, and I haven’t even gotten to ESP32 #2 yet!
(Incidentally, I did attempt to compile the original code example as well…gave me the unhandled switch enumeration issues.)
Day 4:
Upgraded the ArduinoIDE to 1.8.8…same uint_64 error for Async. Out of ideas!
Tried to compile on the Huzzah 32 Feather…same problem. Will delete Async libs and try again!
Day 5:
Removed the expressif folder. copied and pasted the ESP board links, removed previous installation with Boards Manager, restarted and installed ESP8266 & ESP32 boards. No Joy! The error log is the same as the last one posted, and the original code still shows event enumeration errors, so using the last code posted with but one more switch case that popped up after the reinstall.
ANYBODY HAVE ANY SUGGESTIONS?
Hello David, I’m sorry, but I’ve missed your question. You don’t need to install the <FreeRTOS.h> libraries, they are automatically installed with the ESP32 add-on in the Arduino IDE. In order to compile that example, you need to have installed the latest versions of everything:
- Arduino IDE 1.8.8
- Tools > Board > Boards Manager: ESP32 board add-on: core version 1.0.1
- Sketch > Include Library > Manage libraries: AsyncTCP library version 1.0.3
Are you using those versions? Thanks for your patience!
Running Arduino IDE 1.8.8 on a 64 bit Linux Ubuntu (XFCE) machine.
ESP32 is 1.0.1
AsyncTCP is 1.0.3
All of these softwares and the ESP32 board core have been deleted and installed.
Yes Rui, I figured out the freeRTOS was in the library. This has been quite a tour. Next, I pulled out an older laptop and I am waiting for it to upgrade, then I’ll do the Arduino updates and try from there.
To avoid duplicate efforts from us, I think we should continue discuss on the FB Group. Agree? If not, here is fine too, just one or the other!
Thanks, Dave
Sorry about the trouble. With a recent change some libraries stopped working. When something doesn’t compile, you should always double-check and upgrade all the libraries to the latest version. I’ll mark this conversation as closed and we can continue the conversation on Facebook.
Thanks for your patience!