Skip to content

Public roadmap for ESP32 development #472

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

Closed
lonerzzz opened this issue Jun 28, 2017 · 25 comments
Closed

Public roadmap for ESP32 development #472

lonerzzz opened this issue Jun 28, 2017 · 25 comments
Assignees
Labels
Status: Stale Issue is stale stage (outdated/stuck)

Comments

@lonerzzz
Copy link
Contributor

Hi,

I have been seeing hints of the development strategy in response to numerous enhancement related issues but was wondering if someone was actually tracking the intended development path and strategy. This would help for those looking for specific features and those wanting to contribute. So far I have seen:

  1. SPIFFs is coming - not sure when or who is working on it or how it will work in relation to Preferences
  2. WebServer is being or will be generalized to work for both the ESP32 and ESP8266 and housed outside either project - again not sure who is working it or where it will be placed
  3. Threading is not being worked on so far - options are to use underlying RTOS directly, write a wrapper or make it compliant with modern C++ standards - no strategy chosen at this point
  4. I2C is synchronous for now - not sure of any plans to make it asynchronous

These are the issues of interest to me personally. There are likely others that other folks have encountered. I would happily track these efforts if nobody else has a written strategy or roadmap. I would just need some summary input from the different contributors.

Thanks,

Jason

@igrr
Copy link
Member

igrr commented Jun 29, 2017

My 2c: it would be good to start tracking this indeed. Github "projects" feature is good for this, i think, if we create a board with lanes such as "looking for contributor", "assigned", "in progress", "done", etc. If you are willing to take part, I can add you as a collaborator to the project.

ESP8266WebServer has been copied to a new repository: https://github.com/esp8266/ESPWebServer. We need to update the ESP8266 core project to include that as a submodule. Also need to set up CI there to build against ESP8266 and ESP32 cores. Once this is done, some changes can be implemented (such as renaming of header files and the library, ESP32-specific adaptation and so on).

Regarding threading: the current idea is to implement pthreads port on top of FreeRTOS, and then enable gthread support in libstdc++. That will allow C++11 functions to be used. Relevant issue is espressif/esp-idf#690.

@bbx10
Copy link
Contributor

bbx10 commented Jun 29, 2017

Here is my attempt at making ESP8266WebServer work on ESP8266 and ESP32.

https://github.com/bbx10/webserver_tng

Similarly, for DNSServer and Hash libraries.

https://github.com/bbx10/DNSServer_tng
https://github.com/bbx10/Hash_tng

With these 3 libraries, I forked the following external libraries and got them working on ESP32. Be sure to use the esp32 branches because the master branches is just clones.

https://github.com/bbx10/arduinoWebSockets/tree/esp32
https://github.com/bbx10/WiFiManager/tree/esp32

There are some TODOs, some examples that do not work, and some code I do not really understand so this code is not ready for release. On the other hand, I ported many of my personal ESP8266 projects to ESP32 with these libraries.

@lonerzzz
Copy link
Contributor Author

lonerzzz commented Jun 29, 2017

I am happy to contribute. Please add me to the project and I will start a tracking page for different pieces. Once we have a shared view of who is doing what under Projects, I will see where I can contribute code.

@lonerzzz
Copy link
Contributor Author

@igrr One follow up question that arises - are you intending to keep the shared functionality in the ESP8266 or is this a temporary location?

@igrr
Copy link
Member

igrr commented Jun 29, 2017

Basically we have three options where to keep shared functionality:

Hosting these libraries in espressif org would send the wrong message, in my opinion, implying that these libraries are something that Espressif supports as a product. ESP8266 organisation on the other hand is not affiliated with Espressif and is an known place for ESP8266-related projects. Hosting on a personal page would not be as flexible (bus factor). Overall i think that hosting on esp8266 org is a good compromise but i am open to suggestions.

@lonerzzz
Copy link
Contributor Author

I am fine with that too, just wanted to capture the intent.

@me-no-dev
Copy link
Member

Personal or Espressif account will send the wrong message, I agree. If @themindfactory has no issues, esp8266 org is the place to go :)

@copercini
Copy link
Contributor

copercini commented Jun 29, 2017

