Internet of Things
Because the IoT encompasses a diverse collection of smart connected devices and capabilities, developers need to satisfy a wide range of software requirements, especially in terms of communication and security.
SEGGER has the solution to these complex requirements. Our complete software portfolio provides the solid foundation on which to built your application. With SEGGER software, you can accelerate your time-to-market with software and tools that simply work.
- Complete end-to-end solution for any IoT scenario
- Optimized for resource-constrained embedded systems
- Algorithms optimized for performance of your target device
- High performance with low memory footprint
What is an IoT Device?
First, there is the functional side of the IoT device. This functional part is essentially an embedded system as we have known it for years. Second, IoT devices interact with each other, a server or the cloud. To achieve this, the device needs to find its counterparts; this is supported by protocols such as MQTT. The connection itself is handled via IP or UDP based protocols.
Communication increases the exposure of the IoT device, which makes it more important to keep the different aspects of security in mind during development. There are multiple ways of compromising an IoT device, therefore the use of secure components is highly recommended. Such components may include transport layer security, secure shell, digital signatures, and certificates to block out unwanted communication or snooping.
As the environment for the IoT device constantly changes, another security component is its ability to adapt to these changes. This makes it a requirement to allow in-field upgrades.
How does SEGGER support the development of IoT devices?
We offer a complete end-to-end solution. Our customers have access to a comprehensive IoT package that covers all areas from development tools to standard firmware components.
Software IP components from SEGGER, such as emSSL Transport Layer Security (TLS), emSSH Secure Shell, emSecure Digital Signature suite, emCrypt Encryption libraries, emWeb HTTP Web server, and emNet TCP/IP stack, to name a few, can be used as foundations for your securely connected IoT device. Our software works on virtually any MCU. We work with all major silicon vendors, keeping our fingers on the pulse of their latest developments to enable the next generation of designs. Take our embOS-MPU RTOS for example. This super-reliable OS works effortlessly on today’s Cortex-M based MCUs and is already primed to support the next generation ARMv8-M architecture.
Connected devices requiring User Interface (UI) or Human Machine Interface (HMI) support can take advantage of SEGGER’s popular graphics package emWin. Licensed by many of the top semiconductor companies, its popularity is a testament to its robustness and flexibility, perfect for implementing your custom graphical interface.
In addition to our software suites, system developers can also take advantage of SEGGER’s Embedded Studio IDE, our SystemView tracing tool, and our industry-leading J-Link debug probe, all from one reliable, established vendor.
Custom IoT solutions can be developed on demand, utilizing SEGGER’s embedded engineering know-how and expertise.
Example IoT projects
The range of IoT applications is almost endless. Almost every product can be built to connect to other devices, or the internet, and to publish or receive data. We developed some projects to show how to create a “Thing”. The examples were developed to demonstrate useful IoT applications. To get started, set up the hardware (usually a development board and some sensors), download the firmware, and then see what the Thing does. Want to make your products IoT-ready? Download the example projects to find out how you can create an IoT application with SEGGER Software.
- Secured communication via MQTT
- MQTT over TLS
- MQTT Publish
- Secured communication via HTTPS
- GET from a REST API
- Device configuration and provisioning
- User data storage
- Client certification
- Creating and parsing JSON data
- Parse server responses
- Publish messages
The SEGGER Weather Station demonstrates how to create an IoT Node to communicate with an IoT Cloud Service. The IoT Temperature Node registers with the service and publishes its sensor data.
The data is analyzed in the cloud and made available on a website: weather.segger.com
The registration is done with the HTTP Client and JSON Parser of the IoT Toolkit. Device signatures, certificates, and verification is done with the cryptography algorithms of emCrypt.
- Complete embedded software suite:
- Available in source code
- OS libraries
- Security libraries
- Connectivity libraries
- One-stop solution developed and supported by SEGGER
- Start application development immediately
- Runs out-of-the-box on various popular evaluation boards
Software Platform for Embedded Systems and IoT Devices.
The emPower OS source software package includes our core components (RTOS, GUI, File System) and communication software (TCP/IP, USB-Device, USB-Host, Modbus), as well as our IoT Toolkit, Security and Compression modules serving all software needs of modern embedded industrial and IoT devices. Each component is supplied as libraries for any Cortex-M microprocessor and can easily be enabled in your new projects.
- Easy to use API to get started with IoT applications
- Supports REST API
- Supports handling data encoding like JSON
Effortless communication with modern IoT devices
The IoT Toolkit is a collection of libraries that enables communication with modern IoT based environments and devices. It is a high-performance collection of libraries optimized for minimum memory consumption in RAM, ROM, high speed, and versatility working on any device.
- Full MQTT version 3.1 support
- Support for Quality of Service data delivery
- Low memory footprint
- Independent of the TCP/IP stack: any stack with sockets can be used
- Project for executable on PC for Microsoft Visual Studio included
Full support for the so-called IoT protocol
emMQTT is an MQTT client using the socket interface. It can be used with any IP stack supporting the socket interface such as emNet.
- Provide easy to use graphical interfaces for control or data acquisition
- Supports modern standards like WebSockets (additional add-on), REST, SSE and many more
- Can be used on embedded targets or PC (Windows/Linux/…) and Mac
Provide easy to use graphical user interfaces that can be accessed from anywhere!
emWeb allows you to use the most widely accepted language for providing Graphical User Interfaces in the world, HTML.
- IPv4 and IPv6 ready
- Connections limited only by memory availability
- Developed from ground up for embedded systems
- Various application layer protocols like MQTT, HTTP, FTP available
Ideal for Any Network Application
emNet is a high-performance TCP/IP stack that has been optimized for speed, versatility and a small memory footprint. It is written in ANSI C and can be used on virtually any CPU.
- Seamless integration with the emNet stack
- Simple, easy to integrate, unified API regardless of the WiFi module used
- No need for re-certification by using WiFi certified modules
- Access Point support (depends on module features)
- Support for all Ethernet based protocols (not only TCP/UDP)
- Support for various host MCU interfaces like UART / SPI / SDIO / RMII
- Add-on modules for the emPower eval board available
WiFi Connections Supported by Unified API
WiFi support is a solution to add WiFi (IEEE 802.11) support to your product. It supports various WiFi modules from different vendors to be added to your product easily.
- Low memory footprint
- Supports PAP authentication protocol
- Support for PPP over Ethernet
Get Your Mobile IoT Device Connected at Any Location
Connect your embedded system with an LTE / UMTS / GPRS modem via PPP (Point to Point Protocol) and get access to a network. The emNet PPP implementation is an optional extension which can be integrated into your TCP/IP application seamlessly. It combines a maximum of performance with a small memory footprint.
- Secures your connection
- Compatible with any modern server
- Easy to understand
Reliable, Secure and Built for IoT Devices
emSSL is a software library that enables secure connections across the Internet. emSSL offers both client and server capability. SSL/TLS is a must-have in nearly every application which is connected to the Internet. Products of the IoT, smart grid or home automation markets benefit from securing their communication.
- Secures your connection
- Compatible with popular SSHv2 clients
- Supports popular hardware cryptography accelerators
Provide Security for The Administration Interface of Your Device
emSSH is a software library that enables secure login to your embedded system. emSSH offers the possibility to establish a secured connection to any server application in your product. It can be used both target independently in native computer applications and in embedded targets.
- Proven modern cryptography standards
- NIST-validated implementations of many algorithms
- Secure, fast, and cleanly-written code
Secure Data and Communication Protocols for Your IoT Device
emCrypt is a secure and efficient implementation of all essential cryptographic algorithms specifically designed for embedded systems and IoT devices.
- Asymmetric algorithms – Dual keys, private and public make it 100% safe
- Different algorithms available – Fitting any requirements
- Hardware-independent, any CPU, no additional hardware needed
Secure Your Device and Prevent Cloning
emSecure is a software solution to securely authenticate digital assets. It can be used to secure products against hacking and cloning at no per unit cost.
- Highly efficient compression
- Small decompressor ROM footprint
- Wide range of codecs to choose from
Save ROM to Save Money
emCompress is a compression system that is able to reduce the storage requirements of data that must be embedded into an application. Compress on the host in advance, decompress in the target on demand.
- Straightforward configuration
- 100% save & fast: CRC check implemented
- Completely portable and runs on any target
Make Software Updates of Your IoT Device Easy
emLoad allows straightforward updates of embedded applications either with a USB stick, with an SD card or via USB-connection to a PC – or else via a serial connection (type RS-232, RS-485).
Efficient File Transfer for IoT Devices
emFTP is the ideal software solution to exchange files using the FTP protocol. Edge devices can easily transfer their collected data to a server or provide them as a service via FTP.
- Multiple device driver support. You can use different device drivers with emFile, which allows you to access different types of hardware with the file system at the same time
- Cache support. Improves the performance of the file system by keeping the last recently used sectors in RAM
- Works with any operating system to accomplish a thread-safe environment
Reliable Data Storage for Your IoT Device
emFile is a file system for embedded applications which can be used on any media for which you can provide basic hardware access functions.
- Available for all popular cores, compiler and development tools
- Unlimited number of tasks, event flags, semaphores, message queues, mailboxes and software timers
- Deployed in several million devices in a wide range of application areas
The Heart of Every IoT Project
embOS is a priority-controlled real time operating system, designed to be used as a foundation for the development of embedded real-time applications. It is a zero interrupt latency, high-performance RTOS that has been optimized for minimum memory consumption in both RAM and ROM, as well as high speed and versatility.
- Supports ASCII, RTU and Modbus/TCP (and UDP) protocol
- Sample applications for all protocols included
- Modbus/TCP can be used with standard socket interface and any TCP/IP stack
Add Industry Standard Protocols to Your IoT Device
emModbus is SEGGER’s implementation of the Modbus protocol. It supports communication via UART (ASCII, RTU) and Ethernet (Modbus/TCP and Modbus/UDP) and is capable to communicate with any Modbus compliant device.
- Support for various device classes like MTP, MSD, CDC, HID and RNDIS available
- Highly efficient, portable, and commented ANSI C source code
- Hardware abstraction layer allows rapid addition of support for new devices
Boost Your Connectivity
emUSB-Device is a high performance USB device software specifically designed for embedded systems. The software is written in ANSI C and can run on any platform. A variety of target drivers are already available.
- Control, bulk and interrupt and isochronous transfers
- Runs out-of-the-box
- No configuration required
Enhance Your IoT Device Through the Use of USB Host
emUSB-Host implements full USB host functionality, including external hub support, and optionally provides device class drivers. It enables developers to easily add USB host functionality to embedded systems.
- Any 8/16/32-bit CPU; only an ANSI “C” compiler is required
- Any (monochrome, grayscale or color) LCD with any controller supported (if the right driver is available)
- Virtual display support; the virtual display can be larger than the actual display
Visualize Your Ideas
emWin is designed to provide an efficient, processor- and LCD controller-independent graphical user interface (GUI) for any application that operates with a graphical LCD.
- Uses the official Dropbox access API v2
- Allows your application easy access to a Dropbox account to list files, rename, remove files and more
- Support for up- and download of files from/to a local directory
- Available as source package for your own integration upon request
Easy and Secure Data Exchange via Dropbox
SEGGER’s emDropbox is a software library that allows you to easily gain access to your Dropbox account using emSSL and any TCP/IP stack that supports sockets. This allows you to share files between different devices or to publish files like updates to your devices using a Dropbox account.