The CRASH Space Super Ultra My Little Pony Donation Box

All files for this project are open source and available on github | GPL-3.0 license



Turn your sound on for this one

As the 2015 CRASH Space Vice President and an alumnus of the 2010 CRASH internship program, it’s fair to say that I come from a long line of donation box experts.

CRASH Space is a 501(c)3 non-profit hackerspace in Los Angeles. Throughout the years, we’ve brought our members and our equipment to schools, outreach events, and tech conventions all across California. And at each event, we’d bring along a little donation jar for people to donate to our cause. Despite the often very impressive array of tech available for show at our booth, the donation jar we brought was literally an old Cheezy-Poofs container with a little hole cut into the lid.



CRASH Space circa 2011. Check out that sweet donation jar in the top right corner

This year, I’ve set out to create CRASH Space a donation box worthy of our hackerspace.

Ideation

Obvs, the first step of any good project is coming up with a hella good idea, both in terms of electronic functionality, and style.

First, let’s talk style. Being one of the more whimsical hackerspaces, CRASH Space’s mascot is a Soldering Unicorn named Sparkles. Over the years, Sparkles has become arguably the most famous member of our hackerspace. For this project, I’m going to follow in Sparkles’ footsteps and give the donation box a My Little Pony theme.


sparkles
This beautiful photo of Sparkles is by our 2014 CRASH President, Theron Trowbridge

Next, we need a technical design. Here’s how I imagine this donation box is going to work:


0_really_good_idea (1)
Behold my extremely clear and well-thought-out design notes

tl;dr The top slot in the donation box will have a distance sensor mounted right beneath it. Whenever someone donates a paper bill, the distance sensor will sense a change in distance and cue the donation box to react by:

  1. Scrolling the text “THANK YOU!” across an LED matrix
  2. Playing the My Little Pony song
  3. Turning on two fans to blow all of the dollar bills around in a little wind tunnel

omg. This shit is going to be so real.

Materials

Here are the materials we will need:

For the LED Matrix:

  • RGB LED strips (or a pre-built RGB LED matrix)
  • Basic soldering tools (iron, solder, wire)
  • Arduino (Mine is a Nano)
  • A distance sensor

For the MP3 sound support:

  • Some protoboard
  • Robertsonics mp3 trigger board (Info | User Guide)
  • SPST relays (up to 15 — one for each sound file you would like to play)
  • Speaker + Amp
  • 5V power adapter (“wall wort” — I recommend collecting these off of old broken routers or other small unusable electronics. Very handy!)

For the fan:

  • Two high-power fans
  • A relatively high-voltage relay
  • 12V power adapter
  • Some flexible plastic to create a (wind) tunnel

For the box itself:

  • A donation box, a container that can act as a donation box, or enough plastic or wood to build your own. (I found a beat up old acrylic donation box, so we’re going to upcycle that one into something nice for this tutorial.)
  • Paints, stickers, etc. for decorating the box
  • A lock and key (if they do not already come on the box you have chosen)

Build an LED Matrix

If you’re following along to build a donation box of your own, here is a tutorial I wrote on how to construct an LED matrix from individually addressable RGB LED strips. Feel free to use that to build your own LED matrix–it follows the exact steps that I used to make this one.

And as always, feel free to grab my code off of github to get your LED matrix scrolling text.


2_led_matrix
I built my matrix out of strips of 30-density individually addressible RGB LEDs

Sensing Money

Now that our LED matrix works, we want to update our system such that the LED matrix only scrolls our text when we sense that someone has made a donation.

Underneath the slot in your donation box is where we are going to create a mount for our distance sensor. We want the sensor to sit right beneath the slot so that a dollar bill passing through the slot will cross the distance sensor’s path. We also want to put the distance sensor just behind the slot, and another piece of material just in front of the slot and the sensor. This way, the distance sensor will have a set distance to sense, and other objects moving around in the room will not be able to feed it unpredictable data. Only items (hopefully dollars!) that come through the slot will have the ability to alter what the distance sensor senses.


1_digram
Top-Down View. This diagram shows the sizes of the plastic pieces (shown with colorful stripes) mounted around the slot (the solid black rectangle), relative to the size of a US dollar.

I chose to make my mount for my distance sensor out of hot pink acrylic, to match the My Little Pony theme of my donation box. You can choose any shape or color you want, as long as the material is:

  1. strong enough to support the sensor, and
  2. opaque enough for the distance sensor to see it.



