# MIDI Laser Harp with Time of Flight Distance Sensors

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/111/369/medium800/proximity_edited_IMG_5033.png?1652105821)

https://www.youtube.com/watch?v=pWvFaknKUz4

https://youtu.be/f8-xf_2Xakw

A [laser harp](https://en.wikipedia.org/wiki/Laser_harp) is an electronic instrument that lets you "pluck" laser beams like a harp to play notes. In this guide, you'll learn how to build your own version of a laser harp using a Feather M4 Express or Feather RP2040, a Music Maker FeatherWing and code written in CircuitPython. VL53L4CD time of flight sensors are used to detect when you're playing a note instead of simply detecting the break-beam. This means we can do cool stuff like use the distance data from the time of flight sensors to convert into different MIDI values such as modulation, sustain and velocity.

We use a Music Maker wing which has audio output from MIDI input and a [wide variety of musical instruments it can generate sound effects for, see page 32 of the VS1053 datasheet for a full list!](https://cdn-shop.adafruit.com/datasheets/vs1053.pdf) Of course you can also generate MIDI-over-USB signals that can be used to control your favorite software synth.

It's hard to mount sensors on the other side of the lasers so we 'cheat' and use high quality ToF distance sensors with precise distance measurements and narrow detection paths. The lasers are _only there help you to visualize the detection path of the time of flight sensors_ so feel free to change the laser colors or positions as you please. The sensors and lasers are mounted so that they are sitting at the same angle.

![proximity_laser_gif_0.gif](https://cdn-learn.adafruit.com/assets/assets/000/111/468/medium640thumb/proximity_laser_gif_0.jpg?1652211395)

The Music Maker FeatherWing is used as a MIDI synth. You can change the instrument sound in the CircuitPython code.

![proximity_edited_P1330582.png](https://cdn-learn.adafruit.com/assets/assets/000/111/465/medium640/proximity_edited_P1330582.png?1652206692)

The TCA9548A I2C multiplexer allows you to use eight of the VL53L4CD time of flight sensors at the same time even though they all have the same I2C address.

![proximity_edited_P1330407.png](https://cdn-learn.adafruit.com/assets/assets/000/111/382/medium640/proximity_edited_P1330407.png?1652108220)

## Prerequisite Guides
Please look over the following Adafruit Learning System guides for information on the components used.

[Adafruit Music Maker FeatherWing](https://learn.adafruit.com/adafruit-music-maker-featherwing)
[Adafruit VL53L4CD Time of Flight Distance Sensor](https://learn.adafruit.com/adafruit-vl53l4cd-time-of-flight-distance-sensor)
[Working with Multiple Same Address I2C Devices](https://learn.adafruit.com/working-with-multiple-i2c-devices)
[Adafruit TCA9548A 1-to-8 I2C Multiplexer Breakout](https://learn.adafruit.com/adafruit-tca9548a-1-to-8-i2c-multiplexer-breakout)
Info: 

## Parts
### 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)

## OR
### Adafruit Feather M4 Express - Featuring ATSAMD51

[Adafruit Feather M4 Express - Featuring ATSAMD51](https://www.adafruit.com/product/3857)
It's what you've been waiting for, the Feather M4 Express featuring ATSAMD51. This Feather is fast like a swift, smart like an owl, strong like a ox-bird (it's half ox, half bird, OK?) This feather is powered by our new favorite chip, the **ATSAMD51J19** -&nbsp; with...

In Stock
[Buy Now](https://www.adafruit.com/product/3857)
[Related Guides to the Product](https://learn.adafruit.com/products/3857/guides)
![Angled shot of a Adafruit Feather M4 Express. ](https://cdn-shop.adafruit.com/640x480/3857-10.jpg)

### Adafruit Music Maker FeatherWing - MP3 OGG WAV MIDI Synth Player

[Adafruit Music Maker FeatherWing - MP3 OGG WAV MIDI Synth Player](https://www.adafruit.com/product/3357)
Bend all audio files to your will with the **Adafruit Music Maker FeatherWing**! It's a fun-size version of our [Music Maker&nbsp;shield for Arduino](https://www.adafruit.com/product/1790)!&nbsp;This powerful wing features the VS1053, an encoding/decoding (codec)...

In Stock
[Buy Now](https://www.adafruit.com/product/3357)
[Related Guides to the Product](https://learn.adafruit.com/products/3357/guides)
![Adafruit Music Maker FeatherWing - MP3 OGG WAV MIDI Synth Player connected to a half sized breadboard and a set of headphones. ](https://cdn-shop.adafruit.com/640x480/3357-01.jpg)

### TCA9548A I2C Multiplexer

[TCA9548A I2C Multiplexer](https://www.adafruit.com/product/2717)
You just found the perfect I2C sensor, and you want to wire up two or three or more of them to your Arduino when you realize "Uh oh, this chip has a fixed I2C address, and from what I know about I2C, you cannot have two devices with the same address on the same SDA/SCL pins!" Are you...

Out of Stock
[Buy Now](https://www.adafruit.com/product/2717)
[Related Guides to the Product](https://learn.adafruit.com/products/2717/guides)
![Angled Shot of the TCA9548A I2C Multiplexer.](https://cdn-shop.adafruit.com/640x480/2717-05.jpg)

### Adafruit VL53L4CD Time of Flight Distance Sensor - ~1 to 1300mm

[Adafruit VL53L4CD Time of Flight Distance Sensor - ~1 to 1300mm](https://www.adafruit.com/product/5396)
The **Adafruit VL53L4CD Time of Flight Sensor** is another great _Time of Flight_&nbsp;distance sensor from ST in the VL5 series of chips, this one is great for shorter distances. The sensor contains a very tiny invisible laser source&nbsp;and a matching sensor. The...

Out of Stock
[Buy Now](https://www.adafruit.com/product/5396)
[Related Guides to the Product](https://learn.adafruit.com/products/5396/guides)
![Video of a hand hovering over a Adafruit VL53L4CD Time of Flight Distance Sensor thats connected to a white breadboard reading the range of motion of the hand. ](https://cdn-shop.adafruit.com/product-videos/640x480/5396-05.jpg)

### Laser Diode - 5mW 650nm Red

[Laser Diode - 5mW 650nm Red](https://www.adafruit.com/product/1054)
You have some frickin' sharks at your lair, and you're thinking "it would be really great if I could attach some lasers to them" and then you see these little laser diode modules: what great timing! These encapsulated laser diodes are Class IIIa 5mW, with a 650nm red...

Out of Stock
[Buy Now](https://www.adafruit.com/product/1054)
[Related Guides to the Product](https://learn.adafruit.com/products/1054/guides)
![Angled shot of laser diode module with black and red wires.](https://cdn-shop.adafruit.com/640x480/1054-04.jpg)

### Part: FeatherWing Doubler
quantity: 1
FeatherWing Doubler - Prototyping Add-on For All Feather Boards
[FeatherWing Doubler](https://www.adafruit.com/product/2890)

### Part: Fixed Laser Mounting Stand
quantity: 8
Fixed Laser Mounting Stand
[Fixed Laser Mounting Stand](https://www.adafruit.com/product/1094)

### Part: Mini Panel Mount SPDT Toggle Switch
quantity: 1
Toggle switch
[Mini Panel Mount SPDT Toggle Switch](https://www.adafruit.com/product/3221)

### Part: STEMMA QT / Qwiic JST SH 4-pin Cable - 100mm Long
quantity: 8
STEMMA QT cable
[STEMMA QT / Qwiic JST SH 4-pin Cable - 100mm Long](https://www.adafruit.com/product/4210)

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

### Part: Silicone Cover Stranded-Core Wire - 50ft 30AWG Black
quantity: 1
Black wire
[Silicone Cover Stranded-Core Wire - 50ft 30AWG Black](https://www.adafruit.com/product/3164)

### Part: Silicone Cover Stranded-Core Wire - 50ft 30AWG Red
quantity: 1
Red wire
[Silicone Cover Stranded-Core Wire - 50ft 30AWG Red](https://www.adafruit.com/product/3165)

### Part: Silicone Cover Stranded-Core Wire - 50ft 30AWG Yellow
quantity: 1
Yellow wire
[Silicone Cover Stranded-Core Wire - 50ft 30AWG Yellow](https://www.adafruit.com/product/3167)

### Part: Silicone Cover Stranded-Core Wire - 50ft 30AWG Blue
quantity: 1
Blue wire
[Silicone Cover Stranded-Core Wire - 50ft 30AWG Blue](https://www.adafruit.com/product/3166)

### Part: Multi-Colored Heat Shrink Pack - 3/32" + 1/8" + 3/16" Diameters
quantity: 1
Heat shrink
[Multi-Colored Heat Shrink Pack - 3/32" + 1/8" + 3/16" Diameters](https://www.adafruit.com/product/1649)

### Part: Acrylic sheet
quantity: 1
18" x 24" sheet of 1/8" thick acrylic
[Acrylic sheet](https://www.inventables.com/technologies/transparent-yellow-acrylic-sheet)

# MIDI Laser Harp with Time of Flight Distance Sensors

## Circuit Diagram

![](https://cdn-learn.adafruit.com/assets/assets/000/111/320/medium800/proximity_laserHarp_bb.png?1651687723)

 **TCA9548A**

- **SC7** to **sensor 1 SCL**
- **SD7** to **sensor 1 SDA**
- **SC6** to **sensor 2 SCL**
- **SD6** to **sensor 2 SDA**
- **SC5** to **sensor 3 SCL**
- **SD5** to **sensor 3 SDA**
- **SC4** to **sensor 4 SCL**
- **SD4** to **sensor 4 SDA**
- **SC3** to **sensor 5 SCL**
- **SD3** to **sensor 5 SDA**
- **SC2** to **sensor 6 SCL**
- **SD2** to **sensor 6 SDA**
- **SC1** to **sensor 7 SCL**
- **SD1** to **sensor 7 SDA**
- **SC0** to **sensor 8 SCL**
- **SD0** to **sensor 8 SDA**
- **SDA** to **board SDA**
- **SCL** to **board SCL**
- **GND** to **board GND**
- **VIN** to **board 3.3V**

**Feather RP2040**

- **GND** to **STEMMA QT GND**
- **GND** to **lasers' GND**
- **3.3V** to **STEMMA QT VIN**
- **3.3V** to **switch**
- Plug the Feather RP2040 and Music Maker FeatherWing into a FeatherWing Doubler

**STEMMA and Laser VIN and GND Connections**

- Connect the **VL53L4CDs'**  **VIN** and **GND** connections together with STEMMA QT cables
- Wire the **lasers' GND** connections (black wires) together
- Wire the **lasers' VIN** connections (red wires) together and connect them to the **switch**

# MIDI Laser Harp with Time of Flight Distance Sensors

## Acrylic and 3D Printing

![](https://cdn-learn.adafruit.com/assets/assets/000/111/328/medium800/proximity_edited_P1330318.png?1651788401)

The laser harp may be constructed with a piece of acrylic and some 3D printed parts, described below. The acrylic stand is shaped in an arc with mounting holes for the electronics and 3D printed parts.

![](https://cdn-learn.adafruit.com/assets/assets/000/111/321/medium800/proximity_edited_P1330262.png?1651694258)

The 3D printed parts consist of brackets for the laser mounts and time of flight sensors, stands to prop up the piece of acrylic and fasteners to hold the acrylic stand together if it is being cut from two pieces. All parts print with no supports.

The STL, DXF and SVG files can be downloaded directly here or from Thingiverse.

[Thingiverse download](https://www.thingiverse.com/thing:5381276)
[laserHarpAssemblyFiles.zip](https://cdn-learn.adafruit.com/assets/assets/000/111/372/original/laserHarpAssemblyFiles.zip?1652106133)
The acrylic can be cut using manual tools, a CNC or laser cutter. If you're using manual tools, you can cut or print out the files on paper to use as a guide for cutting and drilling.

Files are available to cut the acrylic as one large piece or in half using two smaller pieces of acrylic stock.

![proximity_edited_P1330298.png](https://cdn-learn.adafruit.com/assets/assets/000/111/329/medium640/proximity_edited_P1330298.png?1651788436)

One of the 3D printed stands has mounting holes for the FeatherWing Doubler.

![proximity_edited_P1330277.png](https://cdn-learn.adafruit.com/assets/assets/000/111/324/medium640/proximity_edited_P1330277.png?1651694364)

You'll print eight brackets, one for each of the lasers and time of flight sensors. The bracket allows the components to attach to the acrylic and for the time of flight sensor to be level with the laser.

![proximity_edited_P1330266.png](https://cdn-learn.adafruit.com/assets/assets/000/111/322/medium640/proximity_edited_P1330266.png?1651694300)

![proximity_edited_P1330272.png](https://cdn-learn.adafruit.com/assets/assets/000/111/323/medium640/proximity_edited_P1330272.png?1651694330)

# MIDI Laser Harp with Time of Flight Distance Sensors

## CircuitPython on Feather M4 Express

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

The following instructions will show you how to install CircuitPython. If you've already installed CircuitPython but are looking to update it or reinstall it, the same steps work for that as well!

## Set up CircuitPython Quick Start!

Follow this quick step-by-step for super-fast Python power :)

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

Download and save it to your desktop (or wherever is handy).

![arduino_compatibles_FeatherM0ExpressUF2Downloaded.png](https://cdn-learn.adafruit.com/assets/assets/000/057/318/medium640/arduino_compatibles_FeatherM0ExpressUF2Downloaded.png?1531152402)

Plug your Feather M4 into your computer using a known-good USB cable.

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

Double-click the **Reset** button next to the USB connector on your board, and you will see the NeoPixel RGB LED turn green. If it turns red, check the USB cable, try another USB port, etc. **Note:** The little red LED next to the USB connector will pulse red. That's ok!

If double-clicking doesn't work the first time, try again. Sometimes it can take a few tries to get the rhythm right!

![arduino_compatibles_FeatherM0Bootloader.jpg](https://cdn-learn.adafruit.com/assets/assets/000/057/320/medium640/arduino_compatibles_FeatherM0Bootloader.jpg?1531152568)

You will see a new disk drive appear called **FEATHERBOOT**.

&nbsp;

&nbsp;

&nbsp;

Drag the **adafruit\_circuitpython\_etc.uf2** file to **FEATHERBOOT.**

![arduino_compatibles_FeatherM0FEATHERBOOT.png](https://cdn-learn.adafruit.com/assets/assets/000/057/321/medium640/arduino_compatibles_FeatherM0FEATHERBOOT.png?1531152779)

![arduino_compatibles_FeatherM0DragCircuitPythonUF2.png](https://cdn-learn.adafruit.com/assets/assets/000/057/324/medium640/arduino_compatibles_FeatherM0DragCircuitPythonUF2.png?1531152877)

The LED will flash. Then, the **FEATHERBOOT** drive will disappear and a new disk drive called **CIRCUITPY** will appear.

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

![arduino_compatibles_FeatherM0CIRCUITPY.png](https://cdn-learn.adafruit.com/assets/assets/000/057/323/medium640/arduino_compatibles_FeatherM0CIRCUITPY.png?1531152841)

## Further Information

For more detailed info on installing CircuitPython, check out [Installing CircuitPython](https://learn.adafruit.com/welcome-to-circuitpython/installing-circuitpython).

# MIDI Laser Harp with Time of Flight Distance Sensors

## Coding the Laser Harp

Info: 

Once you've finished setting up your Feather M4 Express with CircuitPython, you can access the code and necessary libraries by downloading the Project Bundle.

To do this, click on the **&nbsp;Download Project Bundle** &nbsp;button in the window below. It will download as a zipped folder.

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

## Upload the Code and Libraries to the Feather M4 Express

After downloading the Project Bundle, plug your Feather M4 Express into the computer's USB port with a known good USB data+power cable. You should see a new flash drive appear in the computer's File Explorer or Finder (depending on your operating system) called&nbsp; **CIRCUITPY**. Unzip the folder and copy the following items to the Feather M4 Express'&nbsp; **CIRCUITPY** &nbsp;drive.&nbsp;

- **lib** &nbsp;folder
- **code.py**

Your Feather M4 Express&nbsp; **CIRCUITPY&nbsp;** drive should look like this after copying the&nbsp; **lib** &nbsp;folder and the&nbsp; **code.py&nbsp;** file.

![circuitpy](https://adafruit.github.io/Adafruit_Learning_System_Guides/Laser_Harp.png )

## Additional Examples

In addition to the main **code.py** file, there are two more CircuitPython code files that you can use for different features.&nbsp;

The [**usb\_midi\_code.py**](https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Laser_Harp/usb_midi_code.py) file has code to allow the laser harp to be used as a USB MIDI controller. This way you can control your favorite software synth or DAW.

The [**laser\_harp\_two\_voice.py**](https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Laser_Harp/laser_harp_two_voice.py) file has extra features that build on the original **code.py** file. It can send out two different synth instruments depending on the height that the time of flight sensors detect. You can also control pitch bend or volume by raising or lowering your hand while playing a note.&nbsp;

To use either of these files instead of the original **code.py** file, remove the **code.py** file from your **CIRCUITPY** drive and rename your chosen **.py** file as **code.py**.

## How the CircuitPython Code Works
The code begins by setting up I2C to use `board.SCL` and `board.SDA`. The TCA9548A I2C multiplexer is setup as `tca`.

```python
# Create I2C bus as normal
i2c = board.I2C()  # uses board.SCL and board.SDA

# Create the TCA9548A object and give it the I2C bus
tca = adafruit_tca9548a.TCA9548A(i2c)
```

### VL53L4CD Setup with the TCA9548A
The time of flight sensors all use the same I2C address, `0x29`. When they are setup using the `adafruit_vl53l4cd` library, their I2C pins are set as different channels on the TCA9548A.

The time of flight sensors are inserted into an array called `flights`. A `for` statement is used to setup each time of flight sensor with `inter_measurement` and `timing_budget` values, along with the function `start_ranging()` to begin reading data.

```python
#  setup time of flight sensors to use TCA9548A inputs
tof_0 = adafruit_vl53l4cd.VL53L4CD(tca[0])
tof_1 = adafruit_vl53l4cd.VL53L4CD(tca[1])
tof_2 = adafruit_vl53l4cd.VL53L4CD(tca[2])
tof_3 = adafruit_vl53l4cd.VL53L4CD(tca[3])
tof_4 = adafruit_vl53l4cd.VL53L4CD(tca[4])
tof_5 = adafruit_vl53l4cd.VL53L4CD(tca[5])
tof_6 = adafruit_vl53l4cd.VL53L4CD(tca[6])
tof_7 = adafruit_vl53l4cd.VL53L4CD(tca[7])

#  array of tof sensors
flights = [tof_0, tof_1, tof_2, tof_3, tof_4, tof_5, tof_6, tof_7]

#  setup each tof sensor
for flight in flights:
    flight.inter_measurement = 0
    flight.timing_budget = 50
    flight.start_ranging()
```

### MIDI Over UART Setup
MIDI is setup to use UART. The Music Maker FeatherWing takes in MIDI over UART to be used as a synth.

```python
#  midi uart setup for music maker featherwing
uart = busio.UART(board.TX, board.RX, baudrate=31250)

midi_in_channel = 1
midi_out_channel = 1
#  midi setup
#  UART is setup as the input
midi = adafruit_midi.MIDI(
    midi_in=uart,
    midi_out=uart,
    in_channel=(midi_in_channel - 1),
    out_channel=(midi_out_channel - 1),
    debug=False,
)
```

### Variables and States
There are a few variables that you may want to change depending on your preferences.

- `flight_height` is used as a maximum height value for the time of flight sensors. Adjust this to increase or decrease the expected range for the laser harp
- `notes` is the array of MIDI notes assigned to each time of flight sensor. Change these numbers to play different notes
- The `midi.send(ProgramChange(80)` message changes the instrument sound being used by the Music Maker FeatherWing. You can change the number to set a different instrument sound. [Check out this reference page for a list of possible sounds and their numbers.](https://en.wikipedia.org/wiki/General_MIDI#Program_change_events)

```python
#  height cutoff for tof sensors
#  adjust depending on the height of your ceiling/performance area
flight_height = 150

#  state of each tof sensor
#  tracks if you have hit the laser range
pluck_0 = False
pluck_1 = False
pluck_2 = False
pluck_3 = False
pluck_4 = False
pluck_5 = False
pluck_6 = False
pluck_7 = False

#  array of tof sensor states
plucks = [pluck_0, pluck_1, pluck_2, pluck_3, pluck_4, pluck_5, pluck_6, pluck_7]

#  midi notes for each tof sensor
notes = [48, 52, 55, 59, 60, 64, 67, 71]

#  midi instrument voice
midi.send(ProgramChange(80))
```

### The Loop
In the loop, the time of flight sensors are iterated through and their values are read. The values are mapped to different MIDI parameters: modulation, sustain and velocity. Modulation and sustain are sent as a MIDI message together.

```python
while True:
    #  iterate through the 8 tof sensors
    for f in range(8):
        while not flights[f].data_ready:
            pass
        #  reset tof sensors
        flights[f].clear_interrupt()
        #  if the reading from a tof is not 0...
        if flights[f].distance != 0.0:
            #  map range of tof sensor distance to midi parameters
            #  modulation
            mod = round(simpleio.map_range(flights[f].distance, 0, 100, 120, 0))
            #  sustain
            sus = round(simpleio.map_range(flights[f].distance, 0, 100, 127, 0))
            #  velocity
            vel = round(simpleio.map_range(flights[f].distance, 0, 150, 120, 0))
            modulation = int(mod)
            sustain = int(sus)
            #  create sustain and modulation CC message
            pedal = ControlChange(71, sustain)
            modWheel = ControlChange(1, modulation)
            #  send the sustain and modulation messages
            midi.send([modWheel, pedal])
```

### Playing the Laser Harp
If the time of flight sensor detects a height that is lower than the maximum threshold set as `flight_height`, the assigned MIDI note is sent with a `NoteOn` message. If the time of flight sensor detects a height that is equal to or lower than `flight_height`, a `NoteOff` message is sent.

```python
#  if tof registers a height lower than the set max height...
            if int(flights[f].distance) &lt; flight_height and not plucks[f]:
                #  set state tracker
                plucks[f] = True
                #  convert tof distance to a velocity value
                velocity = int(vel)
                #  send midi note with velocity and sustain message
                midi.send([NoteOn(notes[f], velocity), pedal])
            #  if tof registers a height = to or greater than set max height
            #  aka you remove your hand from above the sensor...
            if int(flights[f].distance) &gt; flight_height and plucks[f]:
                #  reset state
                plucks[f] = False
                #  send midi note off
                midi.send(NoteOff(notes[f], velocity))
```

# MIDI Laser Harp with Time of Flight Distance Sensors

## Assembly

![](https://cdn-learn.adafruit.com/assets/assets/000/111/335/medium800/proximity_edited_P1330352.png?1651788816)

## Acrylic and 3D Printed Parts
If you've cut the acrylic using smaller stock, connect the two pieces with the 3D printed connectors and M2.5 screws.

![proximity_edited_P1330301.png](https://cdn-learn.adafruit.com/assets/assets/000/111/330/medium640/proximity_edited_P1330301.png?1651788515)

![proximity_edited_P1330306.png](https://cdn-learn.adafruit.com/assets/assets/000/111/331/medium640/proximity_edited_P1330306.png?1651788545)

Attach the 3D printed stands to the back of the acrylic using M2.5 screws.

![proximity_edited_P1330309.png](https://cdn-learn.adafruit.com/assets/assets/000/111/332/medium640/proximity_edited_P1330309.png?1651788672)

![proximity_edited_P1330312.png](https://cdn-learn.adafruit.com/assets/assets/000/111/333/medium640/proximity_edited_P1330312.png?1651788699)

That completes the main acrylic assembly!

![proximity_edited_P1330318.png](https://cdn-learn.adafruit.com/assets/assets/000/111/334/medium640/proximity_edited_P1330318.png?1651788754)

## Mount the Lasers and ToF Sensors
![](https://cdn-learn.adafruit.com/assets/assets/000/111/337/medium800/proximity_edited_P1330324.png?1651788956)

Line up the laser mount's holes with the holes on the acrylic. Run the laser's wires through the bottom-left hole in the mount and the acrylic. This hole is larger on the acrylic.

![proximity_edited_P1330334.png](https://cdn-learn.adafruit.com/assets/assets/000/111/336/medium640/proximity_edited_P1330334.png?1651788888)

Align the 3D printed mount's holes with the acrylic. Run the laser's wires through the larger hole of the 3D printed mount.

![proximity_edited_P1330336.png](https://cdn-learn.adafruit.com/assets/assets/000/111/338/medium640/proximity_edited_P1330336.png?1651788987)

Attach the mount and laser to the acrylic using three M2.5 screws and nuts.

![proximity_edited_P1330339.png](https://cdn-learn.adafruit.com/assets/assets/000/111/339/medium640/proximity_edited_P1330339.png?1651789063)

![proximity_edited_P1330341.png](https://cdn-learn.adafruit.com/assets/assets/000/111/340/medium640/proximity_edited_P1330341.png?1651789097)

Attach the VL53L4CD board to the top of the 3D printed mount using four M2.5 screws and nuts.

![proximity_edited_P1330344.png](https://cdn-learn.adafruit.com/assets/assets/000/111/341/medium640/proximity_edited_P1330344.png?1651789150)

Repeat this process for the remaining seven lasers and time of flight sensors.

![proximity_edited_P1330348.png](https://cdn-learn.adafruit.com/assets/assets/000/111/342/medium640/proximity_edited_P1330348.png?1651789236)

# MIDI Laser Harp with Time of Flight Distance Sensors

## STEMMA Wiring

STEMMA QT cables are used to connect the VL53L4CD time of flight sensors. The cables need to be cut so that the SCL and SDA wires can be soldered to the TCA9548A breakout board, while keeping the power and ground wires connected to the QT connectors.

## Prep the STEMMA QT Cables
Cut the SCL and SDA (blue and yellow) wires close to one end of the QT connector. Slide those wires through the heatshrink tubing on the cable. Splice and tin the SCL and SDA wires.

![proximity_edited_P1330293.png](https://cdn-learn.adafruit.com/assets/assets/000/111/325/medium640/proximity_edited_P1330293.png?1651695217)

Repeat this process for a total of seven cables.

![proximity_edited_P1330285.png](https://cdn-learn.adafruit.com/assets/assets/000/111/326/medium640/proximity_edited_P1330285.png?1651695328)

For the eighth cable, cut the SCL and SDA (blue and yellow) wires close to one end of the QT connector. Then, at the opposite QT connector, cut the power and ground (red and black) wires.

You should have one cable that's power and ground only connected to a QT connector and another cable that's SCL and SDA only connected to a QT connector. Splice and tin the wires.

![proximity_edited_P1330289.png](https://cdn-learn.adafruit.com/assets/assets/000/111/327/medium640/proximity_edited_P1330289.png?1651695374)

## Plug in the STEMMA QT Cables
Plug the the STEMMA QT cable into the first VL53L4CD board on the left. The connector with all four wires still connected should be plugged into the board's right-hand port. Plug the other end of the cable, with only power and ground connections, into the left-hand port of the next VL53L4CD.

Continue plugging in the remaining six cut cables in this pattern: connector with all four wires plugged into the right-hand port, connector with power and ground only into the left-hand port.

![proximity_edited_P1330354.png](https://cdn-learn.adafruit.com/assets/assets/000/111/343/medium640/proximity_edited_P1330354.png?1651790386)

Plug the SCL and SDA only STEMMA QT cable into the open right-hand port in the last VL53L4CD board on the right.

![proximity_edited_P1330358.png](https://cdn-learn.adafruit.com/assets/assets/000/111/344/medium640/proximity_edited_P1330358.png?1651790496)

Plug the power and ground only STEMMA QT cable into the open left-hand port in the first VL53L4CD board on the left.

![proximity_edited_P1330359.png](https://cdn-learn.adafruit.com/assets/assets/000/111/345/medium640/proximity_edited_P1330359.png?1651790586)

## Extend the SCL and SDA Wires
Cut, splice and tin 16 pieces of wire. These wires will be used to extend the SCL and SDA wires from the STEMMA QT cables. As a result, you can color coordinate them by cutting eight blue wires and eight yellow wires.

The wires should be the following approximate lengths:

- Four pieces (two blue, two yellow) measuring 32 mm
- Four pieces (two blue, two yellow) measuring 177.8 mm
- Four pieces (two blue, two yellow) measuring 285.75 mm
- Four pieces (two blue, two yellow) measuring 304.8 mm

Cut, splice and tin all of the wires' ends.

![proximity_edited_P1330375.png](https://cdn-learn.adafruit.com/assets/assets/000/111/346/medium640/proximity_edited_P1330375.png?1651790821)

![proximity_edited_P1330372.png](https://cdn-learn.adafruit.com/assets/assets/000/111/347/medium640/proximity_edited_P1330372.png?1651790847)

Solder the cut wires to the STEMMA QT wires.

- The 304.8 mm wires are sized for the **first** and **last** VL53L4CD's.
- The 285.75 mm wires are sized for the **second** and **seventh** VL53L4CD's.
- The 177.8 mm wires are sized for the **third** and **sixth** VL53L4CD's.
- The 32 mm wires are sized for the **fourth** and **fifth** (two in the middle) VL53L4CD's.

![proximity_edited_P1330379.png](https://cdn-learn.adafruit.com/assets/assets/000/111/348/medium640/proximity_edited_P1330379.png?1651791102)

Add heat shrink to all of the soldered wire connections.

![proximity_edited_P1330381.png](https://cdn-learn.adafruit.com/assets/assets/000/111/349/medium640/proximity_edited_P1330381.png?1651791321)

# MIDI Laser Harp with Time of Flight Distance Sensors

## TCA9548A Wiring

![](https://cdn-learn.adafruit.com/assets/assets/000/111/373/medium800/proximity_edited_P1330385.png?1652107562)

Solder the first two VL53L4CD's I2C connections to channel 0 and 1 on the TCA9548A.&nbsp;

- **Time of flight 1 SDA** to **SD0**
- **Time of flight 1 SCL** to **SC0**
- **Time of flight 2 SDA** to **SD1**
- **Time of flight 2 SCL** to **SC1**

![proximity_edited_P1330386.png](https://cdn-learn.adafruit.com/assets/assets/000/111/374/medium640/proximity_edited_P1330386.png?1652107609)

![proximity_edited_P1330390.png](https://cdn-learn.adafruit.com/assets/assets/000/111/375/medium640/proximity_edited_P1330390.png?1652107640)

Solder the third and fourth VL53L4CD's I2C connections to channel 2 and 3 on the TCA9548A.&nbsp;

- **Time of flight 3 SDA** to **SD2**
- **Time of flight 3 SCL** to **SC2**
- **Time of flight 4 SDA** to **SD3**
- **Time of flight 4 SCL** to **SC3**

![proximity_edited_P1330394.png](https://cdn-learn.adafruit.com/assets/assets/000/111/376/medium640/proximity_edited_P1330394.png?1652107903)

![proximity_edited_P1330397.png](https://cdn-learn.adafruit.com/assets/assets/000/111/377/medium640/proximity_edited_P1330397.png?1652107938)

Solder the fifth and sixth VL53L4CD's I2C connections to channel 4 and 5 on the TCA9548A.&nbsp;

- **Time of flight 5 SDA** to **SD4**
- **Time of flight 5 SCL** to **SC4**
- **Time of flight 6 SDA** to **SD5**
- **Time of flight 6 SCL** to **SC5**

![proximity_edited_P1330399.png](https://cdn-learn.adafruit.com/assets/assets/000/111/378/medium640/proximity_edited_P1330399.png?1652108010)

![proximity_edited_P1330402.png](https://cdn-learn.adafruit.com/assets/assets/000/111/379/medium640/proximity_edited_P1330402.png?1652108054)

Solder the last two VL53L4CD's I2C connections to channel 6 and 7 on the TCA9548A.&nbsp;

- **Time of flight 7 SDA** to **SD6**
- **Time of flight 7 SCL** to **SC6**
- **Time of flight 8 SDA** to **SD7**
- **Time of flight 8 SCL** to **SC7**

![proximity_edited_P1330405.png](https://cdn-learn.adafruit.com/assets/assets/000/111/380/medium640/proximity_edited_P1330405.png?1652108141)

![proximity_edited_P1330407.png](https://cdn-learn.adafruit.com/assets/assets/000/111/381/medium640/proximity_edited_P1330407.png?1652108173)

# MIDI Laser Harp with Time of Flight Distance Sensors

## Wiring the Lasers

## Power Connections
Slip a piece of heat shrink over the first laser's red power wire. Solder the first and second lasers' red power wires together.

![proximity_edited_P1330408.png](https://cdn-learn.adafruit.com/assets/assets/000/111/383/medium640/proximity_edited_P1330408.png?1652109969)

![proximity_edited_P1330410.png](https://cdn-learn.adafruit.com/assets/assets/000/111/384/medium640/proximity_edited_P1330410.png?1652110012)

Slip a piece of heat shrink over the third laser's red power wire. Solder the third and fourth lasers' red power wires together.

![proximity_edited_P1330411.png](https://cdn-learn.adafruit.com/assets/assets/000/111/385/medium640/proximity_edited_P1330411.png?1652110086)

Cut, splice and tin two pieces of wire that are approximately 190.5 mm in length.

![proximity_edited_P1330414.png](https://cdn-learn.adafruit.com/assets/assets/000/111/386/medium640/proximity_edited_P1330414.png?1652110150)

Solder one of the ends of the 190.5 mm lengths of wire to the solder point between the first and second laser. Then, solder the other end to the solder point between the third and fourth laser. This connects the first four laser's power connections together.

![proximity_edited_P1330416.png](https://cdn-learn.adafruit.com/assets/assets/000/111/387/medium640/proximity_edited_P1330416.png?1652110245)

![proximity_edited_P1330417.png](https://cdn-learn.adafruit.com/assets/assets/000/111/388/medium640/proximity_edited_P1330417.png?1652110275)

Slip a piece of heat shrink over the seventh laser's red power wire. Solder the seventh and eighth laser's red power wires together. Solder one of the ends of the second 190.5 mm length of wire to the solder point.

![proximity_edited_P1330418.png](https://cdn-learn.adafruit.com/assets/assets/000/111/389/medium640/proximity_edited_P1330418.png?1652110431)

Slip a piece of heat shrink over the fifth laser's red power wire. Solder the fifth and sixth laser's red power wires together. Solder the other end of the 190.5 mm length of wire to the solder point. This connects the last four laser's power connections together.

![proximity_edited_P1330421.png](https://cdn-learn.adafruit.com/assets/assets/000/111/390/medium640/proximity_edited_P1330421.png?1652110524)

Cut, splice and tin a piece of wire that is approximately 242 mm in length.&nbsp;

Solder one of the ends of the wire to the solder point between the third and fourth laser. Then, solder the other end to the solder point between the fifth and sixth laser. This connects all eight of the laser's power connections together.

![proximity_edited_P1330425.png](https://cdn-learn.adafruit.com/assets/assets/000/111/391/medium640/proximity_edited_P1330425.png?1652110644)

![proximity_edited_P1330426.png](https://cdn-learn.adafruit.com/assets/assets/000/111/392/medium640/proximity_edited_P1330426.png?1652110696)

![proximity_edited_P1330430.png](https://cdn-learn.adafruit.com/assets/assets/000/111/393/medium640/proximity_edited_P1330430.png?1652110728)

Cut, splice and tin a piece of wire that is approximately 58 mm in length. Solder one of the ends of the wire to the solder point between the seventh and eighth laser. This wire will eventually connect to the on/off switch for the lasers.

![proximity_edited_P1330432.png](https://cdn-learn.adafruit.com/assets/assets/000/111/394/medium640/proximity_edited_P1330432.png?1652110882)

![proximity_edited_P1330434.png](https://cdn-learn.adafruit.com/assets/assets/000/111/395/medium640/proximity_edited_P1330434.png?1652110919)

## Ground Connections
Slip a piece of heat shrink over the first, third, fifth and seventh laser's black ground wires. Solder the following laser's black ground wires together:

- First and second
- Third and fourth
- Fifth and sixth
- Seventh and eighth

![proximity_edited_P1330435.png](https://cdn-learn.adafruit.com/assets/assets/000/111/396/medium640/proximity_edited_P1330435.png?1652113549)

![proximity_edited_P1330437.png](https://cdn-learn.adafruit.com/assets/assets/000/111/397/medium640/proximity_edited_P1330437.png?1652113586)

![proximity_edited_P1330438.png](https://cdn-learn.adafruit.com/assets/assets/000/111/398/medium640/proximity_edited_P1330438.png?1652113618)

![proximity_edited_P1330439.png](https://cdn-learn.adafruit.com/assets/assets/000/111/399/medium640/proximity_edited_P1330439.png?1652113685)

Cut, splice and tin two pieces of wire that are approximately 190.5 mm in length.

![proximity_edited_P1330441.png](https://cdn-learn.adafruit.com/assets/assets/000/111/400/medium640/proximity_edited_P1330441.png?1652113841)

Solder one of the ends of the 190.5 mm lengths of wire to the ground solder point between the seventh and eighth laser. Then, solder the other end to the ground solder point between the fifth and sixth laser. This connects the last four laser's ground connections together.

![proximity_edited_P1330445.png](https://cdn-learn.adafruit.com/assets/assets/000/111/401/medium640/proximity_edited_P1330445.png?1652113973)

![proximity_edited_P1330447.png](https://cdn-learn.adafruit.com/assets/assets/000/111/402/medium640/proximity_edited_P1330447.png?1652114003)

Solder one of the ends of the second 190.5 mm length of wire to the ground solder point between the third and fourth laser. Then, solder the other end to the ground solder point between the first and second laser. This connects the first four laser's ground connections together.

![proximity_edited_P1330449.png](https://cdn-learn.adafruit.com/assets/assets/000/111/403/medium640/proximity_edited_P1330449.png?1652114134)

![proximity_edited_P1330451.png](https://cdn-learn.adafruit.com/assets/assets/000/111/404/medium640/proximity_edited_P1330451.png?1652114169)

Cut, splice and tin a piece of wire that is approximately 242 mm in length.&nbsp;

Solder one of the ends of the wire to the ground solder point between the third and fourth laser. Then, solder the other end to the ground solder point between the fifth and sixth laser. This connects all eight of the laser's ground connections together.

![proximity_edited_P1330443.png](https://cdn-learn.adafruit.com/assets/assets/000/111/405/medium640/proximity_edited_P1330443.png?1652114222)

![proximity_edited_P1330453.png](https://cdn-learn.adafruit.com/assets/assets/000/111/406/medium640/proximity_edited_P1330453.png?1652114260)

![proximity_edited_P1330454.png](https://cdn-learn.adafruit.com/assets/assets/000/111/407/medium640/proximity_edited_P1330454.png?1652114470)

Cut, splice and tin a piece of wire that is approximately 152 mm in length. Solder one of the ends of the wire to the ground solder point between the seventh and eighth laser. This wire will eventually connect to the FeatherWing Doubler.

![proximity_edited_P1330457.png](https://cdn-learn.adafruit.com/assets/assets/000/111/408/medium640/proximity_edited_P1330457.png?1652114429)

![proximity_edited_P1330459.png](https://cdn-learn.adafruit.com/assets/assets/000/111/409/medium640/proximity_edited_P1330459.png?1652114457)

## Heat Shrink
Apply the heat shrink to the four power and four ground solder connections.

![proximity_edited_P1330461.png](https://cdn-learn.adafruit.com/assets/assets/000/111/410/medium640/proximity_edited_P1330461.png?1652114592)

![proximity_edited_P1330462.png](https://cdn-learn.adafruit.com/assets/assets/000/111/411/medium640/proximity_edited_P1330462.png?1652114805)

![proximity_edited_P1330464.png](https://cdn-learn.adafruit.com/assets/assets/000/111/412/medium640/proximity_edited_P1330464.png?1652114739)

![proximity_edited_P1330467.png](https://cdn-learn.adafruit.com/assets/assets/000/111/413/medium640/proximity_edited_P1330467.png?1652114921)

# MIDI Laser Harp with Time of Flight Distance Sensors

## Laser Switch

This switch lets you have control over whether or not the lasers are turned on, which can be handy if you're doing testing.

Mount the switch in the acrylic sheet using the mounting hole.

![proximity_edited_P1330472.png](https://cdn-learn.adafruit.com/assets/assets/000/111/414/medium640/proximity_edited_P1330472.png?1652119863)

Solder the wire from the lasers' power connection to the middle connection on the switch.

![proximity_edited_P1330474.png](https://cdn-learn.adafruit.com/assets/assets/000/111/415/medium640/proximity_edited_P1330474.png?1652119926)

Cut, splice and tin a piece of wire that is approximately 89 mm in length.

![proximity_edited_P1330477.png](https://cdn-learn.adafruit.com/assets/assets/000/111/416/medium640/proximity_edited_P1330477.png?1652119995)

Solder the 89 mm long piece of wire to the top connection on the switch. The other end of the wire will eventually connect to the FeatherWing Doubler's 3.3V signal.

![proximity_edited_P1330480.png](https://cdn-learn.adafruit.com/assets/assets/000/111/417/medium640/proximity_edited_P1330480.png?1652120088)

# MIDI Laser Harp with Time of Flight Distance Sensors

## FeatherWing Doubler

## Headers
Solder pin headers to the Feather M4 Express and the Music Maker FeatherWing. Additionally, solder the MIDI jumper closed on the back of the Music Maker FeatherWing. This puts the Music Maker FeatherWing into MIDI mode as [described in the product guide](https://learn.adafruit.com/adafruit-music-maker-featherwing/midi-synth).

![proximity_edited_P1330148.png](https://cdn-learn.adafruit.com/assets/assets/000/111/418/medium640/proximity_edited_P1330148.png?1652120244)

Solder socket headers to the FeatherWing Doubler. You can use the Feather M4 Express and Music Maker FeatherWing as a soldering jig to keep the headers aligned.&nbsp;

![proximity_edited_P1330150.png](https://cdn-learn.adafruit.com/assets/assets/000/111/419/medium640/proximity_edited_P1330150.png?1652120379)

![proximity_edited_P1330151.png](https://cdn-learn.adafruit.com/assets/assets/000/111/420/medium640/proximity_edited_P1330151.png?1652120407)

![proximity_edited_P1330155.png](https://cdn-learn.adafruit.com/assets/assets/000/111/421/medium640/proximity_edited_P1330155.png?1652120438)

## Laser Power and Ground
Place the FeatherWing Doubler on the 3D printed acrylic support. It will eventually be mounted there.

Solder the lasers' ground and power from the switch to the FeatherWing Doubler.

![proximity_edited_P1330483.png](https://cdn-learn.adafruit.com/assets/assets/000/111/425/medium640/proximity_edited_P1330483.png?1652122000)

## TCA9548A Connections
Cut, splice and tin two pieces of wire that are approximately 210 mm in length.

![proximity_edited_P1330488.png](https://cdn-learn.adafruit.com/assets/assets/000/111/426/medium640/proximity_edited_P1330488.png?1652122123)

Solder one wire to 3.3V and one wire to ground on the FeatherWing Doubler.

![proximity_edited_P1330490.png](https://cdn-learn.adafruit.com/assets/assets/000/111/427/medium640/proximity_edited_P1330490.png?1652122314)

Cut, splice and tin two pieces of wire that are approximately 191 mm in length.

![proximity_edited_P1330493.png](https://cdn-learn.adafruit.com/assets/assets/000/111/428/medium640/proximity_edited_P1330493.png?1652122386)

Solder one wire to SDA on the FeatherWing Doubler and one wire to SCL on the FeatherWing Doubler.

![proximity_edited_P1330496.png](https://cdn-learn.adafruit.com/assets/assets/000/111/429/medium640/proximity_edited_P1330496.png?1652122433)

Solder these wires to the TCA9548A:

- **Doubler 3.3V** to **VIN**
- **Doubler GND** to **GND**
- **Doubler SCL** to **SCL**
- **Doubler SDA** to **SDA**

![proximity_edited_P1330499.png](https://cdn-learn.adafruit.com/assets/assets/000/111/430/medium640/proximity_edited_P1330499.png?1652122487)

## STEMMA Power and Ground
Cut, splice and tin two pieces of wire that are approximately 165 mm in length.

![proximity_edited_P1330503.png](https://cdn-learn.adafruit.com/assets/assets/000/111/431/medium640/proximity_edited_P1330503.png?1652122568)

Slip a piece of heat shrink onto the STEMMA ground and power wires. Solder one of the 165 mm long pieces of wire to STEMMA ground. Solder the second 165 mm piece of wire to STEMMA power.

![proximity_edited_P1330507.png](https://cdn-learn.adafruit.com/assets/assets/000/111/432/medium640/proximity_edited_P1330507.png?1652122676)

Solder the STEMMA power wires to the FeatherWing Doubler.

- **STEMMA ground** to **GND**
- **STEMMA power** to **3.3V**

![proximity_edited_P1330509.png](https://cdn-learn.adafruit.com/assets/assets/000/111/433/medium640/proximity_edited_P1330509.png?1652122763)

Apply the heat shrink to the STEMMA power wires.

![proximity_edited_P1330512.png](https://cdn-learn.adafruit.com/assets/assets/000/111/434/medium640/proximity_edited_P1330512.png?1652122825)

## Mount the FeatherWing Doubler and TCA9548A
Mount the FeatherWing Doubler to the 3D printed stand using M2.5 screws and stand-offs.

![proximity_edited_P1330520.png](https://cdn-learn.adafruit.com/assets/assets/000/111/435/medium640/proximity_edited_P1330520.png?1652123123)

![proximity_edited_P1330517.png](https://cdn-learn.adafruit.com/assets/assets/000/111/436/medium640/proximity_edited_P1330517.png?1652123155)

Mount the TCA9548A to the center mounting holes on the acrylic using M2.5 screws and stand-offs.

![proximity_edited_P1330532.png](https://cdn-learn.adafruit.com/assets/assets/000/111/437/medium640/proximity_edited_P1330532.png?1652123441)

And that completes the assembly for the laser harp!

![](https://cdn-learn.adafruit.com/assets/assets/000/111/438/medium800/proximity_edited_P1330529.png?1652123690)

# MIDI Laser Harp with Time of Flight Distance Sensors

## Usage

![](https://cdn-learn.adafruit.com/assets/assets/000/111/371/medium800/proximity_edited_IMG_5035.png?1652105895)

Power up the laser harp by plugging a USB cable into the Feather M4 Express. Plug a 1/8" stereo audio cable into the Music Maker FeatherWing's headphone jack. Plug the other end of the audio cable into an amplifier or speaker.

![proximity_edited_P1330582.png](https://cdn-learn.adafruit.com/assets/assets/000/111/464/medium640/proximity_edited_P1330582.png?1652206602)

Flip on the lasers and pluck away on the laser harp! You should hear sounds coming out of your connected speaker every time you pass your hand over a time of flight sensor.

![proximity_playing_laser.gif](https://cdn-learn.adafruit.com/assets/assets/000/111/469/medium640thumb/proximity_playing_laser.jpg?1652211649)

You can adjust the CircuitPython code to change the notes, MIDI instrument and maximum height for the time of flight sensors.

![proximity_cpParameters.png](https://cdn-learn.adafruit.com/assets/assets/000/111/466/medium640/proximity_cpParameters.png?1652206814)

Since the Music Maker FeatherWing uses 1/8" audio out, the laser harp can be added to tabletop synth setups easily.

![proximity_edited_IMG_5067.png](https://cdn-learn.adafruit.com/assets/assets/000/111/467/medium640/proximity_edited_IMG_5067.png?1652207480)

Warning: 

Info: 


## 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 Feather M4 Express - Featuring ATSAMD51

[Adafruit Feather M4 Express - Featuring ATSAMD51](https://www.adafruit.com/product/3857)
It's what you've been waiting for, the Feather M4 Express featuring ATSAMD51. This Feather is fast like a swift, smart like an owl, strong like a ox-bird (it's half ox, half bird, OK?) This feather is powered by our new favorite chip, the **ATSAMD51J19** -&nbsp; with...

In Stock
[Buy Now](https://www.adafruit.com/product/3857)
[Related Guides to the Product](https://learn.adafruit.com/products/3857/guides)
### Adafruit Music Maker FeatherWing - MP3 OGG WAV MIDI Synth Player

[Adafruit Music Maker FeatherWing - MP3 OGG WAV MIDI Synth Player](https://www.adafruit.com/product/3357)
Bend all audio files to your will with the **Adafruit Music Maker FeatherWing**! It's a fun-size version of our [Music Maker&nbsp;shield for Arduino](https://www.adafruit.com/product/1790)!&nbsp;This powerful wing features the VS1053, an encoding/decoding (codec)...

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

[TCA9548A I2C Multiplexer](https://www.adafruit.com/product/2717)
You just found the perfect I2C sensor, and you want to wire up two or three or more of them to your Arduino when you realize "Uh oh, this chip has a fixed I2C address, and from what I know about I2C, you cannot have two devices with the same address on the same SDA/SCL pins!" Are you...

Out of Stock
[Buy Now](https://www.adafruit.com/product/2717)
[Related Guides to the Product](https://learn.adafruit.com/products/2717/guides)
### Adafruit VL53L4CD Time of Flight Distance Sensor - ~1 to 1300mm

[Adafruit VL53L4CD Time of Flight Distance Sensor - ~1 to 1300mm](https://www.adafruit.com/product/5396)
The **Adafruit VL53L4CD Time of Flight Sensor** is another great _Time of Flight_&nbsp;distance sensor from ST in the VL5 series of chips, this one is great for shorter distances. The sensor contains a very tiny invisible laser source&nbsp;and a matching sensor. The...

Out of Stock
[Buy Now](https://www.adafruit.com/product/5396)
[Related Guides to the Product](https://learn.adafruit.com/products/5396/guides)
### Laser Diode - 5mW 650nm Red

[Laser Diode - 5mW 650nm Red](https://www.adafruit.com/product/1054)
You have some frickin' sharks at your lair, and you're thinking "it would be really great if I could attach some lasers to them" and then you see these little laser diode modules: what great timing! These encapsulated laser diodes are Class IIIa 5mW, with a 650nm red...

Out of Stock
[Buy Now](https://www.adafruit.com/product/1054)
[Related Guides to the Product](https://learn.adafruit.com/products/1054/guides)
### Fixed Laser Mounting Stand

[Fixed Laser Mounting Stand](https://www.adafruit.com/product/1094)
Use this nice fixed laser mount to attach any of our laser diode modules to your desk, robot, shark, etc. A set-screw holds the laser in place. Has a flat mounting plate with four holes for easy attachment and adjustment. Fits all of our modules.  
  
**Laser not included**

In Stock
[Buy Now](https://www.adafruit.com/product/1094)
[Related Guides to the Product](https://learn.adafruit.com/products/1094/guides)
### FeatherWing Doubler - Prototyping Add-on For All Feather Boards

[FeatherWing Doubler - Prototyping Add-on For All Feather Boards](https://www.adafruit.com/product/2890)
This is the **FeatherWing Doubler** - 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 two! The magic of the Doubler comes when stacking a Feather and another...

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

## Related Guides

- [Adafruit Feather M4 Express](https://learn.adafruit.com/adafruit-feather-m4-express-atsamd51.md)
- [Introducing Adafruit Feather RP2040](https://learn.adafruit.com/adafruit-feather-rp2040-pico.md)
- [Adafruit VL53L4CD Time of Flight Distance Sensor](https://learn.adafruit.com/adafruit-vl53l4cd-time-of-flight-distance-sensor.md)
- [Numpad 4000 Mechanical Keyswitch Data Entry Device](https://learn.adafruit.com/numpad-4000-mechanical-keyswitch-data-entry-device.md)
- [USB Host to BLE Keyboard Adapter](https://learn.adafruit.com/esp32-s3-usb-to-ble-keyboard-adapter.md)
- [DIY Pico Mechanical Keyboard with Fritzing and CircuitPython](https://learn.adafruit.com/diy-pico-mechanical-keyboard-with-fritzing-circuitpython.md)
- [Program CircuitPython USB Devices with iPhone & iPad](https://learn.adafruit.com/use-circuitpython-devices-with-iphone-ipad.md)
- [New Years Eve Ball Drop](https://learn.adafruit.com/new-years-eve-ball-drop.md)
- [CircuitPython 101: Working with Lists, Iterators and Generators](https://learn.adafruit.com/circuitpython-101-list-and-things-iterators-generators.md)
- [Animatronic Cosplay Wings](https://learn.adafruit.com/animatronic-cosplay-wings.md)
- [PyPortal Pet Planter with Adafruit IO](https://learn.adafruit.com/pyportal-pet-planter-with-adafruit-io.md)
- [ESP32-S3 BLE RS-232 Controller](https://learn.adafruit.com/esp32-s3-ble-rs232-controller.md)
- [Use circup to easily keep your CircuitPython libraries up to date](https://learn.adafruit.com/keep-your-circuitpython-libraries-on-devices-up-to-date-with-circup.md)
- [Adabot Toy Robot Friend](https://learn.adafruit.com/adabot-rp2040.md)
- [Bricktunes: LEGO Synthesizer Glove](https://learn.adafruit.com/bricktunes-lego-glove-synthesizer.md)
- [Mini VOTE Keyboard](https://learn.adafruit.com/vote-keyboard.md)
- [MAC Address Finder](https://learn.adafruit.com/mac-address-finder.md)
- [Feather TFT STEMMA Case](https://learn.adafruit.com/feather-tft-stemma-case.md)
