An XMPP client library for the Arduino platform.
C++ C Processing
Latest commit 33256ac Aug 19, 2013 @adamvr Create LICENSE
Failed to load latest commit information.
examples/message_and_close Updated readme, added examples. Feb 1, 2011
LICENSE Create LICENSE Aug 19, 2013
XMPPClient.h Updated readme, added examples. Feb 1, 2011



Arduino-XMPP is a simple write only XMPP client for the Arduino platform.


Arduino-XMPP depends on Arduino-Base64 ( This should be included before XMPPClient.h or added to your main library directory.


Basic operation is as follows:

  1. Create an XMPPClient instance specifying your XMPP server IP address and port.
  2. Call connect on the XMPPClient interface, specifying your username, the server's host name, the resource name you wish to bind to and the your password.
  3. If connect returns 1, you're good to go on.
  4. Register your presence as available by calling sendPresence.
  5. Send messages using sendMessage.
  6. Close the connection and XMPP stream using close.


This client library is somewhat restricted in what in can do. The major restrictions are as follows:

  1. SASL-PLAIN authentication only
  2. No SSL/TLS encryption on the stream
  3. No ability to receive and interpret incoming messages

While the first one is on the two do list in some capacity, the first two are likely to never be rectified, due primarily to the SRAM restrictions of the Arduino


  • Add some semblance of being able to receive messages
  • Simplify the dependency on Base64, put base64 directly in the Arduino-XMPP directory, perhaps.
  • Add the ability to connect using a complete jid, rather than the parts of one
  • Add the ability to send presence messages that aren't just 'I'm here'