What if I told you that 2+2=Red!?!? What!?! I know this sounds crazy but for people with synesthesia this might be their reality. Synesthesia is defined as "the production of a sense impression relating to one sense or part of the body by stimulation of another sense or part of the body." This is a complicated way of saying that people with synesthesia have blended senses. The most common type of synesthesia is called grapheme, in which numbers and letters are intuitively linked with color. So 2+2=4 but a red 4. There are a myriad of other types of synesthesia which you can read about here, but in this Instructable we are going to be designing a mask that links our sense of color with our sense of smell. Get ready to experience the world in a totally new way!
List of Necessary Materials
 Intel Edison
[12"x12"] 1/8" Plywood
[6"x6"] 1/8" Clear Acrylic
 6mm M2.5 Button Head Machine Screws
 10mm M2.5 Button Head Machine Screws
 M2.5 Lock Nuts
 Mini Servos
 100mA Fans
[2ft] 3/4" Tubing
Full Face Mask
[2ft] Thick Elastic Band
 NPN 2N2222 Transistors
 1N4001 Diodes
 1KOhm Resistor
10,000mAh External battery
Male Pin Headers
Female Pin Headers
[5"x4"]Single Sided PCB
Step 1: How Does This Work???
You can think of the Synesthesia Mask as a smell pixel. Analogous to the way that pixels combine varying amounts of red, green, and blue to make different colors, the mask dispenses proportional amounts of a "red", "green", and "blue" scent to match the color you are touching. In practice a fan from one end of the scent manifold blows air over the test tubes containing our "red", "green", and "blue" smells. Each servo angles its test tube cover directing air down into the test tube where it picks up the scent of the essential oil inside. The "red", "green", and "blue" smells mix together and are then blown by the fan on the other end of the manifold into your mask. The amount of each scent that gets blown into the mask is mapped to the red, green, and blue color value being read by the color sensor on your hand.
Step 2: Laser Cutting
The scent manifold was cut out of 1/8" plywood and acrylic using an Epilog laser cutter. All sides but the top and clear acrylic face of the manifold are glued together. The DXF files to laser cut these pieces are attached. If you do not have a laser cutter have no fear! Balsa wood, which can be easily cut with an X-acto knife, would make an awesome scent manifold.
Step 3: 3D Printing Parts
During this step we are going to 3D print 4 components for which the .IGS files are attached:
Test Tube Covers - These covers attach to the servos and block or allow air into the test tubes containing our scents. The greater the angle of the cover, the more air is thrust into the test tube, proportionally adding more of that scent to your mask.
Tube Connectors - Help connect the scent manifold to the mask, the outer diameter of the connectors match the inner diameter of the 3/4" tube.
Finger Attachment - Mounts the RGB color sensor to your hand
Arm Band - This unit will house the Edison, in addition to the external battery and custom electronics. Mounting the electronics on your upper arm makes the load easer to carry and will limit the length of wire needed to run power to the mask.
Hot gluing the color sensor to an old ring would be a great alternative to the 3D printed finger attachment. Additionally, instead of 3D printing an arm band from scratch you could use a smartphone workout arm band with a solid backing to mount your electronics. Please don't be discouraged from this project just because you see me using different tools. Hack, remix and make this project your own :)
Step 4: Electronics Prototyping
Break it Down!
This is not a simple circuit, so lets break up all the components into subgroups and figure out how to hook them up separately. If you get lost or confused the schematics will show you exactly where every wire needs to go. If this is the first time you've seen schematic presented this way, check out this awesome Sparkfun tutorial on reading schematics.
Step 5: Electronics Prototyping - RGB Sensor
Lets start with the RGB color sensor! This sensor communicates through I2C, pronounced "I-Squared-C", this communication protocol requires only two wires, a clock and data line and can be used to communicate to multiple devices on the same bus. First run a wires from the Edison's 5V output and Ground to the Vin and GND pins of the RGB sensor. The clock line is labeled SCL on the sensor and gets plugged into the SCL pin on the Edison Arduino board. Do the same for the data line, labeled SDA. If this terminology sounds a bit foreign don't worry, you can totally proceed with this guide and complete your mask, but I would highly recommend reading up a little on I2C, it's really interesting.
Step 6: Electronics Prototyping - Servos
Next are the servos which have three wires coming out of them which are power (V+), Ground (GND) and Signal (SIG). The PWM (Pulse Width Modulation) signal that drives the servos is a generated by the Intel Edison from only a few special pins. Here we Intel provides awesome getting started and maker support forums if you need guidance along the way. I referenced the Edison hardware design files multiples times through this build.
Step 7: Electronics Prototyping - Fans
The final pieces we need to hook up are the fans. These tiny guys can draw current in excess of 100mA which could fry a pin on the Edison. We will use the handy 2N2222 transistor to amplify the very tiny current output from the Edison pin to a much larger current. If you have not worked with transistors before check out this intro article. Transistors have 3 pins which are a base, collector and emitter. Every transistor is different as to the placement of each pin, in this example I pointed out the base pin and then connected it to pin 7 of the Edison through a 1KOhm resistor.
Because we have two fans we will build another transistor circuit and hook up the base to pin 8. One final component we want to add to the circuit is a flyback diode. Place a diode around the motor with the positive end (the side with the white stripe) facing the positive line of the motor. This is to protect our Edison from any voltage spikes causes from the fan.
Step 8: Create Wiring Harness
I used rainbow ribbon cable and make two wiring harness to keep all of the wires tidy. One runs from the mask down to the bicep to the arm band and the second goes down the forearm to the color sensor on your hand. I soldered both ends of the wiring harness with female pin headers, 7 for the RBG sensor, three sets of 3 pins for the servos and two sets of two for the fans.
Step 9: Final Electronics Assembly
3 Different (but equally awesome) Approaches
In the picture above you will see three equally good methods of assembling the electronics in your synesthesia mask. The first method uses breadboards and jumper cables.We have already completed this in previous steps but our breadboards are a little large and we don't want our armband to bigger than necessary.
The second assembly technique utilizes an electronics prototyping board called a perf board, which allows you to solder all of your wire connections together. With this method you can create a board that nicely fits on top of the Intel Edsion but soldering each connection with tiny wires can be a lot of work, and mistakes are harder to undo.
The last method, and the one I pursued, is to Othermill a custom PCB board. It will require learning a couple new tools but you will now be able to create beautiful single and double sided copper PCB boards. If you choose to go down this route the files to mill out the board are attached.
Step 10: Optional PCB Milling
Making a Custom PCB
Download the .BRD file in the previous step and open up Otherplan. Click "Import File" and upload the board file, Otherplan will generate the necessary G-Code. Click "Set Tool" and load a 1/32" end mill, make sure to also choose a 1/32" end mill under the "Tools to Use" section. Now hit "Cut All", it's really that easy. If you are unfamiliar with the Othermill here is a link to their website, and you can check out their Instructable on milling your first circuit here.
Step 11: Programming the Edison
Getting sensor data into your Edison and having your code understand and parse this data takes place in four distinct steps, which are include, initialize, setup, and loop. For each sensor you will need to begin by including the library that contains the functions for that sensor. Next you will want to initialize an instance of that sensor. In the attached code you will see the line Servo myservoRed. This is the line that tells the Edison to initialize the servo connected to the red channel output. During Setup we need to begin serial communication for debugging, ensure that the color sensor is being read through the I2C bus and ensure that our servos and fans are attached to the right input pins. If you have designed your circuit differently, here is the place to designate which pins do to which sensors and servos. Finally we come to the loop. In the loop we want to obtain raw data from the RGB sensor with tcs.getRawData(&red, &green, &blue, &clear) , then we utilize the map function to turn the color value into a rational position on the servo.
Step 12: Final Assembly - Paint
Wanting this mask to have an approachable but yet technical look I opted for a white and orange paint scheme. After disassembling the mask and removing the clear plastic face shield I sprayed everything with plastic primer and then three coats of white and orange. Allow each coat to fully dry before applying the next coat.
Step 13: Final Assembly - Scent Manifold
Using the 6mm M2.5 button head machine screws I attached the fans to the scent manifold. Four more screw will be necessary to mount the tube connector on to the other side of the fans. Attach the clear acrylic front window, which should now fit snuggly due to the thickness of the paint adding to the dimensions of the manifold.
Step 14: Final Assembly - Face Shield
To keep the scent manifold as flush as possible with the front of the mask we want to recess the servos into the face shield. Lay out the face shield on a cutting mat and find the center. Match this center up with the center of the scent manifold and mark the inner dimensions of each servo cut out on the face shield. Grab an X-acto knife and cut over your markings, be sure to check their fit with the servo and trim as necessary.
Next, use a sharpie or punch to mark the centers of the 8 holes needed to mount the tube connectors to the face shield. I spaces mine about 1 inch up and away from either side of the scent manifold. Notice that these tube connectors use the 8 of the 6mm M2.5 nylon nuts to keep them in place. Tighten those down to engage the nylon threads.
Step 15: Final Assembly - Mounting Servos
Thread the servos through the rectangular holes in the face shield and then place the scent manifold over the servos. Screw in the two 10mm M2.5 machine screws through the manifold and out the back of the face shield. Thread two M2.5 nylon nuts and tighten.
Step 16: Final Assembly - Cable Management
At the last minute I 3D printed some cable management clips which allowed me to zip tie into place the rats nest of wires.
Step 17: Final Assembly - Wiring Harness
No matter the final electronics approach you took hook up the wiring harness to the servos, fans, and color sensor. Ensure that you have not filled any power and ground signals as this could brick your circuitry.
Step 18: Smell Color!!!
Yay you did it!!!!
One final thing to note about the using the mask. Please water down the oils you place in the test tubes. I initially forgot and the scents were really over powering.
I hope you enjoyed this Instructable using the Intel Edison, please feel free to reach out with questions or comments below and if you build one take pictures and send them to me! I would love to see your creativity and ingenuity brought to this project :)