Back from Google Next Conference: Zebra shares its IoT transformation with MicroEJ and Google Cloud

Top corporations are looking to evolve legacy product lines into “connected” offerings to enable new on-demand capabilities, but designing smart applications and deploying them anywhere, to any device is still a challenge. In this session, you’ll learn how MICROEJ VEE addresses the challenge of supporting fleets of devices that operate on heterogeneous hardware and embedded software versions by leveraging Google Cloud IoT connectivity (more info about MicroEJ partnership with Google IoT Cloud).

Watch the conference video or read the video transcript below to learn how Google’s partnership with MicroEJ enabled Zebra to deploy standard apps across their card and label printer product lines while gaining real-time visibility into usage and performance.






Vidya Adala / IoT Edge Technology Partnerships – Google Cloud

Thank you very much for being with us here at Cloud Next, specifically for this IoT session with our partners Zebra and MicroEJ. When I went to the registration desk, I was really excited. Because behind it, I saw this whole bank of Zebra printers that were printing these badges real time. And I was really excited because that is actually the exact thing we are here to talk about.

We’ll show you a live demo with that printer. We have Zebra who is the leader in the printer market globally. And we have MicroEJ, who is a Google Cloud technology partner, who enables these types of printers to get smart and connect online really quickly and securely. That is for the context.

I’m Vidya Darla, I’m part of Google Cloud. And my focus and responsibility is on developing the edge ecosystem around Google Cloud IoT. With that, I just wanted to talk a little bit about the role Google plays in bringing this whole use case to reality.

When you think about IoT, the biggest technical challenges around the heterogeneous devices is that devices come in all sorts of shapes and colors, compute capability varies, memory capability varies, costs, form factor… The environments that these devices operating in are as well a lot. And connecting all of these [devices] seamlessly, reliably, to the cloud was a problem that has not been solved yet.

This is where a partner like MicroEJ comes in as a Google Cloud technology partner, and their stack basically sits on the devices at the edge. What it does is it makes the data collection and ingestion process, very seamless, very easy and very secure.

In Google Cloud, we see our role as making sure that the infrastructure and the plumbing for getting this data to the cloud is done in a secure, reliable and scalable manner. MicroEJ has a virtualized environment that sits on the edge and makes working with the operating systems that operate on these devices much easier. So MicroEJ’s partnership with Google Cloud is what creates the end to end platform that can be deployed on a whole range of devices.

MicroEJ + Google Cloud = Scalable IoT Platform

We will talk about the mobile printer use case here. It can be deployed on a whole range of devices in a very, very reliable manner, which is a big pain point in IoT today. The last thing I want to call out before I have the next featured speaker come on stage is the fact that both MicroEJ and Google Cloud share a fundamental philosophy about the usage of the platform.  We want it to be no code, at most low code, but low code also in an in a modular way. So that when developers like yourselves are using this platform, you don’t have to rewrite anything from scratch, that defeats the purpose of our existence. And the second thing is security, which is very much a no compromise in the IoT space: the single fastest way to have an IoT project shelved is to have the risk of negative PR, or devices hacked.

So with this technology and approach, we worked with Zebra together. We are very honored to have them as a partner for Google Cloud, to connect these printers to make them online. And real time interactive. With that, let me call on stage Victor Salmon, who heads up new product development at Zebra’s in their specialty printer business, who will talk us through the whys of this use case. And then Fred Rivard will take us through the how and the technological detail that has gone into this.

We are very happy to have you share your story with us, Victor. Thank you.


Victor Salmons – Vice President, New Product Development, ZEBRA Specialty Printing Group

All right, good afternoon, folks. It’s really a pleasure to be here and talk with you about Zebra Technologies. We’re going to talk about thermal printers and about our partnership with MicroEJ.

Let’s start with printers. They are mission critical devices that need to deliver labels, receipts, cards, when the customers need them. These are real time embedded devices right there, electromechanical really complex devices. And they are constrained, right? We know constrained devices in the embedded world, they’re constrained by their design, as well as by the cost, we’re always trading those off constrained by life cycle.

