Proton Pack Build

One of those items I have on my wish list of "things to build" has always been a proton pack from Ghostbusters. I loved the original packs from the 80's, the concept of it and the prop work was just wonderful. When the 2016 reboot was announced I eagerly awaited the shots of props used in the movie. Regardless of the hype (positive and negative) around the movie, I wanted to take it as a movie in its own right and just enjoy what the SFX teams were building physically and digitally. There's a lot to like in the props and FX departments in the movie and the new packs made me squee with excitement a little when I first saw them.

There's something about the grunge hand-made nature of them that feels a little more realistic in modern culture. It's almost like something that COULD actually be built by the myriad of home hackers and tinkerers with access to a range of parts.
Where the original movie showed beautifully crafted packs with a very professional feel to them, the new packs shout "Use whatever you have to hand to get the job done!"
Well, that sums me up quite aptly.

Party Motivation

So my goddaughter contacted us to say she was having a fancy dress party for her birthday and that sent me into a "oh. erm. what the heck do I go as?". A quick google around and I was no further forward other than muttering about the cost of decent costumes.

So it came to pass that after watching the Ghostbusters 2016 movie late one evening with a beer I suddenly thought to myself "I reckon I could build one of those for less than an eBay costume".

Pound shops and Bits buckets

Confession: I am a bit of a hoarder.<edit: a huge hoarder>
I see odd items, electronics and cabling and I see the potential to need it at some point in the future. I had a good rummage through the boxes of parts I had and worked out that I had quite a few parts I could use for the construction of the pack.

I started doing some research with reference photographs to marry up what I had and what I didn't have available in my parts boxes. It became evident there were several items key to the 2016 reboot packs that I just didn't have in my hoarding collection. One of my favourite sources of parts is the local pound shops - a treasure trove of hardware hacker parts for the budding builder!

So off to the pound shop to collect some items, much to the confusion of the staff:
Four cooking splatter guards; Hanging plant basket; cable ties; cable tidy zip lock thingie; black rubber gloves; kid's baseball bat; LED battery-powered fairy lights; Project Box...

The neutrino wand posed a quandary in that many examples I'd seen online were carved from blocks of wood with pillar drills. Not wanting to get into crazy woodworking on a limited timescale I asked a friend to 3D print some parts I grabbed from thingiverse. Their dimensions could do with a tweak to account for plastic not printing exactly to the super tight tolerance values if you were undertaking a similar print. My barrel pipes needed some modification to get them to fit correctly.

There were a couple of other items I had to browse around for bargains on eBay for but thankfully I had quite a lot of parts readily available from scavenging over the years. The original film used an Army backpack frame from the US Forces - the British army has similar packs and you can often find them on eBay for between ten and twenty pounds depending on condition and inclusion of straps. I managed to bag a 1984-built (ironic - the original film came out in 1984!) unit with all the straps in a great condition. I resprayed the pack metalwork black after cleaning down.

I played around with some power lines and LED's to get the rough layout and illumination ideas I had and thought it looked pretty good. The more I looked at build videos and articles online the more I felt it was going to be lacking something.

Arduino & Adafruit FX Board

I figured if I was going this far with the build I might as well continue to dive down the rabbit hole and get some sound working in response to items. I did quite a bit of research into audio triggering and how other cosplay individuals were creating their own take on the packs.
Initially I worked out some circuit diagrams of purely mechanical switches and LED triggering. I looked at shields for Arduino seeing as I had an Arduino uno and some Raspberry Pi units on my shelf. After a bit of digging around, costing-up and thinking I realised using one of the Arduino wav shields would get quite costly for what was necessary. Lucklily, the wonderful team at Adafruit Industries provided the solution in their 2Mb Mini FX chip which is designed for costume and prop makers.

Initially I thought I might just mechanically trigger items using the trigger pins on the FX board, but I also wanted to trigger an LED output change in the neutron wand so it looked like an Arduino and FX board mashup was the way forward. I'd not really dived into Arduino before so, figuring it was a good time to start, I dived straight in.

The FX board handily has a serial connection, so I wired that up - I had some odd connecting / non connecting that was down to me having the wrong reference ground when I powered the units off two separate battery packs initially. I knew I needed to trigger the output into high and low states for controlling the audio so I used some breadboard and started connecting items up.

Test wiring of Arduino and Adafruit FX board

The only thing the FX board I have can't do is output directly to speakers, as there is no in-built amplifier in my board. So to combat this, I used an LM386 DIL chip circuit to fire 2.5W of audio output through two mini oval 4W speakers. I ran the audio amp from a separate 9v supply and took the audio output from the Left channel and ground output from the FX board to run it in mono mode.

