Hey everyone,
Quick one to share: we just published a tutorial on the Espressif Developer Portal walking through how to connect an ESP32 to the cloud using TagoTiP. The tutorial focuses on UDP, and the same frame format works over MQTT, TCP, and HTTPS too, so you can pick the transport that fits your device and your network. If you have ever fought with HTTP libraries, JSON parsers, and TLS handshakes on a battery-powered board, this one is for you.
The post shows a full working Arduino sketch that reads a sensor and ships the data in a single 130-byte UDP datagram, built with nothing more than snprintf. No extra libraries, no handshake, no schema compiler. The TagoTiP open spec (Apache 2.0) handles all the encoding rules so your firmware just fills in the blanks: typed variables, units, timestamps, GPS, even raw hex passthrough for existing binary payloads.
Why UDP for this one? Zero connection overhead, minimal power draw, fire-and-forget delivery. That is a natural fit for battery sensors and periodic telemetry. When you need guaranteed delivery, QoS, or downlink commands, the same TagoTiP frame rides over MQTT, TCP, or HTTPS without any changes to your payload code. One spec, four transports.
The tutorial also covers TagoTiP/S, the encrypted variant. The payload stays opaque from the device all the way to the application server, with AES-128-CCM adding around 29 bytes of overhead. Even fully encrypted, frames come out about 4x smaller than the equivalent HTTPS/JSON request, and there is no session state to keep between wake cycles.
Here are the important links:
Give it a read here and share what you build!
Full spec and SDKs (C/Arduino, Rust, Python, Go, TypeScript) are on GitHub.
You can find here docs for all four transports (UDP, MQTT, TCP, HTTPS).
If you try it on your own ESP32 over UDP, MQTT, TCP, or HTTPS, feel free to share your setup and results with us here (:
Happy building,