My Chromebit Digital Signage Experience

I was just about ready to deploy a Chromebit ‘in the wild’ when I read ‘My Chromebit Digital Signage Experience‘ over at Sixteen:Nine. Dave Hayes went through the ins and outs of an above-average consumer getting digital signage running on a single Chromebit and the trials involved. His conclusion:

My executive summary: the Chromebit is a solid little stick and Google’s device management has a reasonably rich set of features, but is crazily difficult to get running.

It’s a good summary, and I mostly agree. But I certainly have more to add.

Chromebit Primer

The Chromebit is the $85 USD computer-on-a-stick running ChromeOS. It’s about the size of a candy bar – specifically, a Mars bar, if Mars bars were 75 grams. And since it’s a ChromeOS device, there is a full back-end to manage it remotely, originally priced at $149 USD for a lifetime license. That price was a little hard to swallow, so I’m happy there’s now a $24 USD a year version for devices running a ‘Single App Kiosk’ – so digital signage.

Dave Hayes has this covered, go take a read.

Early Testing

After we picked up the Chromebit, it was easy to do some local testing on it with Clickspace TV. CSTV was once a Flash / Adobe AIR application, but since we’ve killed off Flash, it’s running solely as a Chrome Extension – perfect for Chrome OS.

Using the Chromebit like any ChromeOS computer, we created an account, installed the extension, and opened it up. After a few minutes of furious first-time-run downloading and initializing, all the files were written to the hard drive and it was running smoothly. Almost.

Chromebit Caveats

If you can’t tell from the specs, The Chromebit has a decent amount of power and storage for the price, but it’s still limited. 16GB of hard drive space is made even smaller when ChromeOS is on that drive twice (for redundancy for safe updates), leaving around 11GB for your files and cache. Luckily, our previous hardware (the Asus Chromebox, running Ubuntu) had a similar limit, so we’ve been reducing file sizes for some time now.

The processor is decent too, playing videos on top of videos with no issues. But I had to remove one feature I was using occasionally (ironically, to save storage space); hue shifting videos. Chrome has a wide array of invisible flags to disable features on certain chip-sets / kernels. Not being able to use CSS mix-blend-mode on videos on a Chromebit (as least for now) was one of the things I had to program around.

One last concern – there’s only one USB port. If the WiFi changes, to update the WiFi network onsite requires either bluetooth equipment, a keyboard / mouse USB combo, a powered USB hub, or a power-user comfortable with the keyboard and no mouse. None are ideal.

Purchasing the Remote Management License

Clickspace TV has been using Ubuntu for some time now because of the safety checks we could install – backup scripts, auto-update scripts, remote access programs, etc. With the Chrome Device Management, I hoped to replace all of my custom code and peripheral support programs with a Google supplied platform.

I’m not sure why, but there is only one vendor through which you can buy a Chrome Device Management license, and it’s not Google. They’ve offloaded it to a company I’d never heard of: Promevo. I purchased the Canadian license here (the US / UK one is here).

You have to provide a web domain you own to put the item in your basket. If you have Google Apps on your domain, use that domain – it’s much easier later on. I had no problem with this step, but I know it can be a pain in the ass, as it was for Dave Haynes.

Promevo sales promptly emailed me after my purchase with the offer of support and a phone number to call if I had any technical questions, which is fairly generous considering I spent about $36 CAD, and almost all of that will go to Google.

But I also received an email telling me to expect my license to arrive in 2 to 5 business days. Truly bizarre behaviour for any software license, especially considering it’s Google. Promevo agreed with me, and both of us hope it will be made instantaneous soon.

Setting Up the Admin Console

To my surprise, I came in the following morning to find an email from Google welcoming me to their program. They sent me a link to this guide, which was a pretty thorough setup. This whole process took about 30 minutes, but it wasn’t difficult, just time consuming.

Most of the settings were just selecting defaults – what WiFi network to connect to, allowing ethernet connections, disabling ‘guest mode’, all very well explained. I also provided e-mails for status updates, scheduled a daily reboot, and set up our Chrome extension to auto-launch on boot. I was also delighted to see that I could lock down the box to a numbered build of Chrome – say, Chrome 47 – and disable further updates, which put my mind at ease about keeping my code up to date.

