Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

H4 Stack Support #10552

HamzaHajeir started this conversation in Show and tell
Discussion options

Hi All

I'm glad to announce the support of ESP32 in H4 stack libraries, which was established by the good remembered Phil Bowles, who had passed in June 2022. Leaving the bases of what is now a great stack.

After that, we've decided to complete the work to make it useful to the public.

What H4 Stack contains?

It provides complete Scheduling and Networking stack, including a reliable Async TCP library, reliable Async MQTT library, reliable Async Webserver library, and Async HTTP Client.

On top of all of them, a final complete and comprehensive application library that allows to building a DIY SONOFF-like firmware with ~10 lines of code, it's both beginners and experts friendly.

All the libraries can run on ESP8266, ESP32, and RP2040.


image


H4

H4 have its own scheduler and task management library H4, which builds the core of the stack.
It provides several strategies of task scheduling with proper management.

H4Tools

H4Tools library provides common tools, and responsible for the common HAL functions.

H4AsyncTCP

H4AsyncTCP - The most important library regarding all the networking stack, which offers a reliable Async TCP Client and abstract TCP server that all the above layers depend on.
It also supports securing with TLS, if a custom platform support is available.

H4AsyncMQTT

H4AsyncMQTT - One of the best MQTT libraries for embedded systems, it fully supports both v3.1.1 and v5.0 standards - switchable by a macro. Full QoS support (1 and 2), and enables large payloads in and out.

H4AsyncWebServer

H4AsyncWebServer - A reliable Async Webserver which provides both SSE and Websockets.

ArmadilloHTTP

ArmadilloHTTP (An old name that Philbowles didn't have the time to rename to H4AsyncHTTP) - A reliable HTTP Client library. Currently lacks websockets and redirect follow as no demand for both, at least for us nowadays.

H4Plugins

H4Plugins - The IoT Framework which make use of all the aforementioned libraries in a concentrated mannar. Adds abstract GPIO handling strategies, mDNS announcing, NTP, OTA updates, UPnP (Runs Alexa of simple ON/OFF), managed WiFi and Webserver, with a centralized command center. It's both beginners and experts friendly.

To have a complete environment with homogeneous versions of the H4 stack, check out H4Plugins_Env.

Several Notes:

  • Phil had the absolute and most complete vision of the libraries, especially for H4Plugins framework. We have done our best to fix, enhance, and upgrade the whole stack, especially the uncompleted ones (as TCP), in what we prioritize for our interest and vision. We do make sure to the reliability of the networking libraries.
  • Phil have invested much of his time towards the libraries, therefore one of last things he did is changing the license into a restrictive one (CC BY-NC-SA 4.0) which limits the commercial use. We have multiple tries to reach his family with no luck, we know only a sister of him, no sons, she's old and seems not tech-friendly.
  • Per the license issue, I have strong prioritization to reach the family in a try to get permission to change the license, so we can even offer it for commercial use. But in case we could not even reach them, we might think of changing the license on our behalf, it's our belief this being better for him.
  • Until that, a conservative user might restrict his use to PoC, DYI, and educational purposes.
  • Some documents and examples across the stack are out-of-date. If something is needed or missing please inform us.

Any contribution, recommendation, or suggestion is welcomed.

With Regards,
Hamza Hajeir

You must be logged in to vote

Replies: 0 comments

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
1 participant

AltStyle によって変換されたページ (->オリジナル) /