My First Arduino Hack

After a bit of trial and error I came up with the following code which gets around some of the idiosyncrasy's of my wiring looms - I had some issues with the digital input so switched to an analogue input and set a high threshold to avoid artificial triggering due to power fluctuations.

It's not super clever, but I was quite pleased that I penned-out the logic and managed to get the system working in way I wanted. Currently have a power on/off switch and a fire switch. I'd like to add a vent button and potentially a shotgun blast button, but for now I'm keeping things fairly simple.

Logic Requirements:

  • If powered off and switching on, run power-up sound
  • If running in idle, hum in the background
  • If fire button pressed, loop firing sound and turn on flashing LED
  • If fire button released, stop firing , turn off LED and play end-firing sound
  • If switched off, run power-down sound

Initialise the system with the right libraries:

* Proton Pack Driver Software
* Author: Rick Trotter
* Date: 19/03/2017
* Version: 1.0.0

#include <SoftwareSerial.h>
#include "Adafruit_Soundboard.h"

Specify the pins that will be used for input and output:

// Choose any two pins that can be used with SoftwareSerial to RX & TX
#define SFX_TX 5
#define SFX_RX 6

// Connect to the RST pin on the Sound Board
#define SFX_RST 4

// Constants - specifying i/o ports
const int powerpin = A0;
const int firepin = A2;
const int ledpin = 12;

Specify initial state of variables and communication for first-pass:

// setting initial variable states
int powerbuttonState = 0;
int firebuttonState = 0;
int powerRunning = 0;

// we'll be using software serial
SoftwareSerial ss = SoftwareSerial(SFX_TX, SFX_RX);

// pass the software serial to Adafruit_soundboard, the second
// argument is the debug port (not used really) and the third
// arg is the reset pin
Adafruit_Soundboard sfx = Adafruit_Soundboard(&ss, NULL, SFX_RST);

Create serial connection to the FX Board:

void setup() {
  // Set up the pack boot variables

  Serial.println("Proton Pack Starting...");

  // softwareserial at 9600 baud
  // can also do Serial1.begin(9600)

  if (!sfx.reset()) {
    Serial.println("Not found");
    while (1);

  Serial.println("SFX board found");

Set the output to off so that the barrel doesn't start flashing:

  // initialise LED output pin
  pinMode(ledpin, OUTPUT);

  digitalWrite(ledpin, HIGH);
  powerRunning = 0;


Start the loop of monitoring system state and firing events:

void loop() {
  // Run Repeatedly the following status check code:

  // Verify what buttons are on at the moment
  powerbuttonState = analogRead(powerpin);
  firebuttonState = analogRead(firepin);

  // if an input, run the associated sound file

  if((powerbuttonState > 1000) && (powerRunning == 0)){
    // just powering on first time
    Serial.println("Proton Pack Powering up...");
    powerRunning = 1;

Firing check:

if((powerbuttonState > 1000) && (firebuttonState > 1020)){
  // Firing the pack
  Serial.println("Proton Beam firing...");
  digitalWrite(ledpin, LOW);
    firebuttonState = analogRead(firepin);
  } while (firebuttonState > 1020);
  firebuttonState = 0;
  // play power-down sound
  Serial.println("Neutrino emission ceasing...");
  digitalWrite(ledpin, HIGH);

Standby mode check:

if((powerRunning == 1) && (firebuttonState < 1020)){
  // Pack is powered and in standby - default to synchrotron hum

Powering Down check:

if((powerbuttonState < 1000) && (powerRunning == 1)){
  // Powering the pack down
  Serial.println("Proton Pack Powering Down...");
  powerRunning = 0;

Piecing together

It took some moving around of parts and tinkering with the code, but I'm pretty pleased with the results! There will always be things that I want to change on it, upgrade and fix but for a prototype unit I really couldn't be happier with what I've produced in only a couple of weeks of bits on an evening once the kids went to bed.

So, to summarise...

  • I really want to build more of these things after building the prototype pack!
  • Adafruit FX boards are seriously awesome
  • Arduino is fun and not so scary when you just dive in and start playing
  • There's a huge community of makers doing this in different ways
  • Learning is fun, my 10 year old has loved spending time with me building and testing this.

I have a picture journal of the build over on Flickr for anyone interested in finding out more.

Happy hacking!

Next Item.. Uncomplicated Firewall

Previous Item.. Basic Security