I also chose to cut my mount into little heart shapes, because the greatest joy of studying electrical engineering is getting to glue your custom circuit to little hearts that you designed yourself and hand-crafted with an industrial-grade laser cutter.


Grab the .cdr files for this heart-shaped sensor mount at my github.

Notice that on mine, I’ve used acrylic glue to adhere my mount to the underside of the lid of my donation box, and used thread to hold the distance sensor to the mount. This way, when the box is closed, the mount will hang down and the distance sensor will sit directly below the slot.




WARNING! Think carefully about how low below the slot in your donation box you want the distance sensor to be. If it is too close to the slot, people will be able to activate your circuits without actually making a donation.

However, for the CRASH donation box, I chose intentionally to put the distance sensor very close to the top of the box. We get a lot of very young visitors at our CRASH Space event booths, and I’d like them to be able to see the box work without needing to pay us for it. This decision is completely up to you and your needs.



Program the LED Matrix to Respond to the Distance Sensor

Now that your distance sensor is mounted, it’s time to wire it up to your Arduino and your LED matrix, and to update your code. We need to change the LED matrix to only scroll our text when it senses a difference in distance.

(Code for the completed project lives here.)

Notice, however, that my code will not work perfectly with your setup. This is because I have configured my code to understand the the expected distance between the two plastic hearts that I’m using as a mount. Your distance sensor mount is probably not the exact same size as mine, so you will have to update your code to match the distance between the two pieces of plastic that make up your mount.

Run tests by putting a dollar through the slot of your donation box. Fine-tune your values until your Arduino only scrolls the text on your LED matrix when the dollar is present.

Add Support for Playing Mp3 Files

Now that your LED matrix is scrolling whenever the distance is changed, we can add support for the MP3s.

The robertsonics MP3 board is designed to play an MP3 file every time a trigger is closed. To close a trigger, you just need to close the circuit between the two pins in the trigger. Notice that this board has 15 triggers, and therefor can support up to 15 different sound files! (Right now mine only plays the My Little Pony song, but this leaves room for future upgrades… to play up to 15 different My Little Pony songs.)

