<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IoT Archives | DMC, Inc.</title>
	<atom:link href="https://static.dmcinfo.com/blog/tag/iot/feed/index.xml" rel="self" type="application/rss+xml" />
	<link></link>
	<description></description>
	<lastBuildDate>Thu, 03 Sep 2026 20:38:48 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>

<image>
	<url>https://static.dmcinfo.com/wp-content/uploads/2025/04/site-icon-150x150.png</url>
	<title>IoT Archives | DMC, Inc.</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Advancing Manufacturing with Intelligent Automation</title>
		<link>https://static.dmcinfo.com/blog/15931/advancing-manufacturing-with-intelligent-automation/</link>
		
		<dc:creator><![CDATA[Jason Mayes]]></dc:creator>
		<pubDate>Fri, 11 Oct 2024 14:08:43 +0000</pubDate>
				<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Programmable Automation]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/15931/advancing-manufacturing-with-intelligent-automation/</guid>

					<description><![CDATA[<p>Manufacturing is increasingly reliant on intelligent automation. Recent events have proven that investments in automation can lead to competitive advantages—production can be scaled up or down quickly, rapid changes in the workforce can be more easily absorbed, flexible manufacturing can allow new or custom products to be produced without retooling,&#160; real-time data can be used [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/15931/advancing-manufacturing-with-intelligent-automation/">Advancing Manufacturing with Intelligent Automation</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Manufacturing is increasingly reliant on intelligent automation. Recent events have proven that investments in automation can lead to competitive advantages—production can be scaled up or down quickly, rapid changes in the workforce can be more easily absorbed, flexible manufacturing can allow new or custom products to be produced without retooling,&nbsp; real-time data can be used to quickly correct issues in quality and increase yield, and many more. So, as more and more companies are moving towards automation, what features and technologies should you be aware of to ensure that you maximize your ROI? Today, I&#8217;m going to share a few of my thoughts on the automation industry and some of the trends we&#8217;ve seen in the evolution of simple to <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence">intelligent manufacturing automation</a>.</p>



<h2 id="h-smart-manufacturing-and-intelligent-automation" class="wp-block-heading">Smart Manufacturing and Intelligent Automation</h2>



<p class="wp-block-paragraph">To get started, there are a lot of automation buzzwords out there that you may recognize: Artificial Intelligence (AI), <a href="https://static.dmcinfo.com/services/application-development/machine-learning">Machine Learning (ML)</a>, Augmented Reality (AR), Virtual Reality (VR), Blockchain, the Internet of Things (IoT), the <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/industrial-internet-of-things">Industrial Internet of Things (IIoT)</a>, Cobots, Integrated Robotics, Additive Manufacturing, <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/vision-inspection">Machine Vision</a>, Flexible Manufacturing, Smart Sensors, Digital Twins, Predictive Maintenance, Key Performance Indicators (KPIs), <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/mes-programming/oee-and-downtime-tracking">Overall Equipment Effectiveness (OEE)</a>, Automated Guided Vehicles (AGVs), Software as a Service (SaaS), the Edge, Edge Processing, Cloud…it goes on and on. The exciting thing to know is that each of these is, to some level, real, and each of these has its place and can be used independently or additively to add intelligence to a system.</p>



<p class="wp-block-paragraph">As an automation system adds technologies, there are additional buzzwords used to describe the result such as Industry 4.0, Smart Factory, Smart Manufacturing, and Intelligent Automation. I like the last two because they do the best job of holistically describing the technology-driven approach of utilizing connected machinery, software, and tools to identify and improve manufacturing performance. Smart Manufacturing is not an off-the-shelf technology but is instead the combination of multiple technologies to enable the use of live data for real-time optimization of plant operations.</p>



<h2 id="h-data-and-connectivity" class="wp-block-heading">Data and Connectivity</h2>



<p class="wp-block-paragraph">Data is the backbone of smart manufacturing, enabling a more connected, efficient, and responsive automation system. Real-time communication between machines, sensors, and central systems allows for immediate monitoring of equipment performance and production processes, leading to faster response times to any issues that arise. And with that data comes enhanced efficiency through the reduction of downtime and optimization of processes.</p>



<p class="wp-block-paragraph">But a smart manufacturing system is more than just the automation controller (usually a programmable logic controller known as a PLC). Sharing data across different levels of the Automation Pyramid—from the plant floor to the cloud—opens up new ways to streamline operations and connect the information technology (IT) and operational technology (OT) worlds. This data connectivity can link both enterprise systems and manufacturing equipment to provide better visibility into production, increase efficiency by flexibly manufacturing exactly what you need, and reduce cost by minimizing waste and optimizing resource usage.</p>



<h2 id="h-isa-95-and-the-automation-pyramid" class="wp-block-heading">ISA-95 and the Automation Pyramid</h2>



<p class="wp-block-paragraph">I mentioned the Automation Pyramid as it&#8217;s an important part of an Intelligent Automation system. ISA-95, an international standard for integrating enterprise and control systems, provides a model and terminology for aligning manufacturing operations with business processes. The standard offers a layered approach to manufacturing operations often referred to as the Automation Pyramid. This pyramid breaks operations into distinct levels, each building on top of the other, and provides a structured approach to data flow through a common data exchange framework.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Automation-Pyramid-DMC.png" alt="Automation pyramid or layered manufacturing operations"/></figure>



<p class="wp-block-paragraph">The bottom of the Automation Pyramid (Level 0) is the physical process and the Field Level sensors that interact with it. Building upon that is the Control Level (Level 1), where inputs are being monitored, decisions are made, and outputs are controlled. The Supervisory Level (Level 2) sits on top of the Control Level. This is where <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming">Human-Machine Interfaces (HMI) and Supervisory Control and Data Acquisition (SCADA)</a> applications lie to oversee operations and provide operators with the necessary information needed to monitor and control the process. Level 4 adds Manufacturing Operations Management (MOM) and <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/mes-programming">Manufacturing Execution Systems (MES)</a> to optimize the manufacturing process, integrate quality control, and provide visibility into the production process to facilitate the efficient execution of manufacturing tasks. It is also the layer that interfaces with the top layer of the pyramid, the Enterprise layer (Layer 5), which includes business planning, inventory, logistics, and other ERP functions. If followed when architecting and implementing a Smart Manufacturing system, the Automation Pyramid provides consistent and interoperable data exchange across all levels of manufacturing operations.</p>



<p class="wp-block-paragraph">Advances in the tools and technologies available at all layers of the pyramid have led to making it much easier to implement Smart Manufacturing systems that follow the ISA-95 model.</p>



<h3 id="h-field-devices" class="wp-block-heading">Field Devices</h3>



<p class="wp-block-paragraph">In the past decade, there has been an explosion in the number of available sensors, actuators, and drives. Smaller form factors and better electronics provide more sensing options in challenging environments. Smart sensors and actuators are doing more processing at the device level, increased adoption of AS-i and IO-Link makes sensors easier than ever to connect, and the increased data available provides more in-depth diagnostics and configuration options. Sensors can now be found with Wi-Fi, Bluetooth, Zigbee, and even cellular connections to allow for direct MQTT communication with IoT platforms running in the Cloud or wireless connectivity to more traditional control systems. Variable Frequency Drives (VFDs) are including built-in data to feed AI/ML models, like those integrated into <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/rockwell-factorytalk">Rockwell&#8217;s FactoryTalk</a> Analytics <a href="https://www.rockwellautomation.com/en-us/products/software/factorytalk/maintenancesuite/factorytalk-analytics-guardianai.html">Guardian AI</a>, to turn drives into sensors and provide predictive maintenance functionality. Low-cost VFDs, like the Siemens G120C series, allow for simple commissioning and diagnostics over Wi-Fi using only a cell phone. More data, easier integration, and better reliability mean the intelligent manufacturing automation systems being built today will provide better long-term value.</p>



<h3 id="h-control-devices" class="wp-block-heading">Control Devices</h3>



<p class="wp-block-paragraph"><a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/plc-programming">PLCs</a> have long been the workhorse of the factory—designed for use in less-than-ideal operating conditions, running 24/7 for years at a time, and providing flexibility for expansion. While improvements in hardware continue to occur, it&#8217;s been improvements in software that have really led to smarter applications. Motion controllers have largely disappeared, replaced by integrated motion in controllers like the <a href="https://static.dmcinfo.com/latest-thinking/blog/id/9391/siemens-s7-1500-plc-troubleshooting-tips-and-tricks">Siemens S7-1500T</a>, which can support up to 128+ axis. Rockwell&#8217;s Integrated Robotics now allows robots to be directly integrated with ControlLogix PLCs, and unified machine control allows OEMs to more easily integrate, control, and coordinate advanced motion technologies. Both of these solutions simplify machine operation and maintenance for the end user, who must only understand and support one system. Soft PLCs (PC-based PLCs), like those developed by <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/plc-programming/beckhoff-and-twincat-3-programming">Beckhoff</a>, can now turn almost any PC into a real-time control system while integrating web-based HMIs like TwinCAT HMI on the same hardware. Increased adoption of global communication standards, like OPC-UA, by all manufacturers means it&#8217;s easier than ever to communicate between devices.</p>



<p class="wp-block-paragraph">While traditional <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/motion-control-engineering-and-servo-systems">motion control</a> applications have been absorbed into PLCs, incredible <a href="https://static.dmcinfo.com/latest-thinking/blog/id/9786/automation-with-an-arduino-plc-or-custom-embedded-controls">new technologies</a> have arisen to provide faster, more flexible, and easier-to-program smart conveyance systems. Rockwell&#8217;s <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/magnemotion-programming">MagneMotion</a> Lite and QuickStick platforms provide a modular and scalable material handling solution with precise positioning, routing, traffic control, and no maintenance. Beckhoff&#8217;s XPlanar allows for 2D transport and six (!!) degrees of freedom motion that can open up new worlds for machine and process designers.</p>



<p class="wp-block-paragraph">Across all of these, improvements in development IDEs allow companies like DMC to reduce time and cost by leveraging more reusable code and providing more flexible solutions with increasingly modular architectures. Improved simulation software allows for advanced simulation and even virtual commissioning, ensuring that machine and factory start-ups go smoothly and on schedule. New advances allow for better collaboration on multi-developer projects, facilitate code reviews and merges, and integrate with third-party source control tools like GIT.</p>



<h3 id="h-supervision-hmi-amp-scada" class="wp-block-heading">Supervision (HMI &amp; SCADA)</h3>



<p class="wp-block-paragraph">HMI systems have long been hardware-based—you bought a physical device and programmed it to communicate with a PLC or controller. While this can be convenient, and hardware-based HMIs are still being used, the modern trend has seen the evolution of web-based applications that can turn any computer, phone, or tablet into a cutting-edge HMI. Openness and extensibility are the name of the game, as platforms such as Rockwell&#8217;s FT Optix, <a href="https://static.dmcinfo.com/latest-thinking/blog/id/10322/getting-started-with-wincc-unified">Siemens WinCC Unified</a>, and Beckhoff&#8217;s TwinCAT HMI allow for HMI development that can be deployed to an almost limitless number of targets. Object-oriented designs, web-based tools, simulation testing, and more powerful scripting mean development times can be reduced while delivering more advanced applications.</p>



<p class="wp-block-paragraph">In the world of SCADA, we&#8217;ve seen Inductive Automation&#8217;s <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/ignition-programming">Ignition</a> eat up market share as it continues to evolve. Its versatile, scalable, and modular architectures allow users to scale applications up as needed, while its cross-platform compatibility and support of industry standards like OPC UA, MQTT, and RESTful APIs facilitate integration with a wide array of devices and systems. However, the combination of its user-friendly development environment and transparent and cost-effective pricing model have really been the drivers of its strong growth. Despite all of that, the traditional players are still forging forward with continuous improvements. Aveva (formerly Wonderware), Iconics, Siemens WinCC, and Rockwell FactoryTalk SE continue to see wide use, and each offers its own compelling advantages. For example, <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/wincc-open-architecture-development">Siemens&#8217; WinCC OA platform</a> offers incredible flexibility and scalability, being used for some of the largest and most important systems in the world due to its performance and reliability.</p>



<p class="wp-block-paragraph">Regardless of the platform, the trend is the same. More open communication with devices and systems, tighter integration with enterprise databases like Oracle and SQL, and cross-platform web-based options for access and control. As these platforms become more powerful and new tools and features are released, we see the increased movement of traditional MES and MOM features into the SCADA layer (things like OEE, for example).</p>



<h3 id="h-management-mes" class="wp-block-heading">Management (MES)</h3>



<p class="wp-block-paragraph">At the top of the OT space, the MES layer is the bridge between our traditional factory <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence"><strong>automation systems</strong></a> and business systems. Need to integrate inventory tracking with your manufacturing process? Do FDA regulations require detailed track and trace capabilities to tie raw ingredients to finished products? Want to optimize your production schedule based on your real-time orders to minimize waste? This is where MES (Manufacturing Execution Systems) comes in. They are often highly customized based on the organization and the toolchains in use but provide configurable models and frameworks to solve the most common problems. At DMC, we have frequently utilized <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/mes-programming/sepasoft-programming">Sepasoft</a>, Tulip, and <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/mes-programming/simatic-it-services">Simatic IT</a> to build problem-solving MES systems for our clients.</p>



<p class="wp-block-paragraph">Advances in the MES world continue to follow the same trends we see elsewhere:</p>



<ol class="wp-block-list">
<li><strong>Smoother integration with external systems and smart devices.</strong> MES systems are increasingly integrating with IoT devices and smart sensors to collect real-time data from the shop floor. This integration enhances data visibility and allows for better monitoring and control of the manufacturing process. Additionally, the use of edge computing in MES helps process data closer to the source, reducing latency and providing improved analytics and decision-making.</li>



<li><strong>Advanced data analytics and AI.</strong> Predictive analytics, machine learning, and AI are being integrated to better analyze the huge amounts of data available, optimize production schedules, and improve decision-making processes.</li>



<li><strong>Expanded API support.</strong> Modern platforms are continuing to improve already robust APIs and web services for integration into even more enterprise systems, data sources, and third-party applications.</li>



<li><strong>Moving to the cloud.</strong> Cloud-based systems provide better scalability without the need for significant infrastructure improvements. Cloud MES deployments can pull data from multiple sites to allow for enterprise-level reporting and also be a central repository for reusable code across all MES deployments.</li>



<li><strong>Security.</strong> Cybersecurity should have been mentioned at every level of the pyramid, but with the level of data available in MES systems, continued security updates to protect from cyber threats.</li>



<li><strong>Digitalization.</strong> Replacing pieces of paper, excel documents, etc., with things like digital forms, digital work instructions, or CAD drawings through the MES screen. To eliminate the need for manually typing data from paper into a database or Excel for analysis, the information is directly entered into a system that both stores and analyzes it, providing valuable insights for decision-making.</li>
</ol>



<h3 id="h-enterprise-erp" class="wp-block-heading">Enterprise (ERP)</h3>



<p class="wp-block-paragraph">Finally, we&#8217;re at the top of the pyramid! ERP is a software system used to manage and integrate an organization&#8217;s core business processes. ERP systems facilitate the flow of information between all business functions within the organization, providing a unified view of operations and enabling better decision-making. In most cases, these systems are outside of the OT domain, although we frequently integrate with them to facilitate a truly smart manufacturing system.</p>



<h2 id="h-the-benefits-of-intelligent-automation" class="wp-block-heading">The Benefits of Intelligent Automation</h2>



<p class="wp-block-paragraph">So, what&#8217;s the big deal? Why move beyond simple automation? This is a good question and not one with a universal answer. For some organizations, smart manufacturing and intelligent automation may not be necessary. There can be a high level of upfront investment, and the ROI may not be there to justify the business case. But for the others, the benefits can be huge. Increased efficiency, reduced downtime, better visibility in the manufacturing process, the ability to scale production to meet demand, flexibility to allow for new products and features, catching out-of-tolerance products earlier, and tweaking the process to eliminate scrap…the list can go on.</p>



<p class="wp-block-paragraph">I&#8217;ve worked with customers to build smart manufacturing cells linked to <a href="https://static.dmcinfo.com/latest-thinking/case-studies/view/id/460/automated-tire-storage-and-retrieval-control-system">their inventory and ordering systems</a>. Through intelligent automation, we can flexibly manufacture products as they are sold— shipping custom-ordered products within two hours of order placement—without a need for multiple production lines and with significantly reduced labor costs. We&#8217;ve implemented <a href="https://static.dmcinfo.com/latest-thinking/case-studies/view/id/351/factorytalk-metrics-oee-reporting-and-production-monitoring">OEE tracking systems</a> to identify where and when bottlenecks occur so resources can be properly allocated and efficiency can be maximized. By utilizing the diagnostics available, we developed lines that allow for quick troubleshooting so that downtime can be minimized and systems can be repaired quickly. We&#8217;ve developed <a href="https://static.dmcinfo.com/latest-thinking/case-studies/view/id/604/sepasoft-mes-solution-for-food-processing-facility">track-and-trace applications</a> in the food and beverage industry that allow manufacturers to precisely identify which products need to be recalled in the event of discovered contamination. With the ever-evolving technologies, the ever-growing availability of data, improving software, and a large team of automation experts, DMC can help you achieve the results you are looking for.</p>



<h2 id="h-what-we-can-do-for-you" class="wp-block-heading">What We Can Do For You</h2>



<p class="wp-block-paragraph">This month marks my 14th anniversary at DMC and with it, 14 years in the Automation Industry. In that time, I have had the opportunity to be a part of some truly amazing projects and to work with some incredible clients. Looking back, it&#8217;s fun to think about the transformation and growth I&#8217;ve been involved with as our clients have used increasingly more advanced technologies to meet their business needs. While the intrinsic satisfaction of seeing our clients reach new levels of success provides a lot of motivation, 2024 has been a fun year due to the level of national recognition DMC has received for being a leader in the Automation and Controls industry.</p>



<p class="wp-block-paragraph">In March, DMC was awarded the national <a href="https://static.dmcinfo.com/latest-thinking/blog/id/10579/dmc-receives-the-2024-rockwell-system-integrator-innovation-award">Rockwell Automation System Integrator Innovation Award</a>. The turnkey design/build project for which DMC was recognized provided our client with a truly flexible manufacturing cell capable of producing customized products from 100+ base SKUs with minimal operator involvement. This step helped our client move from simple automation to smart manufacturing overnight and delivered immediate results to their bottom line.</p>



<p class="wp-block-paragraph">&#8220;The System Integrator Innovation Award recognizes DMC for demonstrating an innovation solution for their customer that helped solve and address business problems, drove transformation, and delivered meaningful and measurable business outcomes using best-in-breed technologies,&#8221; Amy L. Graff, North America Partner Marketing Manager at Rockwell Automation, said.</p>



<p class="wp-block-paragraph">Shortly after, DMC was named the <a href="https://static.dmcinfo.com/latest-thinking/blog/id/10607/dmc-recognized-as-csia-2024-integrator-member-of-the-year">2024 Control System Integrator Association Integrator of the Year Award</a>. This award recognizes DMC&#8217;s significant contributions to the advancement of the association and the automation industry as a whole.</p>



<p class="wp-block-paragraph">So, whether you are just starting your journey toward automation or looking to take the next step toward smart manufacturing, contact us and see what DMC can do for you.</p>



<div class="wp-block-group alignwide has-custom-light-blue-background-color has-background is-layout-flow wp-container-core-group-is-layout-dbd34961 wp-block-group-is-layout-flow" style="border-radius:20px;margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--50);padding-right:0;padding-bottom:var(--wp--preset--spacing--50);padding-left:0">
<div class="wp-block-columns alignwide are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-43efaee5 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)">
<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:85%">
<h3 class="wp-block-heading has-text-align-left" id="h-have-an-upcoming-project-dmc-can-help-you-take-the-next-step"><strong>Connect Every Layer of Intelligent Manufacturing</strong>.</h3>



<p class="has-text-align-left wp-block-paragraph" id="h-need-help-turning-ideas-into-outcomes-automation-project-to-the-next-level-contact-us-today-to-learn-more-about-our-solutions-and-how-we-can-help-you-achieve-your-goals">Learn more about our <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/" data-type="page" data-id="420">Automation</a> solutions for integrating plant-floor controls, <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/ignition-programming/" data-type="page" data-id="509">SCADA</a>, MES, IIoT, and real-time production data.</p>
</div>



<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<div class="wp-block-buttons is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-2236275c wp-block-buttons-is-layout-flex">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-base-contrast-color has-text-color has-link-color wp-element-button" href="https://static.dmcinfo.com/contact/">Contact Us</a></div>
</div>
</div>
</div>
</div>
<p>The post <a href="https://static.dmcinfo.com/blog/15931/advancing-manufacturing-with-intelligent-automation/">Advancing Manufacturing with Intelligent Automation</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Azure IoT Hub Data Processing and Storage</title>
		<link>https://static.dmcinfo.com/blog/19924/azure-iot-hub-data-processing-and-storage/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Fri, 15 May 2020 12:30:46 +0000</pubDate>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Digital Workplace Solutions]]></category>
		<category><![CDATA[IoT]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/19924/azure-iot-hub-data-processing-and-storage/</guid>

					<description><![CDATA[<p>Overview When dealing with several or millions of IoT devices the amount of data can quickly become overwhelming to your processing logic and storage solution. To begin reducing the complexity of dealing with the data, it&#8217;s helpful to group the data into one of two main categories: hot&#160;or cold. That is to say: does the [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/19924/azure-iot-hub-data-processing-and-storage/">Azure IoT Hub Data Processing and Storage</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">Overview</h2>

<p class="wp-block-paragraph">When dealing with several or millions of IoT devices the amount of data can quickly become overwhelming to your processing logic and storage solution. To begin reducing the complexity of dealing with the data, it&rsquo;s helpful to group the data into one of two main categories: <strong>hot</strong>&nbsp;or <strong>cold</strong>. That is to say: does the data need to be analyzed immediately (hot), or can we look at the data at our own convenience (cold).</p>

<p class="wp-block-paragraph">After the data is ingested and initial processing is complete, it needs to be stored. Is the data similar enough that it can be logged in a database (structured), or does it vary widely and needs more flexible data storage (unstructured). Also, how much data are you expecting to collect:&nbsp;petabytes, or megabytes? Who needs access to the data for analysis, and what if they&rsquo;re located on the other side of the world?&nbsp;The delays in processing gigabytes of data while dealing with the latency of traversing the globe can quickly become frustrating.</p>

<p class="wp-block-paragraph">These are all things that need to be thought through before you begin development.&nbsp;Hopefully, this helps provide some assistance with planning your IoT solution. If you have any additional questions or need help with your <a href="/services/application-development/iot-solutions">IoT solution</a>, <a href="/contact">send us an email</a>.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/dataflow-2.png"  /></figure>

<h2 class="wp-block-heading">Data Processing</h2>

<p class="wp-block-paragraph">When your IoT nodes start producing data the server(s) need to be ready to handle that data as efficiently as possible, which means you need to determine if data is &lsquo;hot&rsquo; or &lsquo;cold&rsquo;.</p>

<p class="wp-block-paragraph"><span style="font-size:115%;"><u><strong>Hot Data</strong></u></span></p>

<p class="wp-block-paragraph">An example of &lsquo;hot&rsquo; data might be motor speed. Perhaps the motor can run up to 110% of its nominal speed for up to 5 seconds without issue, but if it exceeds 115% for more than 5 seconds it needs to be disassembled and internal parts replaced. The motor speed information needs to be analyzed and acted upon quickly to avoid downtime and costly repairs.</p>

<p class="wp-block-paragraph"><span style="font-size:115%;"><u><strong>Cold Data</strong></u></span></p>

<p class="wp-block-paragraph">&lsquo;Cold&rsquo; data, on the other hand, might be information like the volume of liquid pumped by the motor over the last 5 minutes. Knowing the exact flow at every given moment might not provide any valuable insights, so cold data can be batched and processed when reasonable.</p>

<p class="wp-block-paragraph">To complicate matters more, hot and cold data is more of a sliding scale, with common nomenclature of &lsquo;hot&rsquo;, &lsquo;warm&rsquo;, &lsquo;cool&rsquo;, and &lsquo;cold&rsquo;. Data may not fall into a single category. Using the motor speed example from above; the motor speed may also need to be processed as cool or cold data because analysis has shown that motor speed tends to increase marginally day over day before motor failure. So, not only is the real-time data important but saving the data for later to identify trends may also be important. This dual processing path is quite common.</p>

<h2 class="wp-block-heading">Structured vs Unstructured</h2>

<p class="wp-block-paragraph">Will all the IoT nodes produce data with the same type of structure or parameters; or is each node unique and there&rsquo;s little to no overlap of the data structure between nodes?</p>

<p class="wp-block-paragraph"><figure class="wp-block-image"><img decoding="async" alt="Azure Data Lake" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/AzureDataLake.png"  /></figure><br />
<span style="font-size:16px"><em>Image credit to <a href="https://azure.microsoft.com/en-us/blog/under-the-hood-performance-scale-security-for-cloud-analytics-with-adls-gen2/" target="_blank">Microsoft</a>.</em></span></p>

<p class="wp-block-paragraph"><span style="font-size:115%;"><u><strong>Blob Storage</strong></u></span></p>

<p class="wp-block-paragraph">To log unique (unstructured) data, <strong>Azure Storage Blob</strong> is likely your best option. It&rsquo;s not as unmanageable as &lsquo;blob&rsquo; makes it sound, that&rsquo;s just referring to the fact that it&rsquo;s meant to hold different types and models of data from videos and text, to pictures and audio recordings. Blob storage is pretty analogous to what you&rsquo;re used to with your desktop or laptop computer with having different folders that contain other folders or files with lots of different file types. It&rsquo;s the default storage option when creating a storage account.</p>

<p class="wp-block-paragraph">Blob storage can be broken down into 3 types: Append, Page, Block.</p>

<ul class="wp-block-list">
 <li><strong>Append: </strong>Data can only be appended to the blob. Think a log file, new log entries are appended to the end and the blob continues to grow.</li>
 <li><strong>Page:</strong> Good for data that needs frequent read/write access with high performance and low latency. General-purpose storage.</li>
 <li><strong>Block:</strong> Block type storage is optimized for large data sets and provides parallel read/write to different blocks. It&apos;s for handling large (Gb&rsquo;s) files over the network.</li>
</ul>

<p class="wp-block-paragraph">Page and Block type Blob storage can handle up to Terabytes of data, but there comes a point where an organization of &lsquo;Big Data&rsquo; starts to become a limiting factor. Your data is worthless if you can&rsquo;t efficiently query it. That&rsquo;s when you need to consider a solution like <strong>Azure Data Lake</strong>. Data Lake provides additional organizational and security tools, as well as some built-in analytics.</p>

<p class="wp-block-paragraph"><span style="font-size:115%;"><u><strong>CosmosDB</strong></u></span></p>

<p class="wp-block-paragraph">If the data is in a more consistent format, you may want to consider <strong>CosmosDB</strong> as the storage solution instead of blob storage. CosmosDB provides several features that may be beneficial for your organization and your data. Similar to SQL databases, CosmosDB provides the option to specify indexes on the data which can significantly improve query performance.</p>

<p class="wp-block-paragraph"><figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/azureiotdataflow-2.png"  /></figure><br />
<span style="font-size:16px"><em>Image credit to <a href="https://docs.microsoft.com/en-us/azure/cosmos-db/use-cases" target="_blank">Microsoft</a>.</em></span></p>

<p class="wp-block-paragraph">Also, CosmosDB was built with data sharing and replication in mind. A CosmosDB database can be configured to replicate data to multiple Azure regions around the globe giving employees in both North America and Australia, for example, access to the same data at the same time. It&rsquo;s also possible for both regions to write data back into Cosmos at the same time. This is all in addition to a failover location which can be configured to take over operations in the event of a natural disaster or civil disturbance in the primary location.</p>

<p class="wp-block-paragraph">Learn more about DMC&apos;s <a href="/services/application-development/iot-solutions">IoT solutions</a> and <a href="/services/digital-workplace-solutions/microsoft-consulting-services/microsoft-azure-cloud-solutions-and-services">Azure solutions</a>. <a href="/contact">Contact us</a> for more information.&nbsp;</p>
<p>The post <a href="https://static.dmcinfo.com/blog/19924/azure-iot-hub-data-processing-and-storage/">Azure IoT Hub Data Processing and Storage</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How To Setup a WinCC OA Application to Push Data to MindSphere</title>
		<link>https://static.dmcinfo.com/blog/20593/how-to-setup-a-wincc-oa-application-to-push-data-to-mindsphere/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Thu, 07 Nov 2019 10:39:24 +0000</pubDate>
				<category><![CDATA[HMI and SCADA]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[PLC]]></category>
		<category><![CDATA[Siemens PLC]]></category>
		<category><![CDATA[Web Application Development]]></category>
		<category><![CDATA[Data Processing]]></category>
		<category><![CDATA[Mindsphere]]></category>
		<category><![CDATA[SCADA]]></category>
		<category><![CDATA[WinCC OA]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/20593/how-to-setup-a-wincc-oa-application-to-push-data-to-mindsphere/</guid>

					<description><![CDATA[<p>MindSphere and WinCC OA are two powerful tools offered by Siemens that can allow for streamlined aggregation, processing, and visualization of massive volumes of data. Now thanks to some in-built functions within WinCC OA, you can, with a bit of setup and planning, easily pass your data from your OA application up to your MindSphere [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/20593/how-to-setup-a-wincc-oa-application-to-push-data-to-mindsphere/">How To Setup a WinCC OA Application to Push Data to MindSphere</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">MindSphere and <a href="/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/wincc-open-architecture-development">WinCC OA</a> are two powerful tools offered by Siemens that can allow for streamlined aggregation, processing, and visualization of massive volumes of data. Now thanks to some in-built functions within WinCC OA, you can, with a bit of setup and planning, easily pass your data from your OA application up to your MindSphere tenant. In this blog, I’ll walk you through the steps of setting up this connection, and I’ll offer some added commentary and advice to make your experience easier.</p>



<h2 id="h-setup-wincc-oa-manual-generation" class="wp-block-heading">Setup: WinCC OA Manual Generation</h2>



<p class="wp-block-paragraph">The first thing you need to do is create your assets in both the WinCC OA project and the MindSphere tenant. I’ll start with the WinCC OA project. <strong>Open Gedi </strong>in your project and from the top toolbar navigate to ‘<strong>SysMgm’ &lt; ‘Settings’ &lt; ‘MindSphere Configuration.’</strong> This will open a window like the one shown below.</p>



<p class="wp-block-paragraph"><p style="text-align: center;"><img decoding="async" alt="The MindSphere Configuration menu allows you to organize you data structure to meet the needs of your SCADA, IoT, or other types of applications" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/MindSphereConfigurator.png"></p></p>



<p class="wp-block-paragraph">Within here you can manually instantiate datapoints for you MindSphere application. There are three levels of organization to your MindSphere data. At the highest level are assets, then within an asset, there are data sources, and within those data sources, there are datapoints.</p>



<p class="wp-block-paragraph">What exactly defines an asset or data source within your project is up to you. For instance, an asset could represent one of several lines on a factory floor, and each data source could be a machine or PLC used within that line. It is up to you to decide how best to structure your data.</p>



<p class="wp-block-paragraph">To create an asset, simply <strong>right click the whitespace</strong> in the column on the left and select <strong>‘Create MindSphere Asset.’</strong> You can right-click that asset to add a data source and right-click that data source to add datapoints. When creating assets and data sources, all you really configure is the name. When creating datapoints, you must also select a datatype and enter the units. Datatype selection is limited to ints, longs, double, Booleans, and floats, so be aware of this when creating your application. It is also crucial that you do not leave units blank.</p>



<p class="wp-block-paragraph">To map your OA data point to a data point in an asset in MindSphere, the units on the two data points must match exactly. We’ll touch more on this later.</p>



<h2 id="h-setup-wincc-oa-scripted-generation" class="wp-block-heading">Setup: WinCC OA Scripted Generation</h2>



<p class="wp-block-paragraph">If you are working with a large volume of datapoints, then manually entering them all, as I showed above, can be impractical. Fortunately, there is a way to script the generation of these points. Whenever an asset, source, or point is created in the MindSphere Configuration menu, an internal datapoint is created in Para of the type<strong> _MC_Asset, _MC_Datapoint</strong>, or<strong> _MC_Datasource</strong> respectively.</p>



<p class="wp-block-paragraph"><p style="text-align: center;"><img decoding="async" alt="The structure of the internal datapoints created in Para by the MindSphere Configuration tool" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/InternalPoint.png"></p></p>



<p class="wp-block-paragraph">What this means is that you can write a script that uses the <strong>dpCreate</strong> and <strong>dpSet</strong> functions to create your data structure and populate some necessary fields. You must be careful when doing this, though, to set up your data correctly. Make sure your asset’s DataSources is populated with the names of all associated data sources.</p>



<p class="wp-block-paragraph">Do the same for making sure the data source has its associated points and assets entered and that the points have their associated data source. Don’t forget to set your points’ unit and type as well. Type is represented by an integer from 1 to 5, where each number equates to one of the datatypes mentioned earlier. Try first making a simple data structure as I did here and dig around the generated internal points, so you understand how it’s all supposed to be set up.</p>



<h2 id="h-setup-mindconnect-lib-asset" class="wp-block-heading">Setup: MindConnect Lib Asset</h2>



<p class="wp-block-paragraph">Next, we will create our <strong>MindConnect Lib asset</strong>. The MindConnect Lib assets are what your assets in OA are going to establish a connection with an upload data to. There is a one to one relation between MindConnect Lib assets in the tenant and assets in your OA project so you will need to make one MindConnect Lib asset for each asset in your OA project.</p>



<p class="wp-block-paragraph">From your home page in MindSphere, go to the asset manager and select <strong>‘Create asset.’</strong> Select <strong>MindConnectLib</strong> and give your asset a name.</p>



<p class="wp-block-paragraph"><p style="text-align: center;"><img decoding="async" alt="MindSphere offers assets designed for applications with IoT, OPC UA and much more but here we are interested in the MindConnectLib asset type" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/MindConnectLib.png"></p></p>



<p class="wp-block-paragraph">Next, we’ll set up our connection to the OA asset. Click the large button with the puzzle piece on it and select your preferred security profile.</p>



<p class="wp-block-paragraph"><p style="text-align: center;"><img decoding="async" alt="MindSphere is the missing piece to the puzzle that is making a complete Cloud based data solution for your Industry 4.0 application" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/MCLAsset.png"></p></p>



<p class="wp-block-paragraph">I’ve used <strong>SHARED_SECRET</strong> for all of my applications. After hitting continue, you’ll be taken to another screen with the boarding configuration. Click the buttons to generate a boarding key and copy it to your clipboard.</p>



<p class="wp-block-paragraph">Now go back to the OA MindSphere configuration menu, click on your asset, and paste the onboarding key into the white box then hit the upload button at the bottom.</p>



<p class="wp-block-paragraph"><p style="text-align: center;"><img decoding="async" alt="Once your asset is onboarded you've established a connection between your MindSphere Tenant and OA project" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Onboarding.png"></p></p>



<p class="wp-block-paragraph">Your assets in the OA project and tenant are now connected. You’ll notice that the Configuration ID has been filled in for your asset and all associated datapoints. Now, if&nbsp;you go back to your asset in the MindSphere tenant and click the button with the puzzle piece on it, you’ll be taken to a new screen.</p>



<p class="wp-block-paragraph">Here you can see the configuration of your asset and its data mappings. The configuration shown should match exactly with what you set up in OA.</p>



<p class="wp-block-paragraph"><p style="text-align: center;"><img decoding="async" alt="The configuration displayed here should match exactly with your OA configuration" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/TenantConfig.png"></p></p>



<h2 id="h-setup-mindsphere-assets-for-data-mapping" class="wp-block-heading">Setup: MindSphere Assets for Data Mapping</h2>



<p class="wp-block-paragraph">To actually work with and visualize the data that you’re sending to you MindConnect Lib asset, you need to create assets to map that data to. To do this, you will need to create some aspects and types. Both aspects and types are configurable data structures. A type will contain aspects, and you’ll create instances of types in the assets menu like how you create the MindConnect Lib asset.</p>



<p class="wp-block-paragraph">Similar to the structure of the MindSphere configuration in the OA project, it’s up to you to decide how best to structure your data. To make an aspect, go to your tenant’s asset manager, select <strong>‘Aspects’</strong> from the menu on the left, and select <strong>‘Create aspect.’</strong> Add at least one variable to make a valid aspect and make sure to set a ‘Unit’ value that exactly matches the units you set up in OA for the data point you intend to map to it. You will not be allowed to map your data points if the units don’t match.</p>



<p class="wp-block-paragraph"><p style="text-align: center;"><img decoding="async" alt="A simple aspect containing only one data point. Remember to match aspect units to units set on Datapoints in the OA configuration" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Aspect.png"></p></p>



<p class="wp-block-paragraph">Similar to how you created an aspect, you will now create a type. Types are just another layer in the data hierarchy of MindSphere. Types can contain variables, aspects, and have an associated image for an organization. Additionally, an instance of a Type is an asset, whereas you cannot instantiate aspects as assets.</p>



<p class="wp-block-paragraph">Add whatever aspects and variables seem sensible for your type, but be aware that you cannot map your OA data points to the standalone variables in a type. They must be mapped to a datapoint in an aspect in that particular type.</p>



<p class="wp-block-paragraph"><p style="text-align: center;"><img decoding="async" alt="A simple type containing my aspect and an extra variable" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/TestType.png"></p></p>



<p class="wp-block-paragraph">Now go back to assets and create an instance of the type you just created. Go to the Configuration/Data mappings page for your MindConnect Lib asset and go to the <strong>Data mappings tab</strong>. If you expand the data structure you should see a button that says<strong> ‘Link variable’ </strong>for each data point. Click on that and navigate to the appropriate data point in the instance of the custom type that you created.</p>



<p class="wp-block-paragraph"><p style="text-align: center;"><img decoding="async" alt="Data must be mapped from the MindConnectLib asset to a custom type to be viewed and processed" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/DataMapping.png"></p></p>



<p class="wp-block-paragraph">Once mapped, it should look something like the above image. Something significant to note is that these datapoint mappings are somewhat fragile, and any changes made to your OA assets, like adding points or sources or changes units, will undo these mappings. For that reason, you should try to finalize your data structure as much as possible before going through the effort of mapping points.</p>



<h2 id="h-pushing-data-to-mindsphere" class="wp-block-heading">Pushing Data to MindSphere</h2>



<p class="wp-block-paragraph">You have now made all the necessary arrangements and are ready to push that data up to MindSphere from your OA project. I’ve made a straightforward script that goes over all the essential actions that must be done to upload data.</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1e1e1e"><span style="background:#c7c7c7;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1e1e1e">HTML</span></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>#uses "classes/mindSphere/MindSphereAsset"

// Example script showing how to push data from OA to MindSphere

main()
{
    // Instantiate a MindSphere asset
    MindSphereAsset asset = MindSphereAsset("TestAsset");

    // Generate sample values
    dyn_int testValues = makeDynInt(
        13,
        67,
        89
    );

    // Create timestamps for the samples
    time currentTime = getCurrentTime();

    dyn_time times = makeDynTime(
        currentTime - 2,
        currentTime - 1,
        currentTime
    );

    // Prepare values for upload
    int err = asset.prepareValues(
        "TestPoint1",
        testValues,
        times
    );

    // Upload values to MindSphere
    err = asset.uploadPreparedValues();

    if (err == 0)
    {
        DebugN("Upload Successful!");
    }
}</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">#uses &quot;classes/mindSphere/MindSphereAsset&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">// Example script showing how to push data from OA to MindSphere</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">main()</span></span>
<span class="line"><span style="color: #D4D4D4">{</span></span>
<span class="line"><span style="color: #D4D4D4">    // Instantiate a MindSphere asset</span></span>
<span class="line"><span style="color: #D4D4D4">    MindSphereAsset asset = MindSphereAsset(&quot;TestAsset&quot;);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    // Generate sample values</span></span>
<span class="line"><span style="color: #D4D4D4">    dyn_int testValues = makeDynInt(</span></span>
<span class="line"><span style="color: #D4D4D4">        13,</span></span>
<span class="line"><span style="color: #D4D4D4">        67,</span></span>
<span class="line"><span style="color: #D4D4D4">        89</span></span>
<span class="line"><span style="color: #D4D4D4">    );</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    // Create timestamps for the samples</span></span>
<span class="line"><span style="color: #D4D4D4">    time currentTime = getCurrentTime();</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    dyn_time times = makeDynTime(</span></span>
<span class="line"><span style="color: #D4D4D4">        currentTime - 2,</span></span>
<span class="line"><span style="color: #D4D4D4">        currentTime - 1,</span></span>
<span class="line"><span style="color: #D4D4D4">        currentTime</span></span>
<span class="line"><span style="color: #D4D4D4">    );</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    // Prepare values for upload</span></span>
<span class="line"><span style="color: #D4D4D4">    int err = asset.prepareValues(</span></span>
<span class="line"><span style="color: #D4D4D4">        &quot;TestPoint1&quot;,</span></span>
<span class="line"><span style="color: #D4D4D4">        testValues,</span></span>
<span class="line"><span style="color: #D4D4D4">        times</span></span>
<span class="line"><span style="color: #D4D4D4">    );</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    // Upload values to MindSphere</span></span>
<span class="line"><span style="color: #D4D4D4">    err = asset.uploadPreparedValues();</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    if (err == 0)</span></span>
<span class="line"><span style="color: #D4D4D4">    {</span></span>
<span class="line"><span style="color: #D4D4D4">        DebugN(&quot;Upload Successful!&quot;);</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span></code></pre></div>



<p class="wp-block-paragraph">Note the steps in the above script. You must first instantiate your asset within your script via the MindSphereAsset function. The string inputted here must be identical to the name of the asset you created earlier in the configuration menu.</p>



<p class="wp-block-paragraph">Next, I make an array of sample data to upload. You can also upload points one at a time, but it will be more computationally intensive. For every bit of data that you create, you also need a timestamp. Here I take the current time then have offsets by one and two seconds. Before you upload your values, you must prepare the values for upload.</p>



<p class="wp-block-paragraph">The first input here is the name of the datapoint you’re uploading to, and it must match exactly with the name of the intended datapoint. After you’ve prepared your values, call <strong>asset.uploadPreparedValues</strong> to upload all values that have been prepared for that asset since the last successful attempt to upload values. You can call asset.prepareValues as many times as is necessary before executing the upload, and uploading data in large batches rather than small chunks will be a lot faster computationally.</p>



<p class="wp-block-paragraph">If the upload was successful, then the value of <strong>err</strong>, the output from the upload function, should be equal to zero.</p>



<h2 id="h-viewing-your-data-in-mindsphere" class="wp-block-heading">Viewing Your Data in MindSphere</h2>



<p class="wp-block-paragraph">There’s a ton that you can do with your data once it’s in MindSphere, but that’s a whole different discussion, so here we are simply going to view the time series of our data. To view your data, go back to the home page of your MindSphere tenant and navigate to the <strong>Fleet Manager</strong>. Search for the instance of your custom Type that you created and click on it. The page should then show all the aspects associated with your type in the central window. Click on an aspect to see the time series of incoming data. To view data that cannot be graphed, like strings and Booleans, click on the checkerboard looking button in the bottom right corner under the graph.</p>



<p class="wp-block-paragraph">As you can see in the figure below, there are two instances of the three values I sent with my simple script because I ran the script twice.</p>



<p class="wp-block-paragraph"><p style="text-align: center;"><img decoding="async" alt="Time series data is conveniently easy to view in the Fleet Manager." src="https://static.dmcinfo.com/wp-content/uploads/2025/05/ViewData.png"></p></p>



<h2 id="h-final-tips" class="wp-block-heading">Final Tips</h2>



<ul class="wp-block-list">
<li>Take time to plan out your data organization in advance.
 
 
<ul class="wp-block-list" style="list-style-type:circle;">
  

<li>The systems of aspects, types, and assets and points, sources, and assets can seem convoluted at first, but if you take the time to plan out your project, then these organizational layers can prove very useful.</li>


 </ul>
</li>



<li>Be careful of breaking your tag mappings in MindSphere.
 
 
<ul class="wp-block-list" style="list-style-type:circle;">
  

<li>Remember that making any changes to your OA asset configuration will break all of your tag mappings, and you will have to delete and reestablish those mappings manually. This is another reason to have a good organization plan in mind before digging into things.</li>


 </ul>
</li>



<li>One call to Upload 1000 datapoints is a lot faster than 1000 calls to upload one datapoint each.</li>
</ul>



<p class="wp-block-paragraph">Learn more about DMC&#8217;s <a href="/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/wincc-open-architecture-development">WinCC OA services</a> and our <a href="/services/manufacturing-automation-and-intelligence/plc-programming/siemens-s7-plc-programming">Siemens expertise</a>. <a href="/contact">Contact us</a> with any inquiries.&nbsp;</p>
<p>The post <a href="https://static.dmcinfo.com/blog/20593/how-to-setup-a-wincc-oa-application-to-push-data-to-mindsphere/">How To Setup a WinCC OA Application to Push Data to MindSphere</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>4 Tips for Launching a Product on Emerging Cellular Networks</title>
		<link>https://static.dmcinfo.com/blog/20846/4-tips-for-launching-a-product-on-emerging-cellular-networks/</link>
		
		<dc:creator><![CDATA[Tim Jager]]></dc:creator>
		<pubDate>Fri, 04 Oct 2019 14:51:46 +0000</pubDate>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Embedded Development & Programming]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Low-Power Embedded Design]]></category>
		<category><![CDATA[Cellular Networks]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/20846/4-tips-for-launching-a-product-on-emerging-cellular-networks/</guid>

					<description><![CDATA[<p>The major cellular network providers (AT&amp;T, Verizon, T-Mobile) have launched or are&#160;in the process of launching upgrades to their LTE networks that will enable the deployment of millions of new, previously&#160;impractical IoT&#160;solutions.&#160;LTE-M (aka CAT-M1) and NB-IoT&#160;networks are designed specifically for low-power, low-cost, low-bandwidth&#160;devices. By reducing the&#160;bandwidth, carriers can&#160;offer connectivity at increasingly lower monthly costs. Devices [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/20846/4-tips-for-launching-a-product-on-emerging-cellular-networks/">4 Tips for Launching a Product on Emerging Cellular Networks</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">The major cellular network providers (AT&amp;T, Verizon, T-Mobile) have launched or are&nbsp;in the process of launching upgrades to their LTE networks that will enable the deployment of millions of new, previously&nbsp;impractical IoT&nbsp;solutions.&nbsp;LTE-M (aka CAT-M1) and NB-IoT&nbsp;networks are designed specifically for <a href="https://static.dmcinfo.com/services/embedded-development-and-embedded-programming/low-power-embedded-design">low-power</a>, low-cost, low-bandwidth&nbsp;devices. By reducing the&nbsp;bandwidth, carriers can&nbsp;offer connectivity at increasingly lower monthly costs. Devices using cellular modules may cost as little as $1&nbsp;monthly.</p>



<p class="wp-block-paragraph">These new networks are the future of&nbsp;IoT. However, as this writing, many of these networks still have a lot of kinks to work out. Cellular module vendors are rapidly developing and lunching modules for these networks. These modules are all new and so is the network, so&nbsp;challenges launching a product on one of these networks are to be expected.</p>



<h2 class="wp-block-heading" id="h-what-to-do">What to Do</h2>



<p class="wp-block-paragraph"><strong>1. Know your Module Vendor</strong><br>
When selecting a cellular module <a href="https://static.dmcinfo.com/services/embedded-development-and-embedded-programming/embedded-systems-platforms">vendor</a> make sure they have a good support network. With new network deployments, there will be a LOT of updates happening in the background. The cell providers will be making adjustments and so will the module vendors. It&#8217;s important to understand the level of support you will get from the module vendor if your device happens to uncover a bug or incompatibility between the module and the network, or worse, between the module and a specific cell tower.</p>



<p class="wp-block-paragraph"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/ublox-SARA-R4.png" alt="SARA-R4 by ublox"> <img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Simcon-SIM7000X.png" alt="SIM7000X by Simcon"> <img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/nordic-nRF9160.png" alt="nRF9160 by Nordic"><br> <em>ublox SARA-R4 series, <a href="https://www.simcom.com/product/SIM7000G.html" target="_blank" rel="noreferrer noopener">SIMCom SIM7000X</a>, and <a href="https://www.nordicsemi.com/Products/Low-power-cellular-IoT/nRF9160?utm_term=nordic%20nrf9160&amp;utm_campaign=NRF91+series&amp;utm_source=adwords&amp;utm_medium=ppc&amp;hsa_tgt=kwd-669404695330&amp;hsa_grp=65550591524&amp;hsa_src=g&amp;hsa_net=adwords&amp;hsa_mt=b&amp;hsa_ver=3&amp;hsa_ad=319485577104&amp;hsa_acc=1116845495&amp;hsa_kw=nordic%20nrf9160&amp;hsa_cam=1658684085&amp;gclid=Cj0KCQjw3JXtBRC8ARIsAEBHg4kAtSLOubBGs_G5mjbB44UesNpvOxYqSkBeQ982zXuCBjHqHQdq5AgaAqrbEALw_wcB" target="_blank">Nordic nRF9160</a></em><br> <br> <strong>2. Understand the Module Power Requirements</strong><br> Most of these cellular module vendors provide a lot of marketing material about the low power requirements of their modules. These low power modules promise battery-powered cellular connectivity with years of battery life. It&#8217;s true, these modules have very low average currents while operating. The important thing to understand is that they also have relatively high peak current demands, which means you need to select your battery and design your power circuitry carefully. You won&#8217;t see any cellular IoT devices running on coin cells anytime soon.</p>



<p class="wp-block-paragraph">Lithium Thionyl Chloride is popular cell chemistry for super long-life Wi-Fi or Bluetooth IoT devices, but most of the batteries made with this chemistry fail to provide the high peak current required by the cellular modules. Spiral wound Lithium Thionyl Chloride batteries use the same chemistry but provide higher peak current (by increasing the electrode surface area), however these batteries may still not meet the peak current demands.</p>



<p class="wp-block-paragraph"><img decoding="async" alt="Spiral bound lithium battery diagram" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/spiral-bound-lithium-battery.png"><br>
<em>Spiral wound Lithium Thionyl Chloride batteries</em></p>



<p class="wp-block-paragraph">Instead, you may need to consider hybrid batteries&nbsp;like <a href="https://xenoenergy.com/xlc_capacitor" target="_blank" rel="noreferrer noopener">these</a>&nbsp;from Xeno Energy which consist of a Lithium Thionyl Chloride cell and a parallel supercapacitor. The supercapacitor can provide high peak currents while exhibiting very low leakage.&nbsp; Although the cost is higher for this battery topology, it provides the performance needed for long life cellular IoT devices.&nbsp;</p>



<p class="wp-block-paragraph"><img decoding="async" alt="Hybrid battery graphic" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/hybrid-battery-emerging-cellular-networks.png"><br>
<em>Hybrid battery</em><br>
<br>
<strong>3. Test Your Module in a Wide Variety of Conditions</strong><br>
These modules contain closed-source vendor-supplied firmware. The operation of the module may not be fully documented. Part of your testing protocol should include adding attenuators to the cellular antenna (to simulate poor cellular reception) and observing how the module functions with reduced signal strength.</p>



<p class="wp-block-paragraph">Modules draw significantly more average current when operating at this reduced signal level. Not knowing this ahead of time can be problematic, especially if your product advertises a minimum battery life expectancy.&nbsp;The actual battery life will largely depend on your connection to the cellular network. The total energy required to transmit a message from your device to the backend server can vary significantly depending on your signal strength and the number of retries required.&nbsp;</p>



<p class="wp-block-paragraph"><img decoding="async" alt="Add attenuators to the cellular antenna for testing" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/emerging-celular-networks-attenuator.jpg"><br>
<em>Add attenuators to the cellular antenna to test at a reduced signal strength</em><br>
<br>
<strong>4.&nbsp;Expect and Plan Time for Network Issues</strong><br>
These networks are going to be great, but until they are fully stable your product launch is going to go slower than you hoped. Add extra time in your launch schedule to account for these unknowns and extend your engineering budget to account for the time required to work through these issues.&nbsp;</p>



<p class="wp-block-paragraph">Keep in mind that different cell towers may contain different vendor hardware.&nbsp;Each of these vendors may be interpreting the CAT-M1/LTE-M specification differently and you may encounter situations where the firmware in your device performs better on some towers than others. If you encounter issues like this,&nbsp;move your device to a different location to&nbsp;see if it picks up a different tower and starts working. Eventually, these issues will be worked out by the carriers and module providers, but you should initially be prepared to work through these situations during your testing and product rollout.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>



<p class="wp-block-paragraph"><em><img decoding="async" alt="Two cell towers" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/emerging-cellular-networks-cell-towers.jpg"><br>
The&nbsp;firmware in your device may perform better on some cell towers than others due to hardware differences</em></p>



<p class="wp-block-paragraph"><strong>Learn more about DMC&#8217;s <a href="https://static.dmcinfo.com/services/application-development/iot-solutions">IoT solutions</a>.&nbsp;</strong></p>
<p>The post <a href="https://static.dmcinfo.com/blog/20846/4-tips-for-launching-a-product-on-emerging-cellular-networks/">4 Tips for Launching a Product on Emerging Cellular Networks</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DMC to Present at UEI Seminar Series on April 25</title>
		<link>https://static.dmcinfo.com/blog/23401/dmc-to-present-at-uei-seminar-series-on-april-25/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Thu, 01 Mar 2018 16:30:31 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Embedded Development & Programming]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[IoT]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/23401/dmc-to-present-at-uei-seminar-series-on-april-25/</guid>

					<description><![CDATA[<p>DMC Project Director, Jon Carson, will lead presentations at the United Electronic Industries educational seminar series on April 25, 2018. A morning session and an afternoon session will be held in Hauppauge, NY. The seminar is targeted to engineers and admission is free. The morning seminar&#8217;s topic is &#8220;Aerospace Test and Control Applications.&#8221;&#160;The afternoon seminar will focus on [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/23401/dmc-to-present-at-uei-seminar-series-on-april-25/">DMC to Present at UEI Seminar Series on April 25</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">DMC Project Director, Jon Carson, will lead presentations at the <a href="https://www.ueidaq.com/">United Electronic Industries</a> educational seminar series on April 25, 2018. A morning session and an afternoon session will be held in Hauppauge, NY. The seminar is targeted to engineers and admission is free.</p>



<p class="wp-block-paragraph">The morning seminar&#8217;s topic is &#8220;Aerospace Test and Control Applications.&#8221;&nbsp;The afternoon seminar will focus on &#8220;IoT Applications for Your Industry.&#8221;&nbsp;UEI and DMC will lead discussions on hardware and software technology to accelerate your design. The seminars will also cover implementation of specialized data acquisition and control solutions with&nbsp;hands-on demonstrations.</p>



<h2 class="wp-block-heading" id="h-event-agenda"><strong>Event Agenda</strong></h2>



<p class="wp-block-paragraph"><strong>Morning Session:&nbsp;Aerospace Test &amp; Control Applications</strong><br>
10 AM &#8211; 12 PM (Breakfast Included)</p>



<p class="wp-block-paragraph">Aerospace Test and Control</p>



<ul class="wp-block-list">
<li>ARINC 429 &amp; MIL-STD-1553 &amp; ARINC 664 / AFDX<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li>



<li>Hardware/software configuration and “on/off-line” monitoring</li>



<li>Custom speeds, scheduling methods, monitoring, and optimization</li>
</ul>



<p class="wp-block-paragraph">Engine Test Cells</p>



<ul class="wp-block-list">
<li>High-Speeded Strain Inputs, PTs, RTDs, TCs, Relays w/ monitoring</li>



<li>Deterministic, Safety Critical engine monitoring and control</li>



<li>Direct Speed Inputs using Variable Reluctance, Hall Effect, TT</li>
</ul>



<p class="wp-block-paragraph"><strong>Afternoon Session:&nbsp;&nbsp;IOT Applications for Your Industry</strong><br>
1 PM &#8211; 3 PM (Lunch Included)</p>



<p class="wp-block-paragraph">IOT Applications for Your Industry</p>



<ul class="wp-block-list">
<li>Business justifications, case studies, and platform/technology specifications</li>
</ul>



<p class="wp-block-paragraph">Industrial Cybersecurity in a Connected World&nbsp;</p>



<ul class="wp-block-list">
<li>Security fundamentals, best practices, and real-world examples to improve security while still taking advantage of increased connectivity</li>



<li>Hardware vs. Software security</li>
</ul>



<p class="wp-block-paragraph">Industrial Automation</p>



<ul class="wp-block-list">
<li>Comparing differences of OPC-UA/Modbus/EtherCAT</li>
</ul>



<h2 class="wp-block-heading" id="h-about-uei">About UEI</h2>



<p class="wp-block-paragraph">UEI collects real-world data for Aerospace, Energy, and Defense industries to build smart systems that are reliable, flexible, and rugged.&nbsp;</p>



<h2 class="wp-block-heading" id="h-about-dmc">About DMC</h2>



<p class="wp-block-paragraph">DMC is a project-based engineering firm focused on software development and control systems. We develop and implement solutions for a wide range of industries using a variety of technologies and platforms. Since 1996, DMC has succeeded in helping hundreds of clients increase efficiency and productivity by delivering world-class solutions throughout the globe.</p>



<h2 class="wp-block-heading" id="h-registration">Registration</h2>



<p class="wp-block-paragraph"><strong>Learn more about the seminar and register today!</strong></p>
<p>The post <a href="https://static.dmcinfo.com/blog/23401/dmc-to-present-at-uei-seminar-series-on-april-25/">DMC to Present at UEI Seminar Series on April 25</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DMC to Participate in Manufacturing Connectivity Webinar</title>
		<link>https://static.dmcinfo.com/blog/23998/dmc-to-participate-in-manufacturing-connectivity-webinar/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Mon, 14 Aug 2017 11:54:40 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Embedded Development & Programming]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[Special Events]]></category>
		<category><![CDATA[IoT]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/23998/dmc-to-participate-in-manufacturing-connectivity-webinar/</guid>

					<description><![CDATA[<p>DMC will participate in a free webinar panel discussing how to get&#160;started with connectivity in your manufacturing operations on August 16 at 1 p.m. CST. DMC Project Director Nick Shea will join Matteo Dariol and Tobias Conz of Bosch Software Innovations in examining what to consider when implementing connectivity.&#160;The webinar is the third in Bosch&#8217;s [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/23998/dmc-to-participate-in-manufacturing-connectivity-webinar/">DMC to Participate in Manufacturing Connectivity Webinar</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">DMC will participate in a free webinar panel discussing how to get&nbsp;started with connectivity in your manufacturing operations on <strong>August 16 at 1 p.m. CST</strong>. DMC Project Director <a href="https://static.dmcinfo.com/about/employee-bios/nick-shea">Nick Shea</a> will join Matteo Dariol and Tobias Conz of Bosch Software Innovations in examining <strong>what to consider when implementing connectivity</strong>.&nbsp;The webinar is the third in Bosch&#8217;s Connected Manufacturing Webinar Series.</p>



<h2 class="wp-block-heading" id="h-webinar-agenda">Webinar Agenda</h2>



<p class="wp-block-paragraph">When dealing with IIoT implementations, most companies have to choose between the “brownfield” or “greenfield” approach: retrofitting existing legacy systems or starting from scratch without any equipment on the shop floor.&nbsp;</p>



<p class="wp-block-paragraph">In this live webinar, speakers will discuss:&nbsp;</p>



<ul class="wp-block-list">
<li>How to create a network in which intelligent machines can communicate and interact with each other in both a greenfield and brownfield environment</li>



<li>How to connect data from the industrial controls side to the enterprise level</li>



<li>How to build scalable technology solutions to overcome the challenges of existing and new hardware and software systems</li>
</ul>



<h2 class="wp-block-heading" id="h-registration">Registration</h2>



<p class="wp-block-paragraph">Join the discussion to learn from our speakers what to consider when choosing different IT systems at different levels to guarantee connectivity across the entire value chain. Learn more and register.</p>



<p class="wp-block-paragraph">Learn more about DMC&#8217;s <a href="https://static.dmcinfo.com/services/application-development/iot-solutions">IoT expertise</a>.</p>
<p>The post <a href="https://static.dmcinfo.com/blog/23998/dmc-to-participate-in-manufacturing-connectivity-webinar/">DMC to Participate in Manufacturing Connectivity Webinar</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cooking Up New Ideas (and BBQ) at DMC&#8217;s FedEx Day</title>
		<link>https://static.dmcinfo.com/blog/24406/cooking-up-new-ideas-and-bbq-at-dmcs-fedex-day/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Wed, 26 Apr 2017 16:09:46 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Boston]]></category>
		<category><![CDATA[Chicago]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[Denver]]></category>
		<category><![CDATA[Embedded Development & Programming]]></category>
		<category><![CDATA[Houston]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[New York]]></category>
		<category><![CDATA[Siemens PLC]]></category>
		<category><![CDATA[Special Events]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Power BI]]></category>
		<category><![CDATA[Robotics]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/24406/cooking-up-new-ideas-and-bbq-at-dmcs-fedex-day/</guid>

					<description><![CDATA[<p>DMC recently held another one of our favorite company-wide traditions&#8230; FedEx Day! On FedEx Day, everyone in the company takes a break from their day-to-day tasks and works on a project that they think will improve DMC. It&#8217;s a great opportunity to collaborate with people we don&#8217;t normally work with, develop new skills, and have [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/24406/cooking-up-new-ideas-and-bbq-at-dmcs-fedex-day/">Cooking Up New Ideas (and BBQ) at DMC&#8217;s FedEx Day</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">DMC recently held another one of our favorite company-wide traditions&#8230; FedEx Day! On FedEx Day, everyone in the company takes a break from their day-to-day tasks and works on a project that they think will improve DMC. It&#8217;s a great opportunity to collaborate with people we don&#8217;t normally work with, develop new skills, and have fun.<br>
<br>
It&#8217;s called a FedEx Day because&nbsp;the planned project must be delivered by the end of the day. With five offices and more employees than ever, there were tons of projects going on that ranged from super technical internal improvement projects, to fun IoT improvements, to getting our hands dirty cooking for our colleagues or working in the garden.</p>



<p class="wp-block-paragraph">Here are just some of the projects DMC employees worked on this FedEx Day.&nbsp;</p>



<h2 class="wp-block-heading" id="h-dmc-boston">DMC Boston</h2>



<p class="wp-block-paragraph"><a href="https://static.dmcinfo.com/latest-thinking/blog/id/9417/smart-bike-lights"><strong><em>Bike SmartLights – Frank May</em></strong></a></p>



<p class="wp-block-paragraph">Frank&#8217;s car indicates with lights when he&nbsp;hits the&nbsp;brakes, and some cooler cars have lights that turn on when you walk up to the car. Frank wanted his bike to do the same, so he spent the day collaborating with the design firm <a href="http://www.altitudeinc.com/">Altitude</a>&nbsp;getting the core functionality of this working while enjoying getting to ride his bike around the office.<br>
<a href="https://static.dmcinfo.com/latest-thinking/blog/id/9417/smart-bike-lights">Learn more about this project.</a></p>



<p class="wp-block-paragraph"><iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/sZ5h3J__ZS4" width="560"></iframe></p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/DMC-Boston-FedEx-Day-April-2017-Smartlights.jpg" alt="Frank May of DMC Boston Works on his SmartLights project (left), his bike and project partner (right)."/></figure>



<p class="wp-block-paragraph"><br>
<strong><em>DMC Hydroponics – Phil Schaffer, Jirka Hladis, and Eric Baggen</em></strong></p>



<p class="wp-block-paragraph">Phil, Jirka, and Eric B. designed and built a hydroponics system with a time-lapse camera to grow various types of flowers to <em>exponentially </em>increase Zen in DMC Boston. The setup relies on a custom-made Ebb &amp; Flow System, continuously flooding and draining water, which removes the need for an additional aeration system.</p>



<p class="wp-block-paragraph"><iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/D452UD52pko" width="560"></iframe></p>



<p class="wp-block-paragraph">&nbsp;</p>



<p class="wp-block-paragraph">&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/DMC-Boston-FedEx-Day-April-2017-Hydroponics-Eletric-Panel-and-Seeds-and-Planters.jpg" alt="DMC Boston FedEx Day April 2017 Planter, Seeds, Electric Panel. "/></figure>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/DMC-Boston-FedEx-Day-April-2017-Hydropinics-setup-and-drillingjpg.jpg" alt=""/></figure>



<h2 class="wp-block-heading" id="h-dmc-chicago"><br>
DMC Chicago</h2>



<p class="wp-block-paragraph"><strong><em>Model Train – Gina Zak</em></strong></p>



<p class="wp-block-paragraph">Gina&nbsp;set up an N-scale model train set to run along the quad.&nbsp;The project is just in its beginning phases with wiring the track, power supply, and model building lights. Eventually, they&#8217;d like to have the train run all the way around their quad with automated bridges! &nbsp; &nbsp; &nbsp;&nbsp;</p>



<p class="wp-block-paragraph">&nbsp;<br>
​​​​​​<br>
<strong><em>Cooking for Colleagues – Smoked Meat, Mac n’ Cheese, Cornbread and Coleslaw – Patrick Corcoran, Spencer Glesmann, Grant Anderson, Molly Graham, Amy Costello, Heather Talbert, Elisha Harris, John Toljanic, Courtney Mitchell</em></strong></p>



<p class="wp-block-paragraph">Patrick and Spencer took the lead planning a follow-up to the Cooking for Colleagues&nbsp;initiative that our President&nbsp;Frank Riordan kicked off at the <a href="https://static.dmcinfo.com/latest-thinking/blog/id/9369/fedex-day-fosters-continuous-innovation">last FedEx Day</a>.</p>



<p class="wp-block-paragraph">For this FedEx Day, Patrick and Spencer pulled out all the stops and planned a smoked meat feast that included brisket and pork butt, coleslaw, cornbread muffins, and 50 lbs. of <a href="http://www.spoonforkbacon.com/2014/04/creamy-skillet-mac-cheese/">mac n&#8217; cheese</a>. They worked tirelessly overnight using Patrick&#8217;s smoker to prepare the meat in&nbsp;DMC&#8217;s parking lot. It took lots of mini-teams to pull everything together, but it was more than worth the labor.&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/DMC-Chicago-FedEx-Day-April-2017-Cooking-for-Colleagues-Cornbread-Cooking-and-Finished-Product-Centered.jpg" alt="DMC Chicago FedEx Day April 2017 Heather and Molly mix up cornbread muffins, seen finished on the left."/></figure>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/DMC-Chicago-FedEx-Day-April-2017-Cooking-for-Colleagues-Grant-Courtney-and-John-T-High-Res.jpg" alt="Cooking for Colleagues team members work on getting the mac n' cheese ready to go for lunch."/></figure>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/DMC-Chicago-FedEx-Day-April-2017-Cooking-for-Colleagues-Slicing-Smoked-Meat-High-Res-Centered.jpg" alt="Spencer rests while spending the night at DMC smoking meat, delicious brisket is sliced, Spencer and Patrick help slice and serve smoked meats in the kitchen."/></figure>



<p class="wp-block-paragraph">Between the meat, the mac n&#8217; cheese, the coleslaw, and the cornbread, there was enough food to feed everyone for lunch on FedEx day&#8230; and again on Friday when we all met to review&nbsp;our completed projects.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/DMC-Chicago-FedEx-Day-April-2017-Cooking-for-Colleagues-Time-to-eat-hi-res.jpg" alt="DMC Chicago employees wait in line to plate up food."/></figure>



<p class="wp-block-paragraph"><br>
<em><strong>Ping Pong Demo – Beth Reinert</strong></em></p>



<p class="wp-block-paragraph">Beth spent FedEx day continuing to rework the ping pong demo, which uses LabVIEW to play solo. She focused on&nbsp;ensuring the demo correctly locates the ball&#8217;s current position, predicts the ball’s path accurately, and actuates the solenoid at the correct time to hit the ball.</p>



<p class="wp-block-paragraph">&nbsp;</p>



<p class="wp-block-paragraph"><br>
<em><strong>Custom Tap Handles – Nikhil Holay, Jeff McCormick, David Sestrich, Ken Brey</strong></em></p>



<p class="wp-block-paragraph">Nikhil, Jeff, David, and Ken built engraved wooden tap handles for our kegerator. They used Fusion 360 for the CAD modeling/G-code generation, and the X-Carve in our office lab for the actual cutting.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/DMC-Chicago-FedEx-Day-April-2017-xCarv-tap-handles.jpg" alt="Jeff McCormick and Nikhil Holday use the xCarv to make custom tap handles for the Kegerator. Ken Brey came in for this assist. "/></figure>



<p class="wp-block-paragraph"><br>
<br>
<br>
<em><strong>DMC Ping Pong App – Jordan Harris and Curtis Weir</strong></em></p>



<p class="wp-block-paragraph">DMC&#8217;s ping pong app uses a GoPro to record pong sessions and ranks players by their wins and losses. Curtis and Jordan worked on replacing the old GoPro Hero3 with a new GoPro Hero5 Session camera. They also updated the replay capture code on the Ping Pong App to use the new camera and upload replays to YouTube.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Ping-Pong-GoPro-Code.jpg" alt="Screenshot of the Ping Pong App UI."/></figure>



<p class="wp-block-paragraph">We all look forward to more crazy ping pong shots being caught on camera!</p>



<p class="wp-block-paragraph"><iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/72Q6_8Cv3yQ" width="560"></iframe><br>
<br>
<br>
<em><strong>DMC Rooftop Garden &#8211; Anne Patterson, Jimmy Brady, Deborah Nunaley, Heather Talbert, Lexi Torres, Molly Graham, Natalie Meeker, Alex Krejcie, Matt Goedke</strong></em></p>



<p class="wp-block-paragraph">The DMC <a href="https://static.dmcinfo.com/latest-thinking/blog/id/8817/moisture-sensing-automatic-garden-watering-system">rooftop garden</a> is turning five&nbsp;this year, and the garden crew spent part of the day prepping the soil for planting in May. An additional team worked to update the automatic watering system&#8217;s moisture detection. &nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/DMC-Chicago-FedEx-Day-April-2017-Gardening-Prep.jpg" alt="Lexi, Heather, and Jimmy prep the soil for planing in May in the Chicago rooftop garden. "/></figure>



<p class="wp-block-paragraph"><br>
<strong>Monitoring Moisture and Repairing the Auto Watering System</strong></p>



<p class="wp-block-paragraph">Natalie and Alex used <a href="https://powerbi.microsoft.com/en-us/?WT.srch=1&amp;WT.mc_id=AID559406__SEM_DW4pgaXs&amp;utm_campaign=PBIQ4Relaunch&amp;utm_keyword=power%20bi&amp;gclid=CJGy58rz6NMCFQcIaQodXbYGQQ">Power BI</a> to work on moisture content detection.There is a wi-fi chip that <a href="https://www.arm.com/">ARM</a>’s embedded IoT platform uses to talk&nbsp;to <a href="https://azure.microsoft.com/en-us/">Azure</a>&nbsp;and Azure talks to us.&nbsp;This allows the watering system to track moisture over time, keep the plants happy with water as they need it, and prevents accidental flooding of the garden and the roof!</p>



<p class="wp-block-paragraph"><br>
<br>
<br>
<br>
<br>
Unfortunately, it won&#8217;t water the office dogs, but they did&nbsp;check out the roof while everyone worked on the garden.<br>
<br>
<br>
&nbsp;</p>



<h2 class="wp-block-heading" id="h-dmc-denver">DMC Denver</h2>



<p class="wp-block-paragraph"><em><strong>RF Chamber – Boris Cherkasskiy</strong></em></p>



<p class="wp-block-paragraph">The aim of this project was to create a basic RF test lab to perform rough FCC pre-pre-compliance (not an official term) validation at the DMC office before committing to the full test at an external lab.&nbsp;The team built and tested&nbsp;a portable/collapsible RF semi-anechoic enclosure, utilizing nylon-based nickel/copper fabric and a removable lid with transparent mesh for an easy access and visual monitoring.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Boris-RF-Chamber.jpg" alt="RF Chamber built by Boris at DMC Denver."/></figure>



<p class="wp-block-paragraph">&nbsp;</p>



<p class="wp-block-paragraph"><strong><em>Drink Bot Project &#8211; Cameron Fyfe and Ross Bunker</em></strong></p>



<p class="wp-block-paragraph">Cameron and Ross worked on the Denver drink bot, a portable demo that utilizes Siemens hardware to mix drinks, similar to <a href="https://static.dmcinfo.com/blog/26514/dmcs-mad-science-drinxperiment-with-siemens-plcs/" type="post" id="26514">Boston&#8217;s Drinxperiment.</a> This update for the drink bot included integrating <a href="https://support.microsoft.com/en-us/help/17214/windows-10-what-is">Cortana</a>. The Drink Bot will debut at the <a href="http://www.industry.usa.siemens.com/AUTOMATION/US/EN/Pages/automation-technology.aspx">Siemens</a><a href="https://events.sw.siemens.com/en-US/"> Automation Summit</a> in June which will <a href="https://static.dmcinfo.com/latest-thinking/blog/id/9411/2017-siemens-automation-summit-to-feature-4-dmc-presentations">feature 5 DMC Presentations</a>. </p>



<p class="wp-block-paragraph"><iframe loading="lazy" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/SrqpMT5M8so" width="560">&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;!&#8211;cke_bookmark_323S&#8211;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;!&#8211;cke_bookmark_323E&#8211;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;</iframe></p>



<h2 class="wp-block-heading" id="h-dmc-houston">DMC Houston</h2>



<p class="wp-block-paragraph">DMC Houston spent time making their office more beautiful&nbsp;following&nbsp;their recent <a href="https://static.dmcinfo.com/latest-thinking/blog/id/9404/dmc-houston-office-expansion-is-underway">office expansion</a>.</p>



<h2 class="wp-block-heading" id="h-dmc-new-york">DMC New York</h2>



<p class="wp-block-paragraph"><em><strong>Grocery App – Simon Healey and Liz Rapoport</strong></em></p>



<p class="wp-block-paragraph">Liz and Simon worked on a grocery app to make restocking the office kitchen faster and easier.&nbsp;To speed up the process, they wrote a WPF application that connects to a database with a list of their most ordered items and lets them select directly from the app. They&nbsp;just add items to the cart, then press one button which compiles the list and emails it to Cat, the Administrative Assistant in Boston.<br>
<br>
</p>



<p class="wp-block-paragraph">&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/DMC-New-York-FedEx-Day-April-2017-Grocery-App-Emailjpg.jpg" alt="Screenshot of email to Cat in Boston from DMC New York ordering groceries. "/></figure>



<p class="wp-block-paragraph"><br>
<strong><em>Office Beautification</em></strong></p>



<p class="wp-block-paragraph">DMC New York also spent some time making their office space more organized and beautiful. They hung shelves and organized their lab. They also found a space to hang their college pennants!</p>



<p class="wp-block-paragraph"><br>
<br>
FedEx Day is just one more reason DMC continues to be named one of&nbsp;<a href="https://static.dmcinfo.com/latest-thinking/blog/id/9401/dmc-makes-list-of-chicagos-top-5-places-to-work">Crain&#8217;s Best Places to Work</a>&nbsp;in Chicago.&nbsp;</p>
<p>The post <a href="https://static.dmcinfo.com/blog/24406/cooking-up-new-ideas-and-bbq-at-dmcs-fedex-day/">Cooking Up New Ideas (and BBQ) at DMC&#8217;s FedEx Day</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DMC to Host Microsoft Partners to Discuss IoT </title>
		<link>https://static.dmcinfo.com/blog/24545/dmc-to-host-microsoft-partners-to-discuss-iot/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Thu, 09 Mar 2017 10:33:41 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Chicago]]></category>
		<category><![CDATA[Digital Workplace Solutions]]></category>
		<category><![CDATA[Special Events]]></category>
		<category><![CDATA[IoT]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/24545/dmc-to-host-microsoft-partners-to-discuss-iot/</guid>

					<description><![CDATA[<p>DMC is proud to host Microsoft Partners at the Chicagoland International Association of Microsoft Channel Partners (IAMCP) and Women in Technology (WIT) March meeting. &#160; The IAMCP and WIT community members will gather at DMC on Tuesday, March 28 3 p.m. – 5 p.m.&#160;to learn about Microsoft’s Azure Platform Services and the Internet of Things [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/24545/dmc-to-host-microsoft-partners-to-discuss-iot/">DMC to Host Microsoft Partners to Discuss IoT </a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">DMC is proud to host Microsoft Partners at the Chicagoland International Association of Microsoft Channel Partners (IAMCP) and Women in Technology (WIT) March meeting. &nbsp;</p>



<p class="wp-block-paragraph">The IAMCP and WIT community members will gather at DMC on <strong>Tuesday, March 28 3 p.m. – 5 p.m.&nbsp;</strong>to learn about <strong>Microsoft’s Azure Platform Services and the Internet of Things (IoT)</strong>.&nbsp;</p>



<p class="wp-block-paragraph">Microsoft Azure Platform Services is comprised of some lesser-known services that can be cost-saving alternatives to the better-known Azure Infrastructure Services (IaaS &#8211; Virtual Machines, Blob Storage, etc.). <a href="https://static.dmcinfo.com/services/digital-workplace-solutions/microsoft-consulting-services/microsoft-azure-cloud-solutions-and-services">Azure</a> Platform Services includes the essential components of <a href="https://static.dmcinfo.com/services/application-development/iot-solutions">Internet of Things</a> (IoT) solutions. &nbsp;</p>



<p class="wp-block-paragraph">In addition to networking time for Microsoft Partners, DMC will present on the following topics:</p>



<ul class="wp-block-list">
 

<li>Overview of Azure Platform Services&nbsp;</li>


 <br />
 

<li>When to use Azure Platform Services as an alternative&nbsp;to Azure Infrastructure Services</li>


 <br />
 

<li>Why partners and businesses cannot ignore the Internet of Things (IoT)</li>


 <br />
 

<li>Azure IoT Services Overview (e.g. IoT Hub, IoT Suite, Stream Analytics, Azure SQL, Dynamics 365 Field Services, Power BI)</li>


 <br />
 

<li>Live interactive demo of an Azure IoT application</li>


</ul>



<p class="wp-block-paragraph">This event will be led by Rick Rietz, Director of Consulting Services at DMC and <a href="https://static.dmcinfo.com/about/employee-bios">Peter Rijks</a>, an Azure application development specialist at DMC. </p>



<p class="wp-block-paragraph">DMC has implemented dozens of IoT solutions, using commercial platforms and custom developed architectures. The maturing of the Azure platform has allowed DMC to take advantage of Azure Platform Services to reduce cost and complexity of creating cloud-based Web Applications, Web Services, and IoT solutions. &nbsp;</p>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://static.dmcinfo.com/blog/24545/dmc-to-host-microsoft-partners-to-discuss-iot/">DMC to Host Microsoft Partners to Discuss IoT </a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Creating a Slackbot Personal Assistant with .NET and an Office Fish</title>
		<link>https://static.dmcinfo.com/blog/24580/creating-a-slackbot-personal-assistant-with-net-and-an-office-fish/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Mon, 06 Mar 2017 15:33:13 +0000</pubDate>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Boston]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[C# .NET Application Development]]></category>
		<category><![CDATA[IoT]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/24580/creating-a-slackbot-personal-assistant-with-net-and-an-office-fish/</guid>

					<description><![CDATA[<p>It wasn&apos;t too long ago that DMC Boston added a Particle Internet Button&#160;to remind us to feed our fish, Stevie. With Stevie doing so well, and DMC&apos;s FedEx Day&#160;coming up, we started brainstorming of what else could we do. We landed on turning Stevie the fish into an alternate online personality in the form of [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/24580/creating-a-slackbot-personal-assistant-with-net-and-an-office-fish/">Creating a Slackbot Personal Assistant with .NET and an Office Fish</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">It wasn&apos;t too long ago that DMC Boston added a <a href="https://static.dmcinfo.com/latest-thinking/blog/id/9290/using-iot-to-feed-a-fishn">Particle Internet Button</a>&nbsp;to remind us to feed our fish, Stevie. With Stevie doing so well, and DMC&apos;s <a href="https://static.dmcinfo.com/latest-thinking/blog/id/9369/fedex-day-fosters-continuous-innovation">FedEx Day</a>&nbsp;coming up, we started brainstorming of what else could we do. We landed on turning Stevie the fish into an alternate online personality in the form of a personal assistant bot!</p>

<p class="wp-block-paragraph">Automated personal assistants are everywhere these days. Siri and Google Now keep us talking to our phones. Amazon Echo&nbsp;and Google Homes are in our houses. They are all playing our music, ordering our Ubers, and answering our questions about entertainment, hard news, random facts, etc. The problem? DMC didn&apos;t have one too.</p>

<h2 class="wp-block-heading">StevieBot the Personal Assistant</h2>

<p class="wp-block-paragraph">Instead of being jealous, we engineered away our problem and DMC now has StevieBot!</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/hi_pic.png"  /></figure>

<p class="wp-block-paragraph">StevieBot can do a lot of things like report the weather, search Wikipedia, and define words for us.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/weather_pic.png"  /></figure>

<p class="wp-block-paragraph">He can even tell us jokes.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/joke_pic.png"  /></figure>

<p class="wp-block-paragraph">Based on the <a href="https://github.com/jammerware/margiebot/wiki">MargieBot architecture</a>, DMC&apos;s StevieBot has a simple framework for .NET with a great library. You can find all the resources you need at MargieBot to begin creating your own custom Slackbots.</p>

<h2 class="wp-block-heading">SlackBot Framework Functionality&nbsp;</h2>

<p class="wp-block-paragraph">The framework operates by creating a bot configuration (i.e. giving your bot a personality). Like the fish who came before him, StevieBot needed that special &quot;something&quot; that makes him part of the DMC family.&nbsp;</p>

<p class="wp-block-paragraph">To achieve this &quot;personality&quot;, the program loads various custom responders that you create.</p>

<p class="wp-block-paragraph">The program then establishes a connection with Slack (as well as any other webs services) using a unique API key.</p>

<h2 class="wp-block-heading">Slack to Bot Implementation</h2>

<ol class="wp-block-list">
 <li>In Slack, implement StevieBot as a <a href="https://api.slack.com/bot-users">Bot User</a>.</li>
 <li>Create a custom Slackbot by going to your team&rsquo;s settings page.</li>
 <li>Select create a new bot user.</li>
</ol>

<p class="wp-block-paragraph"><strong>Take note: To establish communication between the framework and Slack, you need the auto-generated API Token.</strong></p>

<h2 class="wp-block-heading">Bot Considerations &#8211; Bot Parameters</h2>

<p class="wp-block-paragraph">Once initialized, the framework waits for Slack to send a notification that it has received a message. The framework then parses the message and determines if the bot should respond.</p>

<p class="wp-block-paragraph">The framework considers:</p>

<ul class="wp-block-list">
 <li>Who sent the message?</li>
 <li>Was the bot mentioned in the message?</li>
 <li>Was it a direct message?</li>
</ul>

<p class="wp-block-paragraph"><strong>Take note: These parameters are all configurable and can to determine how the bot will respond.</strong></p>

<p class="wp-block-paragraph">The framework checks the message for regular expressions using .NET&rsquo;s included RegEx engine. The results of the checks determine the appropriate responder.</p>

<p class="wp-block-paragraph"><strong>Finally, StevieBot creates a message and posts it back to Slack!</strong></p>

<h2 class="wp-block-heading">The Future &#8211; SlackBots and Particle Cloud Communication&nbsp;</h2>

<p class="wp-block-paragraph">StevieBot also communicates with the Particle Cloud. This paves the way for potential IoT fish tank functionality in the future. We&rsquo;ve already purchased some components including pH, temperature, and turbidity sensors.</p>

<p class="wp-block-paragraph">For now, we can ask Stevie to poll the various Particle boards around the office and check their status.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/particle_pic_1.png"  /></figure>

<h2 class="wp-block-heading">Conclusion</h2>

<p class="wp-block-paragraph">Built on an expandable framework, plans exist to implement in StevieBot aspects of the neural network architecture for machine learning so StevieBot can be more proactive with messages. The future options are endless, but an assistant who can recommend lunches based on individual tastes sounds like a perfect start.</p>

<p class="wp-block-paragraph">Fun projects aren&apos;t the only thing we do! <a href="https://static.dmcinfo.com/services/application-development/pc-application-development/c-net">Explore more of&nbsp;</a><a href="https://static.dmcinfo.com/services/application-development/pc-application-development/c-net">DMC&apos;s</a><a href="https://static.dmcinfo.com/services/application-development/pc-application-development/c-net">&nbsp;C# </a><a href="https://static.dmcinfo.com/services/application-development/pc-application-development/c-net">and .</a><a href="https://static.dmcinfo.com/services/application-development/pc-application-development/c-net">Net Development Services</a>.</p>

<p class="wp-block-paragraph">If you&apos;re sorry you missed another FedEx Day with us, <a href="https://static.dmcinfo.com/careers">check out our Career&nbsp;page</a>!</p>
<p>The post <a href="https://static.dmcinfo.com/blog/24580/creating-a-slackbot-personal-assistant-with-net-and-an-office-fish/">Creating a Slackbot Personal Assistant with .NET and an Office Fish</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>BlueGecko BGScript Development with VScode</title>
		<link>https://static.dmcinfo.com/blog/24770/bluegecko-bgscript-development-with-vscode/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Tue, 10 Jan 2017 11:48:13 +0000</pubDate>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Software Development]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/24770/bluegecko-bgscript-development-with-vscode/</guid>

					<description><![CDATA[<p>This tutorial will outline the process to configure Visual Studio Code for developing Blue Gecko script code. It assumes you have some familiarity with the BlueGecko scripting language. If not, check out the developer guide. Blue Gecko scripting is a high level programming language designed for the Silicon Labs line of Blue Gecko Bluetooth modules. Installation Configure Tools [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/24770/bluegecko-bgscript-development-with-vscode/">BlueGecko BGScript Development with VScode</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">This tutorial will outline the process to configure Visual Studio Code for developing Blue Gecko script code. It assumes you have some familiarity with the BlueGecko scripting language. If not, check out the <a href="https://www.silabs.com/documents/public/user-guides/ug209-bgscript-scripting-language.pdf" target="_blank" rel="noreferrer noopener">developer guide</a>. Blue Gecko scripting is a high level programming language designed for the Silicon Labs line of Blue Gecko Bluetooth modules.</p>



<h2 class="wp-block-heading" id="h-installation">Installation</h2>



<ol class="wp-block-list">
<li>Download and install the BLE <a href="http://www.silabs.com/products/wireless/bluetooth/bluetooth-smart-modules/Pages/bluegiga-bluetooth-smart-software-stack.aspx" target="_blank">SDK</a> and the <a href="http://www.silabs.com/products/wireless/bluetooth/bluetooth-smart-modules/Pages/bluegiga-bluetooth-smart-software-stack.aspx" target="_blank">BLE Update Tool</a> using the default location and agree&nbsp;to licenses.&nbsp;

 

 
 
<p class="wp-block-paragraph">These installs provide&nbsp;the complier and some example code as well as the download tool to push the compiled code to the Bluetooth chip. Wait to restart your system until you have completed the next step of installing Visual Studio Code.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/BGS-Blog-Download-Page.png" alt="Screenshot of download page "/></figure>
</li>



<li>Download and install <a href="https://code.visualstudio.com/download">Visual Studio Code</a> using the default location and agree&nbsp;to licenses.&nbsp;
 

 
 
<p class="wp-block-paragraph">I recommend selecting <strong>Add &#8220;Open with Code&#8221; action to Windows Explorer file context menu </strong>and <strong>Add &#8220;Open with Code&#8221; action to Windows Explorer directory context menu</strong> from the list of Additional Tasks. This will provide quick right-click functionality to open our BGScript project later.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/BGS-Blog-VSCode-Config.png" alt="Screenshot of Setup Configuration for Visual Studio Code"/></figure>
</li>



<li>Restart your system now so that the BLE SDK, the BLE Update Tool, and Visual Studio Code can finish their installations.&nbsp;</li>
</ol>



<h2 class="wp-block-heading" id="h-configure-tools">Configure Tools</h2>



<p class="wp-block-paragraph">Now that all our tools are installed, let’s configure VScode so that we can compile and download our BGScript code straight from the editor.&nbsp;</p>



<ol class="wp-block-list">
<li>Open Windows explorer, and navigate to:&nbsp;
 

 

 
 
<p class="wp-block-paragraph"><strong><span style="font-family: courier new;">C:\Bluegiga\ble-1.4.2-130\example\&lt;your device&gt;\bgdemo&nbsp;</span></strong></p>



<p class="wp-block-paragraph">If you didn&#8217;t use the default location for the BLE SDK, or if the version of the SDK has been updated, your path will be different. I&#8217;m using the BLE113, so my path is:</p>



<p class="wp-block-paragraph"><strong><span style="font-family: courier new;">C:\Bluegiga\ble-1.4.2-130\example\dkble113\bgdemo</span></strong></p>
</li>



<li>Right click in the window and select <strong>Open with Code</strong>. This will open all of the files in the folder in a new instance of VScode.&nbsp;
 
 
<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/BGS-Blog-Open-With-Code.png" alt="Screenshot of Windows Explorer, Open with Code menu selection"/></figure>
</li>



<li>In VScode, type the hot key <strong>Ctrl+Shift+P</strong> to open the Command Palette, and then type <strong>Task </strong>to bring up the options with the keyword &#8220;Task&#8221;.
 
 
<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/BGS-Blog-Configure-Task-Runner.png" alt="Visual Studio Code Command Palette - selecting Tasks: Configure Task Runner"/></figure>
</li>



<li>Select <strong>Tasks: Configure Task Runner</strong>. This opens some of the defaults tasks in VSCode, but we want to create a custom one, so select <strong>Others</strong>. This will create a .vscode folder in our working directory with a tasks.json file.&nbsp;
 

 

 
 
<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/BGS-Blog-Select-Other-Task.png" alt="Selecting Others in the Visual Studio Code Command Palette "/></figure>



<p class="wp-block-paragraph">The task.json defines all the parameters and functionality of the task. It is configured by default to print &#8220;Hello World&#8221; to the terminal in VScode.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/BGS-Blog-Hello-World.png" alt="Visual Studio Code display output of &quot;Hello World&quot;"/></figure>
</li>



<li>Type <strong>Ctrl+Shift+B</strong>. This will run our new task, and you should see the terminal open in VScode and display &#8220;Hello World&#8221;
 
 
<p class="wp-block-paragraph">We&#8217;ll update this task to compile our BGScript software instead of the default functionality when we type Ctrl+Shift+B. Since we&#8217;ll also need a task to download the compiled hex file to the Bluetooth module, we&#8217;ll need to modify this single task to handle multiple tasks.&nbsp;</p>
</li>



<li>Download the attached task.json file and replace your current tasks.json file. With this new file, instead of calling the &#8216;echo&#8217; command, we&#8217;ll call the Windows ‘cmd’ command and pass it different executables and files based on which task we want to run.&nbsp;</li>
</ol>



<h2 class="wp-block-heading" id="h-running-tasks">Running Tasks</h2>



<p class="wp-block-paragraph">For the top level ‘args’, we use /C as a placeholder for the actual arguments we&#8217;ll pass based on the task we want to run. Each task inside the main task has an arbitrary name and arguments to pass back to the cmd command.&nbsp;</p>



<ol class="wp-block-list">
<li>Pass the first task, defined as <strong>Build</strong>

 
 
<p class="wp-block-paragraph">The <strong><span style="font-family: courier new;">&#8220;isBuildCommand&#8221;: true</span></strong> tells VScode that if we type Ctrl+Shift+B, it should run this specific task. There are a few other hot key tasks, but this is the only one we&#8217;ll use.&nbsp;</p>
</li>



<li>Pass the next task, defined as <strong>Download</strong>. This task will download the compiled code to the module.&nbsp;</li>



<li><strong>Remember to change the path if you didn&#8217;t keep the default installation directory.&nbsp;</strong>
 
 
<p class="wp-block-paragraph">Looking back at the args for the Build command, we can see that it will call the bgbuild executable that was installed with the SDK.</p>
</li>



<li><strong>Make sure you don&#8217;t have multiple BGScript projects in a single directory.&nbsp;</strong></li>
</ol>



<p class="wp-block-paragraph">When the bgbuild.exe is called, it expects a bgproj file that it will compile. The *.bgproj gets the first bgproj file from the working directory.</p>



<h3 class="wp-block-heading" id="h-download-task">Download Task</h3>



<p class="wp-block-paragraph">The args for the Download task are in the&nbsp;command line update tool (bleupdate-cli.exe), which was part of the SDK installation.&nbsp;</p>



<p class="wp-block-paragraph">The bleupdate-cli.exe takes a command, (list, update, get, set) as its first argument. Since we want to update the module, we&#8217;ll pass &#8216;update&#8217; as the command and pass the compiled hex&nbsp;file which was created from our Build task.&nbsp;</p>



<p class="wp-block-paragraph"><strong>Again, make sure there is only a single .hex file in the working directory to ensure we&#8217;re downloading the correct hex file</strong>.&nbsp;</p>



<h3 class="wp-block-heading" id="h-viewing-the-output">Viewing the Output</h3>



<p class="wp-block-paragraph">The last task combines both features into a single task that will build the project and then immediately download it to the Bluetooth module.</p>



<p class="wp-block-paragraph">Now, if you type <strong>Ctrl+Shift+B</strong>, you should see the output of bgbuild.exe for the demo application that we&#8217;re working with.&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/BGS-Blog-bgbuild.png" alt="Visual Studio Code bgbuild.exe output"/></figure>



<ol class="wp-block-list">
<li>Type <strong>Ctrl+Shift+P</strong> to download the hex file so we can run the task from the command palette, then type <strong>Tasks: Run Task</strong> and click <strong>Enter</strong>. You&#8217;ll then see a list of the three tasks that we have defined.&nbsp;</li>



<li>Select <strong>Download</strong> to download the already compiled hex file, or select <strong>Build &amp; Download</strong> to recompile the project before downloading.&nbsp;</li>
</ol>



<h3 class="wp-block-heading" id="h-keybinding-shortcut">Keybinding Shortcut</h3>



<p class="wp-block-paragraph">Now we can quickly compile our BGScript project with <strong>Ctrl+Shift+B</strong>, but it&#8217;s quite a bit of typing to run the other tasks, so let’s create a quick key binding shortcut so that when we press the F6 key, we&#8217;ll immediately be presented with our available tasks, and then we can select the one we want.</p>



<ol class="wp-block-list">
<li>Open the command palette again with <strong>Ctrl+Shift+P</strong> and type <strong>Keyboard</strong>. The only option should be <strong>Preferences: Open Keyboard Shortcuts.</strong>&nbsp;Select it, and two files should open next to each other.

 
 
<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/BGS-Blog-Keybinding.png" alt="Visual Studio Code Command Palette - selecting open keyboard shortcuts"/></figure>
</li>



<li>In the keybindings.json file on the right, enter <strong><span style="font-family: courier new;">{&#8220;key&#8221;: &#8220;f6&#8221;, &#8220;command&#8221;: &#8220;workbench.action.tasks.runTask&#8221;}</span></strong> inside the square brackets.</li>



<li>Save the keybindings.json and close it. Close the Default Keyboard Shortcuts file as well.</li>
</ol>



<p class="wp-block-paragraph">Pressing F6 will now open the command palette with our available tasks available to select.</p>



<p class="wp-block-paragraph">Now that VScode functions more like an IDE rather than a basic text editor, in the next blog I&#8217;ll go through setting up text highlighting to make development easier.</p>



<p class="wp-block-paragraph">Learn more about&nbsp;<a href="/services/embedded-development-and-embedded-programming">DMC&#8217;s Custom Software and Hardware Services</a>.</p>
<p>The post <a href="https://static.dmcinfo.com/blog/24770/bluegecko-bgscript-development-with-vscode/">BlueGecko BGScript Development with VScode</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
