This section assumes more familiarity with programming. You will want to be somewhat familiar with data types, variable scope, arrays, and pointers to get the most out of this section.
At some point, you’ll probably want to get a bit more creative than simply turning a motor on/off over and over again. The OS Sex library has a few features to help you make more intricate vibration patterns.
When we talk about a pattern, we’re just talking about a series of steps. Each step describes:
- Which output/motor you want
- What power level you want (generally 0-255, with 0 being off)
- How long the step should run (in milliseconds)
Our pattern from the Getting Started how-to would look like:
This will set output 0 to a power of 200, then run the next step after 500 milliseconds have passed. Then it will set output 0 to 0 (off), and be finished after 500 milliseconds have passed (at which point you could start it again)
You should use
runPattern() instead of
delay() because although
delay() is nice for quick-and-easy testing, it blocks all other code from running. If you have a
delay(10000) in your code, your toy is going to be locked up for 2 seconds or 10 seconds while that
delay() is running. If you need to press a button or get a sensor reading during that time, you won’t be able to.
runPattern() is able to keep track of time without stopping other things from running.
runPattern() also lets you run long, repeating patterns without cluttering your
If your pattern is compatible with
runPattern() then it is also compatible with
addPattern(), which lets you add your pattern in to the queue of patterns that is available when pressing the button.
Read more »
Our Multivibes run our open-source OS Sex software, giving you complete control over how your toy behaves and responds.
Interested in hacking your sex toy? Read on for our Getting Started guide and also check out our Gallery for examples of cool hacks that others have made.
First things first
If you’re interested in programming but have never done it before, the first thing to know is don’t be intimidated. You can do it.
Plus, we live in an era where you can talk to almost anyone on Earth any time you want. There are lots of people out there (starting with us here at Comingle) that want to help you. So don’t sweat it!
Your Multivibe runs on an Arduino. An Arduino is basically a small computer that can be easily programmed and adapted for a variety of purposes, such as making a pollution detector, a biking jacket with visible turn signals, a way for plants to tweet when they need water, and of course sex toys.
What makes Arduino fun to use is that it’s very simple and you can easily manipulate its inputs and outputs.
Inputs are how you talk to the Arduino. Touch screens, heart-rate monitors, microphones, buttons, keyboards, brainwave helmets, etc. are all inputs.
Outputs are how the Arduino talks to you. In the case of your Multivibe, the outputs are the vibrating motors — the Arduino controls when they turn on and at what intensity.
So you could think of your software (and programming in general) as just directing what to do with the inputs and outputs:
- “If I press this button, turn all the motors on. If I press it again, turn them off.”
- “If my heartrate is 60 beats per minute or less, don’t do anything. If it’s between 61 and 90 beats per minute turn the first motor on. If it’s greater than 90 beats per minute, also turn the second motor on.”
- “Listen to the microphone, and vibrate to the beat of the music.”
Read more »
Here’s some of our Utility codes for diagnosing and using current and upcoming devices.
(Initial Tests of Codebender Embedding)
If you want to just make sure your Lilypad Arduino is correctly outputting on all its output ports.
Electric Eel Sample Code
Simple codes to get the Electric Eel up and running
Andy developed the Electric Eel at the Fall 2013 Penn Apps Hackathon. It is primarily intended for use with male body-parts. The shape of this device could be easily modified for use with other sensitive body parts of other sexes too. Just use your imagination!
Read more »
Comingle works to develop DIY open-source sex technology. Our goal is to document and share designs for hacking existing devices as well as providing parts and kits for building new forms of sex toys. The mission of our work is to promote sexual empowerment through physical computing, education, and outreach.
Technologically, we focus on developing:
- novel, embodied means of interaction
- new modes of stimulation, and
- methods for safely building and modding sex toys yourself.
Currently we are in our initial phase of research and development. We are developing new types of devices as well as holding workshops for evaluation and outreach. If you would like to know more about our endeavors at this early stage, please contact us at: info|at|comingle.io, or subscribe to our mailing list!