Here are my thoughts for a better repository:

  • BLE/Bluetooth (At least say that there is a discussion here: RFC: BLE support #423 on index or projects)
  • WiFiSecureClient DN verification implementation
  • Tone/noTone functions
  • Move installation instructions to another pages keeping index clean
  • List of others working IDEs (VSCode, Sloeber and others), maybe make a quick guide
  • Insert a minimal structure example when open an issue, like ESP8266, ie: “your board model, some code, decode your logs with ExceptionDecoder and etc”
  • How to start documentation for all libraries, like https://github.com/espressif/arduino-esp32/tree/master/libraries/SD
  • Installation via boards manager (can use the same ESP8266 package json file, so the people that already uses ESP8266 don’t need to include another link, just install ESP32 on boards manager)

@lonerzzz lonerzzz self-assigned this Jun 30, 2017
@lonerzzz
Copy link
Contributor Author

I have tried to capture an initial set of outstanding tasks under Projects based on the feedback so far. Update it as needed or send me any items that you think should be added and I will add them in a standard manner there. If you are working on something, please tag the note with your id.

@lonerzzz
Copy link
Contributor Author

@copercini - can you please expand on the bullets: WiFiSecureClient DN verification implementation and Tone/noTone functions

@lonerzzz
Copy link
Contributor Author

lonerzzz commented Jul 1, 2017

There is a now a project capturing what has been outlined so far (https://github.com/espressif/arduino-esp32/projects/1)

@bbx10
Copy link
Contributor

bbx10 commented Jul 4, 2017

@lonerzzz I am working on "continuous integration of ESPWebServer"

I created a .travis.yml that builds the WebServer library for esp8266 (stable and devel) and esp32 (devel).

https://github.com/bbx10/WebServer_tng/blob/master/.travis.yml

I never used Travis so seeing 3 cases build in parallel is a pleasant surprise.

@lonerzzz
Copy link
Contributor Author

lonerzzz commented Jul 6, 2017

@me-no-dev Are you able to outline what you are working on so we can track under: https://github.com/espressif/arduino-esp32/projects/1

You seem to have many items in progress.

@lonerzzz
Copy link
Contributor Author

lonerzzz commented Jul 6, 2017

@copercini thanks for the reference to SPIFFS. I have captured it in the project.

@tedder
Copy link
Contributor

tedder commented Jul 28, 2017

So, is there a roadmap for "publishing" this, so the general Arduino community can use it without external tooling?

@lonerzzz
Copy link
Contributor Author

@tedder The roadmap is my attempt to capture the known open items and ones mentioned in the bugs. I have received limited responses from active developers regarding making this more formal. So as of now it serves as informal tracking.

@copercini
Copy link
Contributor

@lonerzzz Issue template was merged!
I think you have the first "Development Complete" item =)

@lonerzzz
Copy link
Contributor Author

lonerzzz commented Aug 1, 2017

@copercini Cool, thanks for the heads up.

@pbecchi
Copy link
Contributor

pbecchi commented Aug 2, 2017

I am interested to WiFiManager and Ping libraries!
There is anybody working on this?
Where I can find actual status info?
If you like, you can add EEprom library to the done list!

@lonerzzz
Copy link
Contributor Author

lonerzzz commented Aug 2, 2017

@pbecchi My exact intent in putting together the Road Map was so people could see who was working on what. I have assigned you to the WiFiManager and Ping libraries for now. If others come forward, then we can resolve otherwise. If someone has a better approach, I am happy to makes changes to help align the efforts from different people.

@pbecchi
Copy link
Contributor

pbecchi commented Aug 2, 2017

Thanks for the assignement.....but I havent time...may be I will start looking to Ping!

@lonerzzz
Copy link
Contributor Author

lonerzzz commented Aug 2, 2017

@pbecchi Fair enough, I will leave you only on Ping for now unless you change your mind.

@copercini
Copy link
Contributor

Updated!

@stale
Copy link

stale bot commented Aug 1, 2019

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 stale bot added the Status: Stale Issue is stale stage (outdated/stuck) label Aug 1, 2019
@stale
Copy link

stale bot commented Aug 15, 2019

This stale issue has been automatically closed. Thank you for your contributions.

@stale stale bot closed this as completed Aug 15, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Stale Issue is stale stage (outdated/stuck)
Projects
None yet
Development

No branches or pull requests

7 participants