Prepare MXChip device to communicate with Azure IoT Hub

Configure the MXCHip Dev Environment

In this task, you will perform the initial setup for the MXChip device.

  1. If you haven’t already, unpack your MXChip AZ3166 device. The kit includes the AZ3166 controller board and a Micro USB cable that you will use to power it.
  2. Use the micro USB cable to power up your device. The Micro USB cable plugs into the Micro USB port at the top-right of the board. During the initial setup, you will use a USB port on your computer to supply power to your MXChip device. You can use a different USB power supply (like the power supply for your Raspberry Pi), but for the setup process and when you are programming the device, you will need to be connected to a PC or another IP enabled device.
  3. While your computer is running, plug in the USB cable into a free USB port on your computer. Note: The Power light should come on when both ends of the cable are connected.
  1. Locate the B and Reset buttons on the device. The reset button is a smaller button that is located close to the micro USB power connector.
  2. To begin the process for entering AP Mode on the MXChip, press and hold the B button.
  3. While still pressing the B button, press and release the Reset button, and then release the B button. You should see a message similar to the following:

Using a laptop, connect to the WiFi network that is being broadcast by your device.

The device ID for your device is used as the name of the network, so it should be easy to recognize.

For example, in the case shown above our device ID is AZ-c89346841929. When we use a laptop to check for available Wi-Fi networks, we find a new network available with an SSID of AZ-c89346841929. We then click the Connect button to connect to the network being broadcast by our device.

Once you have connected your laptop to the device network, use your laptop to open a browser window, and then navigate to

You should see a page that is similar to the following:

When you have finished it should look like this:

  1. Select your Wi-Fi network, enter the password, and then click Connect
  2. Verify that the MXChip display is now showing a message similar to the following:
  1. On the laptop connected to your MXCHip device, to download the latest firmware, open a browser and navigate to the following address: Download
  2. Save the .bin file to your PC. The file will have a name that is similar to the following: devkit-firmware-
  3. Open the File Explorer app on your laptop.
  4. Notice that the AZ3166 device is now listed as a storage location connected to your laptop.
  5. Use a drag-and-drop operation to copy the saved .bin file to AZ3166 device location. Once the file has been copied, the DevKit will reboot to the latest firmware. You should see that the latest firmware version displayed on the MXChip device.

To test the sensors on your device, press button B.

Continue pressing and releasing the button B to cycle through each sensor.

In next blogpost i will show you how to configure the MXCHip Dev Environment 🙂

How to set up your IoT-hub so you can receive data from your device

In this section I will show you how to set up an IoT-hub that will manage your data that come from your device that we set up in next blogpost.

There is some thing you must think about and I will guide you throw the steps and explain things for you.

First, you have to setup an azure-account and you have possibility to choose a free trial for 12 months with $200 free credits.
When this is done you will see following screen.

Choose then “Create a resource” in upper left corner

Then market place shows up for you and in the search-box write IoT Hub and click it.

Click on “Create”

Then you should see this screen

Here you must be a little bit careful.

1) Subscription Choose how you want the payment Check here how Microsoft set the price
2) Resource group Here you can choose to have multiple iot-hubs in one resource depending on how you want your solution. For now, you choose “Create new” and choose a proper name for your group. Then Azure set up a resource group for you.
3) Region Here you choose the region that is nearest to where you are.
4) IoT hub name This must be an unique name and once you have name it you can not change the name so be careful when you choose your name.

This is how it look for me now

If you think everything looks great you just have to press “Review + Create” If it is looking how you want it just to click “Create”

In upper right corner you can now see that distribution is on the way

Now you can go away for a while and pick some coffee or take a short nap. When the distribution is finished you will have this message

Now you have your own IoT-Hub “Congratulation” You are on the cool way……….

If you press “Go to resource” you can see all information about your IoT-hub.

In a later blogpost I will explain a little bit deeper about IoT-hub and what you can do here. In the next blogpost I will teach you how to configure a device and connect it to your IoT-hub. Check out 🙂

What do you need for an IoT Solution? Part three

  •  Cloud Service Components

In the third and last blogpost in this series I talk about Cloud Service Components

The cloud services you choose is an essential part of your overall solution. In fact, the cloud services used in your solution constitutes the ‘I’ in IoT. There are options from many of the larger companies participating in this space as well as offerings from startups and medium-sized businesses. Now we have to look at categories of services these companies offer to give you an idea of how cloud services fit into an overall IoT architecture.

Cloud Gateways

The concept of a field gateway–a piece of hardware that brokers communication between IoT devices and cloud services. Cloud gateways do more than broker communication. They provide a set of services that devices can run either locally or in the cloud. Cloud gateways can provide workloads such as (among others):
– Authentication and authorization
– Message brokering
– Data storage and filtering
– Data analytics Data Storage Options

Given the centrality of data in an IoT solution, figuring out the right cloud-based data storage and retrieval options ranks high on the list in terms of importance. IoT devices can generate enormous amounts of data very quickly and storing high volumes of data in the cloud cannot become expensive but also unwieldy–you must be able to do something with the data and too much of it can make analytics and decision-making harder.

