Skip to main content
  • Products
  • Software evaluation
  • Downloads
  • Free utilities
  • Purchase
  • Silicon Vendors
  • Support
  • About us
  • Blog
  • Forum
  • Search
  • Jobs
  • Newsletter
  • Blog
  • Contact
  • Shop
  • emMQTT

    emMQTT
    Message Queuing Telemetry Transport Protocol

    emMQTT provides the client functionality of the Message Queue Telemetry Transport protocol to a stack. emMQTT uses sockets and can be used with any IP stack such as emNet using the socket interface.

    Contact us
    Downloads
    Documentation
    SEGGER emMQTT
    1. 1.Overview
    2. 2.Key features
      1. 2.1.Low memory footprint
      2. 2.2.Full MQTT support
      3. 2.3.TCP/IP stack independence
    3. 3.Use cases
      1. 3.1.IoT device telemetry
    4. 4.How MQTT works – and how emMQTT fits in
      1. 4.1.Publish/Subscribe model
      2. 4.2.Why MQTT is ideal for embedded systems
      3. 4.3.MQTT in the TCP/IP stack
    5. 5.Getting started with emMQTT
    6. 6.Compatibility and integration
    7. 7.Broker overview
    8. 8.Resource usage
    9. 9.Licensing

    Overview

    emMQTT is a lightweight Message Queue Telemetry Transport (MQTT) client library developed for embedded systems. It implements the MQTT v3.1.1 or v5 protocol. This enables resource-constrained devices to communicate efficiently via a publish-and-subscribe messaging model, making emMQTT ideal for Internet of Things (IoT) and machine-to-machine (M2M) applications.


    Key features

    A white, stylized cube icon with a smaller square inside it, placed on a teal circular background. The design suggests technological or digital themes.

    Low memory footprint

    Designed for minimal resource usage, emMQTT requires only a few kilobytes of ROM and negligible RAM. This enables reliable MQTT communication even on highly resource-constrained microcontrollers.

    Icon representing a flowchart or organizational structure, with a central circle connected to three smaller rectangles, all enclosed in a circular outline. A check mark is present at the bottom right, suggesting completion or approval. The background is a teal color.

    Full MQTT support

    emMQTT implements the full MQTT Version 3.1.1 and 5.0 protocols, meaning it works with any MQTT broker that adheres to this widely supported standard. This ensures reliable message delivery and broad compatibility in IoT and M2M communication scenarios.

    A teal circular icon featuring a white checkmark above the text "TCP/IP" in a rectangular white box. The design suggests verification or confirmation related to the TCP/IP protocol.

    TCP/IP stack independence

    emMQTT works with any TCP/IP stack that supports standard sockets. As a result, it integrates into a wide range of platforms and networks without being tied to a specific stack implementation.


    Use cases

    IoT device telemetry

    emMQTT is typically used to publish sensor data (such as temperature, pressure, motion, and power usage data) from microcontrollers to cloud platforms, for example. Its small memory footprint makes it ideal for constrained devices that need reliable, low-resource-consumption messaging over TCP/IP. Furthermore, it offers reliable QoS, and it works with very small microcontrollers.

     

    A laptop is at the center, connected to various devices including a printer, a radio, two people, a router, and a measurement instrument. Dotted lines indicate communication and data flow among these elements, symbolizing connectivity and interaction in a networked environment.

    Device monitoring and status tracking

    emMQTT enables efficient device monitoring and status tracking in distributed systems.

    Using retained messages and Last Will functionality, device states can be tracked even when devices connect intermittently. This allows systems to detect outages, monitor availability, and maintain up-to-date status information across large device fleets.

    Firmware update notification and control

    emMQTT can be used to signal firmware updates to connected devices.

    Instead of transferring large firmware images via MQTT, the broker is used to notify devices about available updates. Devices can then retrieve the firmware via a more efficient transfer mechanism, enabling scalable and bandwidth-efficient update workflows.


    How MQTT works – and how emMQTT fits in

    MQTT is a lightweight publish/subscribe messaging protocol designed for efficient communication over TCP/IP, especially in resource-constrained environments. emMQTT implements the client side of this model and integrates seamlessly into existing systems using a socket-based architecture.

    Publish/Subscribe model

    Instead of direct client-to-client communication, MQTT uses a broker to exchange messages between devices.

    • A publisher sends messages to a topic
    • A subscriber receives messages for that topic
    • The broker manages message distribution

    Communication is asynchronous: publishers and subscribers do not need to be connected at the same time. Messages are delivered while a client is connected to the broker.

    This decouples sender and receiver, allowing devices to operate independently and efficiently.

    Why MQTT is ideal for embedded systems

    MQTT’s low overhead and efficient message handling make it ideal for constrained devices and unstable networks. emMQTT is specifically optimized for these environments, enabling reliable communication with minimal memory and CPU usage.

    MQTT in the TCP/IP stack

    MQTT operates at the application layer on top of TCP/IP and can be used with any underlying network technology.


    Getting started with emMQTT

    To get started quickly with emMQTT, a ready-to-use MQTT client application is available for download. The application is a simple command-line tool that allows connecting to any MQTT broker and testing publish/subscribe communication. It uses emMQTT together with emSSL for secure connections and runs on the host system’s native TCP/IP stack (e.g. Windows).

    It allows connecting to any MQTT broker and testing publish/subscribe communication within minutes.

    Typical first steps:

    • Connect to a broker
    • Subscribe to a topic
    • Publish a test message

    All features demonstrated in the client application can be transferred directly to embedded target systems.

    Download SEGGER MQTT Client Application for Windows


    Compatibility and integration

    emMQTT is fully compatible with all MQTT brokers that adhere to the v3.1.1 or the v5 standard, ensuring seamless integration into existing systems.

    MQTT brokers can run locally or in cloud environments and can be connected to backend systems such as databases or analytics services for further processing.

    Broker overview

    The table below lists a selection of brokers with which the add-on has been tested. If a broker or cloud provider is not included, emMQTT can still be used. In this case, the connection can be verified using the MQTT Client Application. 

    Broker/servicePlain MQTTMQTT over TLSMQTT over TLS
    with Client Certificate
    Notes
    mosquittoOpen-source MQTT broker for Linux, Windows, and macOS. Tested with a public broker at mqtt.eclipse.org
    HiveMQ11Enterprise MQTT broker for Linux servers. Tested with a public broker at hivemq.com
    AWSSupport for MQTT in connecting to the AWS IoT Message Broker.

    1Not available on public broker


    Resource usage

    ROM usage depends on compiler options, the compiler version, and the CPU employed. emMQTT's memory requirements presented in the table below were measured on a Cortex-M4 system.

    Resource usageValue
    emMQTT client size (ROM)Approx. 2.4 KB
    emMQTT client size (RAM)8 byte
    emMQTT client context (RAM)76 byte

    A dark background filled with cascading vertical lines of binary code (0s and 1s) creates a digital, futuristic atmosphere. The pattern gives a sense of depth, resembling a virtual tunnel or data stream, enhancing themes of technology and information.

    Licensing

    The software is available under various embedded software license models and can be delivered as source code. All commercial licenses are based on a one-time payment, are royalty-free, and include six months of updates and support from SEGGER’s Embedded Experts.

    There are no subscription fees, ensuring predictable and fixed costs over the entire product lifetime.

    For non-commercial use, evaluation, and educational purposes, the software is provided under SEGGER’s Friendly License.

    More information

    Get in touch with us

    Have questions or need assistance? Our Embedded Experts are here to help!

    Reach out to us for:

    • Licensing quotes
    • Technical inquiries
    • Project support

     

    Contact us

    • User manual
    • List of downloads
    • Update notification
    • Pricing
    • Support
    • Silicon vendor resources

    Headquarters

    SEGGER Microcontroller GmbH

    Ecolab-Allee 5
    40789 Monheim am Rhein, Germany
    info@segger.com
    Tel.: +49-2173-99312-0
    Fax: +49-2173-99312-28

    Locations

    USA: SEGGER Microcontroller Systems LLC

    Boston area
    101 Suffolk Lane
    Gardner, MA 01440, USA
    us-east@segger.com
    Tel.: +1-978-874-0299
    Fax: +1-978-874-0599

    Silicon Valley
    Milpitas, CA 95035, USA
    us-west@segger.com
    Tel.: +1-408-767-4068

    China: SEGGER Microcontroller China Co., Ltd.

    Room 218, Block A, Dahongqiaoguoji
    No. 133 Xiulian Road
    Minhang District, Shanghai 201199, China
    china@segger.com
    Tel.: +86-133-619-907-60

    ISO 9001
    ISO 27001
    First-class embedded software tools since 1992
    Designed and made in Germany
    • Imprint
    • Disclaimer
    • Code of Conduct
    • Privacy Policy
    © 2026 SEGGER - All rights reserved.