Whether you've already done a chromebook roll-out, or you're currently planning one, the only seemingly daunting task is unboxing those bad boys, and getting them enrolled in your domain. If you're enrolling a small number of devices, this is easy enough to just do them by hand. For any larger amount of chromebooks, you're going to want some automation with a keyboard emulator. We like to think of it as robot versions of ourselves.
There are many companies that are happy to do this for you at a varying premium (us included!). However, we understand how educational budgets operate, and we sincerely want to ensure everyone saves as much of those budgets as possible. It's also a win - win situation: you are left with some cool toys for computer science students, and we skip the paper cuts from unboxing and re-boxing!
Let's get started!
After you're sure you've purchased enough device management licenses for your new chromebooks, there are two main options for automating enrollment. One is with a tool called the Rubber Ducky which will run you about $50 each. The other is a far cheaper option, a simple Arduino board referred to as the centipede (look at those legs!) which are under $10. If you're planning any sizable rollout, you're going to want at least a few of these, along with a micro usb cable (to connect the centipede to your computer), and some USB flash drives for updating ChromeOS to the latest version.
The Adruino based Centipede White Gloving process was developed by Amplified Labs, there is an entire run down on this fantastic process available here:
* Make sure you don't buy SanDisk based flash drives, as chromebooks cannot read them correctly.
We can't get this specific model of Arduino from our vendors, however here's a link to the units we use in production on Amazon:
The Centipede Setup
Once you have all the hardware, you'll need to setup the centipede(s). If you're already familiar with Arduino studio, feel free to just use that. If you're not or don't want to actually install any software, you can use Arduino Create. Here's a quick tutorial on getting started with it. At the end of the day you just need to know enough about either method to get a code file saved to the device.
Once you're familiar with saving to the centipede, you just need a code file, which can be found here. Make sure you edit the text between the quotes on lines 15-19 to match your enrollment credentials and wireless information.
That's it! You now have a robot version of you and your team!
The Chrome Update Setup
Next step, you need to update ChromeOS to its latest version. To do this, we'll make some USB recovery devices, which is also very simple. Here is Google's documentation on that process.
(tl;dr: download this chrome app, plug a flash drive in your computer, then run the app)
Now we're ready to rock!
Open the chromebook and hit Esc + + , then insert the USB drive when prompted. After the device is restored, reboot.
Once you see the normal login screen, plug in your centipede, watch the magic happen, and move on to the next device.
We've found the easiest way to do a lot of chromebooks at one time is to have two rows of chargers setup and have one batch running the ChromeOS update, while the other batch is running the enrollment.
But is it really that simple?
We think so. Depending on the device and ChromeOS version, you might need to make some edits to the code file. If you've never written any code at all, you should probably find someone who has, unless this is opportunity you're using to dive right in. There isn't a lot going on that you have to edit.
Obviously it is beyond the scope of this tutorial to teach in depth programming, so look at it for it is: we are running a program that is pressing keys on a keyboard. We are either pressing a key (like Tab, Shift or Esc), or typing in full words (like your username and password).
There are only three sections of code that have anything you need to edit. Ignore the rest of this file.
Entering the Enrollment Screen (unlikely you'll need to change this)
Entering Your Enrollment Credentials
Entering Your Wifi Credentials
The Keyboard.write(KEY_SOMETHING) lines just press keys. You can copy and paste one of those lines and change it to whatever key you need. Here are the available values:
KEY_LEFT_CTRL, KEY_LEFT_SHIFT, KEY_LEFT_ALT, KEY_RIGHT_CTRL, KEY_RIGHT_SHIFT, KEY_RIGHT_ALT, KEY_UP_ARROW, KEY_DOWN_ARROW, KEY_LEFT_ARROW, KEY_RIGHT_ARROW, KEY_BACKSPACE, KEY_TAB, KEY_ENTER, KEY_ESC, KEY_CAPS_LOCK
The wait(1) lines just tell the centipede to wait for a second before it does the next thing (so the chromebook has time to do send and receive information to the internet and load the next screen). The same applies here. You can simply copy and paste the line and change the number of seconds you want to wait.
With that in mind, just take one chromebook and go step by step through which keys you would hit if you were doing it yourself and line them up.
Play around with it and experiment!
If you're new to programming, or just hesitant to use something new, you really shouldn't be. If you make a mistake the Arduino will tell you and it won't save the file until you fix it. Since all the centipede does is type, feel free to fire up something like Notepad or Microsoft Word on your computer and plug it in to see if your code works. There is nothing to break, and no excuse to not play with a robot! Besides, it's $8 that is going to potentially save you hours time.
Let us know if you need help with any part of this, or if you'd rather we just do the whitegloving for your next batch of chromebooks. We are always happy to help!