We’re also constrained by that real time component. And what comes to mind is a use case that we have to print 12 inches per second. And 400 microseconds is really, really critical in that use case. Think about it, we have to get data through the system, format bit maps, make bit maps, get them into a print head, and at 12 inches per second, we’re pumping 2400 dots, an eighth of a millimeter every 400 microseconds.

That’s that real kind of time constraint that we have to live under, in order to deliver on those mission critical applications for our customers. But you know, in this day and age, we need to go faster, all that real-time stuff takes us time to develop to make sure we get it right every single time.

Nowadays, things are moving so quickly. IoT is moving, use cases are changing. Imagine if we could have a way to go faster, and develop applications on top of that real time [printing engine] and keep them separated, keep them managed, so that we are delivering real time.

Our partnership with MicroEJ allowed us to solve that problem. I’m going to tease you with that a little bit and talk about it in a minute. But first, I want to talk about Zebra Technologies.

You see Zebra Technologies every day, in your day to day life. You see us in retail, helping you to purchase that shirt, or your favorite dress. You see us behind that delivery driver getting that package to your doorstep quickly and reliably. You see us in health care, matching patients with critical medications. We’re there to get you to your terminal. And last but not least, you see us in the NFL. That’s right, we’re tracking and tracing players in real time. That’s Zebra, we’re right there in front of you.

I’ll just give you a little bit of history. Zebra is celebrating 50 years as a technology company this year. I heard recently that most companies last about 15 years. So we’re real excited about that. We’re a $4.2 billion company, we have over 7000 employees throughout the globe, we are selling in 180 countries, about 95% of the Fortune 500 companies.

But you know, we grew up with printers, and I’ve been a printer guy for a long time, but we are much, much more. Zebra is an end to end solution company. Take a look at all the components that we bring together in order to solve our customer unique needs: workflow optimizations, productivity improvements, all of it comes from this suite of products that build on that solution from barcode printing, mobile computers, scanners, location devices like as I mentioned, as the NFL data platforms. We have introduced a data platform powered by Google, called Savanna, that aggregates all this IoT data in order to create solutions and software.


Zebra Technologies Printers


Our partners can also create those solutions, services and supplies, round out all in order to solve problems for our customers. It makes sense to go on that edge, analyze it, and act on it. That is Zebra Technologies, we’re not that printer company that we grew up to be, we’re definitely that end to end solution company.

All right, let’s go back to printers. I think printers are a work of art, it is their mission critical. Thermal transfers and printers are really a work of art. We built out this powerful OS that kind of takes care of that real time component, and on top of it, we built all of these applications. We’re building this horizontal solution, set this ecosystem in order to solve problems, and help our customers in 4 key verticals: retail, health care, TNL and in manufacturing.


Zebra Technologies Printers


You look at this, you can say we are solving problems every day, but there are still unique needs out there that our customers demand. When there are new use cases, there are new application needs. So, we’ve created a custom application group, all of this internally, to build and solve those customer issues. We solve those problems every day, from standard loan, application, emulations, integrations, all of them with that custom application group. It solves hundreds of customers unique cases every year.

But then, we started to think of a way to open up this powerful [printing] engine that we’ve built, and make it available to outside developers in order to allow them to solve those problems faster. So that’s where this unique solution comes in with MicroEJ.

Let’s take a look at what this looks like. The most important part of this secure Java based application engine is that it sits on top of all that real time stuff that Zebra will take care of.


Zebra Technologies Printers and MicroEJ partnership




So that you can go faster, taking advantage of all of those standard libraries that exist in Java technologies. To sum up, you’re then able to solve unique problems more efficiently and that keep that real time stuff and the applications separated. You know, if you step back and look at it, it really looks like that app revolution that you saw in the mobile world coming into the embedded printing world. It’s a very powerful picture, where we’re enabling external developers with three benefits.

First, as we extend it, we enable external developers to develop these new and unique use cases, maybe web browsing or template printing. All that is required, you can develop yourself.

Second, it will help our internal development. I mentioned all that internal work. So now we can start to take advantage of the same Java capabilities and build out those.

And third, we end up this powerful engine that’s sitting on the edge, performing on the edge. Let’s give it more responsibility, take rid of the hardware and let you write the applications yourselves. A few months ago, at the Consumer Electronics Show, we showed two demos that show you the possibilities here.

