In our earlier blog, we discussed about the suitability of OMA’s LWM2M protocol for IoT applications, including how the Light Weight M2M protocol defines the Object model, basic communication methodologies and the opportunities and challenges it presents.
While in M2M context, LWM2M devices can community with machines locally using CoAP, in IoT context, it can be used for communication with a gateway or aggregator from where it can be taken to the cloud platform using with the CoAP or customized REST/HTTP packets
It is expected to see large deployments of LWM2M protocol for usage in IoT/M2M applications and hence brought several solutions based on the same. In this article, we will discuss some of these offerings as well as other solutions available for integrating the protocol on different technologies.
LWM2M on Android/Java
Without doubt, Android is going to play a major role in industrial scenarios with growing usage in the HMI segments. Standardized APIs, Rich UI, improving performance, powerful processors and growing RAM storage, ease of use and more importantly familiarity of users are some of the key factors for this trend.
Another important reason of gaining acceptance amount the developers is the need for support in Eclipse IDE. It must be possible to create servers and clients in Eclipse based development environment before/during deployment in the device. Eclipse foundation has launched a dedicated initiative to facilitate IoT developments under iot.eclipse.org.
Requirements in Android/Eclipse necessitates the need for a Java based protocol stack. This is available in form of the WAKAAMA project.
The project uses the Californium server as the underlying CoAP implementation.
Further for Android, an LWM2M server from Embien is available in the Google play store.
This server internally uses the Californium stack. It supports LWM2M clients connect to it over CoAP/UDP over WiFi (or Ethernet if available in the Android device). It supports configuration of server port number, start/stop options along with features like observe notifications etc. Currently only basic communication is supported. Security and Bootstrapping will be supported in upcoming releases.
A customized Bluetooth transport is also available for use with low power devices.
LWM2M Stack for embedded
The reference for the LWM2M protocol is provided in form of a library named LIBLWM2M. This should form a basis for developing your own LWM2M client and server implementation.
Another option is the availability of the open source LWM2M client stack from Embien. Since majority of the device is going to be only clients, this should serve purpose for those cases. Again a minimal stack without many advanced features, it is optimized for resource constrained embedded applications. The stack can be run with or without using an OS/RTOS.
The code is available at LWM2M Client Github repository in a BSD license.
The implementation supports two transports
- CoAP/UDP – for communicating with LWM2M servers
- REST/TCP – for communicating with SkyCase server
The transports can be chosen in the configuration file and used easily in a minimal time. LWM2M Objects are also supported with callback functions enabling quick integration of custom logic with the main stack
Cloud based Solutions
For an IoT scenario, soon there will be a need for a cloud platform to manage these connected devices. As of now, only solution available for LWM2M model is SkyCase – IoT application platform. This platform currently supports REST interface for communication and uses LWM2M object model internally.
SkyCase provides the JAVA API library to develop cloud applications with LWM2M/IPSO standard objects.
Soon it can be expected to support CoAP transport directly enabling direct LWM2M communication.
This blog should have given an idea of LWM2M related developments with a consolidated list of LWM2M stacks for IoT/M2M devices available. We hope there will be more implementations of the stack available in the near future as adaptation of the technology increases.
About Embien Technologies: Embien Technologies is a leading provider of embedded design services for the Semi-conductor, Industrial, Consumer and Health Care segments. With track record of working with cutting edge technologies, Embien is an adopter of OMA LWM2M standard in its designs as well as in its flagship SkyCase IoT application platform. Feel free to contact us or email us for any queries regarding LWM2M stack or SkyCase or any other requirements on IoT/embedded developments.