Data is often time series data and is required to be stored where it can be used in visualization and reporting as well as later accessed for additional processing. It is common to have data split into “warm” and “cold” data stores. The warm data store holds recent data that needs to be accessed with low latency. Data stored in cold storage is typically historical data. Most often the cold storage database solution chosen will be cheaper in cost but offer fewer query and reporting features than the warm database solution.

A common implementation for storage is to keep a recent range (e.g. the last day, week, or month) of telemetry data in warm storage and to store historical data in cold storage. With this implementation, the application has access to the most recent data and can quickly observe recent telemetry data and trends. Retrieving historical information for devices can be accomplished using cold storage, generally with higher latency than if the data were in warm storage.

Analytics Services and Data Visualization


Once data is captured and stored, it only becomes useful when it provides insights into the physical world from which your IoT devices have captured the data. This is where analytic services come into play.

Azure Analysis Services, for example, enable architects to use advanced mashup and modeling features to combine data from multiple data sources, define metrics, and secure data in a single, trusted tabular semantic data model. The data model provides an easier and faster way for users to browse massive amounts of data for ad-hoc data analysis.

Without analytics, data collected from IoT would be too voluminous and unstructured to visualize or gain insights. Analytic services enable architects to build meaningful relationships between sets of data to make it easier to manage. For example, Azure Stream Analytics can take stream data from IoT devices and engineers can specify a transformation query that defines how to look for data, patterns, or relationships. The transformation query leverages a SQL-like query language that is used to filter, sort, aggregate, and join streaming data over a period of time.

Data Visualization

Stream analytics can help condition data so it´s easier to manage and provides models that give insight into what you need to understand or learn. Once the data is conditioned and you’ve created the right models, the data can be visualized using tools like Microsoft’s PowerBI so it can be acted upon.

Data visualization tools can take input from various data streams and combine them into “dashboards” that can be used to tell a story about the data that was collected. Ultimately, this is the goal of IoT.

Machine Learning

Machine Learning (ML) is one of the more exciting developments in modern computer science. It’s a complex field but one that is producing significant positive results with large datasets. IoT devices produces large large volumes of data. Analytic systems help engineers to model the existing data in meaningful ways. Machine learning takes this a step further and can actually make predictions about what new data will show and provide insights that would not be possible without the machine learning algorithms.

As the name states, the technology gives computers the ability to “learn” (predict) from data by expressing trends or a direction future data will take. This can provide engineers with a powerful mechanism for enabling a wide variety of scenarios.

Using big data and machine learning to predict purchasing decisions is one simple example. Suppose a retailer has warehouse space in various cities and needs to determine which items to stock in those cities in order to be able to get products to customers in the most efficient and timely way. Using machine learning the retailer can predict, for example, that a given set of users that purchase a specific television tend to buy a particular type of cable and other accessories like tv stands and audio equipment. This would allow the retailer to keep those items in the warehouse near where those television sales are popular so that if a customer orders the cable or other accessory, the item can be shipped more and get to the customer more quickly.

What do you need for an IoT Solution? Part two

  • IoT Software

Like any piece of complex hardware, IoT devices need an operating system in order to be useful. But because IoT devices tend to be small and resource-constrained, operating systems will vary in functionality, memory footprint, and feature set. Devices also need to be programmed–given the instructions they need to do the tasks that engineers need them to do. There are many vendors developing operating systems and programming tools and the choice you make for any given solution will be the product of several factors including:

– Availability of the software you need
– Compatibility of the software with the devices you’ve chosen
– Compatibility with other software/cloud systems in your solution

Of course, your solution may involve devices with a variety of operating systems and development environments. But the more you add to your solution, the more complex development and maintenance becomes so it pays to be mindful of the software choices you make and the implications of each one during the architectural phase of the project.

What Programming Languages should I chose?
When it comes to programming devices, the operating system running on the device may determine what languages can be used to program it. Many modern hardware devices can support multiple languages and board engineers may develop specific flavors of hardware to support various languages. Microsoft’s IoT core, for example, supports most languages that Windows develop in general supports including C#, C++, and JavaScript. Ubuntu Core, on the other hand, supports Python, Ruby, and Node.js.

This makes choosing a programming platform complex and attempting to even outline the matrix of options here would not present an adequate picture. Instead, we can suggest how to approach the decision-making process when it comes to a programming platform. These suggestions build upon the strategies we’ve been seeing throughout this posts, so some items will be familiar and other items will be new.

Determine what data you want to collect.
Your IoT architecture generally will begin by figuring out what problems you’re solving and this, most times, will be characterized in terms of the data you want to collect. This relates to programming languages because the data you want to collect will impact the devices you choose and the programming language(s) you choose will have to work with the device infrastructure you deploy.

