Drmn TranceVibrator

The Drmn' Trance Vibrator is an open-source, aftermarket USB trance vibrator designed to be compatible with the (discontinued) Rez Trance Vibrator originally manufactured by ASCII Entertainment. The current version (V2) features a modular design allowing for easy attachment of different vibrators and a mini-USB interface to your computer (similar to many digital cameras). Any software written for the Rez Trance Vibrator can be used with the Drmn' Trance Vibrator and vice versa.

Whereas finding Rez Trance Vibrators for sale on-line is hit-and-miss, you can buy a Drmn Trance Vibrator from Tim's website for a mere $29.99. Solderable 2.5mm phono plugs for custom attachments are standard parts, available from the developer's site as well as from electronic component vendors such as Digi-Key. Bullet vibrators with a modular 2.5mm jack are available in various sizes from toy stores such as Blowfish.com (look under &quot;replacement bullet&quot;). The vibrator connects to the PC's USB port using a standard mini-B cable, available at most computer supply and electronics stores.



Hardware Versions and Identification
There are currently two versions of the Drmn' Trance Vibe, referred to here as V1 and V2. V1 can be identified by a triangular-shaped board with the identifier "VIBEv1r0 (Rezu)" silkscreened on the bottom side. V2 has a rectangular board with notched corners, with the revision number "v2r0" silkscreened on the top side followed by the developer's initials and the date.

The V1 was a very low-volume run, actually more of a prototype run. There are estimated to be about 30 V1s in existence. The V1 was available as a bare board or as a packaged unit with permanently-soldered vibrating bullet and USB cable. The packaged V1 board is fitted into the battery enclosure of a retail vibrator product, originally sold under brand names including California Exotic Novelties PocketExotics and Colt, whose internals (battery terminals and rheostat) were gutted and replaced with the USB board. The color of the V1's enclosure, bullet, and USB cable varied depending on availability (they were bought off the shelf at a local toy store). The V1 was originally designed to drive two bullets at once, however, testing with real bullets revealed that the USB specifications do not allow for enough power to drive two bullets at an acceptable power level. The V1 was released with the two outputs bridged together with a dot of solder across two nearby traces, driving a single bullet at full power.

The V2 design addresses several shortcomings of the V1 and provides manufacturability improvements. The output has been changed to a single transistor driving a single output, eliminating the ugly V1 bridging hack, and uses a larger drive transistor with a higher power dissipation rating. Likewise, the power handling of the bullet current-limiting resistor(s) has been doubled. The permanently-soldered bullet and USB cable of V1 have been replaced by modular connectors. The board layout and hole pattern have been redesigned around a commercially-available, easily-assembled enclosure, eliminating the dependence on a specific brand of retail vibrator that proved hard to come by in volume quantities.

The V2 bullet connection is a mini (2.5mm) phono jack (also known as a TRS connector), with the tip positive and the sleeve negative, although for a DC motor the polarity doesn't matter. The jack on the device is actually stereo; if a matching mini stereo plug is used in place of the bullet's mono plug, the center or "ring" conductor connects to a GPIO line on the microcontroller. This doesn't do anything in the current version, but with custom firmware, the user can use a stereo jack and repurpose this line for other uses. One example use would be to wire a pushbutton to allow two Internet-connected vibrators to be controlled from one another right from the vibrator.

USB Protocol
The USB communication format is identical to that used by the Rez Trance Vibrator.

Open-Source Design
The Drmn' Trance Vibe is designed to make it easy for the user to modify and extend the device for novel applications. The firmware/software and hardware design (e.g. PCB gerber files) are published on the developer's web site under the GPL; some documentary of the design and manufacturing process, assembly issues, etc., is also written up in the developer's blog. The vibe was designed using only free or low-cost tools, and nearly all possible modifications can be performed using open-source or free tools.

Bootloader
On the 2nd-generation or 'V2' hardware, a USB bootloader can be entered by shorting the terminals marked 'Boot Loader' while plugging the device in, or by holding down switch SW1 (if present) while plugging in. The bootloader, a slightly modified version of "Microchip USB Bootloader Version 1.0", is stored in a special write-protected area of the chip's Flash memory, preventing the Trance vibrator from being "bricked" by a bad firmware upload. While in Bootloader mode, the device will enumerate with USB Vendor ID of 04D8 and Product ID of 000B. New firmware can then be uploaded using the Microchip bootloader client for Windows, or compatible open-source clients such as fsusb for Linux or Xiaofan's Windows port (copy available here). After uploading new firmware, the Trance Vibrator must be rebooted by unplugging and replugging. (Alternately, a soft-reset button can be added by wiring a pushbutton between the PROGRAM-1 pad (connects to microcontroller Pin 1) and ground.)

Other Modifications
The following types of modifications to the Drmn' Trance Vibe may require non-free tools:


 * Modification of the protected bootloader block or chip Configuration Bits (i.e. changing the clock speed) requires the use of a hardware in-circuit programmer.


 * The built-in USB bootloader is built using a registered version of the Microchip C18 Compiler. If a user ever had a need to modify and build a custom bootloader based the included source, they may need this software to compile it. (The bootloader can be recompiled using the free Student Edition, but only barely fits within the chip's protected boot block due to disabled optimizations in Student Edition). Any small additions could result in exceeding this limit. If part of the bootloader were outside the protected block, uncareful programming could cause parts of a rebuilt bootloader to be overwritten, resulting in a BRICK unless the user has a hardware in-circuit programmer available.

Hardware ICSP (In-Circuit Serial Programming) Port
Both V1 and V2 devices include through-hole pads for a 5-pin ICSP connector, used for initial programming. The pinout of the ICSP port is:


 * 1) MCLR\
 * 2) (NC)
 * 3) VCC
 * 4) GND
 * 5) PGD
 * 6) PGC

Pin 1 is identified by a dot on the silkscreen or copper.

Related Links
http://tim.cexx.org/projects/vibe/ Developer's site describing the project's origins and offering devices for sale.