Notes on Cisco’s Meraki Systems Manager as an MDM Solution

A few of the devs on my team recently got a chance to try out the free version of Meraki’s Systems Manager. In this case, I’m using MDM as an acronym for Mobile Device Management. We used the system on and off for most of 2015 to distribute some apps published using an enterprise provisioning profile for iOS.

Use cases

Our usual scenario involved a series of iPads, often 10 – 30 of them. They would be sent out to an event space on a convention floor, a mall booth, an outdoor event space (like Six Flags). Sometimes the devices would be used for user registration, running on a local network inside a stadium. One project involved a bunch set up outside a traveling food truck, that drove from town to town. A few projects required sweeps registration or mailing list sign up of some sort. One large project involved multiple Elo Touch Screens that ran Windows Pro and traveled between mostly outdoor events. Since most of our events involved using Meraki with a series of iPads, I’ll use the .ipa app upload process as the example going forward.

Overall impression

Overall, if your app is under 30MB in file size, Meraki is a great solution. Just set up your account, go to

  • Systems Manager > MDM > Apps
  • select “Add New” in the upper right corner of the page and “iOS enterprise app” from the dropdown.
  • Under Location, choose “Upload an ipa” from the dropdown and follow the given options, as needed. Click Save Changes and you’re set.
  • Add devices (Systems manager > MDM > add devices) and use tags to automatically install your app on the appropriate device
  • Once the app’s live and installed, you can update using the same App page (Systems Manager > MDM > Apps, click your app name)

Some issues we came up against

  • The Meraki dashboard doesn’t seem to allow you to search “Clients” (Systems manager > Monitor > Clients, what the system calls the devices you’ve registered) by convenient terms like serial number or device name. Sometimes I have a lot of devices with a given tag and I need to make sure a specific device is in that list. Being able to search by device serial number would save me time.
  • Enterprise apps larger than 30MB in size are often problematic to update. It often took multiple attempts over a few days to get the update to work, even after on-site connectivity was good for other purposes, such as playing back a streaming video off of sites like
  • On-site firewall at YMCA branches (using YMCA WiFi) were blocking remote app updates.
  • Spotty venue WiFi (read: convention floor WiFi) and sometimes spotty MiFi connections are an issue if your app requires an update or needs to send more than just text data. App updates for apps bigger than a few MB, required taking the device to another location with strong, consistent WiFi.
  • When you’re stuck on an issue, such as an app just won’t install, no matter what you do, there’s not much google-able info out there. Stackoverflow is very helpful to keep you moving, past bugs and roadblocks, but not with the free version of Meraki’s System’s Manager. We haven’t yet had the need to contact Meraki support (given our previous experience with trying to reach out to support with free products, we pursued the issues on our own, so far successfully).

Some conclusions

I’d highly recommend Meraki for smaller sized apps, especially ones that are not likely to require an app update during your short term event’s duration. For longer term installations, larger apps, be prepared to budget for and plan for on-site travel for one of your developers, technologists or IT guys to help with initial installs or especially problematic app updates.

This has less to do with MDM, and more with network connectivity, but your MDM will largely depend on how good your connection is. Seriously consider / advise your client to purchase a data plan for the device, rather than relying on WiFi alone. Find out ahead of time, which mobile service has a reputation for working best in your target location. Don’t use Verizon, if AT&T is generally known to have better service in your event’s target area. If your devices are PCs, by all means, run hard lines (Ethernet) and bypass wireless issues all together. Just keep in mind, the longer those Ethernet cables, the lower the signal tends to be.


Note to Self: Hooking Up an Arduino Uno to WiFi So It Can Text Me

What I’m working with

I have an Arduino Uno R3 with a bunch of sensors, LEDs, a small breadboard, various jumper wires, a multimeter.

Goal: detect with sensor, send me a text

I want to build a prototype that can read sensor data and notify me via text message (SMS) or Email when certain conditions are true. For example, I just created a quick human motion detector alarm using this tutorial, with slight modifications because my piezo buzzer is different:

Roadblock: No built-in WiFi with an Uno

My Arduino Uno R3 was great to get started with. It’s simpler than a Leonardo or a Yun. The Yun has built-in WiFi and a built-in mini Linux server. An RFDuino is smaller and has built-in WiFi. I wanted to start with the simple stuff first. Now that I’ve worked my way up to building more complex prototypes, internet connectivity is a must.

Other Option: Uno + Laptop + WiFi = Interwebs

There are ways to have an Uno send a text or email by keeping it hooked up to a laptop or PC that’s running a python script that talks to a web service or your local web server. I can also use BreakoutJS or NodeJS library like Johny-Five in a similar fashion, where the Uno has to be connected to my laptop so it can have internet connectivity. I want my toys to be free-standing, independent of a laptop, so, it looks like I’ll need to get a WiFi Shield or a WiFi breakout board.

WiFi Options for Uno

So far, Adafruit’s CC3000 looks like the best option for laptop-free Arduino Uno WiFi solution. It claims to be faster than other WiFi shields / boards because it’s not using UART. I need to look into this further.

I’ll need to order CC3000 WiFi Shield from Adafruit and sign up for a web service provider that lets me call their API, something like Amazon Web Services (SNS service), Twillio, TelAPI, TextBelt. The AWS account allows up to 100 free texts/mo and small fee if you go over. TextBelt is free but describes itself as “fairly reliable”.

CC3000 Shield v. the CC3000 Breakout Board



  • breakout board, you have to solder it but if I switch to an Arduino Mini tomorrow, it will still work since it connects to a breadboard and not the board directly

With CC3000 there’s the initial one-time cost of buying a few soldering tools. I guess, in that sense an official Arduino WiFi Shield won’t require soldering, even though it costs a bit more than double. I need to see if that UART speed issue is a factor.

Future iterations

There’s a cool tutorial from Open Home Automation to set up a motion detecting HUB with two micro controllers, one (or more) for the sensor and the other as the central hub.

This is a work-in-progress. To be continued…

Playing with MakeyMakey and Phillips Hue API

It’s useless #prototyping Friday. Used my #makeymakey , w/ spacebar clip hooked up to a paint can, with chicken scratch Javascript code w/ a keydown() event handler that listens for keyCode=32 (spacebar) and sends an ajax PUT request to the #hueapi #phillipshue which turns light 1 along with an html body tag background-color prop to red.

UDK With Early Oculus Rift Support – HUD Text also Fuzzy

Just playing around with a UDK Hello World:

Oculus Rift, HUD Text is Fuzzy So Far

#oculus #teamfortress2 #steam Menu text is usually unreadable, consistently demo to demo & now in an actual game. Not sure yet if it’s a calibration issue. We tried A, B, C lenses, ran the config utility a few times.