In order to keep the files from playing all the time, we are going to need something to hold the triggers open, in the “OFF” position. There are many ways to do this in a circuit, and a simple way is with a relay. The relay we need is called SPST (Single Pole, Single Throw, meaning that there is only one electronically-controlled switch inside that switches (“throws”) a single “pole” ON or OFF. We also need to make sure we get a “normally open” relay, so when they are idle, they will hold the circuit in the OFF position (“open”).



These are the four most popular relay configurations. We want SPST for our application.

If you’re using multiple sound files, you’ll need to tell the Arduino to pick a different digital pin to turn HIGH with each donation. Each digital pin corresponds to a different relay on a different trigger, which will shut a random relay and therefor play a random sound file with each donation.

You’ll need mp3 files to test with. If you don’t have any, you can grab some quickly from the public domain.

Solder the Circuit to a PCB


By this point, slipping a dollar in front of your distance sensor should be causing your LED matrix to scroll, and making your Mp3 file(s) play. Now is a good time to move your circuit from the breadboard to a PCB. Soldering is like, super boring, so put something entertaining on in the background.


Because they are so large, I started soldering the relays first and built the rest of the circuit around them.


Get it? Haaaaaa I’m funny.




By this point, my entire house was a disaster, thanks to this project.


Create a Mount for the New Circuit

I think the circuit I made looks pretty cool. I’m going to make a mount to display it up on the back wall of the donation box. This will serve several functions:

  • Keeping the board up off of the box floor and out of harm’s way
  • Keeping the board away from the plastic walls where static and heat can build up
  • Displaying our board nicely for all to see



What a beautiful… rectangle.

First, design a mount for your board. Here is the file for mine, which you can use. I chose to make holes in the corners to mount it to the box with screws, and put a number of little holes all over it, corresponding to where the holes on my protoboard are. This way, I can adhere the circuit to the mount via these holes.



I then drilled four holes in my donation box to correspond to the large holes in the corners of my mount. Drilling plastic can be tricky and lead to accidentally cracking the plastic, so I first drilled a very small hole with the smallest bit I had, and then worked my way up to the larger bits slowly. This way, only a small amount of material is removed at a time, and the plastic is less likely to fracture. I also used this method to drill a single larger hole in the back of the box for cords to come through.


25_drill_hole
Dang what a cool hole

Once the holes are in place, I used some screws and nuts to secure the mount to the wall of the box. I like this design because it allows for easy removal of the mount in the case that we need to bring the circuit back out to work on it.


Create the Stencils

Now we need to think of a design that makes our project look totally awesome without subtracting from it’s functionality.

My considerations:

  • The front view of the inside of the box should not be obstructed, because we want to be able to watch the money fly around
  • The sides of the box should be opaque, so it isn’t so obvious from all angles that this box is full of totally stealable cash
  • The LEDs in the front will look coolest if something is diffusing their light

With these considerations in mind, I decided to go with a cloudy sky look, and to put stickers of the ponies flying around in the sky.

I grabbed a My Little Pony-style cloud off of the internet and converted the bitmap to a vector in Corel Draw. I then broke up that vector into two pieces so I could use it as a stencil for both the cloud itself and a decorative outline of the cloud.




The design being sent to the laser

You can grab my laser-ready cloud stencil here


The finished cut

Paint the Exterior

Before spray painting, I coated the top and the front of the box with newspaper and painter’s tape. I want these areas to stay transparent so visitors can watch the money fly around inside the box.



Next, I spray painted the back and sides of the box sky blue.


After letting the blue paint dry, I taped the first stencil to the back of the box, surrounded it with more newspaper and painters tape, and sprayed on white paint for the cloud.



After letting the white paint dry, I put on the bottom of the stencil (held in place by donuts of painter’s tape), and sprayed on the silver paint for the outline of the cloud.



Once that was done, I repeated these steps on the sides of the box. For the front, I didn’t paint any blue sky, but made an extra big cloud on the bottom for the LEDs to hide behind. I think the white cloud will do well to diffuse the LEDs a bit, and will look awesome because now all of our messages will scroll across a cloud! Rad.

DECORATE

I got these off of amazon:


And stuck them all over the place.


1_front


Smartest design decision I’ve ever made, hands down.

Add Fancy Speakers

During testing, I used a pair of old speakers that I found on the street. These were a bit unwieldy, which is unfortunate because the donation box will likely travel around with our booth quite a bit.

Luckily, my friend and fellow CRASHer Kyle had a surface transducer on hand. These are small, super-portable, and don’t require their own power cord like the old speakers did.


Surface transducers (sometimes called “contact speakers”) are also really nice because they work best in situations where you have a large, box-like surface to keep them on… like a donation box omg.


I grabbed a cheap $8 amp from AdaFruit, and soldered it up to my circuit… just in time to realize that the spot I chose for it would never work. So… I moved it.


And it works! Thx guerilla glue you’re the best.


The transducer itself is pretty small. In test, I found that it vibrates quite a bit when it plays, which makes sound itself a bit shaky. To fix this, I taped it to the bottom of the box. That seems to have cleared the problem right up.


1_speaker
Occam’s Razor says: If tape works, use tape

Create a Wind Tunnel

This donation box is already super obnoxious and over-the-top, but we can definitely push it further. Time to add fans to blow the money all around in a little wind tunnel.

For this part of the project, my friend and fellow CRASHer Steve offered to help out. Thanks, Steve!

Steve picked us up two high-power fans (~$10 each), a 12V NO (normally open) relay, and some sheet plastic.



Exhibit A: Very Big Relay

The fans require a higher voltage than the rest of the project, so they have their own power cord, which we recycled from an old laptop. This is why the extra-large higher-voltage relay is required here. The little relay on my circuit is switched on by the arduino, and the big relay is switched on by the little relay. When the big relay switches on, it closes the connection between the power cord and the fan and turns the fans on.


2_fan
Notice that the mouths of the fans are sticking inside the wind tunnel, via little holes cut in the plastic

The setup of the fans is really important. Just sticking a fan in a box won’t create a very interesting effect. The tube of sheet plastic in the middle is key, and enables us to have a smooth, round surface for the money to blow within. And notice that the fans are positioned kitty-corner to one another and are pointing in opposite directions so they can keep the money flowing as smoothly and as high up the tube as possible.


And there you have it! If you build a cool donation box of your own, or otherwise use this walkthrough for your own project, let me know in the comments! I’d love to see it.