# Overwatch Prop Gun: Lucio's Blaster Pt. 1

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/037/538/medium800/gaming_LucioThumbnail.jpg?1479925881)

https://www.youtube.com/watch?v=bY3GQK-3-Sg

Learn how to build your own Overwatch prop blaster&nbsp;with this multi-part guide! This 3D printed prop gun will include lights, sound effects, and background music, all played through a 20 watt amp and four speakers.

In part 1 we'll design&nbsp;the electronic functions and overall circuit design, and then build the individual functions as working prototypes.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/037/526/medium800/gaming_LB_p1_bldAll_exp.jpg?1479919716)

In later parts in this series we'll combine the parts into a single system, planning how it will all fit by using a cardboard prototype, and ultimately create a 3D printed prop gun.

![](https://cdn-learn.adafruit.com/assets/assets/000/037/527/medium800/gaming_IMG_8133_exp.jpg?1479919840)

# Overwatch Prop Gun: Lucio's Blaster Pt. 1

## Blaster Circuit Prototyping

![](https://cdn-learn.adafruit.com/assets/assets/000/037/528/medium800/gaming_LB_p1_bins5_exp.jpg?1479919905)

# Planning the Circuit

I began by thinking about what I wanted the Blaster to be able to do. In&nbsp;researching how the gun works in the video game (a.k.a., playing video games for work) I decided on the&nbsp;must-have, primary functions, as well as the secondary,&nbsp;real-world considerations of how to activate these fuctions, provide power, adjust volume, and so on.

## Primary Functions

The three primary functions of the Lucio Blaster are:

- Light up colorful lights
- Play background music
- Trigger sound effects

With those in mind I decided to approach them with an Arduino board of some kind to drive NeoPixels for the lights, a Music Maker MP3 shield on the Arduino board to play background music (BGM), and an&nbsp;Audio FX Sound Board to trigger the sound effects. (I wanted the BGM to continue playing during sound effects, so I couldn't easily use the Music Maker shield for both music and sound effects.)

## Real-World Details

Since this prop gun will exist in the real world, here are the details that I needed to consider for both hardware and software:

- Tie together light and BGM modes
- Make lights react to shooting sounds
- Pull&nbsp;both left- and right-mouse button shots
- Activate&nbsp;"special" attack sound
- Engage reload sound effect
- Battery power&nbsp;and charging
- System ON/OFF
- System volume

This is a schematic drawing of the functions I created just to sketch out the parts I planned to use.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/037/518/medium800/gaming_lucioSchematic04.jpg?1479847273)

I sometimes like to add a very rough idea of how parts will connect. I tape a sheet of overhead transparency film to the page and use a wet erase marker to create these lines.

While no substitute for a real circuit diagram (which I'll create in Fritzing as I go) this is helpful for me to think about how the final system will work, which buttons and switches I'll need, and so on.

![gaming_lucioSchematicLines.jpg](https://cdn-learn.adafruit.com/assets/assets/000/037/519/medium640/gaming_lucioSchematicLines.jpg?1479847302)

![gaming_lucioSchematic_transp.jpg](https://cdn-learn.adafruit.com/assets/assets/000/037/520/medium640/gaming_lucioSchematic_transp.jpg?1479847382)

# Function Prototyping

I built&nbsp;the circuit prototype in stages so that I could get a feel for each discreet subsystem before tying them all together. This is the fun, fairly simple&nbsp;part&nbsp;--&nbsp;as you'll see, I only ran into difficulties&nbsp;once I started combining them. More about that later. Here are the indivudual functions as tested:

  1. Drive NeoPixels from Arduino board (in this case, Adafruit METRO 328, which functions the same as the Arduino UNO)
  2. Switch color modes of NeoPixels using toggle switch
  3. Play background music with Music Maker MP3 shield
  4. Switch background music with toggle switch
  5. Trigger blaster sound effects on&nbsp;AudioFX shield with buttons and tilt switch

I like to test these early prototypes on breadboards with jumper wires so it's easy to change things around, rather than start soldering things too soon.

![](https://cdn-learn.adafruit.com/assets/assets/000/037/535/medium800/gaming_LB_p1_bins4_exp.jpg?1479920823)

Info: 

## NeoPixel Tests
![](https://cdn-learn.adafruit.com/assets/assets/000/037/529/medium800/gaming_LB_p1_prts1_exp.jpg?1479920484)

![](https://cdn-learn.adafruit.com/assets/assets/000/037/437/medium800/gaming_LB_protoA_01.png?1479792049)

Here's my initial&nbsp;NeoPixel test. No need to immediatly jump into driving dozens of LEDs, just start out with a single strip or ring. This is simply a Metro board connected to a NeoPixel ring via pin 2 and GND, a 5V wall power supply running&nbsp;to Metro VIN and the NeoPixel ring&nbsp;VIN. I'm using a 1000uF electrolytic capacitor across the VIN and GND rails to smooth out any power spikes from frying the NeoPixels.

Once connected, I uploaded the "simple" sample sketch from the NeoPixel library examples (first adjusting the code to use&nbsp;pin 2, number of pixels to 12, and type to GBRW as seen below) to make sure it was all working.

```auto
/********************************************************
 Blaster Circuit Prototype A01
 Use Arduino UNO or Adafruit Metro
  -Lights a NeoPixel Ring on pin 2
 
 written by John Park for Adafruit Industries
 NeoPixel code based on library "simple" sketch by Shae Erisson
 released under the GPLv3 license to match the rest of the AdaFruit NeoPixel library
********************************************************/


#include <Adafruit_NeoPixel.h>
#define NEOPIN        2
#define NUMPIXELS 12
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, NEOPIN, NEO_GRBW + NEO_KHZ800);
int delayval = 75;

void setup() {
  pixels.begin();
  pixels.setBrightness(24);
  pixels.show();
}

void loop() {
  for(int i=0;i<NUMPIXELS;i++){
    pixels.setPixelColor(i, pixels.Color(0,150,40,0)); 
    pixels.show(); 
    delay(delayval); 
  }
}
```

## NeoPixel with Toggle Switch Test
![](https://cdn-learn.adafruit.com/assets/assets/000/037/438/medium800/gaming_LB_protoA_02.png?1479792108)

My second test was to add&nbsp;a toggle switch to trigger two different color modes on the NeoPixels. Add a switch to the circuit that connects pin 5 to ground when closed, then upload the following code.

![](https://cdn-learn.adafruit.com/assets/assets/000/037/530/medium800/gaming_LB_p1_bld0_exp.jpg?1479920533)

```auto
/********************************************************
 Blaster Circuit Prototype A02
 Use Arduino UNO or Adafruit Metro
  -Lights a NeoPixel Ring on pin 2
  -Color controlled by switch on pin 5
 
 written by John Park for Adafruit Industries
 NeoPixel code based on library "simple" sketch by Shae Erisson
 released under the GPLv3 license to match the rest of the AdaFruit NeoPixel library
********************************************************/


#include <Adafruit_NeoPixel.h>
#define NEOPIN     2
#define NUMPIXELS 12
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, NEOPIN, NEO_GRBW + NEO_KHZ800);
int delayval = 15;

#define MODESWITCHPIN 5

void setup() {
  pixels.begin();
  pixels.setBrightness(24);
  pixels.show();

  pinMode(MODESWITCHPIN, INPUT_PULLUP);
}

void loop() {
  //read switch value
  int modeSwitchVal = digitalRead(MODESWITCHPIN);
  if(modeSwitchVal == HIGH){ //green
    for(int i=0;i<NUMPIXELS;i++){
     pixels.setPixelColor(i, pixels.Color(0,150,0,5)); 
     pixels.show(); 
     delay(delayval); 
    }
  }
   else{ //yellow
    for(int i=NUMPIXELS-1;i>=0;i--){
     pixels.setPixelColor(i, pixels.Color(150,120,0,0)); 
     pixels.show(); 
     delay(delayval); 
    }
  }
}
```

Info: 

## Music Maker MP3 Tests
![](https://cdn-learn.adafruit.com/assets/assets/000/037/870/medium800/gaming_LB_p1_prts2.jpg?1481127705)

![](https://cdn-learn.adafruit.com/assets/assets/000/037/508/medium800/gaming_LB_protoB_01.png?1479841100)

The next thing to get up and running was the MP3 playback for background music. I assembled the Music Maker shield, affixed it to a Metro board, and wired it to power, a 20W amplifier and a speaker.

I put a couple of .mp3 song files on the SD card in the shield and uploaded the sample sketch to the Metro. It plays the two songs!&nbsp;

```auto
/********************************************************
 Blaster Circuit Prototype B01
 Use Arduino UNO or Adafruit Metro with Music Maker MP3 Shield
  -Simple .mp3 song file playback test
 
  Written by Limor Fried/Ladyada for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
********************************************************/

// include SPI, MP3 and SD libraries
#include <SPI.h>
#include <Adafruit_VS1053.h>
#include <SD.h>

// These are the pins used for the breakout example
#define BREAKOUT_RESET  9      // VS1053 reset pin (output)
#define BREAKOUT_CS     10     // VS1053 chip select pin (output)
#define BREAKOUT_DCS    8      // VS1053 Data/command select pin (output)
// These are the pins used for the music maker shield
#define SHIELD_RESET  -1      // VS1053 reset pin (unused!)
#define SHIELD_CS     7      // VS1053 chip select pin (output)
#define SHIELD_DCS    6      // VS1053 Data/command select pin (output)

// These are common pins between breakout and shield
#define CARDCS 4     // Card chip select pin
// DREQ should be an Int pin, see http://arduino.cc/en/Reference/attachInterrupt
#define DREQ 3       // VS1053 Data request, ideally an Interrupt pin

Adafruit_VS1053_FilePlayer musicPlayer = 
  // create shield-example object!
  Adafruit_VS1053_FilePlayer(SHIELD_RESET, SHIELD_CS, SHIELD_DCS, DREQ, CARDCS);
  
void setup() {
  Serial.begin(9600);
  Serial.println("Adafruit VS1053 Simple Test");

  if (! musicPlayer.begin()) { // initialise the music player
     Serial.println(F("Couldn't find VS1053, do you have the right pins defined?"));
     while (1);
  }
  Serial.println(F("VS1053 found"));
  
  SD.begin(CARDCS);    // initialise the SD card
  
  // Set volume for left, right channels. lower numbers == louder volume!
  musicPlayer.setVolume(20,20);

  // Timer interrupts are not suggested, better to use DREQ interrupt!
  //musicPlayer.useInterrupt(VS1053_FILEPLAYER_TIMER0_INT); // timer int

  // If DREQ is on an interrupt pin (on uno, #2 or #3) we can do background
  // audio playing
  musicPlayer.useInterrupt(VS1053_FILEPLAYER_PIN_INT);  // DREQ int
  
  // Play one file, don't return until complete
  Serial.println(F("Playing track s.mp3"));
  musicPlayer.playFullFile("s.mp3"); //substitute the name of an .mp3 file you have saved to SD card
  // Play another file in the background, REQUIRES interrupts!
  Serial.println(F("Playing track h.mp3"));
  musicPlayer.startPlayingFile("h.mp3");//substitute the name of an .mp3 file you have saved to SD card
}

void loop() {
  // File is playing in the background (only after first song is finished and second has begun)
  if (musicPlayer.stopped()) {
    Serial.println("Done playing music");
    while (1);
  }
  if (Serial.available()) {
    char c = Serial.read();
    
    // if we get an 's' on the serial console, stop!
    if (c == 's') {
      musicPlayer.stopPlaying();
    }
    
    // if we get an 'p' on the serial console, pause/unpause!
    if (c == 'p') {
      if (! musicPlayer.paused()) {
        Serial.println("Paused");
        musicPlayer.pausePlaying(true);
      } else { 
        Serial.println("Resumed");
        musicPlayer.pausePlaying(false);
      }
    }
  }

  delay(100);
}
```

## Music Maker with Toggle Switch Test
![](https://cdn-learn.adafruit.com/assets/assets/000/037/522/medium800/gaming_LB_protoB_02.png?1479850260)

Building&nbsp;on to the previous test, I added a switch on pin 5 using an internal pullup resistor to try switching between songs. This requires the use of interrupt pins, since the system could become too busy playing music files to pay attention to your switches if you aren't careful. See the code below, which is based upon the VS1053 library's player\_interrupt example sketch.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/037/532/medium800/gaming_LB_p1_bld1_exp.jpg?1479920729)

```auto
/********************************************************
 Blaster Circuit Prototype B02
 Use Arduino UNO or Adafruit Metro with Music Maker MP3 Shield
  -interrupt based .mp3 song file playback test
  -Song choice based on switch on pin 5
 
  based on playerInterrupt sketch
  Written by Limor Fried/Ladyada for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
********************************************************/

// include SPI, MP3 and SD libraries
#include <SPI.h>
#include <Adafruit_VS1053.h>
#include <SD.h>

#define MODESWITCHPIN 5
int modeSwitchPushCounter = 0;   // counter for the number of button presses
bool modeSwitchState = 0;         // current state of the button
int lastModeButtonState = 0;     // previous state of the button

// These are the pins used for the breakout example
#define BREAKOUT_RESET  9      // VS1053 reset pin (output)
#define BREAKOUT_CS     10     // VS1053 chip select pin (output)
#define BREAKOUT_DCS    8      // VS1053 Data/command select pin (output)
// These are the pins used for the music maker shield
#define SHIELD_RESET  -1      // VS1053 reset pin (unused!)
#define SHIELD_CS     7      // VS1053 chip select pin (output)
#define SHIELD_DCS    6      // VS1053 Data/command select pin (output)

// These are common pins between breakout and shield
#define CARDCS 4     // Card chip select pin
// DREQ should be an Int pin, see http://arduino.cc/en/Reference/attachInterrupt
#define DREQ 3       // VS1053 Data request, ideally an Interrupt pin

Adafruit_VS1053_FilePlayer musicPlayer = 
  // create shield-example object!
  Adafruit_VS1053_FilePlayer(SHIELD_RESET, SHIELD_CS, SHIELD_DCS, DREQ, CARDCS);

const char* SONGS[] = {"h.mp3", "s.mp3"};
int songPick = 0;
const int VOL = 80; //volume higher numbers are quieter
  
void setup() {

  pinMode(MODESWITCHPIN, INPUT_PULLUP);
  
  Serial.begin(9600);
  Serial.println("Adafruit VS1053 Simple Test");

  if (! musicPlayer.begin()) { // initialise the music player
     Serial.println(F("Couldn't find VS1053, do you have the right pins defined?"));
     while (1);
  }
  Serial.println(F("VS1053 found"));
  
  musicPlayer.sineTest(0x44, 200);// Make a tone to indicate VS1053 is working

  if (!SD.begin(CARDCS)) {
    Serial.println(F("SD failed, or not present"));
    while (1);  // don't do anything more
  }
  Serial.println(F("SD OK!"));
  
  // Set volume for left, right channels. lower numbers == louder volume!
  musicPlayer.setVolume(20,20);

  // This option uses a pin interrupt. No timers required! But DREQ
  // must be on an interrupt pin. For Uno/Duemilanove/Diecimilla
  // that's Digital #2 or #3
  // See http://arduino.cc/en/Reference/attachInterrupt for other pins
  // *** This method is preferred
  if (! musicPlayer.useInterrupt(VS1053_FILEPLAYER_PIN_INT))
    Serial.println(F("DREQ pin is not an interrupt pin"));
}

void loop() {
  
  // Start playing a file, then we can do stuff while waiting for it to finish
  if (! musicPlayer.startPlayingFile(SONGS[songPick])) {
    Serial.println(F("Could not open file"));
    while (1);
  }

  while (musicPlayer.playingMusic) {
    // file is now playing in the 'background' so now's a good time
    // to do something else like handling LEDs or buttons :)
    modeSwitchState = digitalRead(MODESWITCHPIN); //read switch input pin
    if (modeSwitchState != lastModeButtonState) { // compare the modeSwitchState 
       //to its previous state
      if (modeSwitchState == HIGH) {
         // if the current state is HIGH then the button
         // went from left to right :
         modeSwitchPushCounter++;
         songPick=0;
         musicPlayer.stopPlaying(); //does this so it'll restart the player with
         // the new song choice
      }
      else {
        songPick=1;
        musicPlayer.stopPlaying(); //restart the player with the new song choice
      }
     delay(50);
    }
    // save the current state as the last state,
    //for next time through the loop
    lastModeButtonState = modeSwitchState;
  }
}

```

## AudioFX Trigger Test
![](https://cdn-learn.adafruit.com/assets/assets/000/037/533/medium800/gaming_LB_p1_prts3_exp.jpg?1479920764)

![](https://cdn-learn.adafruit.com/assets/assets/000/037/523/medium800/gaming_LB_protoC_01.png?1479854305)

The third of the main functions to test was blaster sound effects. I wanted to initiate two of the shooting sounds by pulling the primary and secondary triggers (just like LMB and RMB in the game), a reload sounds by tilting the gun upwards, and the special, wide radius blast attack sound by pointing the gun at the ground. Rather than get tricky using an accelerometer or even more advanced IMU, I went for tried and true tilt ball switches.

I uploaded the sounds (named T01.wav for trigger pin 1 and so on, no code required as this board is set up for very simple operation) to the AudioFX Sound Board and then wired the buttons between&nbsp;ground and their respective pins on the board. I connected the output of the board to the amplifier and tested out the sweet blaster sounds.

![](https://cdn-learn.adafruit.com/assets/assets/000/037/534/medium800/gaming_LB_p1_bld2_exp.jpg?1479920791)

## Next Steps

In the next part of this guide we'll combine these subsystems to create the full circuit for the Lucio Blaster effects, lights, and music, as well as take a closer look at powering the system. It's gonna get a bit messier before it gets neater!

![](https://cdn-learn.adafruit.com/assets/assets/000/037/536/medium800/gaming_IMG_8145_exp.jpg?1479920986)

I'll also be working on the design of the 3D printed blaster parts in parallel. Here's a miniature, low resolution, single-piece print I made to start planning the parts layout and design.

![](https://cdn-learn.adafruit.com/assets/assets/000/037/537/medium800/gaming_IMG_8143_exp.jpg?1479921105)

Stay tuned for more!


## Featured Products

### Adafruit "Music Maker" MP3 Shield for Arduino (MP3/Ogg/WAV...)

[Adafruit "Music Maker" MP3 Shield for Arduino (MP3/Ogg/WAV...)](https://www.adafruit.com/product/1790)
Bend all audio files to your will with the Adafruit Music Maker shield for Arduino! This powerful shield features the VS1053, an encoding/decoding (codec) chip that can decode a wide variety of audio formats such as MP3, AAC, Ogg Vorbis, WMA, MIDI, FLAC, WAV (PCM and ADPCM). It can also be...

In Stock
[Buy Now](https://www.adafruit.com/product/1790)
[Related Guides to the Product](https://learn.adafruit.com/products/1790/guides)
### Adafruit METRO 328 - Arduino Compatible - with Headers

[Adafruit METRO 328 - Arduino Compatible - with Headers](https://www.adafruit.com/product/2488)
This is the&nbsp; **Adafruit METRO Arduino-Compatible - with&nbsp;headers.&nbsp;** It's a fully assembled and tested microcontroller and physical computing board with through-hole headers attached.&nbsp; If you don't want a&nbsp;Metro with the headers attached for...

Out of Stock
[Buy Now](https://www.adafruit.com/product/2488)
[Related Guides to the Product](https://learn.adafruit.com/products/2488/guides)
### Adafruit Audio FX Sound Board - WAV/OGG Trigger with 2MB Flash

[Adafruit Audio FX Sound Board - WAV/OGG Trigger with 2MB Flash](https://www.adafruit.com/product/2133)
Would you like to add audio/sound effects to your next project, without an Arduino+Shield? Or maybe you don't even know how to use microcontrollers, you just want to make a sound play whenever you press a button. What about something that has to be small...

In Stock
[Buy Now](https://www.adafruit.com/product/2133)
[Related Guides to the Product](https://learn.adafruit.com/products/2133/guides)
### Stereo 20W Class D Audio Amplifier - MAX9744

[Stereo 20W Class D Audio Amplifier - MAX9744](https://www.adafruit.com/product/1752)
Pump up the volume with this 20W stereo amplifier! This slim little board has a class D amplifier onboard that can drive 2 channels of 4-8 ohm impedance speakers at 20W each. Power it with 5-12VDC using the onboard DC power jack and plug stereo line level into the 3.5mm stereo headphone jack...

In Stock
[Buy Now](https://www.adafruit.com/product/1752)
[Related Guides to the Product](https://learn.adafruit.com/products/1752/guides)
### 20W 4 Ohm Full Range Speaker

[20W 4 Ohm Full Range Speaker](https://www.adafruit.com/product/1732)
Listen up! This high power 4" diameter speaker will amp up any audio project where you need loud sound! It is 4 ohm impedance, rated for 20W continuous power. (This thing is really loud) It also has four handy mounting tabs 3 inches apart, and a grill that fits on top. The grill is to...

In Stock
[Buy Now](https://www.adafruit.com/product/1732)
[Related Guides to the Product](https://learn.adafruit.com/products/1732/guides)
### Thin Plastic Speaker w/Wires - 8 ohm 0.25W

[Thin Plastic Speaker w/Wires - 8 ohm 0.25W](https://www.adafruit.com/product/1891)
Listen up! This 1.5" diameter speaker cone is the perfect addition to any audio project where you need an 8Ω impedance and are using 0.25W of power. The speakers are rated at 0.25W, with a maximum input of 0.5W (printed wattage on back of speaker may have either value).

We...

In Stock
[Buy Now](https://www.adafruit.com/product/1891)
[Related Guides to the Product](https://learn.adafruit.com/products/1891/guides)
### PowerBoost 1000 Charger - Rechargeable 5V Lipo USB Boost @ 1A

[PowerBoost 1000 Charger - Rechargeable 5V Lipo USB Boost @ 1A](https://www.adafruit.com/product/2465)
PowerBoost 1000C is the perfect power supply for your portable project!&nbsp; **With a built-in load-sharing battery charger circuit, you'll be able to keep your power-hungry project running even while recharging the battery!** &nbsp;This little DC/DC boost converter module can...

In Stock
[Buy Now](https://www.adafruit.com/product/2465)
[Related Guides to the Product](https://learn.adafruit.com/products/2465/guides)
### Lithium Ion Cylindrical Battery - 3.7v 2200mAh

[Lithium Ion Cylindrical Battery - 3.7v 2200mAh](https://www.adafruit.com/product/1781)
Need a big battery for your project? This lithium-ion battery contains a 2200mAh and a protection circuit that provides over-voltage, under-voltage, and over-current protection. Yet, it is slim and easy to fit into many project cases.  
  
This cell can provide 2 **C** of...

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

## Related Guides

- [Adafruit Powerboost 1000C](https://learn.adafruit.com/adafruit-powerboost-1000c-load-share-usb-charge-boost.md)
- [Overwatch Prop Gun: Lucio's Blaster Pt. 2](https://learn.adafruit.com/overwatch-lucio-gun-pt-2.md)
- [IR Sensor](https://learn.adafruit.com/ir-sensor.md)
- [Fake TV Light for Engineers](https://learn.adafruit.com/fake-tv-light-for-engineers.md)
- [5" Display Kippah Portable Raspberry Pi](https://learn.adafruit.com/portable-kippah-pi.md)
- [Lucio Blaster 2020 - CircuitPython for Advanced Prop Making](https://learn.adafruit.com/lucio-blaster-2020-circuitpython-advanced-prop-making.md)
- [Arduino GPS Clock](https://learn.adafruit.com/arduino-clock.md)
- [PiGRRL Zero](https://learn.adafruit.com/pigrrl-zero.md)
- [Portable Apple Watch Charger](https://learn.adafruit.com/portable-apple-watch-charger.md)
- [Zipper Switch](https://learn.adafruit.com/zipper-switch.md)
- [CRICKIT Snake Bot](https://learn.adafruit.com/crickit-snake-bot.md)
- [Portable Qi Charger](https://learn.adafruit.com/portable-qi-charger.md)
- [Adafruit 20W Stereo Audio Amplifier - MAX9744](https://learn.adafruit.com/adafruit-20w-stereo-audio-amplifier-class-d-max9744.md)
- [Overwatch Prop Gun: Lucio's Blaster Pt. 3](https://learn.adafruit.com/overwatch-prop-gun-lucios-blaster-pt-3.md)
- [FPV Mini Display](https://learn.adafruit.com/fpv-mini-ground-station.md)
- [UV Brush Cleaner](https://learn.adafruit.com/uv-brush-cleaner.md)
