How to Turn a Raspberry Pi into a Google Cloud Print Server

how-to-turn-a-raspberry-pi-into-a-google-cloud-print-server photo 1

Google Cloud Print is a fantastic way to link your printers to the cloud and enjoy print-from-anywhere access, but there’s a catch. If you don’t have one of the recent Cloud-Print-Ready printers, you need to leave your computer on to enable remote access. Read on as we configure  a tiny, energy-sipping Raspberry Pi for the task.

how-to-turn-a-raspberry-pi-into-a-google-cloud-print-server photo 2

Why Do I Want to Do This?

Currently there are two paths to Google Cloud Print access in your home: you can buy a Cloud Print enabled printer that links itself directly to your Google account and your Cloud Print service, or you can use a PC (that has access to the printers you wish to add to Cloud Print) to act as a Cloud Print server.

The first situation is ideal, as the printer itself connects directly to the cloud and there is no need for an intermediary. Barring that, however, it should be your goal to make sure the intermediary is wasting as few resources as possible. Leaving a desktop computer on 24/7 for the sole purpose of functioning as a Cloud Print server is a whole lot of resources for a job that requires very little horsepower.

In order to cut back on the resources wasted, we’ve opted to turn a tiny, low-power Raspberry Pi device into an ultra lightweight Cloud Print Server. The best part about this setup is that the Raspberry Pi can continue to perform other roles. For example, our Raspberry Pi Cloud Print Server is also the same device functioning as our Raspberry Pi Weather Indicator. It takes so few resources to do both jobs (spool up the occasional print job and run a simple script to check the weather and toggle an LED) that there’s no reason to not stack the tasks and get more out of our Raspberry Pi purchase. Here are some of the projects that you could easily stack with a Raspberry Pi Cloud Print Server:

  • Build an LED Indicator with a Raspberry Pi (for Email, Weather, or Anything)
  • How to Turn a Raspberry Pi into a Low-Power Network Storage Device
  • How to Turn a Raspberry Pi into an Always-On BitTorrent Box
  • How to Install NZBGet for Lightweight Usenet Downloading on Your Raspberry Pi

What Do I Need?

For this tutorial, we are going to assume that you already have the following:

  • A Raspberry Pi with Raspbian installed
  • Printers accessible to the Pi
  • A Google Account

If you haven’t configured your Raspberry Pi with Raspbian or added printers to it yet, definitely check out the two links above to get up to speed. It is critical that you’ve followed along with (or at least checked your own printer installation notes against) our Raspberry Pi printer guide. If your Pi doesn’t have access to printers (local or networked), you won’t have any success with this tutorial.

In addition, you’ll likely find it helpful to check out our guide to Google Cloud Print to familiarize yourself with the ins and outs of the system.

Installing Chromium

The secret sauce in our Raspberry Pi as Cloud Print Server model is the open source browser Chromium. One of the official ways to add Cloud Print capability to a PC is to use Google’s Chrome web browser as a print server. Unfortunately, even though there is an official Chrome release for quite a few distributions of Linux, it only supports x86/x64 architecture and not the ARM-based architecture that powers the Raspberry Pi and Rasbian. This is where Chromium comes in, as we can still access the relevant features in Chromium that we need to link our Raspberry Pi to Google’s Cloud Printer system.

To get started, open up the terminal on your Raspberry Pi and enter the following command:

sudo apt-get install chromium-browser

When prompted, type Y and hit enter to continue the installation. The installation isn’t enormous, but it’s big enough; a ten minute trip to the break room to grab a cup of coffee is certainly a reasonable way to kill the installation time.

Once Chromium is installed, we need to launch it from the desktop environment. You can find it in Raspbian’s start menu under Internet -> Chromium Web Browser:

how-to-turn-a-raspberry-pi-into-a-google-cloud-print-server photo 3

After launching Chromium, navigate to the menu icon in the upper right corner, click it, and then select “Settings”. Scroll down in the Settings window until you see “Advanced Settings” and, after clicking that, continue scrolling down through the expanded settings options until you see the entry for Google Cloud Print:

how-to-turn-a-raspberry-pi-into-a-google-cloud-print-server photo 4

Click “Add Printers”. You’ll be kicked over to an authorization page like so:

how-to-turn-a-raspberry-pi-into-a-google-cloud-print-server photo 5

Fill in the Google account credentials of the account you use to manage your Cloud Printers. Make sure “Stay signed in” is checked, since this is going to be a stand alone print server we don’t regularly interact with.

how-to-turn-a-raspberry-pi-into-a-google-cloud-print-server photo 6

After authorizing your account, you’ll see the “Add printer(s)” button. Whichever printers the Raspberry Pi has access to (be they local or networked) will be added to your Google Cloud Print account. If those printers were previously added by some other means, you’ll want to visit your Cloud Print management page to remove the older entries.

After clicking the Add button, you’ll see a confirmation page indicating that the printers were added and you’re ready to start printing. Now is a perfect time to fire off a test print:

how-to-turn-a-raspberry-pi-into-a-google-cloud-print-server photo 7

Roughly 10 seconds or so after we fired off the print job, it spooled up on the networked printer:

how-to-turn-a-raspberry-pi-into-a-google-cloud-print-server photo 8

While we initially had concerns that the Cloud-to-Pi-to-Printer workflow would be slow (not that blistering speed is really that critical in most printing situations), those concerns have never been validated. Even with larger PDF files, the process is only marginally longer than your typically lengthy printing-a-big-PDF wait.

After running your test print, you can close Chromium on the Pi as the print server will continue to run in the background. Now you can enjoy print-from-anywhere convenience for around a quarter a month (the Raspberry Pi consumes so little energy that the average annual operating cost is around $3).

More stories

4 Ways to Set Up Parental Controls On Your Home Network

Parental controls can filter the web, blocking inadvertent access to inappropriate websites. There are a variety of ways to do this, from configuring network-wide parental controls on your router to using the parental controls built into Windows or third-party software.

Disable the Charms Hot Corner Without a Registry Hack on Windows 8.1

One of our biggest annoyances about using Windows 8 on a desktop PC was the Hot Corner feature, which brought up the Charms Bar when you hovered your mouse in the top right hand corner of the screen. The Charms Hot Corner is now optional in Windows 8.1 and here is how to disable it.

8 Features Microsoft Removed in Windows 8.1

Windows 8.1 brings some great new features, from a Start button and boot-to-desktop option to SkyDrive integration and a much more robust Modern interface. However, Microsoft is removing some features that were present in Windows 8.

Desktop Fun: Bridges at Night Wallpaper Collection Series 2

Regardless of size or the materials used to build them, each bridge is an individual work of art. Add lights to them at night and they rise to a whole new level of beauty. Bring these architectural wonders of the night to your desktop with the second in our series of Bridges at Night Wallpaper

How Security Experts Choose and Manage Passwords for Their Accounts

We have all heard the same advice about choosing strong, secure passwords, never re-using passwords for multiple accounts, and more when managing our own sets of passwords. But what methods do the tech industry’s top security experts use? Ars Technica decided to find out by interviewing five well