EmbedThis Ioto FAQ

check-list

This is a selection of some of the more frequently asked questions about EmbedThis Ioto.

If you don’t find the answers you need here, please consult the product documentation or contact us on Chat at the bottom right of this page.


Answers

General Questions

What is EmbedThis Ioto®?

EmbedThis Ioto® (pronounced “eye-oh-toe”) is a complete IoT middleware solution for managing devices, whether via the cloud or directly to the device. Ioto lowers IoT project cost and dramatically accelerates the time to completion while lowering project risk.

What are the main components of the Ioto middleware IoT solution?

Ioto provides a fast and compact device agent that includes an embedded database and web server for local device management. It offers optional cloud-based device management that can be enabled per-device in the field. Ioto uses a device Builder portal for managing the service and has a low-code app designer for creating mobile and desktop applications. It provides everything needed to simplify and streamline intelligent device management.

What is unique about Ioto?

Ioto provides IoT middleware that builds upon the AWS IoT platform. It offers comprehensive middleware that simplifies creating a device management solution. It features a fast, compact device agent paired with a robust device database that transparently synchronizes device data with the cloud. Unlike traditional agents limited by “virtual pin” data storage models, Ioto organizes device data in a way that logically mirrors your device’s actual characteristics. Additionally, Ioto includes a low-code app designer for creating engaging desktop or mobile apps, empowering you to rapidly build dynamic management solutions for a single device or millions.

Why use Ioto IoT Middleware vs an Iot Platform?

We don’t need yet another IoT framework/platform — we already have established, reliable IoT platforms like AWS IoT Core. What is missing is better tools, management apps, device data management, and visual analytics that accelerate and extend the capabilities of the underlying platform. This provides the ability to create, configure and deploy secure IoT environments and apps in minutes instead of months.

Ioto builds on the rock-solid AWS IoT platform’s scalable communications, data capture and storge capabilities. Ioto provides a complete suite of tools including a device builder portal, device agent, data management service and a low-code visual app designer that delivers everything you need to create comprehensive device management solutions.

What are some of the main use cases for Ioto?

  • Direct local device management: Direct management using the embedded HTTP web server and database.
  • Cloud-based device management: Centralized remote device management for one or millions of devices.
  • Fleet-wide data management: Aggregate data for an entire fleet to visualize and analyze fleet metrics.
  • Device management apps: Use the low-code app designer to create compelling mobile and desktop apps for your devices.
  • Update device firmware: Use the Builder to publish, distribute and manage device updates to one or many devices.
  • Monitor device performance: Use dashboards to monitor device and fleet performance using graphical metrics.

What are the main benefits of Ioto?

  • Lower IoT project development cost via middlware for essential IoT components such as: authentication, message routing, device data storage, device provisioning, device security, device updating and more.
  • Lower IoT project risk by using high-level building blocks that are integrated with AWS IoT.
  • Accelerate time to completion by using the low-code app designer to create device management apps.
  • Increase IoT project security by using proven IoT middleware components and practices.
  • Lower IoT operations cost by using the ultra efficient Ioto agent and optimized message and data transport and storage. This will lower your AWS device management bill.
  • Increase intelligence of device management by using cloud automations to transparently handle device errors and conditions.

Is Ioto suitable for production deployment at scale?

Absolutely. Unlike other IoT frameworks that claim scale, Ioto is designed and priced to scale seamlessly from just a few devices to millions without changing architecture.

Ioto effectively scales its device data storage, connectivity and compute to support the largest device populations. The underlying AWS IoT cloud is rock-solid and resilient against failures. At scale, a cloud-connected device costs as little as 7 cents a device per year.

What kind of performance can I expect from Ioto?

Ioto is optimized for high performance on embedded devices, with a focus on low-latency responses and efficient use of system resources. It is capable of serving hundreds of requests per second on platforms like the ESP32 and ~9,000 requests per second on a Macbook level device.

How is Ioto different from Appweb or GoAhead?

While Appweb, GoAhead and Ioto all include embedded web servers, they are distinct products. Ioto includes a completely new web server with a different API and architecture. It has been specifically designed to address the needs of modern IoT devices. Unlike Appweb, which focuses on general-purpose embedded web serving, Ioto is built to optimize device management, remote control, and secure cloud integration. Ioto can be used solely as an embedded web server for direct device management or you can selectively enable cloud-based management per-device, in the field.

How is Ioto different from traditional embedded web servers?

Unlike stand-alone embedded web servers, Ioto is built from the ground up for both direct and cloud-based device management. It is optimized for low memory, CPU efficiency, and secure device-to-cloud communications. Its modular design lets developers easily select the required management features whether they be local device management, remote firmware updates or full cloud-based management. Cloud management can be enabled per-device in the field.

License Questions

What is Ioto subscriptions plans are offered?

Ioto is provided with a commercial license that includes complete source code. A variety of subscriptions plans are offered including:

  • Project for individual device makers and commerical evaluations which is free for up to 10 devices
  • Device Builder for commercial projects
  • Dedicated Cloud for commercial projects hosting in their own AWS account
  • Self-Reliant for completely self-hosted “self-reliant” solution

Licensing Questions

What licenses are offered for Ioto?

Ioto is distributed under one of three licenses:

The GPLv2 License does not generally permit incorporating this software into non-open source programs. Commercial licenses for this software and support services are available from Embedthis Software.

The commercial license enables you to embed the software and distribute and sell your products containing the software. With a paid-up subscription you can incorporate new releases, updates and patches for the software into your products. If you do not have an active subscription, you cannot apply commerical patches from the software to your products.