Next step was wiping the Chromebit, which I understand can be an ordeal for some users. My 7-minute, never-fail version:

  • Reboot with a paper clip jammed in the tiny hole
  • Follow the instructions on the screen to enter developer mode
  • Wait 5 minutes
  • When it reboots, it will warn you that you’re in developer mode
  • Press the spacebar, then enter, to take it out of developer mode and essentially restore it to factory defaults

After that, I was ready to ‘enroll the device’. It was as easy as setting the WiFi network, pressing ctrl+alt+e, and signing in. My Kiosk app started right up.

Diving Further In

As I started wandering around the admin site for more powerful options though, the experience started to fall apart. After setting all of my defaults, I couldn’t find a way to override them for an in-house testing box that I wanted on a beta channel. I’m not sure if I’m looking in the wrong corners, or because my license is fairly limited, or because I only have one Chrome device registered, but moving my in-house Chromebit to a debug version of the app and the dev version of Chrome seemed like it could only be done system wide.

Also disappointing, the Chrome Kiosk license was viewable under billing, but there was no way (currently) to administer it – no auto-renewal, no purchasing of additional licenses. Looks like I’m stuck with Promevo for that, at least for now.

Edit, Mar 2 2016: Shortly after purchasing, the ‘Chrome for Signage team’ e-mailed me. After asking about the above, they pointed me to the screen where I could set up different ‘organizations’ that can have their own settings, like a different build of Chrome or a different kiosk app. No luck on a seller other than Promevo though.

Lots of good finds too though. Rebooting a device or taking a screenshot was one-click. One view told me what was online and what wasn’t. I could see when each device last synced up, so I knew my changes had made it’s way over. You can leave notes and tags attached to each device, making it easier to both find what you’re looking for, and know which device is which at a glance.

I don’t quite agree with the statement that it’s ‘crazily difficult to get running’. But I did find it time consuming and somewhat irritating at times. The real test is going to be how difficult it’ll be to keep running.

Trying It Out Live

I’m sure I’ll have more mature thoughts on this later, because I’m pushing forward with both the Chromebit and the Google Kiosk Management program (or whatever it’s called). At the moment, I’m optimistic. The platform has everything I need, and though it can be a little clumsy and obtuse, the price, the power and the many options more than make up for it.

And ultimately, it’s much more cost-effective and time-effective than maintaining the way I’m doing things now. That’s a win.


  1. Tony, thanks for this post. I’ve been researching this lately and I was wondering how this solution has been working for you. It sounds like there is some hassle setting it up at the beginning, but I’m wondering if it’s a good solution after getting past that initial setup. Essentially, I’d like to manage multiple screens (maybe up to 12 eventually) to show 2 different google slide presentations (to toggle between the 2) all the time, in kiosk mode. I’m hoping the screens would immediately update to show any changes, like any new or removed slides, so Chrome wouldn’t show an older cached copy of the presentation. If you have a moment, could you let me know how this solution has worked out for you, if you’ve tested it more? Thanks, John


    1. We’re running this solution live and pretty happy with the results. The processor is very good but we push it to it’s limits sometimes, and wind up with the occasional video slowdown or HTML rendering bug. It’s more about us being ambitious than the hardware not being up to the task.

      For your needs, it sounds like a great solution. As long as the WiFi network around each ChromeBit is stable and not likely to change passwords or anything, you should be able to plug it in and more or less forget about it.

  2. Hi Tony,
    Thanks for this article !

    I wondering how it works with video management ?

    I’d like to play video (hosted in the cloud) on multiple TV Screen (10) and I don’t see the steps i’ll have to do ?

    I saw
    – there is Chrome App to schedule URL to play
    – there is lots of Startups offering SaaS services

    But how does it work if I want to play Video1 on Tv 2 for instance ?


    1. If you want to play a single video on 10 TVs, and you really want to use a ChromeBit, there’s really two ways to do it:

      1. Get 10 ChromeBits. The videos won’t play in perfect sync, even with really clever code. But you can then control each TV individually if needed.
      2. Get 1 ChromeBit and a lot of splitter and cables. This works well for a bar which has all 10 TVs in one room, and typically they already have infrastructure for it.

      The ChromeBit by itself doesn’t have any tools to manage content; you’ll need a Chrome App of some variety. That’s all the SaaS companies are going to give you anyway, since that’s the only program that runs on ChromeBits. (Well, that and any webpage).

Leave a Reply

Your email address will not be published. Required fields are marked *