Think about your broader software environment.
When you think about what software platform you want to use, it can be helpful to think about the development environment across your business group or enterprise. By using a language that already is deployed in other areas of your business can make tasks like resource balancing, code sharing, source control, hiring, and similar factors more efficient.

Choose a device or devices platform.
Once you’ve figured out what data you want to collect and have thought about your larger ecosystem, you’ll be better informed when it comes to choosing a device platform. As I said before, you may need more than one device platform so choosing platforms that are the most compatible with items above will give you a more efficient overall environment in which to develop your solution.

What about the cloud?
It may go without saying I’ll say it: an essential component of the software platform when making a platform decision is the cloud services you’ll use to support your software and hardware. I think it’s important to call out here as an essential aspect of the decision-making process.

What do you need for an IoT Solution?

In this series of blogposts, I want to talk about what we need to think about when to set up an IoT Solution before I explain how to do it.

I have split this into 3 blogposts.

This is only parts of what you must think about but can give you insights of how to think.
I will talk about:
– IoT Hardware (This one)
– IoT Software (Part two)
– Cloud Service Components (Part three)

Let´s talk about IoT Hardware

When thinking about building an IoT solution, perhaps the first area of consideration is what hardware you will need. This partly is driven by the fact that data is the main driver behind implementing many IoT solutions so figuring out what data you want to collect and how you want to collect it has a primary place in your architecture.

The hardware implemented in an IoT solution often includes a network infrastructure that is used to connect devices. Still, some devices could be stand-alone. How would this work? A sensor, for example, could collect temperature data or collect data about how a bridge is being stressed but not deliver those data immediately to a network database. A technician could come by on a regular schedule, collect the data from the device using an internet-connected tool which then delivers the data to the database.

IP-enabled Devices

An IP-enabled device is, simply, a device that can establish a connection to a network (for many IoT devices, this means the internet) and have a unique identity on that network. “IP” stands for “Internet Protocol and defines the way messages are delivered over a network. A message in networking terms is just a packet of information and single packet could deliver part of a text message or a video file. Most data that is transferred over the internet uses this communication protocol.

In terms of IoT, an IP-enabled device is one that can connect directly to a network like the internet and transmit or receive data. Examples we commonly think of are the home automation devices like doorbells and thermostats that use an internet connection to communicate with a central server. But industrial-grade IoT devices can be IP-enabled as well. IP-enabled devices require special hardware to enable this functionality.

Non-IP Enabled Devices

As mentioned above, it’s not necessary for a device to be IP-enabled to be a part of an IoT solution. Some devices don’t use IP to connect to other parts of an IoT solution but can use other protocols. These devices don’t connect to the internet per se, but their messages are routed to the internet via other hardware like a field gateway.

Devices can use industry-specific protocols (such as CoAP5, OPC), and short-range communication technologies (such as Bluetooth, ZigBee) to connect to other hardware. For example, when setting up an internet connected lock, you may need first to connect the lock to your phone using Bluetooth to set up a relationship with a cloud service. While this is a temporary situation, you can imagine a scenario where the device can only connect to a local device using Bluetooth and the secondary device brokers all the communication with the cloud service.


We can break this category into two subcategories: sensors and smart sensors. We can define a sensor, then, as a device that collects a specific type of data about the physical environment. As IoT as a technology grows, the list of available sensors most likely will grow with it. There also are communities that will help you build your own sensors if the one you need doesn’t exist.

A smart sensor is a device that takes input from the physical environment and uses built-in compute resources to perform predefined functions upon detection of specific input and then process data before passing it on. That is, the device itself processes the data to some degree before sending it to the next node in the IoT architecture. Sensors of both types can be embedded on other devices which manages communication with a network or stand alone and handle all the necessary functions needed to collect and communicate data. Sensors that can collect data on a wide variety of things actively are being developed.

– Temperature
– Humidity
– Pressure

D365 Field Service together with MS HoloLens creates a unique experience for your field technicians!

Here you have the modern way to make more use of time and money more effectively in your field service organization

Via video call hand-held video through MS HoloLens, the technicians can collaborate with a remote computer or mobile expert and troubleshoot live issues.

Modernize field service

Give the on-site technicians the opportunity to share what they see with remote experts, handsfree with Remote Assist on MS HoloLens. With modern tools like video call through mixed reality, comments and file sharing, technicians and
remote experts can solve problems in their context. The remote expert can show where the problem is, how to replace a piece and guide the technician throughout the process. It saves both time and money.

Solve the problems in a few minutes, not days

When the world is moving fast, and production is overloaded, it’s important to solve complex problems faster and fix the error at first time. With MS HoloLens, the technician does not try to explain how things look over the phone, try to explain how it works, and avoid misunderstandings, making sure you get a
safer service technician who knows that he’s just a touch of a button for help.
Customers get more satisfied because they can get their wrong remedied much faster as the technician will not have to go back to the service center to solve more difficult issues.

This saves you time, reduces travel costs and gains more efficiency.
If you then integrate it with your other processes and systems, you will receive full support for your service organization.

Could it be better?