First, we implemented and connected to the Google IoT platform, implemented the MQTT [based application] very quickly through that job engine, took advantage of the Twitter client. Second, we were able to send messages back and forth very quickly to a card printer and a thermal printer. And third, we are able to take advantage of the Google Maps client to be able to show location information directly on a card and on the UI. All of this coming from that that Java based application engine.

You can imagine the possibilities of keeping that application layer separated. We’re really excited about our partnership with MicroEJ. And what I like to do now say is thank you very much for the opportunity to present Zebra thermal printers and MicroEJ. Now, let me introduce you to Fred Rivard, CEO of MicroEJ, who will take you through the demonstration, as well as dig into some of the details on this great solution.

Fred Rivard  – CEO, MicroEJ

Fred Rivard, CEO at MicroEJThank you, Victor. Let’s go directly to the virtual device demonstration.

Victor mentioned that we have loaded some software agents. When we started that demonstration for CES, the idea was to pick up what’s already in the Zebra’s platform in terms of applications, just like on your Android phone, you have applications you can download.

So, we downloaded the Twitter and Google Maps agents from the cloud. All that [agents] has been combined very easily on the printer. And here you can see the virtual device [printer].

As soon as you have some kind of virtualization layer, you can work directly at your work station, so you don’t need to write and test your application on all the 40 different printers that exists in Zebra’s product line.

Zebra Technologies Printers at Google Next 2019Let’s go through a few of these applications. This one is a very standard: here you can download a watch to display the time. Let’s move on to the Twitter agent.

Robert [a person in the audience] is now going to tweet some live tweets. Let’s see if we have some [published tweets]. Yes, here they are. You can now live print real-time tweets.

All of that reflects the code that is running on the virtual device.

Let’s now print. So obviously, virtual device does not have any printing engine. However, it’s going to show you what would have been printed if it was a real printer [the image pops-up].

We can now take a look at the connected analytics on Google Cloud. When the cards are printed, it [the printer] also sends information to the cloud, like the temperature heads of the printer, and the latest prints: here we can find the live tweets we’ve shown earlier.


Zebra Technologies Printers - Analytics from Google Cloud Platform


All of that allows people to design applications very fast on the virtual device. Let’s now switch to a real device. As you can see, the display is the same as in the virtual device, and it shows the same behavior. We can see here the watch app that we saw earlier. Same with Twitter. Let’s connect to the same live tweets and print one. Do you hear the card printing out? In fact, it reflects exactly what had happened on the virtual device.

It took us one engineer and three weeks to make that demonstration we just went through:  [assembling] the apps that have been loaded and the ZPL engine, which is how you connect to the underneath printer engine.


MicroEJ VEE connects the Virtual Device to Google Cloud Platform


With this Google Cloud agent, you can publish and subscribe to any MQTT channel. The software will stay the same whatever the hardware or the OS underneath. The behavior of the app will stay the same, so you won’t have to retest, recompile, rebuild, etc. You run this software agent and you can use it to test any printer.

I’ve been asked to give you a bit of sense of the technology, on how it works.

Let’s take a look at what Android has done. At first, our phones were only able to call. In 5 years only, 80% of the mobile phones were running on Android, taking advantage of roughly 1 million apps available on the marketplace. It means that if you let people write applications on any hardware (which are very diverse), it creates a lot of value, through this concept of virtualization.

This is exactly what we have done at MicroEJ. We managed to create a small, tiny sibling version of Android’s virtualization platform.

We target all the devices that are cost-effective. The size of our core engine is roughly 1000 times smaller than Android’s. We target the processors that are below 12$ to $15. The engine itself is roughly 30KB, which is very, very small. We can even say tiny.


MicroEJ compared to Android


Most people tend to compare us to Android, so that’s how we position ourselves [in the market].

One key message is that virtualization is how you separate the hardware from the software. Basically, we reduced the size of the layer needed to virtualize a software. Android and MicroEJ actually serve all those different devices on different levels.

MicroEJ VEE compared to Android

Creating a device and connecting it to the cloud is quite easy. However, the complexity comes from the diversity of the devices that are not at all the same in terms of hardware, OS or software running on them. All of that changes over the time, and there’s a need to capture and create software assets. That’s where virtualization is crucial.


