The increasing complexity of embedded systems makes delivering embedded products to the market on time and on budget a complex task. By choosing a system-on-module (SOM), you've taken the first step in reducing complexity and development time.
In part 1 of this series on development with Digi Embedded solutions, we will explore the ways Digi embedded software can significantly decrease development effort for your product.
Digi's software goes beyond board support packages (BSPs) and basic hardware support. Digi's own embedded developers have created supporting tools, libraries, and content with the embedded developer experience in mind. This ecosystem of software extensions is designed to help accelerate development in multiple ways. The resources to support you include:
- A software tool that automatically calculates muxing options
- Ready-to-use examples of embedded APIX libraries
- A built-in security framework part of our production-ready Yocto Project based distribution
Read on to learn more about how these development accelerators can help you get products to market faster.
APIx Libraries for Embedded Interfaces
Developing applications is already complex enough without the extra work required to access embedded interfaces. Application developers don't need to spend time figuring out how to access an ADC or toggle a GPIO; Digi APIx is a C library that enables you to easily access and manage Digi ConnectCore® platform interfaces from your application. Resources in Linux (such as GPIO) may take different names or indexes depending upon the available hardware. Aliases help you map a human-readable name with the hardware identifier of your system. Because the alias is defined in a configuration file, your application code is still valid even if the hardware changes.
You can import examples into Eclipse from Github via the samples wizard of the Digi Embedded Yocto plugin.
See the Digi APIx for embedded section of the embedded documentation portals for more information.
Integrated Development Environments
Digi Embedded Yocto provides pre-built Software Development Kits (SDKs) and allows you to generate custom SDKs to match your custom root filesystem images. Application developers can use the SDKs to develop and debug applications because they contain libraries and headers matching those running on the target so you can cross-compile your C/C++ applications.
Digi Application Development Environment
The Digi Application Development Environment provides a pre-configured Eclipse instance with all the required plug-ins and features to start creating Digi Embedded Yocto applications.
With Digi Application Development Environment, you can:
- Download and install Digi Embedded Yocto toolchains for different Digi platforms
- Create new C/C++ projects
- Clone existing Digi Embedded Yocto example applications
- Compile C/C++ and example applications using Digi Embedded Yocto toolchains
- Remotely launch and debug applications in your development platform
Qt Creator Integration
Develop using Qt Creator and a fully tested Qt 5-enabled Software Development Kit. The framework supports 2D software renderers for CPUs without an available GPU, enabling you to to use Qt Quick and QML.
See the Digi Application Development Environment and Develop with Qt Creator sections of the embedded documentation portals for more information.
Digi ConnectCore Smart IOmux
Today's multiprocessors and microcontrollers allow several functions to be multiplexed on a single pin. The complexity involved in configuring the pinout of a microprocessor, and by extension the SoM using it, has increased dramatically as these devices allow more functionality and flexibility. Some models allow eight or more functions, and this same functionality can often be enabled on more than one pin. Additionally, you can tailor the electrical characteristics of each pin to the specifics of the underlying hardware. The Digi ConnectCore Smart IOmux helps streamline the time-consuming, complex task of pin configuration and resolution.
Enter the list of interfaces required by your project and use the Smart IOmux graphical interface to mock up configuration options. Digi Smart IOmux returns full pin assignment and device tree snippets. Use the tool to recalculate as many times as necessary to reach your desired functionality.
See the Digi ConnectCore Smart IOmux User Guide for more information.
Cloud Integration
Easily connect your devices to the cloud with out-of-the-box Digi Embedded Yocto support.
Digi Remote Manager
Remotely monitor and analyze multiple devices, manage their configuration, or update the entire Digi Embedded Yocto system via the integrated Digi Remote Manager® support. You can keep all your hardware up and running by programming alarms based on device conditions or scheduling operations on multiple remote devices.
- Monitor the system. Analyze system values such as CPU usage, temperature, or available memory on a fixed time schedule to create a device health timeline.
- Access the file system. List, upload, download, or remove system files from Digi Remote Manager or a custom application using Digi Remote Manager web services.
- Manage the system. Remotely control the configuration of some interfaces such as Ethernet or wireless, or reboot the module.
- Update the entire system. Upload a firmware image to update the system.
- Schedule and automate operations on multiple remote devices with Web Services. Write web pages or applications that send requests using the provided API over HTTP (or HTTPS).
See the Remote management and monitoring section of the embedded documentation portals for more information.
Amazon Web Services
Digi Embedded Yocto enables you to remotely manage your devices via integrated Amazon Web Services (AWS) IoT support.
- Digi is an AWS IoT Advanced Technology Partner
- Support includes AWS Greengrass
- Select ConnectCore products are AWS-certified
See the AWS IoT section of the embedded documentation portals for more information.
Micro Controller Assist™ (MCA) and IO Expander
For ConnectCore SoMs and SBCs that mount a Kinetis micro-controller, Digi Embedded Yocto provides custom firmware and Linux associated drivers for the following interfaces:
- ADC channels
- GPIOs
- Power button
- Real time clock
- Watchdog timer
- UART serial port
Digi's mca_fw_updater application simplifies the process of updating the MCA firmware and even has the ability to detect invalid firmware images that could cause irreversible damage to the MCA flash.
For more information, see MCA and IO expander.
Digi TrustFence™ security framework
Device security is key for IoT or always-connected devices. However, implementing these features can be very complex and time-consuming. Digi simplifies the process of securing connected devices by providing a tested and fully integrated Linux security framework. Digi TrustFence offers the following functionality:
See the Digi TrustFence page on Digi.com for more information and to download technical briefs.
What's Next?
In Part 2 of the series, we will discuss other ways Digi makes life a little easier for embedded developers, including Wi-Fi and Bluetooth that just work, connection reliability with network failover, hardware design guidelines, and power management optimizations.
Part 3 will do a deeper dive into the Digi embedded documentation portals.