# Adafruit STEMMA Reflective Photo Interrupt Sensor

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/129/117/medium800thumb/sensors_5913-06.jpg?1712065234)

An optical reflective sensor is a composite electronic device with two elements - an IR LED and an IR photo-transistor. The IR LED blasts light, and when something bounces the light back to the photo-transistor, the transistor turns on and the amount of current flowing through it increases.

This makes the sensor great at detecting when something is in front of the sensor: when nothing is there the IR light never gets reflected back and the transistor stays off.

![](https://cdn-learn.adafruit.com/assets/assets/000/129/120/medium800/sensors_5913-03.jpg?1712065338)

We have two versions of this sensor that are 'breadboard' friendly, the [ITR20001](https://www.adafruit.com/product/3930) and a chunky all-in-one [Infrared Reflective Sensor](https://www.adafruit.com/product/2349), but both are tough to mount, and require wiring up with resistors to get working. To make usage super fast and no-soldering-or-breadboarding-required, the **Adafruit STEMMA Reflective Photo Interrupt Sensor** is ready to go out of the box.

![](https://cdn-learn.adafruit.com/assets/assets/000/129/121/medium800/sensors_5913-04.jpg?1712065378)

Power it with 3 to 5V DC and read the signal off the output pin to quickly detect reflective surfaces. A green LED tells you that the board is powered, and a red LED will light up to let you know when the phototransistor is activated. (Both LEDs can be disabled).

![](https://cdn-learn.adafruit.com/assets/assets/000/129/118/medium800/sensors_5913-01.jpg?1712065267)

Onboard we have a [TCRT1000 right-angle sensor module](https://www.digikey.com/en/products/detail/vishay-semiconductor-opto-division/TCRT1000/1681165). A potentiometer allows adjustment of how bright the IR emitter is, turn it all the way down for about 10mA, turn it all the way up for about 100mA. Then the receiving phototransistor is biased with a 10K pullup.

&nbsp;When no IR light is detected, the output signal pin is high. When IR is bounced back, the voltage will drop down towards 0V.

![](https://cdn-learn.adafruit.com/assets/assets/000/129/119/medium800/sensors_5913-02.jpg?1712065308)

This board has a simple plug-and-play JST PH (2mm pitch) input connector for solderless use. For use with a Circuit Playground or micro:bit, this&nbsp;[JST to alligator-clip cable](https://www.adafruit.com/product/4030) works best. Red is power, ground is black and signal is white.

For use with a breadboard,&nbsp;[try this JST to male/plug-header](https://www.adafruit.com/product/3893). (We also have a [socket-header cable](https://www.adafruit.com/product/3894) if you want).

# Adafruit STEMMA Reflective Photo Interrupt Sensor

## Pinouts

![](https://cdn-learn.adafruit.com/assets/assets/000/129/254/medium800/sensors_double.jpg?1712326540)

## 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.
- **GND** - common ground for power and logic.

## Signal Output

- **SIG** - this is the output signal from the TCRT1000. When no IR light is detected by the TCRT1000, the output signal pin is&nbsp; **high**. When IR light is bounced back, the voltage will drop down towards&nbsp; **0V**.

## STEMMA JST PH

- [**STEMMA JST PH**](https://learn.adafruit.com/introducing-adafruit-stemma-qt) - 2mm pitch STEMMA JST port for use with [3-pin STEMMA JST PH cables](https://www.adafruit.com/category/619). It has connections for:
  - **GND** &nbsp;- common ground for power and data. It is the black wire on the JST PH cable.
  - **VIN/V+** - power input for the TCRT1000. It is the red wire on the JST PH cable.&nbsp;
  - **SIG/In** - signal to your microcontroller. It is the white wire on the JST PH cable.

## Potentiometer

In the center of the board is a **small potentiometer**. It allows adjustment of how bright the IR emitter is. When it is turned all the way down it has a current of about **10mA** , decreasing the sensitivity. When it is turned all the way up it has a current of about **100mA** , increasing the sensitivity.

## Signal LED and Jumper

- **Signal LED** - to the left of the JST PH connector is the signal LED, labeled **Sig**. It is the red LED. It will light up when an object is detected by the TCRT1000.
- **LED jumper** - in the lower center portion on the back of the board is a jumper for the signal LED. It is labeled&nbsp; **Sig** on the board silk. If you want to disable the signal LED, cut the trace on this jumper.

## Power LED and Jumper

- **Power LED** - to the right of the JST PH connector is the power LED, labeled **ON**. It is the green LED.
- **LED jumper** - in the top center portion on the back of the board is a jumper for the power LED. It is labeled **On** &nbsp;on the board silk. If you want to disable the power LED, cut the trace on this jumper.

# Adafruit STEMMA Reflective Photo Interrupt Sensor

## CircuitPython and Python

It's easy to use the **STEMMA Reflective Photo Interrupt Sensor** with CircuitPython and the [digitalio](https://docs.circuitpython.org/en/latest/shared-bindings/digitalio/index.html) core module. This module allows you to easily write Python code for accessing basic digital inputs and outputs.

You can use this driver with any CircuitPython microcontroller board or with a computer that has GPIO and Python [thanks to Adafruit\_Blinka, our CircuitPython-for-Python compatibility library](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux).

## CircuitPython Microcontroller Wiring

First wire up the sensor to your board exactly as follows. The following is the sensor wired to a Feather RP2040 with a JST PH cable.

- **Board 3V** to **sensor JST PH** **VIN (red wire)**  
- **Board GND** to **sensor**** &nbsp;JST PH GND (black wire)**  
- **Board pin 5** to **sensor** &nbsp; **JST PH** **SIG (white wire)**

![sensors_featherSTEMMA_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/264/medium640/sensors_featherSTEMMA_bb.jpg?1712340737)

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

- **Board 3V** to **sensor**** &nbsp;****VIN (red wire)**  
- **Board GND** to **sensor**** &nbsp;GND (black wire)**  
- **Board pin 5** to **sensor** &nbsp;**SIG (white wire)**

![sensors_featherBB_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/265/medium640/sensors_featherBB_bb.jpg?1712340749)

## 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 sensor using a JST PH cable:

- **Pi 3V** to **sensor JST PH VIN (red wire)**
- **Pi GND** to **sensor JST PH GND (black wire)**
- **Pi GPIO5** to **sensor JST PH SIG (white wire)**

![sensors_piSTEMMA_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/266/medium640/sensors_piSTEMMA_bb.jpg?1712340763)

Here is how you'll wire the sensor to a Raspberry Pi with a breadboard:

- **Pi 3V** to **sensor VIN (red wire)**
- **Pi GND** to **sensor GND (black wire)**
- **Pi GPIO5** to **sensor SIG (white wire)**

![sensors_piBB_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/267/medium640/sensors_piBB_bb.jpg?1712340777)

## CircuitPython Usage

To use with CircuitPython, you need to update **code.py** with the example script.

In the example below, click the **Download Project Bundle** button below to download the **code.py** file in a zip file. Extract the contents of the zip file, and copy the **code.py** file to your **CIRCUITPY** drive.

![CIRCUITPY](https://adafruit.github.io/Adafruit_Learning_System_Guides/CircuitPython_Essentials_CircuitPython_Digital_In_Out.png )

Info: No additional libraries are needed in the /lib folder for this example.

## 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`

## 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/STEMMA_TCRT1000/CircuitPython/code.py

![](https://cdn-learn.adafruit.com/assets/assets/000/129/261/medium800/sensors_cpSerial.png?1712339645)

The **SIG** output from the sensor is setup as a digital input. In the loop, if an input is detected `object detected!` is printed to the serial monitor. Otherwise `waiting for object...` is printed. You can experiment with the potentiometer position to increase and decrease the sensitivity of the sensor.

![](https://cdn-learn.adafruit.com/assets/assets/000/129/260/medium800thumb/sensors_5913-06.jpg?1712338722)

# Adafruit STEMMA Reflective Photo Interrupt Sensor

## Arduino

Using the STEMMA Reflective Photo Interrupt Sensor with Arduino involves wiring up the sensor to your Arduino-compatible microcontroller and running the provided example code.

## 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.

Here is an Adafruit Metro wired up to the sensor using a JST PH cable.

- **Board 5V** to&nbsp; **sensor JST PH** **VIN (red wire)**  
- **Board GND** to **sensor**** &nbsp;JST PH GND (black wire)**  
- **Board pin 5** to **sensor** &nbsp; **JST PH** **SIG (white wire)**

![sensors_metroSTEMMA.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/268/medium640/sensors_metroSTEMMA.jpg?1712340796)

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

- **Board 5V** to&nbsp; **sensor** **VIN (red wire)**  
- **Board GND** to **sensor**** &nbsp;GND (black wire)**  
- **Board pin 5** to **sensor** **SIG (white wire)**

![sensors_metroBB_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/269/medium640/sensors_metroBB_bb.jpg?1712340809)

Info: No additional libraries are needed for the example code.

## Example Code
https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/STEMMA_TCRT1000/arduino_tcrt1000_demo/arduino_tcrt1000_demo.ino

![](https://cdn-learn.adafruit.com/assets/assets/000/129/263/medium800/sensors_arduinoSerial.png?1712339904)

Upload the sketch to your board and open up the Serial Monitor ( **Tools -\> Serial Monitor** ) at 115200 baud. You'll see `object detected!` printed to the Serial Monitor if an input is detected. Otherwise `waiting for object...` is printed. You can experiment with the potentiometer position to increase and decrease the sensitivity of the sensor.

![](https://cdn-learn.adafruit.com/assets/assets/000/129/262/medium800thumb/sensors_5913-06.jpg?1712339897)

# Adafruit STEMMA Reflective Photo Interrupt Sensor

## WipperSnapper

![](https://cdn-learn.adafruit.com/assets/assets/000/130/478/medium800/sensors_adafruit_products_Screenshot_2023-08-15_163525.png?1717766113)

## What is WipperSnapper

WipperSnapper is a firmware designed to turn any WiFi-capable board into an Internet-of-Things device without programming a single line of code. WipperSnapper connects to&nbsp;[Adafruit IO](https://io.adafruit.com/), a web&nbsp;platform designed ([by Adafruit!](https://www.adafruit.com/about)) to&nbsp;_display_,&nbsp;_respond_, and&nbsp;_interact_&nbsp;with your project's data.

Simply load the WipperSnapper firmware onto your board, add credentials, and plug it into power. Your board will automatically register itself with your Adafruit IO account.

From there, you can add&nbsp;_components_&nbsp;to your board such as buttons, switches, potentiometers, sensors, and more! Components are&nbsp;_dynamically&nbsp;_added to hardware, so you can&nbsp;immediately start interacting, logging, and streaming the data your projects produce without writing code.

If you've never used WipperSnapper, click below to read through the quick start guide before continuing.

[Quickstart: Adafruit IO WipperSnapper](https://learn.adafruit.com/quickstart-adafruit-io-wippersnapper)
## Wiring

First, wire up an Adafruit STEMMA Reflective Photo Interrupt Sensor (TCTR1000) to your board exactly as follows.

Here is an example of the TCTR1000 wired to an&nbsp;[Adafruit ESP32 Feather V2](https://www.adafruit.com/product/5400)&nbsp;using&nbsp;[a STEMMA JST PH 2mm 3-Pin to Male Header Cable (no soldering required)](https://www.adafruit.com/product/3893)

- Board 3V to sensor VIN (red wire on STEMMA)
- Board GND to sensor GND (black wire on STEMMA)
- Board A0 to sensor SIG (white wire on STEMMA)

![sensors_featherV2_TCTR1000_STEMMA_BeneathBoard_bb.png](https://cdn-learn.adafruit.com/assets/assets/000/130/476/medium640/sensors_featherV2_TCTR1000_STEMMA_BeneathBoard_bb.png?1717765950)

![sensors_featherV2_TCTR1000_Breadboard_bb.png](https://cdn-learn.adafruit.com/assets/assets/000/130/477/medium640/sensors_featherV2_TCTR1000_Breadboard_bb.png?1717766034)

## Usage

Connect your board to Adafruit IO Wippersnapper and&nbsp;**[navigate to the WipperSnapper board list](https://io.adafruit.com/wippersnapper).**

On this page,&nbsp; **select the WipperSnapper board you're using** &nbsp;to be brought to the board's interface page.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/479/medium800/sensors_adafruit_products_02_DeviceSelection_croppped.png?1717766200)

If you do not see your board listed here - you need&nbsp;[to connect your board to Adafruit IO](https://learn.adafruit.com/quickstart-adafruit-io-wippersnapper)&nbsp;first.

On the device page, quickly&nbsp; **check that you're running the latest version of the WipperSnapper firmware**.

The device tile on the left indicates the version number of the firmware running on the connected board.

- **If the firmware version is green with a checkmark -** &nbsp;continue with this guide.
- **If the firmware version is red with an exclamation mark "!" -** &nbsp;[update to the latest WipperSnapper firmware](https://learn.adafruit.com/quickstart-adafruit-io-wippersnapper)&nbsp;on your board before continuing.

![sensors_04_LatestVersion.png](https://cdn-learn.adafruit.com/assets/assets/000/130/481/medium640/sensors_04_LatestVersion.png?1717766466)

![sensors_04_UpdateRequired.png](https://cdn-learn.adafruit.com/assets/assets/000/130/482/medium640/sensors_04_UpdateRequired.png?1717766491)

With the sensor wired and device up-to-date, you're ready to add the sensor component to your board.

**Click the New Component button or the + button&nbsp;** to bring up the component picker.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/483/medium800/sensors_sensor_page_temperature___humidity_06_AddComponent.png?1717766817)

Adafruit IO supports a large amount of components. To quickly find your sensor, type&nbsp;`TCTR`&nbsp;into the search bar, then select the&nbsp; **TCTR1000** &nbsp;component.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/525/medium800/sensors_zbB6QVqkly.png?1717869995)

On the component configuration page, the TCTR1000's pin option should be listed along with the sensor's settings. Set the pin to something appropriate for a digital input, for this example use the pin labelled&nbsp;**D26 / (A0)**.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/530/medium800/sensors_RIVznQ1zyQ.png?1717871128)

The&nbsp; **Return Interval** setting is specific to each sensor's measurements and allows toggling between periodic or reactive triggering.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/531/medium800/sensors_Screenshot_2024-06-07_194040.png?1717871261)

The **Return Interval**'s periodic option controls how often the Feather reads the TCTR1000 sensor and sends data to Adafruit IO. You can select intervals from every 30 seconds to every 24 hours. Another choice is "On Change." It immediately sends data to Adafruit IO when the sensor changes state.

For this example set the&nbsp; **Return Interval** to **On Change** , then&nbsp;click Create Component.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/536/medium800/sensors_irgzCsALrL.png?1717872038)

Your device interface should now show the sensor components you created. After the interval you configured elapses, WipperSnapper will automatically read values from the sensor(s) and send them to Adafruit IO.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/533/medium800/sensors_hjsHgYZmcf.png?1717871559)

 **Why Did I get a "Throttle Warning"?**

This happens when you exceed the data limit. Adafruit IO's free plan allows 30 data points per minute, compared to 60 data points per minute IO Plus (Paid) plan.

If this happens to you, don't worry! Your device will resume sending data once it's back under the limit.&nbsp;

![sensors_Screenshot_2024-06-07_194315.png](https://cdn-learn.adafruit.com/assets/assets/000/130/532/medium640/sensors_Screenshot_2024-06-07_194315.png?1718035190)

To view the logged data from the sensor, click the graph by the sensor's name.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/534/medium800/sensors_HeFzajCDXZ.png?1717871573)

Here, on the Feed Page, you can view and edit a feed's history, name, privacy, and related webhooks.&nbsp;If you want to learn more about how feeds work,&nbsp;[check out this page](https://learn.adafruit.com/all-the-internet-of-things-episode-four-adafruit-io/advanced-feeds).

![](https://cdn-learn.adafruit.com/assets/assets/000/130/535/medium800/sensors_Screenshot_2024-06-07_194828.png?1717871626)

# Adafruit STEMMA Reflective Photo Interrupt Sensor

## Downloads

## Files

- [TCRT1000&nbsp;Datasheet](https://cdn-learn.adafruit.com/assets/assets/000/129/122/original/tcrt1000.pdf?1712065595)
- [EagleCAD PCB Files on GitHub](https://github.com/adafruit/Adafruit-STEMMA-Reflective-Photo-Interrupt-Sensor-PCB)
- [3D models on GitHub](https://github.com/adafruit/Adafruit_CAD_Parts/tree/main/5913%20TCRT1000%20Sensor)
- [Fritzing object in the Adafruit Fritzing Library](https://github.com/adafruit/Fritzing-Library/blob/master/parts/Adafruit%20STEMMA%20Reflective%20Photo%20Interrupt%20Sensor.fzpz)

## Schematic and Fab Print
![](https://cdn-learn.adafruit.com/assets/assets/000/129/123/medium800/sensors_schem.png?1712065733)

![](https://cdn-learn.adafruit.com/assets/assets/000/129/124/medium800/sensors_fab.png?1712065739 dimensions are in inches)

![](https://cdn-learn.adafruit.com/assets/assets/000/130/689/medium800/sensors_5913_TCRT1000_Sensor.jpg?1718300458)


## Primary Products

### Adafruit STEMMA Reflective Photo Interrupt Sensor - TCRT1000

[Adafruit STEMMA Reflective Photo Interrupt Sensor - TCRT1000](https://www.adafruit.com/product/5913)
An optical reflective sensor&nbsp;is a composite&nbsp;electronic device with two elements - an IR LED and an IR photo-transistor. The IR LED blasts light, and when something bounces the light back to the photo-transistor, the transistor turns on and the amount of current flowing through it...

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

## Featured Products

### 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)
### STEMMA JST PH 2mm 3-Pin to Female Socket Cable - 200mm

[STEMMA JST PH 2mm 3-Pin to Female Socket Cable - 200mm](https://www.adafruit.com/product/3894)
This cable will let you turn a JST PH 3-pin cable port into 3 individual wires with high-quality 0.1" female header sockets 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...>

Out of Stock
[Buy Now](https://www.adafruit.com/product/3894)
[Related Guides to the Product](https://learn.adafruit.com/products/3894/guides)
### JST PH 2mm 3-pin Plug-Plug Cable - 100mm long

[JST PH 2mm 3-pin Plug-Plug Cable - 100mm long](https://www.adafruit.com/product/4336)
This cable is a little over 100mm / 4" long&nbsp;and fitted with JST-PH 3-pin connectors on either end.&nbsp;

We dig the solid and compact nature of these connectors and the latch that keeps the cable from coming apart easily. We're carrying these to <a...></a...>

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

[JST PH 2mm 3-Pin Socket to Color Coded Cable - 200mm](https://www.adafruit.com/product/4046)
This cable will let you turn a JST PH 3-pin cable _socket_ into 3 individual tinned wires. These are great to match up with our JST 3-PH cables, for extending and connecting sensors or LEDs, and the wires are even color coded!

[We...](https://www.adafruit.com/product/3893)

In Stock
[Buy Now](https://www.adafruit.com/product/4046)
[Related Guides to the Product](https://learn.adafruit.com/products/4046/guides)
### JST PH 2mm 3-pin Plug to Color Coded Alligator Clips Cable

[JST PH 2mm 3-pin Plug to Color Coded Alligator Clips Cable](https://www.adafruit.com/product/4030)
This cable will let you turn a JST PH 3-pin cable port into 3 individual wires with grippy mini alligator clips. We're carrying these to match up with any of our boards or breakouts with 3-pin 'STEMMA' connectors on them such as the&nbsp;<a...></a...>

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

## Related Guides

- [IoT Filament Sensor](https://learn.adafruit.com/iot-filament-sensor.md)
- [Optical Sensor Drum Track Sequencer](https://learn.adafruit.com/drum-track-sequencer.md)
- [Adafruit ESP32-S2 Reverse TFT Feather](https://learn.adafruit.com/esp32-s2-reverse-tft-feather.md)
- [Adafruit STEMMA Audio Amp](https://learn.adafruit.com/stemma-audio-amp.md)
- [Adafruit LTC4311 I2C Extender / Active Terminator](https://learn.adafruit.com/adafruit-ltc4311-i2c-extender-active-terminator.md)
- [Introducing the Adafruit Bluefruit LE Sniffer](https://learn.adafruit.com/introducing-the-adafruit-bluefruit-le-sniffer.md)
- [ItsyBitsy ESP32 wFL case](https://learn.adafruit.com/itsybitsy-esp32-wfl-case.md)
- [Adafruit GA1A12S202 Log-scale Analog Light Sensor](https://learn.adafruit.com/adafruit-ga1a12s202-log-scale-analog-light-sensor.md)
- [BlueLive: Livestream Studio switcher controller](https://learn.adafruit.com/bluelive.md)
- [Zombie Tag Game with Circuit Playground Express](https://learn.adafruit.com/circuit-playground-express-ir-zombie-game.md)
- [Adafruit NeoPixel Driver BFF](https://learn.adafruit.com/adafruit-neopixel-driver-bff.md)
- [Adafruit Infrared IR Remote Receiver](https://learn.adafruit.com/adafruit-infrared-ir-remote-receiver.md)
- [LED candles: simple, easy, cheap](https://learn.adafruit.com/led-candles-simple-easy-cheap.md)
- [Adafruit PiCowbell CAN Bus for Pico](https://learn.adafruit.com/adafruit-picowbell-can-bus-for-pico.md)
- [Keypad and Matrix Scanning in CircuitPython](https://learn.adafruit.com/key-pad-matrix-scanning-in-circuitpython.md)
