By Duane Osburn, Principal Solutions Architect – TensorIoT
By Dean Hart, Sr. Architect in IoT, AI, Computer Vision, and Robotics – AWS
By Sydney Staggs, Software Engineer – TensorIoT
By Nicholas Burden, Sr. Technical Evangelist – TensorIoT
Innovation is a difficult undertaking for any company. Making a new product or driving change in a market requires extensive time, effort, and iterations to ultimately achieve success.
One of the most popular ways to innovate products is through the use of prototypes. Traditionally, prototyping involved the very labor-intensive process of creating molds, finding the right medium for the mold, creating the cast, testing the result, and then reiterating the whole process until a workable prototype was finally developed.
The old prototyping requirements can be overcome, however, with the power of modern technology. Over 30 years ago, the inventor of 3D printing, Charles Hull, co-founded the company 3D Systems, which continues to build on his dreams and spirit of innovation.
The advent of 3D printing allowed 3D Systems’ customers to build prototypes and models with pinpoint accuracy, within a quicker timeframe than ever before possible.
In this post, we will discuss how 3D Systems worked with TensorIoT and Amazon Web Services (AWS) to incorporate machine learning (ML) into their system and migrate their backend to an ML-compatible framework.
TensorIoT is an AWS Advanced Consulting Partner with AWS Competencies in Internet of Things (IoT), Machine Learning, Industrial Software, Retail, and Travel and Hospitality. TensorIoT also has multiple AWS Service Delivery credentials for AWS IoT services.
Founded by a former AWS employee, TensorIoT has delivered successful projects across the world in the IoT and ML space.
3D Systems provides 3D printing to meet the precise needs of clients, adeptly handling an extensive range of mediums, including plastics, composites, elastomers, and even additive printing in metals.
Today, 3D Systems is a leading additive manufacturing solutions company and powers innovation by helping clients seize the edge in prototype development.
As an industry leader, 3D Systems recognized the potential benefits for migrating to AWS, including improved up-time, flexibility, and easy integration and support.
AWS also offers added value through a full range of analytics and machine learning solutions. 3D Systems began to research how to introduce ML to enhance their standard of innovation, with the goal of optimizing machine performance and ensuring 3D printers function without any disruption.
Unfortunately, as 3D Systems started their exploration, they quickly learned their existing backend system was not capable of performing ML functions. This meant 3D Systems needed to migrate to a backend platform that would prove capable of incorporating ML into their workflows.
AWS was selected on the basis of its feature-rich ecosystem, which can easily integrate and expand the ML workflows to support 3D Systems as they continue to produce world class products.
In order to find a solution that would cover both greenfield and brownfield devices, 3D Systems teamed up with TensorIoT and AWS Professional Services to solve the problem of migrating their backend platform to AWS.
This collaboration ensured 3D Systems has the ability to incorporate ML into their enhanced workflows.
Breaking Down a Platform Migration
TensorIoT began the migration process with an analysis of data produced by the printers to determine how to ingest and store the printer information in the new backend infrastructure.
3D Systems already has an excellent user interface (UI) which masks a very complex device communication process. This process utilizes a gateway device that runs multiple protocols in containers, with multiple printers connected to one gateway.
The connected printers communicate at different rates and produce a variety of telemetry messages, corresponding to the printer state or job status.
To bring this complex network of printers and their messages into AWS IoT Core, the connection to the previous backend platform was replaced with a connection to AWS.
Each printer adapter has a translator, message broker, and indexers running in a Docker container. This accommodated the addition of an AWS IoT Greengrass container to each printer adapter, thus allowing each printer adapter to publish printer messages to AWS IoT Core.
To enable printer messages to reach AWS IoT Core, the printer adapters must be provisioned in AWS IoT Core and in the deployed printers, and then extended to an IoT accelerator built by AWS Professional Services.
A streamlined process for provisioning printer adapters in AWS IoT Core and the IoT accelerator was implemented using AWS CloudFormation, along with a complementary process to provision printers and associate a printer with a printer adapter.
The adapter provisioning process also provides a pathway for installation of certificates and keys on each printer adapter, which is necessary to establish communication between a printer adapter and AWS IoT Core.
Once all devices have been provisioned, when an adapter is connected it publishes device registration messages at a regular interval. These contain critical information pertaining to each printer connected to the adapter.
When registration messages reach AWS IoT Core, they are captured and added to an Amazon DynamoDB table, maintaining a timeline of connectivity for all devices and facilitating blacklisting of printers that have demonstrated potentially suspicious patterns of connectivity.
Figure 1 – Solution architecture.
First Connection, Then Information
The printer connections were the first step towards the project goal, helping 3D Systems transition from their existing (out-of-the-box) backend platform to a custom AWS solutions platform.
TensorIoT successfully provisioned the edge devices and gave them the ability to communicate with AWS IoT Core. The next order of business was to ingest the large volume of data the printers are sending through the printer adapter.
The provisioned printer adapters publish MQTT messages from the printers to AWS IoT Core, where each batch of published messages gets picked up by an AWS IoT Rule.
There are two actions that are taken when the incoming message matches the AWS IoT Rule:
- The first is to pass the incoming message to Amazon Kinesis Data Firehose, which in turn loads the message into an Amazon Simple Storage Service (Amazon S3) bucket. This is done to keep a historical record of telemetry messages, as well as to provide a data lake for future machine learning activities.
- The second action of the AWS IoT Rule is to pass the data to an AWS Lambda function to further process the data and store all data as best suited to the type of data.
Divide and Store Data
Each telemetry message falls into one of three categories: telemetry data, job data, and condition (or fault) data. Messages of each category require different handling.
The telemetry data for the 3D printers has a massive number of potential attributes or properties associated with it. To optimize data search and retrieval, the telemetry data gets placed into Amazon Elasticsearch Service, which offers rich capabilities for handling data. TensorIoT leveraged Elasticsearch tools to custom tailor telemetry data handling.
Data aggregation, which was not available to 3D Systems on their previous platform, provides multiple opportunities for quickly identifying data trends. TensorIoT also designed logical secondary indexes to provide high scalability and support data redundancy.
As the telemetry records are processed, they are checked for certain properties related to printer state or job status. Once these records are mapped, the state of the printer is stored in the IoT accelerator and the updated status is displayed on the user interface.
Implementing, deploying, and maintaining an IoT platform is by no means an easy task. Customers often face common challenges that may include significant undifferentiated heavy lifting, having a skills gap, finding limitations with off-the-shelf solutions, privacy and security concerns, and the long-term maintainability of a platform.
To help overcome these challenges, AWS Professional Services created an IoT Accelerator that allows customers to start with a solid foundation for an IoT platform which they can build upon and extend to meet their own business needs.
The IoT Accelerator includes a number of self-contained production grade microservices built upon the breadth and depth of AWS services that customers can take, own, and run within their accounts. These microservices are implemented to software architecture, development, and AWS best practices.
The business value the IoT Accelerator brings is out-of-the-box solutions for device provisioning, asset management and auditing, certificate management and rotation, simplified AWS IoT Greengrass provisioning, device installation, over-the-air updates, and real-time notifications.
Using the IoT Accelerator as a starting point, customers are able to significantly reduce their implementation effort, speeding up time-to-market, yet keeping the quality of the platform high.
Automated Alerts Protect the System
While obtaining and storing data is of primary importance, the accompanying telemetry data must be actionable so users of the system are notified as soon as possible if a problem arises.
As telemetry is ingested and processed, users must be notified if any telemetry value failed to fall within a specified threshold range. For example, if the reported temperature exceeded a certain threshold, the system technician would be notified via text or email, thus allowing the system technician to fix the problem.
To accomplish this task, TensorIoT once again leveraged the IoT Accelerator for its capabilities to process and notify users. If an alert violated the specified threshold, the IoT Accelerator leveraged Amazon Simple Notification Service (SNS) to notify the users who were subscribed to this alert. The triggered alerts are all stored in the same granular level to serve as a historical record of violating telemetry and devices.
Putting Data to Work
In order for the web client to interact with the application, Amazon API Gateway and Lambda were used to expose secure REST HTTP endpoints.
Amazon API Gateway was directly responsible for exposing secured endpoints, while Lambda allowed TensorIoT to run the business logic in a highly available computer infrastructure.
TensorIoT enabled multiple endpoints for system users to interact with the collected data and to modify the system to their needs. For example, users using the web client can securely access the stored telemetry for a singular device.
Administrators of companies, meanwhile, can create, delete, or shift around subgroups within their company since all of the exposed endpoints are secured via an authorizer and Amazon Cognito.
One Size Does Not Fit All
In conjunction with Amazon Cognito, the IoT accelerator provided a structural hierarchy to allow 3D Systems to oversee their devices and clients and enable each individual client to own and manage their own “ecosystem” of groups and devices.
TensorIoT leveraged the IoT accelerator to allow 3D Systems to fully manage the creation, deletion, and modification of tenants within the system, while maintaining an isolated environment for their clients.
This service ultimately allowed 3D Systems to oversee all of their devices and tenants, while giving their clients a secure and isolated piece of the whole ecosystem.
Data Safety Through Access Control
While device-centric information is stored in the IoT Accelerator, user information for the system is not stored in the same place.
As such, one of the development priorities was a user management system that enables users to create accounts, store, and retrieve user information, and manage associations between users and the companies or groups to which they have been granted access.
Amazon Cognito provides the foundation of the user management system and allows for seamless integration with the frontend web application via AWS Amplify. The system was designed for implementation of access control based on company or printer group, ensuring data security.
3D Systems sought a way to promote innovation by migrating their backend system from a provider that did not have the necessary machine learning capabilities to the AWS ecosystem.
Through the assistance of TensorIoT and the IoT Accelerator developed by AWS Professional Services, 3D Systems is positioned to take the next leap in their progression and start bringing ML into their existing workflows.
This will enable 3D Systems to scale their system to meet the changing needs of their business and bring outstanding service and benefit to their customers.
TensorIoT – AWS Partner Spotlight
TensorIoT is an AWS IoT Competency Partner that was founded on the instinct that the majority of compute is moving to the edge and all things are becoming smarter.
*Already worked with TensorIoT? Rate the Partner
*To review an AWS Partner, you must be a customer that has worked with them directly on a project.