At MicroEJ, we’ve been able to downsize the virtualization layer footprint from 30MB to 30KB.

MicroEJ VEE compared to Android

If you think of someone that has to design a new device, first, you need to find the right hardware. You have roughly 1000 to 10,000 different processors [silicon partNumbers] and 4 to 5 compilers to choose from. If you multiply all those factors, that gives you what we call the software Matrix of Pain. It is impossible to handle those too many combinations, from the software point of view.

Coming back to Android: it took most part of the phones market in only 4 to 5 years because of this ability to virtualize your device, which facilitates the app design. You can now download any app on any device. They [Android teams] managed to take apart the software from the hardware.

MicroEJ and Android are pretty similar. We provide multi-sandboxes, application store, the two main used languages are C and Java, but we also support other programming languages.

The difference is that MicroEJ specializes on cost-effective devices: wearables, medical devices, energy meters, lightning, building automation, smart homes, etc.

MicroEJ VEE compared to Android

Our software runs on roughly 30 million devices. We now partnered with Google Cloud to provide a very seamless way to connect devices to the cloud. Let’s call it the “plumbing” between the device and the cloud. This “plumbing” shall not be handled by the developers. Of course, the “plumbing” will evolve from v2 to v3 and v4 etc., but it needs to evolve without impacting all the applications that have been created in the ecosystem. It’s exactly what our partnership with Google Cloud allows us to do: to provide an edge-computing in terms of virtualization and Google provides the cloud part.

Victor mentioned something very important: Security. How to open your printer to an entire ecosystem of independent software vendors without impacting [negatively] the hardware? It needs to be bulletproof; we cannot compromise on security. The answer is sandboxes: each application stays in its own container.


MicroEJ VEE security for embedded devices


The way to do that is to reuse the same kind of technology that has been used in the smart card [industry].  You can load an application that cannot get out of its own container. The sandbox controls the execution of the application, and if granted, it can communicate with Zebra’s printing activity if it needs to. All that is completely under control of the Trusted Execution Environment. If the Execution Environment allows the printer to connect to the cloud, the application will be able to communicate with the Google agents, then you will be able to print the data transmitted by the app and the cloud will keep track of the analytics.

All that is well-known from the technical point of view, but how to ensure that the sandbox is well designed and protected, that there’s no flow and you can’t tweak it in order to get to the underneath layer. This is where binary code inspection comes in.

We can do that by doing a huge analysis of the software binary code. If it doesn’t fit the semantics of the virtual execution sandbox, then the application will not be allowed to run on the device.


MicroEJ Secure IoT


Thanks to that, there is no way to overcome the trusted execution environment. This technology has been proven effective for the past 20 years. There is no way to attack the underneath system from the application.

This security approach is very successful for cost-effective devices. It means that you can make sure that you can open your device to third parties and no attackers will take control of your core engine.

MicroEJ Virtual Execution Environment has gone through certifications, so the bug probability is very low, close to none. Combined with the binary checking, we can state that our solution is very robust.

As a result, Zebra engineers can focus on printing, which is a very difficult part in itself with the real-time factor that Victor explained earlier.

On top of that, you have a community that can now create applications, very easily. In order to do that, MicroEJ provides a virtual device, where you can create and test your app on your own work station, running MicroEJ Studio, the IDE based on Eclipse.

Underneath, you find the Trusted Execution Environment where you can download your apps dynamically thanks to secure sandboxes.

You can clearly see the benefits of such an ecosystem where you can load and store all your software assets.


MicroEJ, Zebra Technologies and Google Cloud Partenership


The agents are allowed to communicate with Google Cloud Platform, meaning that you can download the agents on your printers at all time. As we take in charge all the “plumbing” between your devices and the cloud, you won’t have to care about any updates [of the plumbing].

That way of proceeding is very effective because you only have to create your applications once. They will be deployed in a very secure way to all kinds of printers, without compromising Zebra’s printers core engines.



Additional Resources


Read blog post “Connect and Manage IoT Devices at Scale with Google Cloud IoT Core”


Explore MicroEJ’s solution for sensors to cloud connectivity