The eval license is for shorter-term commercial evaluations.

The Embedthis Ioto service is provided subject to a commercial license and subscription as described in the Terms of Use.

Feature Questions

What are the key features of Ioto?

  • Embedded Web Server: for direct local management with dynamic web pages offering dashboards, graphs, metrics and device configration.
  • Secure Connectivity: Uses TLS/SSL for encrypted communication and integrates robust authentication and authorization. For cloud-based management, it employs unique per-device certificates.
  • Low-code App Designer: to create stunning mobile and desktop device management apps.
  • Cloud Integration: Simplifies secure data exchange with cloud endpoints for telemetry, updates, and reporting.
  • Over-the-air Updates: Policy based distribution of device firmware updates.
  • Lightweight and Efficient: Minimal overhead and resource usage to suit memory- and CPU-constrained systems.

Does Ioto support over-the-air (OTA) updates?

Yes, Ioto includes a robust and flexible mechanism for performing secure over-the-air (OTA) updates. This feature allows for seamless, policy based remote firmware updates, ensuring your devices stay up-to-date with the latest security patches and features. → Learn More.

What communications protocols are supported by Ioto?

Ioto supports industry-standard protocols and formats for maximum interoperability:

  • HTTP for local web-based communication.
  • TLS/SSL for secure communication.
  • HTTP and RESTful APIs and JSON for cloud management control.
  • MQTT messages for efficient data transfer to and from the cloud.

This flexibility enables Ioto-based devices to efficiently provide local and cloud-based management at scale.

Operation Questions

How does Ioto handle device provisioning?

Ioto provisions devices with unique per-device certificates for maximum isolation and security. Certificates are created and distributed to devices when a device is claimed by end-users after purchase. Devices can be pre-provisioned during manufacture or configuration if required. → Learn More.

How can I send data from a device to the cloud?

The Ioto agent provides several different means of sending data to the cloud. The preferred way is to write to the local agent device database and use the Ioto database synchronization to transparently replicate that data to the cloud where it can be queried and analyzed. You can also send data using REST API calls and MQTT messages. → Learn More.

Programming Questions

What programming languages are used by Ioto?

Ioto primarily uses C for its core components and APIs. It also includes some assembler on some platforms for performance. For browser-based management applications, it uses a combination of web technologies such as JavaScript, VueJS, HTML, and CSS.

Ioto uses fiber coroutines to serve multiple requests in parallel. Ioto is based on a single-threaded fiber coroutine architecture that employs a non-blocking, event-driven design capable of handling numerous inbound and outbound requests simultaneously with minimal CPU and memory resources. Ioto simplifies programming by eliminating the complexity of threads and the inelegance of event callbacks through the use of fiber coroutines. Instead, Ioto offers fast, simple paralellism via an async-wait style of straight line procedural programming. → Learn More.

What kind of support and documentation is available?

EmbedThis provides comprehensive documentation, technical guides, reference APIs, and a support portal. Commercial support and consulting services are available, ensuring you can confidently deploy Ioto in production environments today.

Can I customize the web interface served by Ioto?

Yes, Ioto allows full customization of the web interface using HTML, CSS, and JavaScript. You can create intuitive dashboards, control panels, and configuration pages tailored to your device’s functionality. The easiest way is to use the Ioto Low-Code app designer to create compelling mobile and desktop apps based upon the Ioto Device Manager framework. → Learn More.

How does Ioto handle embedded memory constraints?

The Ioto agent incredibly compact and yet includes an embedded HTTP web server, MQTT client, HTTP client, embedded database, JSON parsing, AWS cloud integration, device provisioning and OTA upgrading. All in under 300K code. You can optionally compile only the features and services you need for an even smaller memory footprint by defining the required services in the ioto.json5 configuration file. Ioto also uses an global memory allocator and error handler so memory errors can be trapped and centrally handled.

Read the Building Ioto for details about building Ioto on various platforms and minimizing footprint. → Learn More.

Platform Questions

Can Ioto be used in a real-time operating system (RTOS) environments?

Absolutely. Ioto is optimized for RTOS environments and can run efficiently on systems with limited resources. It integrates seamlessly with FreeRTOS and ESP32 platforms, among other RTOS environments, ensuring minimal overhead while providing robust web and cloud capabilities.

What hardware and operating systems does Ioto support?

Ioto provides comprehensive support for a wide range of microcontrollers, operating systems, and embedded environments such as popular microcontrollers like the ESP32 and Raspberry Pi. It is compatible with many operating systems and embedded platforms, including:

  • ESP32, FreeBSD, FreeRTOS, Linux, macOS, QNX, Quadros, VxWorks, and Windows.

Ioto supports a diverse array of hardware architectures, including:

  • ARM, ARM64, MIPS, MIPS64, PPC, PPC64, RISC-V, RISC-V64, TI DSP, SH, x86, x64, and Xtensa.

Developers can also easily port Ioto to new operating systems and hardware platforms.

How can I install Ioto into an ESP32 project?

To install Ioto on your ESP32 project, follow these steps:

  • Add Ioto as a component in your ESP-IDF project’s components/ directory.
  • Include sdkconfig.defaults specific to Ioto for configuration settings.
  • Build and flash your project using the ESP-IDF toolchain.

  • For detailed instructions, refer to the Building for ESP32 Ioto documentation.

→ Learn More

Comments

{{comment.name}} said ...

{{comment.message}}
{{comment.date}}

Make a Comment

Thank You!

Messages are moderated.

Your message will be posted shortly.

Sorry

Your message could not be processed at this time.

Error: {{error}}

Please retry later.

OK