New MQTT 5 spec is coming

:large_blue_circle: Blue line represents Blynk library rating on github.
:red_circle: Red is the most popular MQTT library for Arduino.

When we started creating Blynk, there was no adequate MQTT implementations for Arduino. Besides that, we investigated MQTT 3.1.1 and found that it didn’t fit our requirements. So we made a decision to create our own protocol.
But we’re now waiting for MQTT 5! Good to see that MQTT is getting a lot of features, that we’re enjoying at Blynk for 4+ years already :wink:
Maybe, we’ll switch to MQTT in the end.
:arrow_right: But it is not for sure, cause it looks like MQTT 5 got bloated so much, it now reminds me of HTTP/2 :rofl:.
In my opinion, it may result in either “heavy” protocol implementations, or interoperability issues.
What do you think?

You can find an overview of MQTT 5 here:
and here:
The draft spec:

If you like Blynk, and forgot to give us a github star - it’s high time! Thanks :laughing:


What are these awesome features? Can you highlight a few, please?

1 Like

To name a few (just copied short descriptions from the linked articles):

  • Topic aliases which saves band-with when publishing messages - we use short pin numbers instead.
  • Last Will and Testament with a delay (different in Blynk, but the idea is the same).
  • Request/Response interactions.
  • Negative acknowledgements - makes it a lot easier for a client/server to understand what’s happening.
  • Provisioning features where brokers can tell clients to (re)connect to other broker instances.
  • Pipelining Messages is also possible in Blynk

So Blynk protocol turned out to be much more lightweight in terms of data traffic, processing speed, and amount of code/memory usage. It would take a good article to cover all of the differences/similarities :wink:


If changing the underlying protocol will mean that any device can send or receive blynk data via an ‘open standard’ MQTT server, then yes please.

Under these conditions, it’s possible to create apps that receive data originating from a web service, and to share data outside the Blynk app.

Blynk is hands down the best app for getting and setting data on the mobile. But there are other ways one might wish to interract with the data that Blynk does not do.

In general, IoT desperately needs standards. Once they exist, efforts to leverage that standard increase, proper documentation is developed and there will be a larger user-base to share development.


You can use Node.Red + a MQTT broker of your choice to connect any MQTT device to Blynk


Hmmm, I am a little confused. You do realise that the same people who wrote MQ ( that is the industrial version of Message Queueing) and MQTT are the same people? In addition the guys who wrote Node-Red are also in the same team. The original people used to be based in IBM’s office in Hursley Park in the UK, although MANY other people have contributed over the years.

Personally, I use Blynk for communicating from a phone to my home server, then use MQTT to communicate between RPis, Arduinos (various forms) and I have found it to be reliable and easy to use for all sorts of date from a single bit to entire photographs.
The way I use Blynk and MQTT together is to use a single Python programme with both Blynk and MQTT libraries loaded and use that for bi-directional messages between my phone and whatever endpoint(s) are involved.

Rather than try and write your own MQTT “thing” as an extension to Blynk, why not just do an “application note” type of thing with an example of writing say Python (or C or whatever) programme with Blynk and MQTT libraries where the programme will exchange messages between Blynk clients and MQTT queues?
I am happy to post my inferior coding attempts if it will help.


PS Just to keep me “up front” I used to work for IBM but not in Hursley and I only met one of the MQ / Node-Red team at an internal meeting - and that was years before I used MQTT

1 Like

Looks like after almost 3 years, MQTT 5 is still barely used