# Optical Sensor Drum Track Sequencer

## Overview

https://youtu.be/XPvDCZZV_yg

Build a physical drum sequencer so you can program beats right here in the real world! Four tracks of drums (say kick, snare, clap, cowbell, but it's your choice) and 32 steps for two four-bar patterns can trigger your favorite drum synthesizer or sample player.&nbsp;

Four optical reflection sensors detect LEGO minifigure heads as they roll on by, all driven by a Feather RP2040 with Motor FeatherWing running CircuitPython.

## Parts
### Four sensors:
### 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)
![Close-up video of white finger triggering an optical reflective sensor breakout.](https://cdn-shop.adafruit.com/product-videos/640x480/5913-06.jpg)

Then these:

### Adafruit Feather RP2040

[Adafruit Feather RP2040](https://www.adafruit.com/product/4884)
A new chip means a new Feather, and the Raspberry Pi RP2040 is no exception. When we saw this chip we thought "this chip is going to be awesome when we give it the Feather Treatment" and so we did! This Feather features the&nbsp; **RP2040** , and all niceties you know and...

In Stock
[Buy Now](https://www.adafruit.com/product/4884)
[Related Guides to the Product](https://learn.adafruit.com/products/4884/guides)
![Angled shot of black rectangular microcontroller "Feather RP2040"](https://cdn-shop.adafruit.com/640x480/4884-04.jpg)

### DC Motor + Stepper FeatherWing Add-on For All Feather Boards

[DC Motor + Stepper FeatherWing Add-on For All Feather Boards](https://www.adafruit.com/product/2927)
A Feather board without ambition is a Feather board without FeatherWings! This is the&nbsp; **DC Motor + Stepper&nbsp;FeatherWing** which will let you use 2 x bi-polar stepper motors or 4 x brushed DC motors (or 1 stepper and 2 DC motors). Using our <a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/2927)
[Related Guides to the Product](https://learn.adafruit.com/products/2927/guides)
![Video of 2 steppers spinning with rectangular black board on them powered by a DC Motor + Stepper FeatherWing Add-on For All Feather Boards](https://cdn-shop.adafruit.com/product-videos/640x480/2927-06.jpg)

### FeatherWing Tripler Mini Kit - Prototyping Add-on For Feathers

[FeatherWing Tripler Mini Kit - Prototyping Add-on For Feathers](https://www.adafruit.com/product/3417)
This is the **FeatherWing Tripler** - a prototyping add-on and more for all Feather boards. This is similar to our [FeatherWing Proto](https://www.adafruit.com/products/2884) except there are three! The magic of the Tripler comes when you want to connect your Feather to...

In Stock
[Buy Now](https://www.adafruit.com/product/3417)
[Related Guides to the Product](https://learn.adafruit.com/products/3417/guides)
![Triple prototyping feather wing PCB with socket headers installed](https://cdn-shop.adafruit.com/640x480/3417-05.jpg)

### Stepper motor - NEMA-17 size - 200 steps/rev, 12V 350mA

[Stepper motor - NEMA-17 size - 200 steps/rev, 12V 350mA](https://www.adafruit.com/product/324)
A stepper motor to satisfy all your robotics needs! This 4-wire bipolar stepper has 1.8° per step for smooth motion and a nice holding torque. The motor was specified to have a max current of 350mA so that it could be driven easily with an <a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/324)
[Related Guides to the Product](https://learn.adafruit.com/products/324/guides)
![Angled shot of a Stepper motor - NEMA-17.](https://cdn-shop.adafruit.com/640x480/324-03.jpg)

### Part: DC Gearbox "TT" Motor to LEGO® compatible Cross Axle
quantity: 1
DC Gearbox "TT" Motor to LEGO® compatible Cross Axle
[DC Gearbox "TT" Motor to LEGO® compatible Cross Axle](https://www.adafruit.com/product/3810)

### Part: 12V 5A switching power supply
quantity: 1
12VDC from 110VAC or 220VAC
[12V 5A switching power supply](https://www.adafruit.com/product/352)

### Part: STEMMA JST PH 2mm 3-Pin to Male Header Cable
quantity: 4
200mm
[STEMMA JST PH 2mm 3-Pin to Male Header Cable](https://www.adafruit.com/product/3893)

### Part: Premium Female/Male 'Extension' Jumper Wires
quantity: 1
20 x 6"
[Premium Female/Male 'Extension' Jumper Wires](https://www.adafruit.com/product/1954)

### Part: In-line power switch
quantity: 1
for 2.1mm barrel jack
[In-line power switch](https://www.adafruit.com/product/1125)

### Part: Female DC Power adapter
quantity: 1
2.1mm jack to screw terminal block
[Female DC Power adapter](https://www.adafruit.com/product/368)

### Part: Clear Adhesive Squares
quantity: 1
6 pack - UGlu Dashes
[Clear Adhesive Squares](https://www.adafruit.com/product/4813)

### Part: 20-pin 0.1" Female Headers
quantity: 1
Rainbow Color Mix - 5 pack
[20-pin 0.1" Female Headers](https://www.adafruit.com/product/4160)

# Optical Sensor Drum Track Sequencer

## Build the Circuit

![](https://cdn-learn.adafruit.com/assets/assets/000/130/323/medium800/proximity_drum_track_seq_fritzing.jpg?1717184068)

The circuit consists of four optical sensors running to the Feather's pins 12, 10, 9, and 6, and a Motor FeatherWing to drive the stepper motor. A 12VDC power supply runs into the FeatherWing via an inline switch for easy pause/play action.

## Feather Prep
Solder male header pins underneath the Feather as shown here. These will be used to connect the Feather to the FeatherWing Tripler.

[This guide](https://learn.adafruit.com/adafruit-feather-rp2040-pico/assembly) covers the details of Feather pin soldering in depth.

![proximity_trkdrm-9542.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/335/medium640/proximity_trkdrm-9542.jpg?1717192247)

![proximity_trkdrm-9541.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/336/medium640/proximity_trkdrm-9541.jpg?1717192256)

## Motor FeatherWing Prep
Solder in the Terminal blocks and male header pins under the Motor FeatherWing (unless you bought the pre-soldered version).

Use two short lengths of wire to connect the DC power breakout **positive voltage +** to Motor FeatherWing **power input +** and the DC power breakout **ground (-)** to Motor FeatherWing **power input ground**.

![proximity_trkdrm-9544.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/337/medium640/proximity_trkdrm-9544.jpg?1717195132)

## Feather Tripler Prep
Assemble the FeatherWing Tripler in the usual way (as shown here) with female header sockets. Then, add an additional strip for the 3.3V and GND strips as shown here. These will make it easy to plug in the four optical sensors without running out of power/ground sockets.

If you want to be fancy (and who doesn't), use [color coded headers](https://www.adafruit.com/product/4160)!

![proximity_trkdrm-9546.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/338/medium640/proximity_trkdrm-9546.jpg?1717196634)

## Optical Reflection Sensors Prep
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, such as a LEGO head to trigger a MIDI drum! when nothing is there the IR light never gets reflected back and the transistor stays off.

Use a Uglu square to affix a LEGO 2x2 tile under each reflection sensor breakout as shown here.&nbsp;

![proximity_trkdrm-9549.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/339/medium640/proximity_trkdrm-9549.jpg?1717197429)

![proximity_trkdrm-9548.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/340/medium640/proximity_trkdrm-9548.jpg?1717197435)

## Prep the Stepper Motor
Use 4 M2.5 x 10mm nylon screws to connect two LEGO Technic 1x6 with holes bricks as shown.

Press fit the shaft to axle adapter -- this will probably require the removal of a bit of plastic inside the coupling shaft -- a hobby knife works pretty well for this.

Then, screw the four wires into the Motor FeatherWing terminal blocks as shown.

![proximity_IMG_9551.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/341/medium640/proximity_IMG_9551.jpg?1717197523)

![proximity_trkdrm-9543.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/342/medium640/proximity_trkdrm-9543.jpg?1717197726)

## Full Circuit
Assemble the parts by pressing the Motor FeatherWing and the Feather RP2040 into the Feather Tripler as shown.

Then, use the JST connectors to connect the four optical reflection sensor breakouts to the power and ground strips and Feather pins 12, 10, 9, and 6.

![proximity_trkdrm-9482.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/343/medium640/proximity_trkdrm-9482.jpg?1717198499)

# Optical Sensor Drum Track Sequencer

## Build the Sequencer

![](https://cdn-learn.adafruit.com/assets/assets/000/130/345/medium800/proximity_trackseq07.png?1717198638)

To build the LEGO portion of the sequencer, you can use the instructions found [here](https://www.bricklink.com/v3/studio/design.page?idModel=551872) which includes step-by-step build instructions and a 3D model you can spin around to inspect at each step.

https://youtu.be/v2iorlSVs00

![](https://cdn-learn.adafruit.com/assets/assets/000/130/344/medium800/proximity_trkdrm-9457.jpg?1717198618)

## Optical Sensors

Plug in the JST cables to the four optical sensor breakouts. The two further ones can be extended with jumper cables so they reach the board.

![proximity_trkdrm-9455.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/433/medium640/proximity_trkdrm-9455.jpg?1717543379)

![proximity_trkdrm-9463.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/434/medium640/proximity_trkdrm-9463.jpg?1717543468)

![proximity_trkdrm-9465.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/436/medium640/proximity_trkdrm-9465.jpg?1717543490)

![proximity_trkdrm-9478.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/438/medium640/proximity_trkdrm-9478.jpg?1717543654)

## Sensor Wiring

Here you can see the isolated FeatherWing Tripler with the added power and ground rails. Each sensor plugs into power and ground, and then the GPIO pins 12, 10, 9, & 6.

![proximity_trkdrm-9545.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/440/medium640/proximity_trkdrm-9545.jpg?1717544575)

## Triggers

You can see in the image below, when a head is in front of the optical sensor, it lights up the Signal LED and sends the trigger signal to the Feather. If necessary, use a small slotted screwdriver to adjust the trimmer pot until the heads trigger reliably.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/437/medium800/proximity_trkdrm-9464.jpg?1717543529)

## Power Switch

Insert the inline power switch between the 12VDC power supply and the Motor FeatherWing socket extension. This will allow you to cut power to the stepper motor.

![proximity_trkdrm-9479.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/439/medium640/proximity_trkdrm-9479.jpg?1717543694)

# Optical Sensor Drum Track Sequencer

## Install CircuitPython

[CircuitPython](https://github.com/adafruit/circuitpython) is a derivative of [MicroPython](https://micropython.org) designed to simplify experimentation and education on low-cost microcontrollers. It makes it easier than ever to get prototyping by requiring no upfront desktop software downloads. Simply copy and edit files on the **CIRCUITPY** drive to iterate.

## CircuitPython Quickstart

Follow this step-by-step to quickly get CircuitPython running on your board.

[Download the latest version of CircuitPython for this board via circuitpython.org](https://circuitpython.org/board/adafruit_feather_rp2040/)
 **Click the link above to download the latest CircuitPython UF2 file.**

Save it wherever is convenient for you.

![install_circuitpython_on_rp2040_RP2040_UF2_downloaded.jpg](https://cdn-learn.adafruit.com/assets/assets/000/101/655/medium640/install_circuitpython_on_rp2040_RP2040_UF2_downloaded.jpg?1618943202)

![](https://cdn-learn.adafruit.com/assets/assets/000/102/705/medium800/adafruit_products_FeatherRP_buttons_highlighted.jpg?1623167565)

To enter the bootloader, hold down the **BOOT/**** BOOTSEL button**(highlighted in red above), and while continuing to hold it (don't let go!), press and release the**reset button**(highlighted in red or blue above).&nbsp;**Continue to hold the BOOT/BOOTSEL button until the RPI-RP2 drive appears!**

If the drive does not appear, release all the buttons, and then repeat the process above.

You can also start with your board unplugged from USB, press and hold the BOOTSEL button (highlighted in red above), continue to hold it while plugging it into USB, and wait for the drive to appear before releasing the button.

A lot of people end up using charge-only USB cables and it is very frustrating! **Make sure you have a USB cable you know is good for data sync.**

You will see a new disk drive appear called **RPI-RP2**.

&nbsp;

Drag the **adafruit\_circuitpython\_etc.uf2** file to **RPI-RP2.**

![install_circuitpython_on_rp2040_RP2040_bootloader_drive.jpg](https://cdn-learn.adafruit.com/assets/assets/000/101/656/medium640/install_circuitpython_on_rp2040_RP2040_bootloader_drive.jpg?1618943666)

![install_circuitpython_on_rp2040_RP2040_drag_UF2.jpg](https://cdn-learn.adafruit.com/assets/assets/000/101/657/medium640/install_circuitpython_on_rp2040_RP2040_drag_UF2.jpg?1618943674)

The **RPI-RP2** drive will disappear and a new disk drive called **CIRCUITPY** will appear.

That's it, you're done! :)

![install_circuitpython_on_rp2040_RP2040_CIRCUITPY.jpg](https://cdn-learn.adafruit.com/assets/assets/000/101/658/medium640/install_circuitpython_on_rp2040_RP2040_CIRCUITPY.jpg?1618943864)

## Safe Mode

You want to edit your **code.py** or modify the files on your **CIRCUITPY** drive, but find that you can't. Perhaps your board has gotten into a state where **CIRCUITPY** is read-only. You may have turned off the **CIRCUITPY** drive altogether. Whatever the reason, safe mode can help.

Safe mode in CircuitPython does not run any user code on startup, and disables auto-reload. This means a few things. First, safe mode _bypasses any code in_ **boot.py** (where you can set **CIRCUITPY** read-only or turn it off completely). Second, _it does not run the code in_ **code.py**. And finally, _it does not automatically soft-reload when data is written to the_ **CIRCUITPY** _drive_.

Therefore, whatever you may have done to put your board in a non-interactive state, safe mode gives you the opportunity to correct it without losing all of the data on the **CIRCUITPY** drive.

### Entering Safe Mode
To enter safe mode when using CircuitPython, plug in your board or hit reset (highlighted in red above). Immediately after the board starts up or resets, it waits 1000ms. On some boards, the onboard status LED (highlighted in green above) will blink yellow during that time. If you press reset during that 1000ms, the board will start up in safe mode. It can be difficult to react to the yellow LED, so you may want to think of it simply as a slow double click of the reset button. (Remember, a fast double click of reset enters the bootloader.)

### In Safe Mode

If you successfully enter safe mode on CircuitPython, the LED will intermittently blink yellow three times.

If you connect to the serial console, you'll find the following message.

```terminal
Auto-reload is off.
Running in safe mode! Not running saved code.

CircuitPython is in safe mode because you pressed the reset button during boot. Press again to exit safe mode.

Press any key to enter the REPL. Use CTRL-D to reload.
```

You can now edit the contents of the **CIRCUITPY** drive. Remember, _your code will not run until you press the reset button, or unplug and plug in your board, to get out of safe mode._

## Flash Resetting UF2

If your board ever gets into a really _weird_ state and CIRCUITPY doesn't show up as a disk drive after installing CircuitPython, try loading this 'nuke' UF2 to RPI-RP2. which will do a 'deep clean' on your Flash Memory. **You will lose all the files on the board** , but at least you'll be able to revive it! After loading this UF2, follow the steps above to re-install CircuitPython.

[Download flash erasing "nuke" UF2](https://cdn-learn.adafruit.com/assets/assets/000/101/659/original/flash_nuke.uf2?1618945856)
# Optical Sensor Drum Track Sequencer

## Code the Sequencer

## Text Editor

Adafruit recommends using the&nbsp; **Mu** &nbsp;editor for editing your CircuitPython code. You can get more info in&nbsp;[this guide](https://learn.adafruit.com/welcome-to-circuitpython/installing-mu-editor).

Alternatively, you can use any text editor that saves simple text files.

## Download the Project Bundle

Your project will use a specific set of CircuitPython libraries and the&nbsp; **code.py** &nbsp;file. To get everything you need, click on the&nbsp; **Download Project Bundle** &nbsp;link below, and uncompress the .zip file.

Drag the contents of the uncompressed bundle directory onto your board's&nbsp; **CIRCUITPY** &nbsp;drive, replacing any existing files or directories with the same names, and adding any new ones that are necessary.

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

## How It Works
The code's job is to run the stepper motor at a specific speed and read the four optical sensor inputs. When an input is triggered a MIDI note is sent over USB MIDI.

This code checks the sensor inputs while the stepper motor rotates at a tempo-defined speed. By combining asynchronous tasks, then it efficiently checks sensors and controls the motor simultaneously.

### Libraries

First, the following libraries are imported:

```auto
import asyncio
import busio
import board
from adafruit_motorkit import MotorKit
from adafruit_motor import stepper
import keypad
import usb_midi
```

### Constants

the `BPM` variable is an integer for storing the tempo. It is user defined and works along with the `tempo_table` dictionary to set the stepper motor step delay.

```auto
BPM = 100  # user set value
tempo_table = {
    110: 0.0004,
    100: 0.001,
    90: 0.002,
    80: 0.003,
    75: 0.004,
    65: 0.005,
    60: 0.006,
    50: 0.008
}
```

### Tempo Calculation

The `get_nearest_tempo()` function returns the `motor_pause` value in milliseconds.

```auto
def get_nearest_tempo(given_bpm):
    nearest_table_item = min(tempo_table.keys(), key=lambda k: abs(k - given_bpm))
    return tempo_table[nearest_table_item]
motor_pause = get_nearest_tempo(BPM)
```

### Setup

Next, the I2C bus, motor, sensor, and MIDI setup:

```auto
i2c = busio.I2C(board.SCL, board.SDA, frequency=400_000)

# Motor setup
kit = MotorKit(i2c=i2c)
motor_run = True

# Sensor setup
optical_pins = (board.D6, board.D9, board.D10, board.D12)
optical_sensors = keypad.Keys(optical_pins, value_when_pressed=False, pull=True)

# MIDI setup
midi = usb_midi.ports[1]
midi_notes = (36, 37, 38, 39)  # typical drum voice notes
```

### Play Drum Function

This function will send the note on and note off messages when a drum track beat is triggered.

```auto
def play_drum(note):
    midi_msg_on = bytearray([0x99, note, 120])  # 0x90 noteOn ch1, 0x99 noteOn ch10
    midi_msg_off = bytearray([0x89, note, 0])
    midi.write(midi_msg_on)
    midi.write(midi_msg_off)
```

### async Functions

We need the motor control and sensor checking to happen at the same time, otherwise there would be a mess of tempo shifting! The asyncio library allows for asynchronous functions to be defined and then run effectively at the same time without getting in each others way. You can find out much more [here](https://learn.adafruit.com/cooperative-multitasking-in-circuitpython-with-asyncio/overview).&nbsp;

```auto
async def check_sensors():
    while True:
        optical_sensor = optical_sensors.events.get()
        if optical_sensor:
            if optical_sensor.pressed:
                track_num = optical_sensor.key_number
                play_drum(midi_notes[track_num])
        await asyncio.sleep(0.008)  # don't check sensors constantly or motor speed reduced
```

```auto
async def run_motor():
    while True:
        kit.stepper1.onestep(
            direction=stepper.BACKWARD,
            style=stepper.DOUBLE
        )
        await asyncio.sleep(motor_pause)  # motor speed-- smaller numbers are faster
```

Then, the `async main()` function is created and run.

```auto
async def main():
    motor_task = asyncio.create_task(run_motor())
    sensor_task = asyncio.create_task(check_sensors())
    await asyncio.gather(motor_task, sensor_task)

asyncio.run(main())
```

# Optical Sensor Drum Track Sequencer

## Use the Sequencer

https://youtu.be/XPvDCZZV_yg

Now, you can fire up a drum synthesizer or sample player on your computer, such as Ableton Live, Garage Band, the free, open source&nbsp;[VCV Rack](https://vcvrack.com/) which runs on Windows, Mac, and Linux machines, or even this [WebMIDI DrumKit](https://samblenny.github.io/web-midi-drumkit/) by Adafruit community member Sam Blenny!

![proximity_dumkit.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/130/657/medium640/proximity_dumkit.jpeg?1718123167)

![](https://cdn-learn.adafruit.com/assets/assets/000/130/449/medium800/proximity_rack.jpg?1717567076)

Here's an example VCV Rack patch that uses the four incoming MIDI notes from the track sequencer to trigger four drum sample modules.

[trackseq.vcv](https://cdn-learn.adafruit.com/assets/assets/000/130/450/original/trackseq.vcv.zip?1717567101)
https://www.youtube.com/live/q_NxHeJzX14?feature=shared&t=1326

Check out the video above for a demonstration on using your Drum Track Sequencer.

## Drum Patterns

Try out some classic drum machine patterns such as those found in the classic Hal Leonard book [_ **200 Drum Machine Patterns** _](https://www.halleonard.com/product/657370/200-drum-machine-patterns)

Or, have a look at these from a series of [posters by Rob Ricketts.](https://robricketts.bigcartel.com/)

Pick four key tracks and follow their patterns, such as bass drum, snare, closed hats, and clap.

![proximity_PY808_20.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/130/442/medium640/proximity_PY808_20.jpeg?1717545131)

![proximity_00657370-wl.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/448/medium640/proximity_00657370-wl.jpg?1717563664)


## Featured Products

### Adafruit Feather RP2040

[Adafruit Feather RP2040](https://www.adafruit.com/product/4884)
A new chip means a new Feather, and the Raspberry Pi RP2040 is no exception. When we saw this chip we thought "this chip is going to be awesome when we give it the Feather Treatment" and so we did! This Feather features the&nbsp; **RP2040** , and all niceties you know and...

In Stock
[Buy Now](https://www.adafruit.com/product/4884)
[Related Guides to the Product](https://learn.adafruit.com/products/4884/guides)
### 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)
### DC Motor + Stepper FeatherWing Add-on For All Feather Boards

[DC Motor + Stepper FeatherWing Add-on For All Feather Boards](https://www.adafruit.com/product/2927)
A Feather board without ambition is a Feather board without FeatherWings! This is the&nbsp; **DC Motor + Stepper&nbsp;FeatherWing** which will let you use 2 x bi-polar stepper motors or 4 x brushed DC motors (or 1 stepper and 2 DC motors). Using our <a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/2927)
[Related Guides to the Product](https://learn.adafruit.com/products/2927/guides)
### Stepper motor - NEMA-17 size - 200 steps/rev, 12V 350mA

[Stepper motor - NEMA-17 size - 200 steps/rev, 12V 350mA](https://www.adafruit.com/product/324)
A stepper motor to satisfy all your robotics needs! This 4-wire bipolar stepper has 1.8° per step for smooth motion and a nice holding torque. The motor was specified to have a max current of 350mA so that it could be driven easily with an <a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/324)
[Related Guides to the Product](https://learn.adafruit.com/products/324/guides)
### 12V 5A switching power supply

[12V 5A switching power supply](https://www.adafruit.com/product/352)
This is a beefy switching supply, for when you need a lot of power! It can supply 12V DC up to 5 Amps, running from 110V or 220V power (the plug it comes with is for US/Canada/Japan but you can use any plug adapter for your country, or just replace the cable with a standard 'figure-8'...

Out of Stock
[Buy Now](https://www.adafruit.com/product/352)
[Related Guides to the Product](https://learn.adafruit.com/products/352/guides)
### FeatherWing Tripler Mini Kit - Prototyping Add-on For Feathers

[FeatherWing Tripler Mini Kit - Prototyping Add-on For Feathers](https://www.adafruit.com/product/3417)
This is the **FeatherWing Tripler** - a prototyping add-on and more for all Feather boards. This is similar to our [FeatherWing Proto](https://www.adafruit.com/products/2884) except there are three! The magic of the Tripler comes when you want to connect your Feather to...

In Stock
[Buy Now](https://www.adafruit.com/product/3417)
[Related Guides to the Product](https://learn.adafruit.com/products/3417/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)
### In-line power switch for 2.1mm barrel jack

[In-line power switch for 2.1mm barrel jack](https://www.adafruit.com/product/1125)
Add a power switch to _any_ project simply by plugging this between the power supply. This is the most useful thing you never knew you needed! You'll want to pick up a bunch for your electronic projects.  
  
Comes with a 5.5/2.1mm barrel jack on one end an a plug on the...

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

## Related Guides

- [Adafruit Stepper + DC Motor FeatherWing](https://learn.adafruit.com/adafruit-stepper-dc-motor-featherwing.md)
- [Introducing Adafruit Feather RP2040](https://learn.adafruit.com/adafruit-feather-rp2040-pico.md)
- [Adafruit STEMMA Reflective Photo Interrupt Sensor](https://learn.adafruit.com/adafruit-stemma-reflective-photo-interrupt-sensor.md)
- [3D Printed Frame for Adafruit IS31FL3741 LED Glasses](https://learn.adafruit.com/3d-printed-frame-for-led-glasses-is31fl3741.md)
- [IoT Filament Sensor](https://learn.adafruit.com/iot-filament-sensor.md)
- [Digital Clock with CircuitPython](https://learn.adafruit.com/digital-clock-with-circuitpython.md)
- [Walkmp3rson: Personal MP3 'Tape' Player](https://learn.adafruit.com/walkmp3rson-personal-mp3-tape-player.md)
- [Mystery Box: Remote Chess Board Puzzle Lock](https://learn.adafruit.com/mystery-box-remote-chess-board-puzzle-lock.md)
- [Deco Two-Key Feather Macro Pad](https://learn.adafruit.com/deco-two-key-keypad-macropad-circuitpython-feather.md)
- [Disconnected CO2 Data Logger](https://learn.adafruit.com/disconnected-co2-data-logger.md)
- [FeatherWing Proto, Doubler  and Tripler](https://learn.adafruit.com/featherwing-proto-and-doubler.md)
- [Discord and Slack Connected Smart Plant with Adafruit IO Actions](https://learn.adafruit.com/discord-and-slack-connected-smart-plant-with-adafruit-io-triggers.md)
- [Bluefruit LE Feather Robot Rover](https://learn.adafruit.com/bluefruit-feather-robot.md)
- [Darth Faders](https://learn.adafruit.com/darth-faders.md)
- [CircuitPython Hardware: PCA9685 DC Motor & Stepper Driver](https://learn.adafruit.com/micropython-hardware-pca9685-dc-motor-and-stepper-driver.md)
- [Flying Faders](https://learn.adafruit.com/flying-faders.md)
- [CNC Rotary Macropad](https://learn.adafruit.com/cnc-rotary-macropad.md)
