The Dilduino is the name for the brains of the Mod — the hardware and software that work together to get you off. Let’s take a look.

Hardware

The Dilduino is very similar to an Arduino Leonardo or Arduino LilyPad USB (or any other ATmega32u4-based Arduino). We’ve made three special additions for our version:

  • Integrated motor driving circuitry — connect your 3 vibration motors at 1+/1-, 2+/2-, 3+/3- and each is directly connected to the battery.
  • Integrated battery charging over USB.
  • On-board multiplexer for selecting between inputs. The Hacker Port on your Mod gives you regulated 3.3V power (up to 350mA) and two pins for sensor/controller communication in a standard USB port. The multiplexer acts as a switch to give you two PWM outputs, I2C/Two-Wire sensor communication, analog sensor communication and software serial communication, all on the same pins.

Dilduino Front

Color Function
Micro B USB port for charging/programming
3.3V output (350mA max) for peripherals
Hacker Port access for I2C/software serial/analog in/PWM out
#4 / 3mm mounting hole
Serial transmit status LED
External active-low button hookup
Connections for 3 vibration motors
Momentary button on/off switch
Reset button

Dilduino Back

Color Function
JST connection for single-cell Li-polymer battery
SPI interface
Serial receive status LED
User LED
Battery charge status LED
Analog inputs
Ground

Software

We have two important pieces of software for using your Mod. The first our open-source OSSex software. It’s an Arduino library that sets up all of the various inputs and outputs and has functions for storing and running vibration patterns. Release milestones are available at GitHub.

The second is the sketch loaded on your Mod, Mod Sketch. It uses OSSex to provide the patterns that come shipped with your Mod, sets the button behavior (click moves to next pattern, double-click increases intensity, etc.), creates a serial console and has the startup sequence that blips all 3 motors and flashes the LED. If you want to change how your Mod runs, this is a good place to start. Release milestones available at GitHub.

Want to get started programming your Mod? We have a how-to to guide you through the basics.

Serial console

The Mod Sketch creates a serial console that you can use to interact with or tweak your Mod without having to upload new code. Simply connect to it with a serial terminal app (such as the one built-in to the Arduino IDE, or HyperTerminal or zterm, etc.) at 9600 baud and start typing away. Below is a run-down of the commands it accepts:

  • l,x to set the LED

To set the LED to a power of 200:

l,200

To turn the LED off:

l,0
  • 0,x,1,x,2,x,-1,x,… to set a particular output (motor)

To turn all outputs on to 150:

-1,150

To turn output 2 to 220:

2,220
  • c to cycle through the patterns. This will return the current pattern number.
  • g to get the current pattern number.
  • s to stop all patterns and turn all outputs off.
  • r,x to run a particular pattern.

Run the first pattern:

r,0

You can adjust power and time settings with p,P,t, and T. All power and time adjustment commands will return the current power or time scale, with 1.0 being normal. A power scale of 1.5 means all patterns will run at 50% higher power than normal. A time scale of 0.75 means that all patterns will run 25% faster than normal.

  • p to decrease power.
  • P to increase power.
  • t to decrease pattern step time (run faster).
  • T to increase pattern step time.

Read an input:

i,0

The i command reads a given input channel on your Mod and prints that value to the console. Mods have two inputs, so i,0 and i,1 are the two options for now.

4 Responses to “The Dilduino Platform”

  1. Peter Fox

    Hi, I was wandering if you guys have an example of adding a bluetooth module to the main board?

    Also do you have any graphs on how long the battery lasts off one charge?

    Reply
    • Comingle

      Hi Peter — the bluetooth module would have to be one which supports I2C slave mode, which many do (such as this one: http://media.digikey.com/pdf/Data%20Sheets/BlueGiga%20PDFs/BLE113.pdf). It’s something that we hope to offer as an easy plugin accessory.

      We don’t have graphs about battery life because it’s just very much going to depend on usage (and the type of battery you have connected, if you’re running your own Dilduino board). To give some perspective though, we’re using 875mAh batteries in the Mod and the motors that we’re using draw about 250-300mA at full power. Power draw from the microcontroller is negligible in comparison, so we would expect the Mod to last roughly an hour with all 3 motors running at full bore.

      This is not necessarily the type of usage that is common though — running all 3 motors at max power is a pretty intense session.

      We have regularly have several hours of use from the Mod before it needs charging. There is also the issue of external devices: you can draw power through the hacker port, and that is going to influence battery life as well.

      Reply
  2. Billy Kirkpatrick

    Is it possible to ‘brick’ the Mod. I recently received my device and uploaded a custom sketch from the Chrome plugin. Now I am unable to turn on the device. Please help!

    Reply
    • Comingle

      Hi Billy — we have never found a way to brick the Mod but it’s definitely possible to upload code to it that doesn’t work.

      The basic way to fix it is press the reset button twice on your Mod and the LED will start flashing. At this point you can upload a new sketch to the toy. The LED will only flash for 8 seconds, however, you it might require a bit of timing to get it right.

      If you wish to do this from the Modify app, there is an option for “My toy isn’t here” in the dropdown where you select what port your toy is connected to. From there, it will take you to a Restore page that will have instructions on getting your Mod back to a plain state.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *


nine − 5 =

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>