# Raspberry Pi WiFi Radio

## Overview

### **PLEASE NOTE:** this guide is now&nbsp; **deprecated** …

- It relied on some _extremely_ finicky software (_pianobar_ and _libav_) which tended to break with each new operating system release…it’s a minor miracle we’ve even managed to patch it this far along!
- It relied on several now-deprecated Python libraries for the display (Adafruit\_CharLCDPlate, Adafruit\_I2C, etc.).
- It’s specific to the _Pandora_ streaming service, which is only available in the United States and a couple other countries.

That being said, if you’re in the US, already have the hardware sitting around and don’t mind sinking 30 minutes into a project that might not pan out, by all means give it a shot. It was pretty nifty when it worked.&nbsp;Please just understand that we will **no longer be providing technical support** for this project **nor any more updates** to this guide.&nbsp;It was last seen working with the&nbsp;2018-11-13 release of Raspbian Stretch Lite, if that’s any help in recreating the project.

There are other Pi audio guides available in the Adafruit Learning System that might serve you better nowadays:

- [Raspberry Pi Zero NPR One Radio](https://learn.adafruit.com/raspberry-pi-zero-npr-one-radio)
- [Raspberry Pi radio player with touchscreen](https://learn.adafruit.com/raspberry-pi-radio-player-with-touchscreen)
- [_Boomy_ Pi Airplay Boombox](https://learn.adafruit.com/boomy-pi-airplay)

![](https://cdn-learn.adafruit.com/assets/assets/000/007/372/medium800/raspberry_pi_piphi1.jpg?1396850566)

Raspberry Pi, the little _wonder-puter_ that’s taken the world by storm, is so affordable that we can create nifty single-purpose “appliances” around them without shame. Here’s our take on one of the more popular such applications: internet streaming media, the **_Pandora_** music service specifically.

_Pandora is now limited to users in the United States. It is **no longer available in other countries**.&nbsp;This guide is now deprecated and will **not** be updated for alternate services._

http://www.youtube.com/watch?v=uzUruw2Ppyk

With the addition of a small LCD, a few buttons and a USB wireless network adapter, the Raspberry Pi becomes an affordable self-contained music streamer that can be moved to any room of the house…wherever you need your tunes at the moment. Just connect power and speakers or headphones.

# Raspberry Pi WiFi Radio

## Parts List

## Required Parts:

- [Raspberry Pi](http://www.adafruit.com/products/998) board (any model or revision). This project has modest requirements&nbsp;and is a great use for older “hand-me-down” Pi boards!
- Adafruit LCD+Keypad Kit for Raspberry Pi. There are a few different versions of this, depending on the “look” you’re after: [RGB Positive backlight](http://www.adafruit.com/products/1109), [RGB Negative](http://www.adafruit.com/products/1110), and the more affordable [Blue & White](http://www.adafruit.com/products/1115). **All versions of this kit require some assembly and soldering.**
- A 2GB or larger [microSD card](https://www.adafruit.com/product/2820) (older Pi models use full-size SD, or use an adapter).
- A power supply compatible with the USB MicroB connector on the Raspberry Pi; some mobile phone chargers will work, or we offer a suitable [USB “wall wart” adapter](https://www.adafruit.com/product/1995).
- Headphones or amplified speakers (or connect to your living room A/V setup).
- A free account with the [Pandora](http://www.pandora.com) streaming music service.

Any model of Raspberry Pi **prior** to the **Pi 3** or **Pi Zero W** also requires:

- A [USB WiFi adapter](http://www.adafruit.com/products/814) compatible with the Raspberry Pi. Many Pi models also come with wired Ethernet, but that’s less convenient.

## Optional but Recommended:

- Any Raspberry Pi [case](https://www.adafruit.com/product/2256) with an **open top** (the Pibow and Pi Shell cases aren’t suitable — we need full access to the top of the board).

## Temporary Items for Setup:
  
The following are required for assembly and configuration, but do not need to remain permanently attached:  

- Monitor (HDMI or composite)  
- USB keyboard
- Possibly a powered USB hub
- Soldering iron and solder (for assembling the LCD keypad kit)

# Raspberry Pi WiFi Radio

## Initial System Configuration

This project works well with the Raspbian “Lite” operating system; it fits easily on a 2 GB card with room to spare. _Do not_&nbsp;use the “desktop” images, they’re enormous&nbsp;and contain a ton of things we don’t need for this.

## **[Raspberry Pi Downloads Page](https://www.raspberrypi.org/downloads/raspbian/)**

While that’s downloading, you can work on **[assembling the LCD kit](../../../../adafruit-16x2-character-lcd-plus-keypad-for-raspberry-pi/assembly)**.

If you’re new to Raspberry Pi and Linux, we strongly suggest working through the first few guides in the&nbsp;[**Learn Raspberry Pi**](../../../../category/learn-raspberry-pi)&nbsp;tutorial series…know how to “burn” an SD image, perform a first-time setup and get the Raspberry Pi connected to a network. Some familiarity with one of the text editors (such as the simple&nbsp;_nano_&nbsp;or the more daunting&nbsp;_vi_&nbsp;or&nbsp;_emacs_) is also recommended.

Install the Raspbian Lite OS on a&nbsp; **2GB or larger** &nbsp;card. You’ll need to connect a&nbsp; **monitor** &nbsp;and&nbsp; **USB keyboard** &nbsp;for basic system configuration, but this is only temporary…we’ll set it up to run “headless” later. For networking, connect either an Ethernet cable or use WiFi (built-in on some Pi models, else use a USB WiFi adapter).

 **At this point you should&nbsp;have an SD card containing the Raspbian Lite software, and an assembled LCD “Pi Plate.”**

![](https://cdn-learn.adafruit.com/assets/assets/000/018/995/medium800/raspberry_pi_PiPhiParts.jpg?1408742746)

You don’t need to install the LCD Plate atop the Pi yet, we’ll do that later. Let’s just get the basics set up.

1. Connect a monitor and keyboard to the Raspberry Pi.
2. Insert the SD card containing the Raspbian OS.
3. Connect a “Micro B” USB cable to the power connector on the Raspberry Pi.
4. Plug the other end of the USB cable into a power source: a mobile phone charger, a powered USB hub, or simply a USB port on your computer.

The Raspberry Pi should now boot, and you’ll see the monitor fill with lots of “Unix stuff.”

Danger: 

On first boot, you’ll get a login prompt. Log in as user “pi,” password “raspberry”.

Once&nbsp;you’re logged in successfully and have a command-line prompt, run the system configuration utility:

```auto
sudo raspi-config
```

![](https://cdn-learn.adafruit.com/assets/assets/000/068/576/medium800/projects_raspi-config.png?1546446475)

The following selections are&nbsp; **required** :

- Under “Interfacing Options,” enable **I2C**.
- If you’ll be using **WiFi** , under “Localisation Options,” select “Change Wi-fi Country.” Then, under “Network Options,” select “Wi-fi” to enter the SSID/password for your wireless network.

The following are&nbsp; **optional** , but&nbsp; **strongly recommended** :

- Change User Password (because everybody knows the default).
- Under “Localisation Options,” select “Change Locale,” “Change Timezone” and “Change Keyboard Layout” to suit your location. If your keyboard isn’t producing the expected symbols, this is why.
- Network Options→Change Hostname. I named mine “ **pandora** ” to distinguish it from other Raspberry Pi systems on the network.
- Interfacing Options→Enable SSH. This allows remote login from another system on the network, for performing administration tasks without a display attached.
- You can disable Overscan (under “Advanced Options”) if you like — we’ll reboot a few times during the setup process, and this provides a little extra screen real estate on HDMI monitors.

Tab over to the “Finish” button, press Return and confirm you’d like to reboot the system when prompted. You’ll need to log in again, using the password you established above.

Danger: 

If using a **USB WiFi adapter** based on the popular **Realtek 8192CU** chipset, disabling WiFi power management seems to help with reliability. Once you’re logged in, type (or copy and paste) this at the command prompt:

```auto
echo "options 8192cu rtw_power_mgnt=0 rtw_enusbss=0" | sudo tee --append /etc/modprobe.d/8192cu.conf
```

## Enable I2C Support for the LCD

The LCD doesn’t need to be attached yet, but we can get some setup started…

```auto
sudo nano /etc/modules
```

Add one or both of these lines if not already present:

```auto
i2c-bcm2708 
i2c-dev
```

## Optional: Enable USB Audio
If you plan to use this with a USB Audio Adapter, [this guide explains the process](http://learn.adafruit.com/usb-audio-cards-with-a-raspberry-pi). It’s pretty straightforward, a matter of editing one line in a file.

## Reboot
Finally, shut down the system:

```auto
sudo shutdown -h now
```

Wait for the system to report that it’s halted before disconnecting power. It should take about 20 seconds.  
  
Following shutdown, insert the USB WiFi adapter (if using one) and re-connect power (keep the monitor attached for now).

**Is using a Model A board:** &nbsp;you’ll need to remove the keyboard to plug in WiFi, or use a powered USB hub temporarily during setup. Without a hub,&nbsp; **ssh** is now the only way into the system…so if WiFi isn’t working,&nbsp;you’ll need to unplug the adapter, connect a keyboard and check the WiFi configuration.

**For all other boards:** &nbsp;keyboard can stay attached until you know the networking is properly configured.&nbsp;Log in again and you should be able to access the outside world now:

```auto
sudo ping adafruit.com
```

Do not proceed until internet access is working. If WiFi refuses to cooperate, make sure every step above has been followed carefully. If you’re trying to use a hidden network and it just won’t play nice, change the router configuration to broadcast the network name.

Raspbian Lite includes the “avahi” package by default,&nbsp;so the system appears on the network as “pandora.local” (or whatever hostname you configured) instead of a numeric IP address. You can easily access the Raspberry Pi remotely using an ssh client from another system on the network. For example, using the Terminal application in Mac OS X, one would type:

```auto
ssh pi@pandora.local
```

You should get a password prompt. Once logged in, you can perform all administration duties remotely (including the steps that follow), and the monitor and keyboard are no longer needed on the Raspberry Pi. It’s easier this way because you can cut-and-paste all the commands with their weird syntaxes.

# Raspberry Pi WiFi Radio

## Install Software Packages

Danger: 

Further configuration of the Raspberry Pi will take place over the network using SSH, not the keyboard and mouse.

- The SSH server should already be enabled on the Raspberry Pi — this was done during the initial raspi-config setup.
- On Mac or Linux systems, you can use a Terminal or xterm window.
- For Windows systems, you can [download PuTTY](http://www.putty.org).

The terminal command to access the system would be:  
  
**ssh pi@pandora.local** (or whatever hostname was configured) if using Netatalk

or:

**ssh pi@192.168.0.42** (or whatever the system’s actual numeric IP address is)  
  
You’ll be prompted for a password — use the password that you set up in&nbsp;raspi-config, or “raspberry” if you left the default. Additionally, the first time connecting you may be prompted regarding a host key for security…enter Y (or click Yes) when prompted.

## Update Installed Software
Once logged in, type the following at the command prompt:

```auto
sudo apt-get update
```

This updates the list of available software packages, and takes a couple of minutes (just do the “update,” _not_ “upgrade” — the latter can sometimes take _hours!_)

## Install Prerequisite Software
Several prerequisite software packages need to be installed, using&nbsp;different techniques.

First is a collection of code libraries, using the apt-get package manager:

```auto
sudo apt-get install git i2c-tools python-pexpect python-smbus libavfilter-dev libavformat-dev libcurl4-gnutls-dev libgcrypt-dev libjson-c-dev libao-dev
```

This takes a little while; there’s about 100 megabytes of stuff to download and install.

Now&nbsp;use _git_&nbsp;and _wget_ to install the rest. There’s our LCD radio UI, then a collection of Adafruit libraries for Raspberry Pi, and finally&nbsp; **pianobar** , a terminal-based Pandora client for Raspberry Pi. _Do not_ use the apt-get version of this, it’s out of date!

```auto
cd
git clone -b legacy https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code
git clone https://github.com/adafruit/Python-WiFi-Radio
wget https://github.com/PromyLOPh/pianobar/archive/e945578ab22912049f1e547ce7b25b01089f7590.zip
unzip e945578ab22912049f1e547ce7b25b01089f7590.zip
```

 **Note the “-b legacy” on the first “git clone” line.** It’s required there. But _not_ on anything else.

Now some configuration…

First, link some of the Adafruit&nbsp;libraries into the radio software directory:

```auto
cd Python-WiFi-Radio
ln -s ../Adafruit-Raspberry-Pi-Python-Code/Adafruit_CharLCDPlate/*.py .
```

(Note: there’s a space before the last period above. Don’t miss it. Copy and paste this exact line, if possible.)

Next, we’ll compile pianobar from source code:

```auto
cd ../pianobar-e945578ab22912049f1e547ce7b25b01089f7590
make
```

You might get a long list of compiler warnings. That’s fine, as long as the build _finishes._ Compiler _errors,_ on the other hand, will stop&nbsp;the build process. You might be missing a library from the apt-get sequence above, or something in the software may have changed since these instructions were written, in which case post in the [Adafruit Forums](https://forums.adafruit.com)&nbsp;for assistance.

Once compiled, install using:

```auto
sudo cp pianobar /usr/local/bin
```

Don’t worry about configuring this software yet; we’ll proceed there later. Just&nbsp;use the steps above to&nbsp;get it installed for now.

# Raspberry Pi WiFi Radio

## Configure Software Packages

Create a directory for the pianobar configuration:

```auto
cd
mkdir -p .config/pianobar
```

Then link to the configuration file included with the radio software:

```auto
cd .config/pianobar
ln -s ../../Python-WiFi-Radio/config .
```

(Note: there’s a space before the final period above. Copy and paste this exact line if possible.)

Danger: 

Edit the pianobar configuration file with your Pandora account name and password:

```auto
nano config
```

The login credentials are near the top of the file:

```auto
user = YOUR_EMAIL_ADDRESS
password = YOUR_PASSWORD
```

Replace these with&nbsp; **the email address and password that you use for accessing your Pandora account** ,&nbsp;_not_&nbsp;the account on the Raspberry Pi system! Save the changes to the file and exit from the editor.

Finally, enter the following command to make sure audio is routed to the headphone jack rather than the HDMI port **(you can skip this step if [using a USB audio device](http://learn.adafruit.com/usb-audio-cards-with-a-raspberry-pi))**:

```auto
sudo amixer cset numid=3 1
```

And with that all said and done, you should now be able to run pianobar from the command line:

```auto
pianobar
```

If that runs as expected, connect headphones or speakers. The initial volume level will be very low. Type right parenthesis several times to increase the volume:  
  
**))))))))**  
  
If that all works, press “q” to exit pianobar, then shut down the system in preparation for installing the final hardware:

```auto
sudo shutdown -h now
```

If you were remotely logged in via SSH, your connection will be closed and you won’t see a “halt” message. Allow about 20 seconds before disconnecting power.

# Raspberry Pi WiFi Radio

## LCD and Final Configuration

 **If you haven’t already assembled the LCD Pi Plate, do that step now.** [**Here’s a tutorial to guide you through the assembly**](http://learn.adafruit.com/adafruit-16x2-character-lcd-plus-keypad-for-raspberry-pi) **.**  
  
**Raspberry Pi Model A users:** the LCD Pi Plate is normally assembled with a rubber bumper near one corner for stability atop the Raspberry Pi. This bumper rests on the Ethernet jack, which is only present on the _Model B_ board. Model A users will need to find a suitable alternative to the bumper, non-conductive and about 5/8" tall. A cork or rubber eraser trimmed to size can work, a 5/8" nylon PC board spacer if you have one, or a 2x2 Lego® brick set on its side. ![](https://cdn-learn.adafruit.com/assets/assets/000/007/335/medium800/raspberry_pi_lego.jpg?1396850150)

Danger: 

If using the Pi Box case, [follow this tutorial](http://learn.adafruit.com/pi-box) to install the Raspberry Pi inside, leaving the top of the case off.  
  
Align the 26-pin headers on the LCD plate and Raspberry Pi, and install the plate by pressing straight down gently.  
  
Connect power to the Raspberry Pi. The red power light should come on. If not, there might be a soldering mistake on the LCD Pi Plate board.  
  
Allow 30 seconds to a minute for the Raspberry Pi to fully boot and situate itself on the network. At this point, you should be able to log in from a terminal over ssh, e.g.:  
  
**ssh pi@192.168.0.6** (or whatever address the system reported during the configuration process)  
  
If you previously installed netatalk (optional), and if you changed the Raspberry Pi’s default hostname, you might be able to use:  
  
**ssh pi@pandora.local**

Danger: 

You should be successfully logged into the system at this point.  
  
First, let’s test the LCD and buttons:

```auto
cd Python-WiFi-Radio
sudo python Adafruit_CharLCDPlate.py
```

If using an RGB-backlit LCD, the program should cycle through different backlight colors (with the Blue & White LCD, it will flash on and off a few times). Then it will ask you to try pressing buttons.  
  
Adjust the Contrast dial (using a small screwdriver if necessary) until the text is sharp and legible.  
  
When finished, press Control+C to exit. The LCD is ready!

Next, let’s try our radio software:

```auto
sudo python PiPhi.py
```

This is our own “wrapper” for pianobar, allowing us to use the LCD and buttons to interact with that program. If all goes well, the system should report its network address, fetch a list of stations from the Pandora server and start playing. If not, refer to the Troubleshooting page.  
  
With only a few buttons available, we’ve condensed only the most essential functions to this program. If you need to configure your Pandora account (such as adding new stations to the list), use a web browser to access the Pandora web site.  
  
From left to right, the button functions are:

- Play/Pause (tap once to pause, again to play, or hold for three seconds to exit the program).
- Station select (brings up a menu — can then use the up and down buttons to pick a station — press this button again to activate, or the Play/Pause button to cancel).
- Volume Up/Down (two buttons, one above the other)
- Next Track

Take a moment to experiment with the buttons and familiarize yourself with their use. If everything seems to be working, we’ll do some final configuration to make the system truly standalone. To exit from the PiPhi program, hold down Select (the leftmost button) for 3+ seconds.

Recent builds of pianobar seem resistant to quitting when the PiPhi.py script exits. If that occurs — if music is still playing even though you’ve quit the program — type:

```auto
sudo killall pianobar
```

This is only a potential issue during testing — once it’s set up as a fully standalone device with auto-start and shutdown, you shouldn't experience this problem.

## Final Configuration and Auto-Start
First, **cd** to the directory with the PiPhi.py script (you should already be there if you've followed the steps till now!) and edit the PiPhi.py script:

```auto
nano PiPhi.py
```

Two lines near the start of the code (around line 26) are of interest:

```auto
RGB_LCD      = False # Set to 'True' if using color backlit LCD
HALT_ON_EXIT = False # Set to 'True' to shut down system when exiting
```

If you’ve opted for an RGB-backlit LCD, change the first of these lines to:

```auto
RGB_LCD = True
```

Since our goal is a standalone system with no keyboard or monitor, we need some way to issue an orderly shutdown (Linux systems don’t like it when you just pull the plug). To make the 3-second button press shut down the system (rather than just exit to a command line prompt), change the second line to:

```auto
HALT_ON_EXIT = True
```

Nearly there! Now we just need to set up the system to start our program upon booting.

```auto
sudo nano /etc/rc.local
```

Before the final “exit 0” line, insert these two lines:

```auto
cd /home/pi/Python-WiFi-Radio
python PiPhi.py &
```

If you downloaded or otherwise placed the radio software in a different location, the first line should be changed accordingly. “sudo” isn’t necessary here because the rc.local script is already run as root.  
  
Reboot the system to test the startup function:

```auto
sudo reboot
```

After 30 seconds to a minute, you should see the backlight turn on and music will begin. If not, connect to the system using ssh and confirm the configuration steps above.

# Raspberry Pi WiFi Radio

## Troubleshooting

### 

The PiPhi script must be run as root in order to access the LCD and keypad hardware:  
  
**sudo python PiPhi.py**  
  
If that doesn’t fix it, check for any solder bridges or cold joints on the LCD plate, and make sure the headers between the plate and Raspberry Pi are aligned.  
  
Or the code may be having difficulty accessing the I2C bus. We can override this manually if the need arises. Edit PiPhi.py, looking for this line:  
  
**lcd = Adafruit\_CharLCDPlate()**  
  
And simply add this parameter:  
  
**lcd = Adafruit\_CharLCDPlate(busnum=1)**  
  
Run the code again and see if that helps.

### 

Check for any solder bridges or cold joints on the LCD plate, and make sure the headers between the plate and Raspberry Pi are aligned.

### 

Some keyboards require more power than the Raspberry Pi USB port can provide. Add a powered USB hub, or try a different keyboard if you have a spare.

### 

Most likely a typo during the wireless setup procedure. Go through each step on the “Initial System Configuration” page and check spelling carefully, including your wireless network name (SSID) and password.  
  
“Hidden” WiFi networks are particularly fussy, and even with the extra directions provided might not connect. We very strongly recommend using a broadcast network name. If using a hidden network…when creating the file wpa\_supplicant.conf, did you remember to change the SSID and password to the values used by your network?  
  
It might also be an incompatible USB wireless adapter. The one in the Adafruit shop is known to work with the Raspberry Pi.

### 

The pianobar application is most likely failing to connect to the Pandora server…probably due to an incorrect email address and/or password. Check the settings in the configuration file and make sure these match your Pandora credentials, _not_ the account on your Raspberry Pi.  
  
If in doubt, run pianobar directly from the command line first. Once that’s working, then move on to the PiPhi script.

### 

Make sure audio is routed to the headphone jack rather than the HDMI port. From the command line:  
  
**sudo amixer cset numid=3 1**

### 

Enter the following command (as a **single line** — copy and paste verbatim, if possible):  
  
**fingerprint=`openssl s_client -connect tuner.pandora.com:443 \< /dev/null 2\> /dev/null | openssl x509 -noout -fingerprint | tr -d ':' | cut -d'=' -f2` && echo tls\_fingerprint = $fingerprint \>\> ~/.config/pianobar/config**  
  
Then try pianobar (or PiPhi) again.  
  
(from Jacob Roeland's “pidora” tutorial)


## Featured Products

### Raspberry Pi 3 - Model B+ - 1.4GHz Cortex-A53 with 1GB RAM

[Raspberry Pi 3 - Model B+ - 1.4GHz Cortex-A53 with 1GB RAM](https://www.adafruit.com/product/3775)
The Raspberry Pi 3 Model B is the most popular Raspberry Pi computer made, and the Pi Foundation knows you can always make a good thing _better_! And what could make the Pi 3 better? How about a&nbsp;_faster_ processor, 5 GHz WiFi, and updated Ethernet chip with PoE capability?...

In Stock
[Buy Now](https://www.adafruit.com/product/3775)
[Related Guides to the Product](https://learn.adafruit.com/products/3775/guides)
### SD/MicroSD Memory Card (8 GB SDHC)

[SD/MicroSD Memory Card (8 GB SDHC)](https://www.adafruit.com/product/1294)
Add mega-storage in a jiffy using this 8 GB class 4 micro-SD card. It comes with a SD adapter so you can use it with any of our shields or adapters. Preformatted to FAT so it works out of the box with our projects. Tested and works great with our <a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/1294)
[Related Guides to the Product](https://learn.adafruit.com/products/1294/guides)
### 5V 2.5A Switching Power Supply with 20AWG MicroUSB Cable

[5V 2.5A Switching Power Supply with 20AWG MicroUSB Cable](https://www.adafruit.com/product/1995)
Our all-in-one 5V 2.5 Amp + MicroUSB cable power adapter is the perfect choice for powering single-board computers like Raspberry Pi, BeagleBone, or anything else that's power-hungry!

This adapter was specifically designed to provide 5.25V, not 5V, but we still call it a 5V USB...

In Stock
[Buy Now](https://www.adafruit.com/product/1995)
[Related Guides to the Product](https://learn.adafruit.com/products/1995/guides)
### Adafruit RGB Positive 16x2 LCD+Keypad Kit for Raspberry Pi

[Adafruit RGB Positive 16x2 LCD+Keypad Kit for Raspberry Pi](https://www.adafruit.com/product/1109)
This new Adafruit Pi Plate makes it easy to use an RGB 16x2 Character LCD. We really like the RGB Character LCDs we stock in the shop. (For RGB we have [RGB negative](http://www.adafruit.com/products/399) and [RGB positive](http://www.adafruit.com/products/398).)...

Out of Stock
[Buy Now](https://www.adafruit.com/product/1109)
[Related Guides to the Product](https://learn.adafruit.com/products/1109/guides)
### Adafruit RGB Negative 16x2 LCD+Keypad Kit for Raspberry Pi

[Adafruit RGB Negative 16x2 LCD+Keypad Kit for Raspberry Pi](https://www.adafruit.com/product/1110)
This new Adafruit Pi Plate makes it easy to use an RGB 16x2 Character LCD. We really like the RGB Character LCDs we stock in the shop. (For RGB we have [RGB negative](http://www.adafruit.com/products/399) and [RGB positive](http://www.adafruit.com/products/398).)...

Out of Stock
[Buy Now](https://www.adafruit.com/product/1110)
[Related Guides to the Product](https://learn.adafruit.com/products/1110/guides)
### Adafruit Blue&White 16x2 LCD+Keypad Kit for Raspberry Pi

[Adafruit Blue&White 16x2 LCD+Keypad Kit for Raspberry Pi](https://www.adafruit.com/product/1115)
This new Adafruit Pi Plate makes it easy to use a blue and white 16x2 Character LCD. [We really like the 16x2 Character LCDs we stock in the shop](http://www.adafruit.com/products/181). Unfortunately, these LCDs do require quite a few digital pins, 6 to control the LCD and then...

Out of Stock
[Buy Now](https://www.adafruit.com/product/1115)
[Related Guides to the Product](https://learn.adafruit.com/products/1115/guides)
### Adafruit Raspberry Pi B+ / Pi 2 / Pi 3 Case - Smoke Base

[Adafruit Raspberry Pi B+ / Pi 2 / Pi 3 Case - Smoke Base](https://www.adafruit.com/product/2258)
It took awhile to perfect&nbsp;-&nbsp;but that's okay&nbsp;since we can now safely say that the Adafruit case for Raspberry Pi Model B+ / Pi 2 / Pi 3&nbsp;is The Single&nbsp;Greatest Raspberry Pi Model B+ Case Ever.

This enclosure&nbsp;was designed by Mike Doell - just like our...

In Stock
[Buy Now](https://www.adafruit.com/product/2258)
[Related Guides to the Product](https://learn.adafruit.com/products/2258/guides)
### Miniature WiFi (802.11b/g/n) Module: For Raspberry Pi and more

[Miniature WiFi (802.11b/g/n) Module: For Raspberry Pi and more](https://www.adafruit.com/product/814)
Make your Internet of Things device cable-free by adding WiFi. Take advantage of the Raspberry Pi and Beagle Bone's USB port to add a low cost, but high-reliability wireless link. We tried half a dozen modules to find one that works well with the Pi and Bone without the need of recompiling...

No Longer Stocked
[Buy Now](https://www.adafruit.com/product/814)
[Related Guides to the Product](https://learn.adafruit.com/products/814/guides)

## Related Guides

- [Introducing the Raspberry Pi 2 - Model B](https://learn.adafruit.com/introducing-the-raspberry-pi-2-model-b.md)
- [Character LCD with Raspberry Pi or BeagleBone Black](https://learn.adafruit.com/character-lcd-with-raspberry-pi-or-beaglebone-black.md)
- [Setting up a Raspberry Pi as a WiFi Access Point](https://learn.adafruit.com/setting-up-a-raspberry-pi-as-a-wifi-access-point.md)
- [Pi Hole Ad Detection Display with PiTFT](https://learn.adafruit.com/pi-hole-ad-pitft-tft-detection-display.md)
- [Adafruit Class Library for Windows IoT Core](https://learn.adafruit.com/adafruit-class-library-for-windows-iot-core.md)
- [Adafruit 16x2 Character LCD + Keypad for Raspberry Pi](https://learn.adafruit.com/adafruit-16x2-character-lcd-plus-keypad-for-raspberry-pi.md)
- [Onion Pi](https://learn.adafruit.com/onion-pi.md)
- [Playing sounds and using buttons with Raspberry Pi](https://learn.adafruit.com/playing-sounds-and-using-buttons-with-raspberry-pi.md)
- [Monitor Your Home With the Raspberry Pi B+](https://learn.adafruit.com/monitor-your-home-with-the-raspberry-pi-b-plus.md)
- [Raspberry Pi Pygame UI basics](https://learn.adafruit.com/raspberry-pi-pygame-ui-basics.md)
- [Set up Home Assistant with a Raspberry Pi](https://learn.adafruit.com/set-up-home-assistant-with-a-raspberry-pi.md)
- [Pixelfed Photo Viewer on Fruit Jam](https://learn.adafruit.com/pixelfed-photo-viewer-on-fruit-jam.md)
- [Adafruit's Raspberry Pi Lesson 2. First Time Configuration](https://learn.adafruit.com/adafruits-raspberry-pi-lesson-2-first-time-configuration.md)
- [Raspberry Pi Video Looper](https://learn.adafruit.com/raspberry-pi-video-looper.md)
- [LoRa Signal Bridge with the Feather RP2040 RFM ](https://learn.adafruit.com/lora-signal-bridge-with-the-feather-rp2040-rfm.md)
