# Pico W YBox3

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/130/472/medium800/arduino_compatibles_edited_P1440811.jpg?1717703607)

A little over a decade ago, the [YBox2 Kit](https://www.adafruit.com/product/95) was all the rage. It used a [Parallax Propeller chip](http://www.parallax.com/Default.aspx?tabid=407) with Ethernet to connect to the Internet and display custom widgets via a composite video output. From [ladyada.net](https://www.ladyada.net/make/ybox2/):

> The YBox2 is a DIY networked set-top box. Connect it to your TV and you can design customized content to be delivered direct from the Internet.
> 
> YBox2's Memoir
> 
> The YBox was first invented by&nbsp;[Uncommon Projects](http://www.uncommonprojects.com/), as part of&nbsp;[Yahoo Hack day](http://developer.yahoo.com/). The project was a resounding success, and the following year 80 kits were commissioned by Yahoo for workshops at&nbsp;[Maker Faire 2007](http://www.makerfaire.com/).&nbsp;[Robert Quattlebaum](http://www.deepdarc.com/)&nbsp;was one of the lucky few to attend that workshop and decided to see if he could&nbsp;[design a second generation YBox](http://www.deepdarc.com/ybox2). After much hacking, success! With a little of my help, we were able to design this kit to have more accessories than the original, and just as easy to build, yet less expensive.

Years later, it felt like it was time to revisit this project concept with new hardware. The next generation YBox, the YBox3, uses a Raspberry Pi Pico W to run Arduino code that connects to WiFi and displays custom widgets via DVI output with a DVI PiCowbell.

https://youtube.com/shorts/8jnDlcfiIc4

An IR remote changes widget channels on the YBox3 with the help of an IR remote receiver breakout.

![arduino_compatibles_edited_P1440835.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/471/medium640/arduino_compatibles_edited_P1440835.jpg?1717703492)

## Parts
### Adafruit PiCowbell DVI Output for Pico - Works with HDMI Display

[Adafruit PiCowbell DVI Output for Pico - Works with HDMI Display](https://www.adafruit.com/product/5745)
Ding dong! Hear that? It's the PiCowbell ringing, letting you know that the new&nbsp; **Adafruit PiCowbell DVI Output for Pico** &nbsp;is in stock&nbsp;and ready to&nbsp;display images and graphics from a microcontroller directly to an HDMI monitor or television!&nbsp;Note it...

In Stock
[Buy Now](https://www.adafruit.com/product/5745)
[Related Guides to the Product](https://learn.adafruit.com/products/5745/guides)
![DVI breakout board assembled to a microcontroller in front of a small HDMI monitor. The display shows a flying toasters screensaver.](https://cdn-shop.adafruit.com/product-videos/640x480/5745-09.jpg)

### Raspberry Pi Pico WH - Pico Wireless with Headers Soldered

[Raspberry Pi Pico WH - Pico Wireless with Headers Soldered](https://www.adafruit.com/product/5544)
The Raspberry Pi foundation changed single-board computing [when they released the Raspberry Pi computer](https://www.raspberrypi.org/archives/723), now they're ready to do the same for microcontrollers with the release of the brand new **Raspberry Pi Pico WH**....

In Stock
[Buy Now](https://www.adafruit.com/product/5544)
[Related Guides to the Product](https://learn.adafruit.com/products/5544/guides)
![Angled shot of green rectangular microcontroller with a Wi-Fi module and pre-soldered headers.](https://cdn-shop.adafruit.com/640x480/5544-02.jpg)

### Adafruit Infrared IR Remote Receiver - STEMMA JST PH 2mm

[Adafruit Infrared IR Remote Receiver - STEMMA JST PH 2mm](https://www.adafruit.com/product/5939)
A year ago we designed a high-current-output&nbsp;[Infrared&nbsp;Transmitter STEMMA](https://www.adafruit.com/product/5639)&nbsp;which makes it easy to create high-powered IR LED blasters. Now we've sat down to design the other side, the&nbsp;super sensitive wide-range **...**

In Stock
[Buy Now](https://www.adafruit.com/product/5939)
[Related Guides to the Product](https://learn.adafruit.com/products/5939/guides)
![Hand demo still](https://cdn-shop.adafruit.com/640x480/5939-05.jpg)

### Adafruit Proto Doubler PiCowbell for Pico and PicoW

[Adafruit Proto Doubler PiCowbell for Pico and PicoW](https://www.adafruit.com/product/5906)
The **Adafruit&nbsp;Proto Doubler PiCowBell** is intended&nbsp;to be treated like a mini solder-less proto plate to simplify programming and sensor connectivity for your Raspberry Pi&nbsp;Pico board. Reset button? Yes! STEMMA QT / Qwiic connector for fast I2C? Indeed. Battery with...

In Stock
[Buy Now](https://www.adafruit.com/product/5906)
[Related Guides to the Product](https://learn.adafruit.com/products/5906/guides)
![Angled shot of black, rectangular doubler prototyping board.](https://cdn-shop.adafruit.com/640x480/5906-00.jpg)

### Mini Remote Control

[Mini Remote Control](https://www.adafruit.com/product/389)
This little remote control would be handy for controlling a robot or other project from across the room. It has 21 buttons and a layout we thought was handy: directional buttons and number entry buttons. The remote uses the NEC encoding type and sends data codes 0 thru 26 (it skips #3, #7,...

In Stock
[Buy Now](https://www.adafruit.com/product/389)
[Related Guides to the Product](https://learn.adafruit.com/products/389/guides)
![Mini Remote Control with 21 buttons](https://cdn-shop.adafruit.com/640x480/389-03.jpg)

### STEMMA JST PH 2mm 3-Pin to Male Header Cable - 200mm

[STEMMA JST PH 2mm 3-Pin to Male Header Cable - 200mm](https://www.adafruit.com/product/3893)
This cable will let you turn a JST PH 3-pin cable port into 3 individual wires with high-quality 0.1" male header plugs on the end. We're carrying these to match up with our Hallowing, for extending and connecting sensors or LEDs - and the wires are even color coded!

<a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/3893)
[Related Guides to the Product](https://learn.adafruit.com/products/3893/guides)
![Angled shot of STEMMA JST PH 3-Pin to Male Header Cable - 200mm.](https://cdn-shop.adafruit.com/640x480/3893-03.jpg)

### Part: Mini HDMI to HDMI Cable
quantity: 1
5 feet
[Mini HDMI to HDMI Cable](https://www.adafruit.com/product/2775)

### Part: Micro B USB Cable
quantity: 1
Fully Reversible Pink/Purple USB A to micro B Cable - 1m long
[Micro B USB Cable](https://www.adafruit.com/product/4111)

### Part: HDMI Monitor
quantity: 1
7" Display 1280x800 (720p) IPS + Speakers - HDMI/VGA/NTSC/PAL
[HDMI Monitor](https://www.adafruit.com/product/1667)

### Part: M2.5 Screws
quantity: 1
Black Nylon Machine Screw and Stand-off Set – M2.5 Thread
[M2.5 Screws](https://www.adafruit.com/product/3299)

# Pico W YBox3

## Circuit Diagram

![](https://cdn-learn.adafruit.com/assets/assets/000/130/452/medium800/arduino_compatibles_ybox3_fritz_bb.png?1717695643)

You'll plug a Pico W and DVI PiCowbell into a PiCowbell Doubler.&nbsp;

The IR Remote Receiver breakout plugs into the GPIO headers on the PiCowbell Doubler with a JST PH cable:

- **Breakout Signal** to **Doubler IO2 (white wire)**
- **Breakout VIN** to **Doubler 3.3V (red wire)**
- **Breakout GND** to **Doubler GND (black wire)**

# Pico W YBox3

## 3D Printing

![](https://cdn-learn.adafruit.com/assets/assets/000/130/454/medium800/arduino_compatibles_edited_P1440789.jpg?1717696714)

The YBox3 may be assembled with 3D printed parts, described below. The enclosure has two parts: a top lid and a bottom lid.

The STL files can be downloaded directly here or from Printables.

[YBox3-3D-Parts.zip](https://cdn-learn.adafruit.com/assets/assets/000/130/457/original/YBox3-3D-Parts.zip?1717698330)
The case has embossed labels and cutouts for the USB and DVI ports.

![arduino_compatibles_edited_P1440779.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/455/medium640/arduino_compatibles_edited_P1440779.jpg?1717696721)

The two lids snap fit together. The top lid has a tab that lets you access the reset button on the DVI PiCowbell.

![arduino_compatibles_edited_P1440794.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/456/medium640/arduino_compatibles_edited_P1440794.jpg?1717696731)

# Pico W YBox3

## OpenWeather Maps API

![](https://cdn-learn.adafruit.com/assets/assets/000/119/314/medium800/lcds___displays_openweatherss.png?1678449759)

## Open Weather Maps API Key

We'll be using [OpenWeatherMaps](https://openweathermap.org/) to retrieve the weather info through its API. To do so, you'll need to register for an account and get your API key.

Go to this&nbsp;[link](https://home.openweathermap.org/users/sign_up)&nbsp;and register for a **free** account. Once registered, you'll get an email containing your API key, known as the "openweather token."

# Pico W YBox3

## Code the YBox3

The Pico W has a relatively small amount of memory, and DVI output and WiFi need a lot of it. As a result, this project is coded up using Arduino. You'll need to install the necessary libraries and add your WiFi and OpenWeatherMap credentials&nbsp;before uploading the code to your Pico W with the Arduino IDE.

## Install the Libraries

You can install the libraries for this project using the Library Manager in the Arduino IDE.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/177/medium800/arduino_compatibles_Arduino_Open_Library_Manager.png?1716408231)

Click the **Manage Libraries...** menu item, search for **Adafruit PicoDVI** , and select the **PicoDVI - Adafruit Fork** library:

![](https://cdn-learn.adafruit.com/assets/assets/000/130/178/medium800/arduino_compatibles_picodviLib.png?1716408256)

If asked about dependencies, click "Install all".

![](https://cdn-learn.adafruit.com/assets/assets/000/130/179/medium800/arduino_compatibles_dviDepends.png?1716408271)

Then install the ArduinoJSON library. Click the&nbsp; **Manage Libraries...** menu item again, search for **ArduinoJSON** , and select the **ArduinoJSON** library by Benoit Blanchon:

![](https://cdn-learn.adafruit.com/assets/assets/000/130/180/medium800/arduino_compatibles_ardJsonLib.png?1716408307)

Finally, install the IRremote library. Click on Manage Libraries... again and search for **IRremote** and select the **IRremote** library.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/181/medium800/arduino_compatibles_irRemoteLib.png?1716408399)

## Code Prep

The code consists of a main **.ino** program file and three header files. The header files store the graphics for the project. You'll need all four of these files to properly compile and run the project. These files are available in the .ZIP folder below or on [GitHub](https://github.com/adafruit/Adafruit_Learning_System_Guides/tree/main/PicoW_YBox3).

[PicoW_YBox3.zip](https://cdn-learn.adafruit.com/assets/assets/000/130/182/original/PicoW_YBox3.zip?1716408650)
https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/PicoW_YBox3/PicoW_YBox3.ino

After downloading the files and opening them in the Arduino IDE, navigate to the **.ino** project file. At the top replace the following variables with your connection information:

- `IR_RECEIVE_PIN` - the pin for the IR receiver breakout. Defaults to 2.
- `ssid` - your WiFi SSID
- `password` - your WiFi SSID password
- `owm_location` - your location for OpenWeatherMaps, ex: `"Boston,US"`
- `owm_key` - your OpenWeatherMaps key
- `timezone` - your timezone as a UTC offset, ex: `-4` for EST
- `tz_text` - your timezone as text, ex: `"EST5EDT"` for EST

Warning: If you don't update the variables at the top of the code, the project will not work!

Upload the sketch to your board. The Pico W will connect to your WiFi network and begin the DVI output. You can use the Serial Monitor in the Arduino IDE for debugging any errors. The code has error messages to let you know if any of the connection variables are missing or not working.

# Pico W YBox3

## Assembly

![](https://cdn-learn.adafruit.com/assets/assets/000/130/458/medium800/arduino_compatibles_edited_P1440803.jpg?1717699223)

Plug a Pico W and DVI PiCowbell into a PiCowbell Doubler. The Pico W should be plugged into the left side (STEMMA QT/Reset button) and the DVI PiCowbell should be plugged into the right side (JST PH battery port/slide switch).

![arduino_compatibles_edited_P1440788.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/459/medium640/arduino_compatibles_edited_P1440788.jpg?1717699232)

Secure the Doubler to the bottom lid of the case with four M2.5 screws.

![arduino_compatibles_edited_P1440777.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/460/medium640/arduino_compatibles_edited_P1440777.jpg?1717699306)

Plug in a JST PH cable with plug headers to the IR breakout. Make sure to **select the horizontal** ( **H** ) IR receiver with the slide switch.

![arduino_compatibles_edited_P1440807.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/461/medium640/arduino_compatibles_edited_P1440807.jpg?1717699373)

Plug in the JST PH cables to the Doubler:

- **White wire** to **IO2**
- **Red wire** to **3.3V**
- **Black wire** to **GND**

Gently bend the pins down so that the cables will lie flat in the case.

![arduino_compatibles_edited_P1440775.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/462/medium640/arduino_compatibles_edited_P1440775.jpg?1717699693)

Attach the IR breakout to the case lid with two M2.5 screws. The back of the board should be facing up.

![arduino_compatibles_edited_P1440772.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/463/medium640/arduino_compatibles_edited_P1440772.jpg?1717699873)

Snap the top and bottom lids together. That completes the assembly!

![arduino_compatibles_edited_P1440768.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/464/medium640/arduino_compatibles_edited_P1440768.jpg?1717699909)

# Pico W YBox3

## Use

![](https://cdn-learn.adafruit.com/assets/assets/000/130/467/medium800thumb/arduino_compatibles_scrolling2x.jpg?1717702563)

After uploading the code in the Arduino IDE, use a mini HDMI cable or adapter to connect to an HDMI monitor. You'll see the first YBox3 channel display the YBX3 logo and scrolling text showing you the date and time.

You can use the IR remote to change the channels on the YBox3. The **1 button** shows the date/time channel, the **2 button** shows the weather channel and the **3 button** shows the bouncing ball screensaver.

![arduino_compatibles_channelChange1.gif](https://cdn-learn.adafruit.com/assets/assets/000/130/466/medium640thumb/arduino_compatibles_channelChange1.jpg?1717702425)

The date and time are fetched from the [WorldTimeAPI](http://worldtimeapi.org/).&nbsp;

![arduino_compatibles_edited_P1440811.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/468/medium640/arduino_compatibles_edited_P1440811.jpg?1717702590)

The weather is fetched from [OpenWeatherMaps](https://openweathermap.org/). The code shows the current weather condition, temperature, humidity and barometric pressure. An icon in the upper corners will change depending on the weather condition.

![arduino_compatibles_edited_P1440824.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/469/medium640/arduino_compatibles_edited_P1440824.jpg?1717702827)

The [bouncing ball screensaver](https://learn.adafruit.com/picodvi-arduino-library-video-out-for-rp2040-boards/screensavers#boing-3144852) was coded by Phil B. as a standalone demo for the PicoDVI library.

![arduino_compatibles_bounce.gif](https://cdn-learn.adafruit.com/assets/assets/000/130/470/medium640thumb/arduino_compatibles_bounce.jpg?1717703124)

## Going Further

You can customize the YBox3 project code to better fit your needs. You can experiment with different API's, screensavers, colors, etc. If you want to use a different IR remote, you can change the expected IR codes. If you code up your own version, be sure to post it up on [Adafruit Playground!](https://adafruit-playground.com/)


## Featured Products

### Adafruit PiCowbell DVI Output for Pico - Works with HDMI Display

[Adafruit PiCowbell DVI Output for Pico - Works with HDMI Display](https://www.adafruit.com/product/5745)
Ding dong! Hear that? It's the PiCowbell ringing, letting you know that the new&nbsp; **Adafruit PiCowbell DVI Output for Pico** &nbsp;is in stock&nbsp;and ready to&nbsp;display images and graphics from a microcontroller directly to an HDMI monitor or television!&nbsp;Note it...

In Stock
[Buy Now](https://www.adafruit.com/product/5745)
[Related Guides to the Product](https://learn.adafruit.com/products/5745/guides)
### Raspberry Pi Pico WH - Pico Wireless with Headers Soldered

[Raspberry Pi Pico WH - Pico Wireless with Headers Soldered](https://www.adafruit.com/product/5544)
The Raspberry Pi foundation changed single-board computing [when they released the Raspberry Pi computer](https://www.raspberrypi.org/archives/723), now they're ready to do the same for microcontrollers with the release of the brand new **Raspberry Pi Pico WH**....

In Stock
[Buy Now](https://www.adafruit.com/product/5544)
[Related Guides to the Product](https://learn.adafruit.com/products/5544/guides)
### Adafruit Infrared IR Remote Receiver - STEMMA JST PH 2mm

[Adafruit Infrared IR Remote Receiver - STEMMA JST PH 2mm](https://www.adafruit.com/product/5939)
A year ago we designed a high-current-output&nbsp;[Infrared&nbsp;Transmitter STEMMA](https://www.adafruit.com/product/5639)&nbsp;which makes it easy to create high-powered IR LED blasters. Now we've sat down to design the other side, the&nbsp;super sensitive wide-range **...**

In Stock
[Buy Now](https://www.adafruit.com/product/5939)
[Related Guides to the Product](https://learn.adafruit.com/products/5939/guides)
### Adafruit Proto Doubler PiCowbell for Pico and PicoW

[Adafruit Proto Doubler PiCowbell for Pico and PicoW](https://www.adafruit.com/product/5906)
The **Adafruit&nbsp;Proto Doubler PiCowBell** is intended&nbsp;to be treated like a mini solder-less proto plate to simplify programming and sensor connectivity for your Raspberry Pi&nbsp;Pico board. Reset button? Yes! STEMMA QT / Qwiic connector for fast I2C? Indeed. Battery with...

In Stock
[Buy Now](https://www.adafruit.com/product/5906)
[Related Guides to the Product](https://learn.adafruit.com/products/5906/guides)
### Mini Remote Control

[Mini Remote Control](https://www.adafruit.com/product/389)
This little remote control would be handy for controlling a robot or other project from across the room. It has 21 buttons and a layout we thought was handy: directional buttons and number entry buttons. The remote uses the NEC encoding type and sends data codes 0 thru 26 (it skips #3, #7,...

In Stock
[Buy Now](https://www.adafruit.com/product/389)
[Related Guides to the Product](https://learn.adafruit.com/products/389/guides)
### STEMMA JST PH 2mm 3-Pin to Male Header Cable - 200mm

[STEMMA JST PH 2mm 3-Pin to Male Header Cable - 200mm](https://www.adafruit.com/product/3893)
This cable will let you turn a JST PH 3-pin cable port into 3 individual wires with high-quality 0.1" male header plugs on the end. We're carrying these to match up with our Hallowing, for extending and connecting sensors or LEDs - and the wires are even color coded!

<a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/3893)
[Related Guides to the Product](https://learn.adafruit.com/products/3893/guides)
### Mini HDMI to HDMI Cable - 5 feet

[Mini HDMI to HDMI Cable - 5 feet](https://www.adafruit.com/product/2775)
Connect a device with a&nbsp;Mini HDMI port to a regular sized HDMI port together with this basic HDMI cable. It has nice molded grips for easy installation, and is 1.5 meter long (about 5 feet). [Perfect for use with your new Raspberry Pi...](https://www.adafruit.com/pizero)

In Stock
[Buy Now](https://www.adafruit.com/product/2775)
[Related Guides to the Product](https://learn.adafruit.com/products/2775/guides)
### Fully Reversible Pink/Purple USB A to micro B Cable - 1m long

[Fully Reversible Pink/Purple USB A to micro B Cable - 1m long](https://www.adafruit.com/product/4111)
This cable is not only super-fashionable, with a woven pink and purple Blinka-like pattern, it's also fully reversible! That's right, you will save _seconds_ a day by not having to flip the cable around.

First let's talk about the cover and over-molding. We got these...

In Stock
[Buy Now](https://www.adafruit.com/product/4111)
[Related Guides to the Product](https://learn.adafruit.com/products/4111/guides)

## Related Guides

- [Adafruit PiCowbell DVI Output](https://learn.adafruit.com/adafruit-picowbell-dvi-output.md)
- [Adafruit Proto Doubler PiCowbell](https://learn.adafruit.com/adafruit-proto-doubler-picowbell.md)
- [Adafruit Infrared IR Remote Receiver](https://learn.adafruit.com/adafruit-infrared-ir-remote-receiver.md)
- [Magic Band Reader](https://learn.adafruit.com/magic-band-reader.md)
- [CYBERDECK Expansion Plate](https://learn.adafruit.com/cyberdeck-plate.md)
- [Mini VOTE Keyboard](https://learn.adafruit.com/vote-keyboard.md)
- [PiCowBell Proto Brick Plates](https://learn.adafruit.com/piccowbell-doubler-brick-plates.md)
- [CircuitPython Trombone Champ Controller](https://learn.adafruit.com/circuitpython-trombone-champ-controller.md)
- [How to Make Animated Graphics for Hologram Displays](https://learn.adafruit.com/how-to-make-animated-graphics-for-hologram-displays.md)
- [Metro Minimalist Clock](https://learn.adafruit.com/metro-minimalist-clock.md)
- [Adafruit Swirly Aluminum Mounting Grid for 0.1" Spaced PCBs](https://learn.adafruit.com/swirly-grid.md)
- [PyPortal Air Quality Display](https://learn.adafruit.com/pyportal-air-quality-display.md)
- [Circle of Fifths Euclidean Synth with synthio and CircuitPython](https://learn.adafruit.com/circle-of-fifths-euclidean-synth-with-synthio-and-circuitpython.md)
- [MIDI Laser Harp with Time of Flight Distance Sensors](https://learn.adafruit.com/midi-laser-harp-time-of-flight-sensors.md)
- [3D Print Ratcatcher 2 Controller Device](https://learn.adafruit.com/3d-print-ratcatcher-2-controller-device-wand.md)
- [NeoKey Emoji Keyboard](https://learn.adafruit.com/neokey-emoji-keyboard.md)
- [Knobby Sequencer](https://learn.adafruit.com/knobby-sequencer.md)
