Sunday, April 02, 2006

The Brain Assailant

For those of you unfamiliar, Thinkgeek sells a device called the "mind molestor". the idea is simple. You hide the device in the home of someone you loathe. It then emits a beep once every 3 minutes until the battery dies or the victim burns their house down to stop the relentless beeping. Cool concept, right? Sure, but at $25 a piece its not exactly something you would want to leave behind. They dont even include a battery, But i did some figuring, and adding in a battery would just about double their manufacturing costs on the device. Thats right, This thing shouldnt cost much more than $2 to mass produce. Dare i say they mark up more than radioshack? Anyway, I *could* just get some 555's and reproduce the mind molestor at ~$3, But i wanted more. I wanted to make it more obnoxious and still keep the price at under half of what thinkgeek charges. The final design Alternates between 4 different sounds, and with a little BASIC knowledge and the Picaxe manual as your guide, you can easily add more. All this for arround $12.

I decided to use a Picaxe 08m, mainly because I already had one - Thanks Don :). Picaxe chips are inexpensive little microcontrollers that can be programmed in BASIC through a simple serial download cable. The chip we'll be using, the 08M, costs a little over $3. They kick ass. Get one today.
Because the picaxe's random number generator isnt very random, I just pre-programmed in the different beeps and times between them. Im sure that there is a better way to make it truly random, but your victim isnt going to worry about how random or pseudo random the beeps are. hes just going to get pissed off. Also, I decided to use the picaxe's "sleep" command instead of the "wait" command. The sleep command puts the device into a low power state for a specified ammount of time. the downside is that the slep command isnt very accurate. It can err like 50% to either side. But thats not exactly bad in our application, a little variance can make it harder to find.

Im not going to go into building a Picaxe download circuit, Thats covered in depth in the picaxe manual, which you can find a link to at the bottom of the page.

Ive provided the source code, as well as images of my completed device and a schematic. the schematic sucks because multisim 2001 textbook edition sucks. It has very few components so I just drew it in MSPAINT. Take that, multisim people. I dont need your stinkin' app. Il use microsoft's Schematic editor :).

I could comment on every single line of the source code, but im lazy. also, if you arent atleast somewhat familiar with BASIC, this hack probably isnt for you. I will, however explain the lines that are important to those modifying my code.

SOUND pin,(note,duration,note,duration...)
- Pin is a variable/constant (0-7) which specifies the i/o pin to use.
- Note(s) are variables/constants (0-255) which specify type and frequency.
Note 0 is silent for the duration. Notes 1-127 are ascending tones. Notes
128-255 are ascending white noises.
- Duration(s) are variables/constants (0-255) which specify duration (multiples
of approx 10ms).

SLEEP period
- Period is a variable/constant which specifies the duration of sleep in multiples
of 2.3 seconds (0-65535).

Schematic. I know that the representation for the piezo speaker is incorrect. I meant to change it later, But blogger's upload image tool is horrible. it took a good 5 tries and 20 minutes to get the current design uploaded, I wont be fixing it.

So a simple explanation.... Youve got 9v into your 7805 or equivalent voltage regulator. the regulated 5v goes into pin1 (+v) and pin8 (0v). You must also remember to tie pin 2 (serial in) to ground. then the piezo speaker is connected across ground and pin5 (out2).

Pictures!!!! ...It could be made considerably smaller than this, but i think the biggest improvement would be mounting the battery clip on its edge so that the battery is parallel with the perfboard, rather than at a 90 degree angle to it.

And a current price list. Some of the items are optional (like the DIP socket, the Perf board, and the battery clips) although you would wind up with a device you can program only once, in a big unstructured wirey mess with wires wrapped arround and taped to the battery terminals. Hell, i guess you could even leave out the 7805, although the device wouldnt work for very long, or at all. Needless to say, everything in the list is highly recommended.

ItemMy PriceStreet Price
7805Free (Rummaged)$1.59 (Radioshack)
Picaxe 08MFree (Gift)$2.98 ($8.95 for 3 at
Piezo speakerFree (Rummaged)$3.29 (Radioshack)
8-Pin DIP socket$.69$.69 (Radioshack)
Perf board$1.97$1.97 (Radioshack)
9v. Battery clipFree (Rummaged)$1.99!!! (Radioshack)
Bits of wireFreeWho TF pays for bits of wire?

9.9% of thinkgeek's price49% of thinkgeek's price

This is not counting the price of a picaxe download circuit, which would include the cost of a DB9 connector, resistors (10k and 22k) DIP socket or breadboard, battery snap, and other assorted bits of wire. The reason i didnt include this in the final price was that its not necessary after you have the software the way you want it. you can cannibalize it for parts if you want.

Okay. So i did achieve my goal of being under half of thinkgeek's price, but not by much. If you own absolutely _nothing_ in the above list, you might just be better off buying thinkgeek's model. If however, you like to DIY, and you hate waiting for shipping, and you happen to have some of the aforementioned items on hand, Make this. its fun and obnoxious, and easily customizable.


Picaxe Programming software and manual in PDF format. You must register. Gay, i know, but as far as i can tell they dont spam you. use a valid email address, because they will send you a password to unlock their programming editor.

Peter H Anderson's website. A source for picaxe chips inside the US.

Revolution Education's Picaxe catalog. I think they sell to the UK.