# Adafruit RS-232 Full Pinout Level-Shifter Breakout

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/131/806/medium800/adafruit_products_5988-05.jpg?1723499902)

Info: This breakout is available in two variants: one with a DE-9 Male connector and one with a DE-9 Female connector.

![](https://cdn-learn.adafruit.com/assets/assets/000/135/689/medium800/adafruit_products_6253-01.jpg?1741276589)

If you want to interface with telco, retro, or industrial equipment, you'll probably run into RS-232 interfaces. **The Adafruit RS232 Full-Pinout Breakout with 8 Channels of UART to RS-232 Level Shifters** is your friend in such cases. It gives you 5 input and 3 output channels of level shifting and takes care of the high/negative voltage generation all in a low-cost breakout board. We use the trusty [MAX3243](https://www.ti.com/product/MAX3243) from TI, a classic chip part of the MAX232 lineage, so you know it will work great for all your RS-232 needs, up to 250Kbps.

![](https://cdn-learn.adafruit.com/assets/assets/000/131/807/medium800/adafruit_products_5988-03.jpg?1723499951)

RS-232 is what we had before USB: a 9- or 25-pin D-Sub connector that allowed data plus flow control lines. Many folks may remember these interfaces were used for mice, modems, barcode scanners, teletypes, and more. We still find devices sold with RS-232 ports, although [many folks use a USB to RS-232 adapter](https://www.adafruit.com/search?q=usb+to+rs-232) these days.

![](https://cdn-learn.adafruit.com/assets/assets/000/131/808/medium800/adafruit_products_5988-00.jpg?1723499987)

If you want to use a microcontroller or microcomputer to chat with an RS-232, then thankfully, all you need is a serial port / UART (something just about any microcontroller has) and a level shifter. The level shifter is required because while most UARTs are 0-3.3V or 0-5V logic level, RS-232 requires +-6 to +-10V, yep the signal voltage goes negative! That means a specialized shifter is required to generate extra high and low voltages and safely convert the logic levels.

![](https://cdn-learn.adafruit.com/assets/assets/000/131/809/medium800/adafruit_products_5988-04.jpg?1723500013)

Sure you could buy a raw [MAX232 chip](https://www.digikey.com/en/products/detail/texas-instruments/MAX232N/277048) and wire up the necessary capacitors, but this board does it all for you and even comes with a DE-9 connector for plugging in directly into your 'client' device. It can run on 3.3V power and logic, which many older chips can't do. It also can do all 8 data pins, so you can use all of the flow control signals like RTS, CTS, DTR, DSR, DCD and RI.

![](https://cdn-learn.adafruit.com/assets/assets/000/135/690/medium800/adafruit_products_6253-04.jpg?1741276614)

We also include two separate lines from the MAX3243: 'Valid' and 'Off'. The **Valid** line output will have logic level high when the chip detects signal voltages from the device its plugged into. So you can use it as a 'connection made' signal. There's also the **Off** pin, which when set to logic high by the microcontroller will tri-state all the pins for power reduction.

![](https://cdn-learn.adafruit.com/assets/assets/000/131/811/medium800/adafruit_products_5988-02.jpg?1723500100)

This breakout comes fully assembled with a UART side for low-voltage power/logic level, and a DE-9F RS-232 side for high-voltage signals. We also include some header so you can solder to a breadboard in a few minutes.

# Adafruit RS-232 Full Pinout Level-Shifter Breakout

## Pinouts

![](https://cdn-learn.adafruit.com/assets/assets/000/131/815/medium800/adafruit_products_double.jpg?1723503559)

## Power Pins

- **Vin** - this is the power pin. To power the board, give it the same power as the logic level of your microcontroller - e.g. for a 5V microcontroller like Arduino, use 5V. The MAX3243 can generate the extra high and low voltages and also safely convert the logic levels needed for RS-232.
- **GND** - common ground for power and logic.

## DE-9 Connector

At the edge of the board is the [DE-9 connector](https://commons.wikimedia.org/wiki/File:RS-232_DE-9_Connector_Pinouts.png). It is a 9-pin connector for interfacing directly with RS-232 equipment. Its pinout is as follows:

- Pin 1: **DCD**
- Pin 2: **RXI**
- Pin 3: **TXO**
- Pin 4: **DTR**
- Pin 5: **GND**
- Pin 6: **DSR**
- Pin 7: **RTS**
- Pin 8: **CTS**
- Pin 9: **RING**

## UART Pins

- **RX** - The data input for receiving serial data from the RS-232 line **(pin 2 on the DE-9 connector)**
- **TX** - The data output for sending serial data to the RS-232 line **(pin 3 on the DE-9 connector)**

## Flow Control Pins

- **DCD** - The data carrier detect pin. This output from the **DE-9 connector (pin 1)** is used to indicate whether a device is connected.
- **DTR** - The data terminal ready pin. This output from the **DE-9 connector (pin 4)** indicates that the device has data ready to transmit.
- **DSR** - The data set ready pin. This input to the **DE-9 connector (pin 6)** indicates that the connected microcontroller is ready to connect.
- **RTS** - The request to send pin. This output from the **DE-9 connector (pin 7)** indicates that the RS-232 device is ready to send data.
- **CTS** - The clear to send pin. This input to the **DE-9 connector (pin 8)** indicates that the RS-232 device can send data.
- **RI** - The ring indicator pin. This input to the **DE-9 connector (pin 9)** indicates that an incoming call signal has been received; usually with RS-232 modems.

## Extra MAX3243 Pins

- **VLD** - The **Valid** pin is a line output that will have logic level high when the chip detects signal voltages from the RS-232 device its plugged into. You can use it as a 'connection made' signal.
- **OFF** - This pin can be set to logic high by the microcontroller to tri-state all the pins for power reduction.

## RS-232 Wiring

Making a connection between the adapter and an RS-232 connection on a cable or other piece of equipment may involve more than a compatible cable. The RS-232 standard and various implementations can be tricky, as people found "back in the day".

Below is a mini-FAQ on wiring used for RS-232. Refer to [Wikipedia](https://en.wikipedia.org/wiki/RS-232) or other sources for more detailed information.

### The characters on the line are garbled

There is likely a mismatch in baud rate or character sizes. First be sure you are transmitting or receiving at the same baud rate on both sides. Then confirm if the interface number of data bits and stop bits is correct.

While more modern equipment will take 8 bit data, one stop bit, older equipment may specify 7 bit data and 1 or 2 stop bits. Also older equipment could specify a parity bit but usually in an 8 data bit, 1 stop bit configuration there is no parity.

In MS-DOS, for example, using RS-232 port COM1 at 19200 baud would be set up at the DOS command line `MODE COM1:19200,N,8,1`. Other operating systems may need a similar setup.

### I know the connection is wired correctly and trying to communicate but there is no activity

From Wikipedia: RS-232 devices may be classified as Data Terminal Equipment (DTE) or Data Circuit-terminating Equipment (DCE); this defines at each device which wires will be sending and receiving each signal. According to the standard, male connectors have DTE pin functions, and female connectors have DCE pin functions. Other devices may have any combination of connector gender and pin definitions. Many terminals were manufactured with female connectors but were sold with a cable with male connectors at each end; the terminal with its cable satisfied the recommendations in the standard.

Thus it could be the wild west out there. Just crossing TX and RX like on a microcontroller might not be enough as the RTS and CTS signals likely need swapping too. The RS-232 solution is either a cable or adapter called a crossover or null modem adapter.

### The connector on the equipment doesn't mate with the Adafruit board connector

First double check the port you want to connect to is truly RS-232 (some folks use the same connectors for Centronics parallel or other things).

You may see male or female 25-pin DE-25M or 9-pin DE-9M connectors on RS-232 connections. This includes 25 pin on one end, 9 pin on the other. It was common to use adapters from one to another to make the connection. Some cords like for computer to computer communication ("Laplink cables") had both connectors at each end of the cable for maximum compatibility.

If you have a mismatch, there are adapters to go from 9 pin to 25 pin and the other way. Also see above about the possibility of a null modem adapter also in the mix to get the signals to the right pins on each side. It can be a mess. Many folks made their own cables to get from once piece of gear to another.

# Adafruit RS-232 Full Pinout Level-Shifter Breakout

## CircuitPython and Python

It's easy to use the **RS-232 Full Pinout Breakout** with Python or CircuitPython, and the built-in UART module. This module allows you to easily write Python code to send and receive UART messages.

You can use this driver with any CircuitPython microcontroller board or with a computer that has GPIO, UART and Python [thanks to Adafruit\_Blinka, our CircuitPython-for-Python compatibility library](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux). For Blinka, this example was tested with a Raspberry Pi. To use the example as-is with built-in UART, you'll need to follow [these configuration steps](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux/uart-serial#the-hard-way-using-built-in-uart-2998808) outlined in the Blinka Learn Guide.

### CircuitPython Libraries on Linux and Raspberry Pi - UART / Serial

[CircuitPython Libraries on Linux and Raspberry Pi](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux)
[UART / Serial](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux/uart-serial)
You'll need an external RS-232 device to use this example with the breakout:

### DE-9 (DB-9) Male Plug to Terminal Spring Block Adapter

[DE-9 (DB-9) Male Plug to Terminal Spring Block Adapter](https://www.adafruit.com/product/4512)
Make your own custom DE-9 cable or DE-9 interface with ease, using this&nbsp; **DE-9 Plug to Terminal Spring Block Adapter**. You get a nice solid PCB with a DE-9 plug and one line of push-spring terminal blocks that you can use with stranded or solid core wire to quickly assemble...

In Stock
[Buy Now](https://www.adafruit.com/product/4512)
[Related Guides to the Product](https://learn.adafruit.com/products/4512/guides)
![Angled shot of DE-9 (DB-9) Male Plug to Terminal Spring Block Adapter.](https://cdn-shop.adafruit.com/640x480/4512-03.jpg)

### USB/Serial Converter

[USB/Serial Converter](https://www.adafruit.com/product/18)
This USB cable adds a DB9 serial port to your computer or laptop. Works with MacOS X, Linux and Windows. Note that this provides (approximately) +-6V serial (RS232) not 5V serial (TTL), good for old devices like GPS, handhelds, programmers, etc with chunky DB9's on the side. Some cheaper...

Out of Stock
[Buy Now](https://www.adafruit.com/product/18)
[Related Guides to the Product](https://learn.adafruit.com/products/18/guides)
![USB to RS-232 DB-9 Serial Converter Cable](https://cdn-shop.adafruit.com/640x480/18-06.jpg)

## CircuitPython Microcontroller Wiring

First, plug in an RS-232 device to the DE-9 connector on the RS-232 breakout. Then, wire up the RS-232 breakout to your board. The following is the breakout wired to a Feather RP2040:

- **Feather 3.3V** to **breakout Vin (red wire)**
- **Feather GND** to **breakout GND (black wire)**
- **Feather RX** to **breakout RX (green wire)**
- **Feather TX** to **breakout TX (blue wire)**

![adafruit_products_featherWire_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/131/868/medium640/adafruit_products_featherWire_bb.jpg?1723738361)

The following is the breakout wired to a Feather RP2040 using a solderless breadboard:

- **Feather 3.3V** to **breakout Vin (red wire)**
- **Feather GND** to **breakout GND (black wire)**
- **Feather RX** to **breakout RX (green wire)**
- **Feather TX** to **breakout TX (blue wire)**

![adafruit_products_featherBB_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/131/869/medium640/adafruit_products_featherBB_bb.jpg?1723738376)

## Python Computer Wiring

Since there are _dozens_ of Linux computers/boards you can use, we will show wiring for Raspberry Pi. For other platforms, [please visit the guide for CircuitPython on Linux to see whether your platform is supported](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux).

Here's the Raspberry Pi wired to the RS-232 breakout. You'll plug in an RS-232 device to the DE-9 port on the breakout:

- **Pi 3.3V** to **breakout Vin (red wire)**
- **Pi GND** to **breakout GND (black wire)**
- **Pi RX** to **breakout RX (green wire)**
- **Pi TX** to **breakout TX (blue wire)**

![adafruit_products_piWire_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/131/870/medium640/adafruit_products_piWire_bb.jpg?1723738392)

Here's the Raspberry Pi wired up using a solderless breadboard:

- **Pi 3.3V** to **breakout Vin (red wire)**
- **Pi GND** to **breakout GND (black wire)**
- **Pi RX** to **breakout RX (green wire)**
- **Pi TX** to **breakout TX (blue wire)**

![adafruit_products_piBB_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/131/871/medium640/adafruit_products_piBB_bb.jpg?1723738406)

## CircuitPython Usage

To use with CircuitPython,&nbsp;you'll need to update **code.py** with the example script.

Thankfully, we can do this in one go. In the example below, click the **Download Project Bundle** button below to download the necessary libraries and the **code.py** file in a zip file. Extract the contents of the zip file, and copy&nbsp;the **code.py** file to your **CIRCUITPY** drive.

There are no additional libraries needed for this example. All of the modules used are built-in.

![CIRCUITPY](https://adafruit.github.io/Adafruit_Learning_System_Guides/RS-232_Pal_Demos_CircuitPython.png )

Info: No additional libraries need to be added to the <b>/lib</b> folder on your <b>CIRCUITPY</b> drive.

## Python Usage

Once you have the library `pip3` installed on your computer, copy or download the following example to your computer, and run the following, replacing **code.py** with whatever you named the file:

`python3 code.py`

Warning: Make sure to follow the [built-in UART setup steps](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux/uart-serial#the-hard-way-using-built-in-uart-2998808) if you are using the UART on the Raspberry Pi.

## Example Code

**If running CircuitPython:** Once everything is saved to the **CIRCUITPY** drive, [connect to the serial console](https://learn.adafruit.com/welcome-to-circuitpython/kattni-connecting-to-the-serial-console) to see the data printed out!

**If running Python:** The console output will appear wherever you are running Python.

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/RS-232_Pal_Demos/CircuitPython/code.py

The code begins by initializing the UART port. There is a check for a Raspberry Pi single board computer. If a Raspberry Pi is detected, then `serial` is used instead of `busio` for UART over GPIO. The baud rate for your RS-232 device is defined with&nbsp;`baud`. Edit this value to match your RS-232 device.

```python
# baud rate for your device
baud = 38400
```

In the loop, the code waits for user input in the serial console. If any incoming data is received from the RS-232 device, it is printed to the serial console.

The commands that you send will vary by the RS-232 device that you connect to the RS-232 breakout. The output below was sent to a [StarTech HDMI switcher](https://cdn-learn.adafruit.com/assets/assets/000/131/190/original/vs421hd4ka.pdf?1720715335). The `AVI=n` commands switch the selected HDMI port and the `VS` command gives a current status of the device.

![](https://cdn-learn.adafruit.com/assets/assets/000/131/174/medium800/adafruit_products_cp_serial.png?1720711420)

# Adafruit RS-232 Full Pinout Level-Shifter Breakout

## Python Docs

# Adafruit RS-232 Full Pinout Level-Shifter Breakout

## Arduino

Using the RS-232 Full Pinout Breakout with Arduino involves wiring up the breakout to your Arduino-compatible microcontroller with an external RS-232 device and running the provided example code.

### DE-9 (DB-9) Male Plug to Terminal Spring Block Adapter

[DE-9 (DB-9) Male Plug to Terminal Spring Block Adapter](https://www.adafruit.com/product/4512)
Make your own custom DE-9 cable or DE-9 interface with ease, using this&nbsp; **DE-9 Plug to Terminal Spring Block Adapter**. You get a nice solid PCB with a DE-9 plug and one line of push-spring terminal blocks that you can use with stranded or solid core wire to quickly assemble...

In Stock
[Buy Now](https://www.adafruit.com/product/4512)
[Related Guides to the Product](https://learn.adafruit.com/products/4512/guides)
![Angled shot of DE-9 (DB-9) Male Plug to Terminal Spring Block Adapter.](https://cdn-shop.adafruit.com/640x480/4512-03.jpg)

### USB/Serial Converter

[USB/Serial Converter](https://www.adafruit.com/product/18)
This USB cable adds a DB9 serial port to your computer or laptop. Works with MacOS X, Linux and Windows. Note that this provides (approximately) +-6V serial (RS232) not 5V serial (TTL), good for old devices like GPS, handhelds, programmers, etc with chunky DB9's on the side. Some cheaper...

Out of Stock
[Buy Now](https://www.adafruit.com/product/18)
[Related Guides to the Product](https://learn.adafruit.com/products/18/guides)
![USB to RS-232 DB-9 Serial Converter Cable](https://cdn-shop.adafruit.com/640x480/18-06.jpg)

## Wiring

Wire as shown for a **5V** board like an Uno. If you are using a **3V** board, like an Adafruit Feather, wire the board's 3V pin to the breakout VIN.&nbsp;

First, plug in an RS-232 device to the DE-9 connector on the RS-232 breakout. Then, wire up the Adafruit Metro to the breakout:

- **Metro 5V** to **breakout Vin (red wire)**
- **Metro GND** to **breakout GND (black wire)**
- **Metro pin 2** &nbsp;to **breakout RX (green wire)**
- **Metro pin 3** &nbsp;to **breakout TX (blue wire)**

![adafruit_products_metroWire_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/131/865/medium640/adafruit_products_metroWire_bb.jpg?1723738113)

Here is an Adafruit Metro wired up using a solderless breadboard:

- **Metro 5V** to **breakout Vin (red wire)**
- **Metro GND** to **breakout GND (black wire)**
- **Metro pin 2** to **breakout RX (green wire)**
- **Metro pin 3** to **breakout TX (blue wire)**

![adafruit_products_metroBB_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/131/866/medium640/adafruit_products_metroBB_bb.jpg?1723738158)

Info: There are no additional libraries needed for this example.

## Example Code

You can change the baud rate for your RS-232 device at the top of the code by editing the `baud` define:

`#define baud 38400`

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/RS-232_Pal_Demos/Arduino_RS-232_Pal/Arduino_RS-232_Pal.ino

Upload the sketch to your board and open up the Serial Monitor ( **Tools -\> Serial Monitor** ) at 115200 baud. You can send commands to your RS-232 device via the Serial Monitor. If any messages are received from the RS-232 device, they will print to the Serial Monitor.

Info: The baud rate in the bottom right of the serial window is not the same as the baud rate of the RS-232 connection. It is the data rate to the serial monitor which is independent.

![](https://cdn-learn.adafruit.com/assets/assets/000/131/187/medium800/adafruit_products_arduino_serial.png?1720714940)

The commands that you send will vary by the RS-232 device that you connect to the RS-232 breakout. The output above was sent to a [StarTech HDMI switcher](https://cdn-learn.adafruit.com/assets/assets/000/131/190/original/vs421hd4ka.pdf?1720715335). The `AVI=n` commands switch the selected HDMI port and the `VS` command gives a current status of the device.

# Adafruit RS-232 Full Pinout Level-Shifter Breakout

## Arduino Docs

# Adafruit RS-232 Full Pinout Level-Shifter Breakout

## Downloads

## Files

- [MAX3243 Datasheet](https://cdn-learn.adafruit.com/assets/assets/000/131/821/original/slls350q.pdf?1723650100)
- [EagleCAD PCB Files on GitHub](https://github.com/adafruit/Adafruit-RS-232-Level-Shifter-Breakout-PCB)
- [3D models on GitHub](https://github.com/adafruit/Adafruit_CAD_Parts/tree/main/5988%20RS-232%20Level%20Shifter)&nbsp;
- [Fritzing object in the Adafruit Fritzing Library](https://github.com/adafruit/Fritzing-Library/blob/master/parts/Adafruit%20RS-232%20Full%20Pinout%20Level-Shifter%20Breakout.fzpz)

## Schematic and Fab Print
![](https://cdn-learn.adafruit.com/assets/assets/000/131/814/medium800/adafruit_products_schem.png?1723500367)

![](https://cdn-learn.adafruit.com/assets/assets/000/131/813/medium800/adafruit_products_fab.png?1723500330 dimensions are in inches)

![](https://cdn-learn.adafruit.com/assets/assets/000/132/157/medium800/adafruit_products_5988_RS-232_Level_Shifter.jpg?1725564895)


## Primary Products

### Adafruit RS-232 Full Pinout Level-Shifter Breakout

[Adafruit RS-232 Full Pinout Level-Shifter Breakout](https://www.adafruit.com/product/5988)
If you want to interface with telco, retro, or industrial equipment, you'll probably run into RS-232 interfaces. **The Adafruit RS232 Full-Pinout Breakout with 8&nbsp;Channels of UART to RS-232 Level Shifters** is your friend in such cases. It gives you 5 input and 3...

In Stock
[Buy Now](https://www.adafruit.com/product/5988)
[Related Guides to the Product](https://learn.adafruit.com/products/5988/guides)
### Adafruit RS232 Full Breakout with DE9-M

[Adafruit RS232 Full Breakout with DE9-M](https://www.adafruit.com/product/6253)
If you want to interface with telco, retro, or industrial equipment, you'll probably run into RS-232 interfaces. **The Adafruit RS232 Full-Pinout Breakout with 8&nbsp;Channels of UART to RS-232 Level Shifters** is your friend in such cases. It gives you 5 input and 3...

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

## Featured Products

### DE-9 (DB-9) Male Plug to Terminal Spring Block Adapter

[DE-9 (DB-9) Male Plug to Terminal Spring Block Adapter](https://www.adafruit.com/product/4512)
Make your own custom DE-9 cable or DE-9 interface with ease, using this&nbsp; **DE-9 Plug to Terminal Spring Block Adapter**. You get a nice solid PCB with a DE-9 plug and one line of push-spring terminal blocks that you can use with stranded or solid core wire to quickly assemble...

In Stock
[Buy Now](https://www.adafruit.com/product/4512)
[Related Guides to the Product](https://learn.adafruit.com/products/4512/guides)
### DE-9 (DB-9) Female Socket to Terminal Spring Block Adapter

[DE-9 (DB-9) Female Socket to Terminal Spring Block Adapter](https://www.adafruit.com/product/4510)
Make your own custom DE-9 cable or DE-9 interface with ease, using this&nbsp; **DE-9 Socket to Terminal Spring Block Adapter**. You get a nice solid PCB with a DE-9 socket and one line of push-terminal blocks. Just flick up the little levers and slide in your stranded or solid core...

In Stock
[Buy Now](https://www.adafruit.com/product/4510)
[Related Guides to the Product](https://learn.adafruit.com/products/4510/guides)
### USB Type C to DB-9 Adapter Cable - 1.5m long

[USB Type C to DB-9 Adapter Cable - 1.5m long](https://www.adafruit.com/product/5446)
This USB Type C cable adds a DB-9 (DE-9) serial port to your computer or laptop. Works with MacOS X, Linux, and Windows. Note that this provides (approximately) +-6V serial (RS232) not 5V serial (TTL), good for old devices like GPS, handhelds, programmers, etc with chunky DB9's on the...

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

[USB/Serial Converter](https://www.adafruit.com/product/18)
This USB cable adds a DB9 serial port to your computer or laptop. Works with MacOS X, Linux and Windows. Note that this provides (approximately) +-6V serial (RS232) not 5V serial (TTL), good for old devices like GPS, handhelds, programmers, etc with chunky DB9's on the side. Some cheaper...

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

## Related Guides

- [ESP32-S3 BLE RS-232 Controller](https://learn.adafruit.com/esp32-s3-ble-rs232-controller.md)
- [CircuitPython Neko Kitty with Displayio](https://learn.adafruit.com/circuitpython-neko-kitty-with-displayio.md)
- [Porting an Arduino library to CircuitPython: VL6180X Distance Sensor](https://learn.adafruit.com/porting-an-arduino-library-to-circuitpython-vl6180x-distance-sensor.md)
- [Adafruit PiCowbell Adalogger for Pico](https://learn.adafruit.com/adafruit-picowbell-adalogger-for-pico.md)
- [Adafruit 2.13" 250x122 Quad-Color eInk](https://learn.adafruit.com/adafruit-2-13-250x122-quad-color-eink.md)
- [RGB LCD Shield](https://learn.adafruit.com/rgb-lcd-shield.md)
- [Feather RP2040 DVI Video Synth](https://learn.adafruit.com/feather-rp2040-dvi-video-synth.md)
- [Using IFTTT with Adafruit IO to Make an IoT Door Detector](https://learn.adafruit.com/using-ifttt-with-adafruit-io.md)
- [MacroPad Summer Olympics Hotkeys](https://learn.adafruit.com/macropad-olympic-hotkeys.md)
- [Adafruit Feather RP2040 Adalogger](https://learn.adafruit.com/adafruit-feather-rp2040-adalogger.md)
- [RGB Matrix New York Times Title Scroller](https://learn.adafruit.com/rgb-matix-nyt-text-scroller.md)
- [Adafruit OV5640 Camera Breakouts](https://learn.adafruit.com/adafruit-ov5640-camera-breakout.md)
- [Adafruit LSM6DS3TR-C + LIS3MDL - Precision 9 DoF IMU](https://learn.adafruit.com/adafruit-lsm6ds3tr-c-lis3mdl-precision-9-dof-imu.md)
- [Wireless LED Juggling Balls with ESP-NOW](https://learn.adafruit.com/wireless-juggling-balls-esp-now.md)
- [Adafruit SPA06-003 - Temperature + Pressure Sensor](https://learn.adafruit.com/adafruit-spa06-003-temperature-pressure-sensor.md)
