# Raspberry Pi Rotary Encoder Animated Gif Player

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/104/904/medium800thumb/raspberry_pi_Guide_Image.jpg?1632868845)

While there are plenty of animated gif players, none of them allow you to control the animated gifs like a slide show. This guide will show you how to build 2 different Animated Gif Players that allow you to control the speed and direction with a rotary encoder based on the hardware you have available. Build one yourself and join the Rotary Gif club!

![](https://cdn-learn.adafruit.com/assets/assets/000/104/900/medium800thumb/raspberry_pi_IMG_3580.jpg?1632867355)

In the first one, the Mini PiTFT Player, is an Animated Gif Player that is similar to the Gif Player in the [PiTFT Python + Pillow Animated Gif Player](https://learn.adafruit.com/pitft-linux-python-animated-gif-player) guide and is in fact based on the animated Gif player from that guide. However, the code has been modified to be controlled by a rotary encode that can be connected easily by STEMMA QT.

![](https://cdn-learn.adafruit.com/assets/assets/000/104/901/medium800thumb/raspberry_pi_IMG_3577.jpg?1632867403)

In the second player, the PyGame Player, is a similar player that uses the Official Raspberry Pi 7" Display and a Rotary Trinkey. This version uses PyGame to create a full-sized window on a desktop version of Raspberry Pi.

## Parts

You'll need the following parts for both. Any of the Raspberry Pi 4 models should work fine.

### Raspberry Pi 4 Model B

[Raspberry Pi 4 Model B](https://www.adafruit.com/product/4297)
The Raspberry Pi 4 Model B is the newest Raspberry Pi computer made, and the Pi Foundation knows you can always make a good thing _better_! And what could make the Pi 4 better than the 3? How about a&nbsp;_faster_ processor, USB 3.0 ports, and updated Gigabit Ethernet chip with...

Out of Stock
[Buy Now](https://www.adafruit.com/product/4297)
[Related Guides to the Product](https://learn.adafruit.com/products/4297/guides)
![Angled shot of Raspberry Pi 4](https://cdn-shop.adafruit.com/640x480/4297-02.jpg)

### Rotary Encoder + Extras

[Rotary Encoder + Extras](https://www.adafruit.com/product/377)
This rotary encoder is the best of the best, it's a high-quality 24-pulse encoder, with detents and a nice feel. It is panel mountable for placement in a box, or you can plug it into a breadboard (just cut/bend the two mechanical side tabs.) We also include a nice soft-touch knob with an...

Out of Stock
[Buy Now](https://www.adafruit.com/product/377)
[Related Guides to the Product](https://learn.adafruit.com/products/377/guides)
![Rotary Encoder with rubbery knob](https://cdn-shop.adafruit.com/640x480/377-02.jpg)

### Mini PiTFT Player Parts
### Adafruit Mini PiTFT 1.3" - 240x240 TFT Add-on for Raspberry Pi

[Adafruit Mini PiTFT 1.3" - 240x240 TFT Add-on for Raspberry Pi](https://www.adafruit.com/product/4484)
If you're looking for the most compact li'l color display for a [Raspberry Pi](https://www.adafruit.com/category/361) (most&nbsp;likely a [Pi Zero](https://www.adafruit.com/category/813)) project, this might be just the thing you need!

The **...**

In Stock
[Buy Now](https://www.adafruit.com/product/4484)
[Related Guides to the Product](https://learn.adafruit.com/products/4484/guides)
![Video of Adafruit Mini PiTFT 1.3" - 240x240 TFT Add-on on a Raspberry Pi 4. The TFT displays a bootup sequence.](https://cdn-shop.adafruit.com/product-videos/640x480/4484-05.jpg)

### Adafruit I2C Stemma QT Rotary Encoder Breakout with NeoPixel

[Adafruit I2C Stemma QT Rotary Encoder Breakout with NeoPixel](https://www.adafruit.com/product/4991)
Rotary encoders are soooo much fun! Twist em this way, then twist them that way. Unlike potentiometers, they go all the way around and often have little detents for tactile feedback. But, if you've ever tried to add encoders to your project you know that they're a real challenge to...

Out of Stock
[Buy Now](https://www.adafruit.com/product/4991)
[Related Guides to the Product](https://learn.adafruit.com/products/4991/guides)
![Top view video of a hand turning the rotary encoder knobs on three PCBs. The NeoPixel LEDs on each PCB change color. The OLED display changes its readout data with each twisty-turn.](https://cdn-shop.adafruit.com/product-videos/640x480/4991-08.jpg)

### STEMMA QT / Qwiic JST SH 4-pin Cable - 100mm Long

[STEMMA QT / Qwiic JST SH 4-pin Cable - 100mm Long](https://www.adafruit.com/product/4210)
This 4-wire cable is a little over 100mm / 4" long and fitted with JST-SH female 4-pin connectors on both ends. Compared with the chunkier JST-PH these are 1mm pitch instead of 2mm, but still have a nice latching feel, while being easy to insert and remove.

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

Out of Stock
[Buy Now](https://www.adafruit.com/product/4210)
[Related Guides to the Product](https://learn.adafruit.com/products/4210/guides)
![Angled shot of STEMMA QT / Qwiic JST SH 4-pin Cable.](https://cdn-shop.adafruit.com/640x480/4210-00.jpg)

### PyGame Player Parts
### Adafruit Rotary Trinkey - USB NeoPixel Rotary Encoder

[Adafruit Rotary Trinkey - USB NeoPixel Rotary Encoder](https://www.adafruit.com/product/4964)
It's half USB Key, half Adafruit Trinket, half rotary encoder_..._it's **Rotary Trinkey** , the circuit board with a Trinket M0 heart, a NeoPixel glow, and a rotary encoder body. [We were inspired by this...](https://twitter.com/todbot/status/1365107469345648643)

In Stock
[Buy Now](https://www.adafruit.com/product/4964)
[Related Guides to the Product](https://learn.adafruit.com/products/4964/guides)
![Video of a woman turning the rotary  on Rotary Trinkey. The LED changes rainbow colors.](https://cdn-shop.adafruit.com/product-videos/640x480/4964-06.jpg)

These parts are more optional since it could be run on an external monitor, but it tidies up everything.

### Pi Foundation Display - 7" Touchscreen Display for Raspberry Pi

[Pi Foundation Display - 7" Touchscreen Display for Raspberry Pi](https://www.adafruit.com/product/2718)
The **7” Touchscreen Display for Raspberry Pi** gives users the ability to create all-in-one, integrated projects such as tablets, infotainment systems and embedded projects!

The 800x480 display connects via an adapter board which handles power and signal conversion....

In Stock
[Buy Now](https://www.adafruit.com/product/2718)
[Related Guides to the Product](https://learn.adafruit.com/products/2718/guides)
![Top down view of a finger touching the screen of a Pi Foundation Display - 7" Touchscreen Display for Raspberry Pi. ](https://cdn-shop.adafruit.com/640x480/2718-07.jpg)

### SmartiPi Touch Pro for Raspberry Pi and Official 7" Display

[SmartiPi Touch Pro for Raspberry Pi and Official 7" Display](https://www.adafruit.com/product/4951)
Here is an updated, excellently designed stand that provides a sleek and sturdy look for the&nbsp;[7" Touchscreen Display](https://www.adafruit.com/product/2718) and[Raspberry Pi](https://www.adafruit.com/categories/288). Say hello to the...

In Stock
[Buy Now](https://www.adafruit.com/product/4951)
[Related Guides to the Product](https://learn.adafruit.com/products/4951/guides)
![Angled shot of assembled SmartPi Touch Pro. The touchscreen displays a wallpaper of a European cityscape at sunrise.](https://cdn-shop.adafruit.com/640x480/4951-03.jpg)

Because the Smarti Pi display orients the Trinkey with the knob in the rear, you may want to also pick up a short USB extension cable.

### Part: USB Extension Cable
quantity: 1
6-inch USB 3.0 Extension Cable
[USB Extension Cable](https://amzn.to/3kApSD2)

# Raspberry Pi Rotary Encoder Animated Gif Player

## Mini PiTFT Player

## Wiring

It's easy to connect everything together with the Mini PiTFT player. First connect the display to the Raspberry Pi:

![](https://cdn-learn.adafruit.com/assets/assets/000/104/841/medium800/raspberry_pi_adafruit_products_Pi_MiniTFT_1-3in_plugged_in.png?1632527104)

Then just connect a STEMMA QT Rotary Encoded up the the STEMMA QT Connector on the Mini PiTFT.

## Setup

You will want to start by installing the latest version of the Raspberry Pi Lite onto an SD card. You can refer to the [CircuitPython Libraries on Linux and Raspberry Pi](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux) guide for more help setting it up.

Once you have everything set up, you will need to open a terminal and install Blinka. Refer to the [Installing CircuitPython Libraries on Raspberry Pi](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux/installing-circuitpython-on-raspberry-pi) page to quickly get up and running.

## Install Required Libraries

You will need to have a few libraries installed before the script will run on your computer.

Install the required CircuitPython libraries:

```terminal
pip3 install adafruit-circuitpython-rgb-display
pip3 install adafruit-circuitpython-seesaw
pip3 install --upgrade --force-reinstall spidev
```

Also, install NumPy since it will speed up the RGB Display library:

```terminal
pip3 install numpy
```

## DejaVu TTF Font

Raspberry Pi usually comes with the DejaVu font already installed, but in case it didn't, you can run the following to install it:

```terminal
sudo apt-get install ttf-dejavu
```

## Pillow Library

We also need PIL, the Python Imaging Library, to allow graphics and using text with custom fonts. There are several system libraries that PIL relies on, so installing via a package manager is the easiest way to bring in everything:

```terminal
sudo apt-get install python3-pil
```

## Download the Code

Copy **mini\_pitft\_player.py** &nbsp;and&nbsp; **animatedgif.py** onto the Raspberry Pi. You can download them by clicking on the Download Project Bundle below or you can use `wget`&nbsp;to copy them right off the web into your current folder:

```terminal
wget https://github.com/adafruit/Adafruit_Learning_System_Guides/raw/main/Raspberry_Pi_Animated_Gif_Player/mini_pitft_player.py
wget https://github.com/adafruit/Adafruit_Learning_System_Guides/raw/main/Raspberry_Pi_Animated_Gif_Player/animatedgif.py
```

## Run the Script

Just run it using the following command:

```terminal
python3 mini_pitft_player.py
```

![](https://cdn-learn.adafruit.com/assets/assets/000/104/846/medium800/raspberry_pi_IMG_3579.jpeg?1632761614)

## Full Player Code
https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Raspberry_Pi_Animated_Gif_Player/mini_pitft_player.py

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Raspberry_Pi_Animated_Gif_Player/animatedgif.py

# Raspberry Pi Rotary Encoder Animated Gif Player

## PyGame Player

![](https://cdn-learn.adafruit.com/assets/assets/000/104/848/medium800/raspberry_pi_IMG_3578.jpeg?1632761863)

This one is a bit more complicated because it uses 2 devices running Python that need to communicate with each other through serial.

## How it works

This player is in two parts. It uses a Rotary Trinkey running CircuitPython to receive the input and translate it into serial data and the second part runs on the Raspberry Pi and reads that serial data and decodes that to the original inputs and uses that to determine the when to advance the animated Gif frames. This is the same technique used in the [MacroPad Remote Procedure Calls over USB to Control Home Assistant](https://learn.adafruit.com/macropad-remote-procedure-calls-over-usb-to-control-home-assistant) guide.

For the Rotary Trinkey, the code is very similar to the standard example code, but with a few key differences. It will communicate using a second CDC\_Data serial port so that unnecessary characters are not added to the stream by CircuitPython. It will also print out the word "click" when the button is pressed and everything is separated by commas instead of printing onto a new line.

For the Python program, it starts off by detecting the serial port that the Rotary Trinkey is connected to and initializing it with PySerial. Once it is connected, PyGame is initialized in fullscreen mode and the mouse cursor is hidden. It then preloads any Gif images found in the folder and stores them in a list. It starts off with the first image in whatever order the `os` module returns the files in and loads up the first one.

Once an image is loaded, it waits for data and depending on the direction you turn the know it will either go forward or backwards in frames. A modulus operator is used to keep the current frame value within the index boundaries. Once the frame is extracted with Pillow, it is loaded into PyGame as a surface using the `blit()` command and the screen is updated with the `flip()` command.

## Wiring

Wiring is super easy on this player because all you need to do is connect the Rotary Trinkey to any of the USB ports. We recommend using a USB extension if you have the Display mounted on a stand because the orientation of the Raspberry Pi causes the Trinkey to only be accessible from the rear.

If you bought the SmartiPi Pro case, you can find assembly instructions on [their website](https://smarticase.com/products/smartipi-touch-pro).

![](https://cdn-learn.adafruit.com/assets/assets/000/104/850/medium800/raspberry_pi_SmartiPi_Pro.png?1632764115)

## Rotary Trinkey Setup

You'll want to put the latest version of CircuitPython onto the Rotary Trinkey first. If you're not sure how to do it, you can refer to CircuitPython installation page of the [Adafruit Rotary Trinkey](https://learn.adafruit.com/adafruit-rotary-trinkey/circuitpython) guide.

For this project, there are no libraries needed. Everything is built into CircuitPython itself.

You will need to copy both the **boot.py** and **code.py** files onto the Trinkey, in the root of the **CIRCUITPY** drive that should show up. You can download them by clicking on the Download Project Bundle below.

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Raspberry_Pi_Animated_Gif_Player/code.py

The **boot.py** file has the setting sin it you need to enable the CDC Data Device. You can read more about it in our&nbsp;[Customizing USB Devices in CircuitPython](https://learn.adafruit.com/customizing-usb-devices-in-circuitpython/circuitpy-midi-serial)&nbsp;guide.

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Raspberry_Pi_Animated_Gif_Player/boot.py

## Raspberry Pi Setup

You will want to start by installing the latest version of the Raspberry Pi Desktop onto an SD card. There's a nice utility available from Raspberry Pi called the [Raspberry Pi Imager](https://www.raspberrypi.org/software/) that makes installing images very easy. You can also refer to the [CircuitPython Libraries on Linux and Raspberry Pi](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux) guide for more help setting it up.

Once you have everything set up, you will need to open a terminal and install Blinka. We recommend referring to the [Installing CircuitPython Libraries on Raspberry Pi](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux/installing-circuitpython-on-raspberry-pi) page of that guide to quickly get up and running.

## Install Required Libraries

You will need to have a few libraries installed before the script will run on your computer.

Install Adafruit\_Board\_Toolkit:

```terminal
pip3 install adafruit-board-toolkit
```

Install PySerial next:

```terminal
pip3 install pyserial
```

Install PyGame next:

```terminal
pip3 install pygame
```

## DejaVu TTF Font

Raspberry Pi usually comes with the DejaVu font already installed, but in case it didn't, you can run the following to install it:

```terminal
sudo apt-get install fonts-dejavu
```

This package was previously calls **ttf-dejavu** , so if you are running an older version of Raspberry Pi OS, it may be called that.

## Pillow Library

We also need PIL, the Python Imaging Library, to allow graphics and using text with custom fonts. There are several system libraries that PIL relies on, so installing via a package manager is the easiest way to bring in everything:

```terminal
sudo apt-get install python3-pil
```

## Download the Code

Copy **pygame\_player.py** &nbsp;and&nbsp; **animatedgif.py** &nbsp;onto the Raspberry Pi. You can either copy them out of the bundle that you downloaded in the Rotary Trinkey Setup step or you can use&nbsp;`wget`&nbsp;to copy them right off the web into your current folder:

```auto
wget https://github.com/adafruit/Adafruit_Learning_System_Guides/raw/main/Raspberry_Pi_Animated_Gif_Player/pygame_player.py
wget https://github.com/adafruit/Adafruit_Learning_System_Guides/raw/main/Raspberry_Pi_Animated_Gif_Player/animatedgif.py
```

## Run the Script

The code must be run from a terminal window on the Pi itself and not from an SSH session. This is because PyGame will try and create a window on the current device you are typing from. Just run it using the following command:

```terminal
python3 pygame_player.py
```

![](https://cdn-learn.adafruit.com/assets/assets/000/104/847/medium800thumb/raspberry_pi_IMG_3577.jpg?1632761847)

## Full Player Code
https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Raspberry_Pi_Animated_Gif_Player/pygame_player.py

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Raspberry_Pi_Animated_Gif_Player/animatedgif.py

# Raspberry Pi Rotary Encoder Animated Gif Player

## Using the Player

## Adding Animated Gifs

You can find animated Gifs all over the internet. A great website for finding a large collection of them is [giphy.com](https://giphy.com/). Once you find them, you'll need to get them over to your Raspberry Pi. The easiest way would be to just use FTP or downloading them directly from the internet on your Pi if that's what you would prefer. Just make sure they're in the same folder as the script.

The default folder used in the test scripts is an images subfolder inside of the folder the script is in. If you are using something different, be sure to change it at the bottom of the script.

## Scrolling and Navigating through Animated Gifs

Just rotate the knob clockwise to start scrolling through the frames of the current Gif. If you turn the knob fast, it will move faster and turning it slowly will make it advance frames at a slower rate.

For the Mini PiTFT Player it seems turning the knob too fast will make the animation slow down a bit because it takes more processing power to pipe the data out to the TFT display and it can't read the rotary encoder quite as often.

To load the next animated Gif, just click the knob inward. When it gets to the end, it will load the first Gif.

![](https://cdn-learn.adafruit.com/assets/assets/000/104/849/medium800thumb/raspberry_pi_IMG_3580.jpg?1632763677)

## Exiting the Player

On the PyGame Player, just hit ESC on the keyboard to exit. For the Mini PiTFT Player, you can just hit Control+C to exit.

## Some Modifications to Try

There is some room for modification in the code. For instance in either player, you can change `include_delays=``False` to `include_delays=True` and then it will include the built-in delays that are part of the animated Gif file.

Another modification that could be made for the PyGame Player takes advantage of the touch sensor on the Rotary Trinkey and uses that to send a quit command to close the application.

For the Mini PiTFT Player you can have it jump a certain number of frames based on the rotary increase on the knob. This may have the effect of the animated gif skipping around though. Have fun with it and see what you can get it to do.


## Featured Products

### Raspberry Pi 4 Model B

[Raspberry Pi 4 Model B](https://www.adafruit.com/product/4297)
The Raspberry Pi 4 Model B is the newest Raspberry Pi computer made, and the Pi Foundation knows you can always make a good thing _better_! And what could make the Pi 4 better than the 3? How about a&nbsp;_faster_ processor, USB 3.0 ports, and updated Gigabit Ethernet chip with...

Out of Stock
[Buy Now](https://www.adafruit.com/product/4297)
[Related Guides to the Product](https://learn.adafruit.com/products/4297/guides)
### Rotary Encoder + Extras

[Rotary Encoder + Extras](https://www.adafruit.com/product/377)
This rotary encoder is the best of the best, it's a high-quality 24-pulse encoder, with detents and a nice feel. It is panel mountable for placement in a box, or you can plug it into a breadboard (just cut/bend the two mechanical side tabs.) We also include a nice soft-touch knob with an...

Out of Stock
[Buy Now](https://www.adafruit.com/product/377)
[Related Guides to the Product](https://learn.adafruit.com/products/377/guides)
### Adafruit Mini PiTFT 1.3" - 240x240 TFT Add-on for Raspberry Pi

[Adafruit Mini PiTFT 1.3" - 240x240 TFT Add-on for Raspberry Pi](https://www.adafruit.com/product/4484)
If you're looking for the most compact li'l color display for a [Raspberry Pi](https://www.adafruit.com/category/361) (most&nbsp;likely a [Pi Zero](https://www.adafruit.com/category/813)) project, this might be just the thing you need!

The **...**

In Stock
[Buy Now](https://www.adafruit.com/product/4484)
[Related Guides to the Product](https://learn.adafruit.com/products/4484/guides)
### Adafruit Rotary Trinkey - USB NeoPixel Rotary Encoder

[Adafruit Rotary Trinkey - USB NeoPixel Rotary Encoder](https://www.adafruit.com/product/4964)
It's half USB Key, half Adafruit Trinket, half rotary encoder_..._it's **Rotary Trinkey** , the circuit board with a Trinket M0 heart, a NeoPixel glow, and a rotary encoder body. [We were inspired by this...](https://twitter.com/todbot/status/1365107469345648643)

In Stock
[Buy Now](https://www.adafruit.com/product/4964)
[Related Guides to the Product](https://learn.adafruit.com/products/4964/guides)
### Pi Foundation Display - 7" Touchscreen Display for Raspberry Pi

[Pi Foundation Display - 7" Touchscreen Display for Raspberry Pi](https://www.adafruit.com/product/2718)
The **7” Touchscreen Display for Raspberry Pi** gives users the ability to create all-in-one, integrated projects such as tablets, infotainment systems and embedded projects!

The 800x480 display connects via an adapter board which handles power and signal conversion....

In Stock
[Buy Now](https://www.adafruit.com/product/2718)
[Related Guides to the Product](https://learn.adafruit.com/products/2718/guides)
### SmartiPi Touch Pro for Raspberry Pi and Official 7" Display

[SmartiPi Touch Pro for Raspberry Pi and Official 7" Display](https://www.adafruit.com/product/4951)
Here is an updated, excellently designed stand that provides a sleek and sturdy look for the&nbsp;[7" Touchscreen Display](https://www.adafruit.com/product/2718) and[Raspberry Pi](https://www.adafruit.com/categories/288). Say hello to the...

In Stock
[Buy Now](https://www.adafruit.com/product/4951)
[Related Guides to the Product](https://learn.adafruit.com/products/4951/guides)
### SmartiPi Touch 2 - Stand for Raspberry Pi 7" Touchscreen Display

[SmartiPi Touch 2 - Stand for Raspberry Pi 7" Touchscreen Display](https://www.adafruit.com/product/4377)
Here is an updated, excellently designed stand that provides a sleek and sturdy look for the&nbsp;[7" Touchscreen Display](https://www.adafruit.com/product/2718) and[Raspberry Pi](https://www.adafruit.com/categories/288). Say hello to the...

In Stock
[Buy Now](https://www.adafruit.com/product/4377)
[Related Guides to the Product](https://learn.adafruit.com/products/4377/guides)
### Pimoroni Raspberry Pi 7" Touchscreen Display Case - Noir

[Pimoroni Raspberry Pi 7" Touchscreen Display Case - Noir](https://www.adafruit.com/product/2033)
Noir&nbsp;is the new black! With this **Noir&nbsp;Raspberry Pi 7" Touchscreen Display Case** you can&nbsp;protect your lovely&nbsp;[Pi Foundation PiTFT - 7" Touchscreen Display for Raspberry Pi](https://www.adafruit.com/products/2718)!

Three unique...

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

## Related Guides

- [Adafruit I2C QT Rotary Encoder](https://learn.adafruit.com/adafruit-i2c-qt-rotary-encoder.md)
- [Adafruit Rotary Trinkey](https://learn.adafruit.com/adafruit-rotary-trinkey.md)
- [Adafruit Mini PiTFT - Color TFT Add-ons for Raspberry Pi](https://learn.adafruit.com/adafruit-mini-pitft-135x240-color-tft-add-on-for-raspberry-pi.md)
- [PiTFT Python + Pillow Animated Gif Player](https://learn.adafruit.com/pitft-linux-python-animated-gif-player.md)
- [Custom HID Devices in CircuitPython](https://learn.adafruit.com/custom-hid-devices-in-circuitpython.md)
- [Coffee Rater](https://learn.adafruit.com/coffee-rater.md)
- [CircuitPython Rotary Trinkey Brightness Crank](https://learn.adafruit.com/circuitpython-rotary-trinkey-brightness-crank.md)
- [PiPyPirate Radio](https://learn.adafruit.com/pipypirate-radio.md)
- [Using a 5V Stepper Motor with the RasPiRobot Board V2](https://learn.adafruit.com/using-a-5v-stepper-motor-with-the-raspirobot-board-v2.md)
- [Adafruit ItsyBitsy RP2040](https://learn.adafruit.com/adafruit-itsybitsy-rp2040.md)
- [Memories of an Arduino](https://learn.adafruit.com/memories-of-an-arduino.md)
- [Using the RockBLOCK Iridium Modem](https://learn.adafruit.com/using-the-rockblock-iridium-modem.md)
- [Moonshine Voice Control on Raspberry Pi](https://learn.adafruit.com/moonshine-voice-control-on-raspberry-pi.md)
- [Adafruit IO Home: Lights and Temperature ](https://learn.adafruit.com/adafruit-io-house-lights-and-temperature.md)
- [An Illustrated Guide to Shell Magic: Typing Less & Doing More](https://learn.adafruit.com/an-illustrated-guide-to-shell-magic-typing-less-and-doing-more.md)
- [Karel The Robot In CircuitPython](https://learn.adafruit.com/karel-the-robot-in-circuitpython.md)
