Ever wondered what it might be like to feel as though your strap-on were actually part of your body? I’m proud to present my friend Andres and his Eva Project, a basic DIY toy which is designed to do just that. Below Andres describes the psychology behind the project, shows how he built it, and gives ideas for other toymakers to build on.
A friend of mine wondered what it would be like to have a penis. I was reading about the rubber hand illusion. We had both been looking for an excuse to do something complicated with Arduino. This seemed like a good challenge. We called it the Eva Project, because it involved neural synchronization and we are gigantic nerds.
The rubber hand illusion tricks your brain into thinking that some object is a part of your body. It happens when you see touches on the object that are synchronized with touches on your skin. We figured that if you could make touches on a toy vibrate on the skin, you’d get the same kind of identification. That is, you’d feel touches as located out in the toy, rather than up on your skin. So the toy would feel like part of your body.
I’ll describe the prototype we made, but if you want the quick version: it works. I’ve been told the effect is neat, and pretty fun. There are some caveats that I’ll get to, and a lot of room for improvement. My friend likes it, though, and says that it really feels like part of her body when it’s going.
The whole prototype has four main parts: the toy itself, a custom Arduino shield, an array of vibrating motors, and some support stuff.
The goal with the toy was to find some way to sense touch and pressure. I played around with resistive sensing, but it wasn’t very sensitive, so I decided to go with capacitive sensing instead. Capacitive sensing is the same thing that phone touchscreens use. The electrical field of your body will change the capacitance of a conductor, and that change is something you can detect. Capacitive sensing really detects proximity rather than touch, so it’s very good at picking up even very light touches on the toy.
The toy itself came from a cheap strap-on. It is unremarkable other than being pretty firm, which gives a good solid base for the sensors. The sensors are sheets of doubled aluminium foil, about 2.5cm wide, and long enough to wrap completely around the shaft (the tip sensor is a bit larger, and covers the whole tip). There are three sensors: one covering the tip, one about halfway down the shaft, and one at the base. Each are separated by about 2cm. Because it was a prototype, I attached the foil to the toy with electrical tape, and then taped on a bit of frayed wire to make a connection. I ran the wires themselves together down the shaft. Because capacitive sensing will also affect the wires, there’s a bit of cross-talk, but that didn’t seem to matter much in practice.
The sensors need to be protected from direct touch and from liquid (water-based lube is a slight electrical conductor, which throws sensing off in really hard-to-diagnose ways). The wires themselves run about 30cm to a connector which lets it attach to the shield. After securing the wires, I covered the whole thing in Silicone Rescue Tape. That stuff is awesome–it makes a great, tight waterproof seal around objects of any shape. I’m not sure if it’s entirely body-safe (the web suggests that it’s probably fine unless you’re allergic), but it was going to be used with a condom so I figured that wasn’t an issue. Note that if you use a condom, you want to put some lube on the inside too—otherwise the tape can be a bit harsh on it.
Lots of stuff on the web said that the sensing would be more stable if you added a capacitor to ground in there. My experience was that this just made sensing slower and less stable.
The vibrators are three cellphone-style shaftless flat vibrating motors. They draw about 85mA tops, so three is comfortably within what the Arduino can supply. There’s a single 5v supply wire for each of them, and then individual return wires to allow them to be controlled separately. They’re held in place relative to one another by a bit of electrical tape. I didn’t take a picture of the internals, but you can see it in the overall picture below. The assembly is the black rectangle with wires running back to the board.
The three motors are each mapped to a sensor on the toy. The tip sensor maps to the clitoris motor, the shaft to about halfway down the labia, and the base to near the vaginal opening (I hand-measured this to make sure they lined up right). The wiring harness again ran to a connector which attached to the shield.
For testing, the vibrator assembly was attached to the outside of a pair of thin underwear with electrical tape. The black strip down the center is the vibrator array, and the cross-pieces of electrical tape holds it on. There is surely a better solution—the underwear were tight enough that they mostly didn’t slip, but the less slippage the better.
Also the schematic indicates diodes to shield the board from voltage spikes from the motors. I had those and removed them (wrongly) thinking they were causing problems, and then never soldered them back on. That doesn’t seem to make a difference: the thing has run for an hour nonstop with no overheating and nothing breaking. But probably better to have them to be safe.
I used a freeduino uno board with a custom shield. The schematic to the left shows how things work, along with my implementation on a prototyping board. The motor return wires go through a transistor to ground, with the intensity controlled by pulse-width modulation to the base pin. Each sensor foil is charged from pin 8 through a resistor, and the time to discharge is read by a distinct pin for each sensor. The discharge time measures capacitance, which is affected by proximity. I also wired in a reset button, which just resets the software calibration when it goes funny.
The sketch uses the capsense library to do the heavy lifting. It polls each sensor, maps the capacitance value to the useful PWM range of the motor, and then outputs that to the appropriate pin. Each loop also checks to see if the current sensor value is significantly higher than the previous maximum value, and updates the maximum if so. That keeps you from having to guess the maximum value (which can vary a lot when it’s used). The downside is that it occasionally goes wonky if it gets a really big spike. Hence the reset button. Each loop also checks the reset button, and if it’s pressed it drops back to the initial values and starts recalibrating again.
There was a fair bit of hand-calibration that I had to do before I soldered together everything. The sensor value ranges depends a lot on the area of the sensing surface and also on the resistors you use. How fast it senses also depends on the resistors, and there’s a tradeoff there: higher values give more sensitivity but take longer to get a reading. I used 10 megaohm resistors, which provided a useful range and decent time to read. This calibration sketch was really useful for testing: it outputs the current values to the serial monitor, along with the total time taken for the loop.
I also needed to figure out the stall point of the motors, since they can’t use the whole PWM range. I just ran one off of a pin with different values until I found where it started moving. (Start from the bottom and work up, since the stall point is lower when they have some inertia already.) I have indicated in the sketch comments where these values should go.
The board and shield were housed in a $2 camera carrying case. Power came from a battery-powered regulated USB power supply to run the board. That was attached to the harness that came with the strap-on, and electrical tape was used to keep everything orderly.
The picture to the right shows how it looks fully assembled. The black strip near the top holds the vibrating motors. The power and board cases fit on the belt part of the harness.
How it worked:
Pretty well! My friend has tried it a few times with a partner. As expected, touches on the toy were more or less felt as being in the toy. So it ends up feeling, in a strange way, like part of your body. (She said it also felt like a body part was missing after it stopped!)
She said it really does require looking at the toy while you’re using it. It’s hard to get it while touching the toy yourself, though; it worked best when her partner was touching it, or when she was using it and looking down at it. It was pretty fun, though, and held up well through several tests.
It’s not perfect. The two biggest problems: everything is very sensitive to light touch, but not much more sensitive to heavy pressure. In practice, this means that if it’s inserted, the tip motor just buzzes constantly. So the shaft and base are the only ones that provide much feedback (her partner masturbating the toy, on the other hand, worked especially well). Also, the buzzing of the motors made for kind of an odd sensation—though sensation was located in the toy, it felt kind of buzzy and numb, like “a foot gone to sleep.” That was still fun, but definitely something to work on.
Room for improvement:
There is a lot of room for improvement. Many of the improvements are beyond my current skill level. I’m hoping that someone who sees this will take up the challenge and make it better (if you do, please let me know!). There are a few obvious places to start (less reliance on electrical tape, for example, and also maybe knowing more about electronics than I do). Here are a few thoughts about more adventurous improvements:
The sensing: Wire taped to aluminum foil isn’t a great idea; next time, I’ll at least solder the wires to copper tape. The capsense library-plus-resistors is also a bit of a hack. There are chips that are dedicated to capacitive sensing (like this) which I think would be more stable and more sensitive. I haven’t seen anyone use them for graded measurements, just on-off stuff, but my poking around suggests that these chips should be capable of that. I was limited to three sensors because I needed so much surface area to get a strong signal. More sensitivity might also allow more sensors on the toy, which would probably make for a stronger identification. Even better would be if you could do different parts around the circumference, rather than just single rings.
The Toy: The whole thing is more sensitive to light touch than to heavy pressure. This is because capacitive sensing is really detecting proximity, not pressure, and the silicone tape doesn’t deform much. Also, the whole thing is really very firm, and something softer would be better for partner enjoyment. I’m going to try a silicone sheath over top of what we have. But if you are able to cast, I think a better solution would be something like a two-part casting with a rigid core covered with sensors and then a softer silicone over top. I’d also be curious about a feeldoe-style toy with the vibrators embedded in it (though you’d still need some kind of belt to hold the electronics).
The Vibrators: These are actually the biggest problem, and probably the hardest to fix. For one, it’s hard to get a good range of distinct-feeling intensity levels out of them. The slightly buzzy numb feeling was also tricky—it didn’t keep it from being fun, but it was apparently a bit disconcerting. The solution isn’t really obvious to me. I’ve poked around a lot on the web looking at how real scientists do this in TVSS systems. It looks like they involve either cool tiny little pistons or else low-current electrotactile stimulation. The former don’t seem to be available commercially. The latter I really don’t trust myself to make, at least not for such a sensitive region. Maybe there’s another solution that I’m overlooking, internet?
A smaller, but still important problem with the vibrators was keeping them in place during sustained play. Attachment to underwear worked ok, but there was slippage over time, and that affected the illusion. something that pressed firmly up against the skin would surely be better; again, my friend suggested that a feeldoe-type toy might give a more reliable result.
There is more to say, but hopefully that will be enough to get someone started. I’m happy to answer questions, and I’d really like to hear if someone makes something based on these. Thanks a ton to Kristen, both for space to publish this and for many patient conversations and encouragement. And thanks also to the internet and the maker community at large for putting so much useful information on the web!
Thanks again to Andres for sharing his work! Feel free to leave questions and comments below, or you can email Andres directly at gyna…@gmail.com .