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 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 no-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 delivers intelligent IoT services through a comprehensive middleware solution that simplifies device management with a higher-level abstraction. It features a fast, compact device agent paired with a robust device database that seamlessly synchronizes with the cloud, enabling efficient, high-level modeling of device functionality. Unlike traditional agents limited by “virtual pin” communication models, Ioto organizes device data in a way that logically mirrors your device’s actual characteristics. Additionally, Ioto includes a no-code app designer for creating engaging desktop or mobile apps, empowering you to rapidly build dynamic management solutions for a single device or millions.

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 no-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 no-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.

Licensing Questions

What is the license used by Ioto?

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

  • Per-device annual subscription
  • Per-project annual subscription
  • Optional per-device cloud-based management

There is a free evaluation and discount low-volume pricing suitable for smaller projects. For larger deployments, dedicated cloud hosting and a fully self-reliant deployment is available. Contact Sales for more information.

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.
  • No-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 No-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