<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Hack a Day &#187; loganwilliams</title>
	<atom:link href="http://hackaday.com/author/loganwilliams/feed/" rel="self" type="application/rss+xml" />
	<link>http://hackaday.com</link>
	<description>Fresh hacks every day</description>
	<lastBuildDate>Tue, 24 Nov 2009 19:06:31 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='hackaday.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/5560f98f805877b0e332f191cb9e0af3?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Hack a Day &#187; loganwilliams</title>
		<link>http://hackaday.com</link>
	</image>
			<item>
		<title>How-To: Hack a ThingamaKIT</title>
		<link>http://hackaday.com/2008/08/19/how-to-hack-a-thingamakit/</link>
		<comments>http://hackaday.com/2008/08/19/how-to-hack-a-thingamakit/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 01:30:00 +0000</pubDate>
		<dc:creator>loganwilliams</dc:creator>
				<category><![CDATA[digital audio hacks]]></category>
		<category><![CDATA[home entertainment hacks]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[bleeplabs]]></category>
		<category><![CDATA[circuitbending]]></category>
		<category><![CDATA[circuitbent]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[photoresistor]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[thingamagoop]]></category>
		<category><![CDATA[thingamakit]]></category>

		<guid isPermaLink="false">http://hackaday.iheartcashews.com:8181/2008/08/19/how-to-hack-a-thingamakit/</guid>
		<description><![CDATA[
The ThingamaKIT is an anthropomorphic analog synthesizer kit from Bleep Labs. Using &#8220;LEDacles&#8221;, photoresistors, knobs, and switches, it generates interesting high pitched vocalizations. Bleep Labs sent us a review unit and this article shares our experiences building and using the kit. We&#8217;ve also included a tutorial on making some hacks, modifications, and circuit bends to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&blog=4779443&post=2470&subd=hackadaycom&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div align="left"><img width="450" vspace="4" hspace="4" height="303" border="0" alt="" src="http://hackadaycom.files.wordpress.com/2008/08/header.jpg?w=450&#038;h=303" /></div>
<p>The <a href="http://bleeplabs.com/thingamakit/">ThingamaKIT</a> is an anthropomorphic analog synthesizer kit from <a href="http://bleeplabs.com/">Bleep Labs</a>. Using &#8220;LEDacles&#8221;, photoresistors, knobs, and switches, it generates interesting high pitched vocalizations. Bleep Labs sent us a review unit and this article shares our experiences building and using the kit. We&#8217;ve also included a tutorial on making some hacks, modifications, and circuit bends to it. Skip to the end to see a video of our hacked kit in action.</p>
<p><span id="more-2470"></span></p>
<h2>Using the ThingamaKIT</h2>
<p>While it may not be that useful for serious musical composition, the ThingamaKIT makes some nice bleeps and blips, even without modification.The LED to photoresistor input/feedback method is enjoyable to play with, by repointing the LEDacles and waving hands around the photoresistor. The ThingamaKIT is very easy to start using; just twiddle knobs, and it starts making its characteristic ridiculous sounds.</p>
<p>The ThingamaKIT is an simple but fun circuit, and <a href="http://bleeplabs.com/thingamakit/extra-2/">schematics</a> are provided. Three Schmitt trigger oscillators, like the ones used in the <a href="http://www.hackaday.com/2008/05/01/how-to-make-a-digital-synthesizer/">previous Hack a Day synth article</a> are used to control the first LEDacle. Because they have different frequencies, the LEDacle blinks in an interesting manner. A Schmitt trigger and op amp generate a triangle wave for the other LEDacle, with controllable waveshape and speed. Another Schmitt trigger generates the modulating wave, with a frequency based on either Photocell 2 or a potentiometer. The main oscillator, the XR2206, has a pitch controlled by Photocell 1, except when the output from the modulation is high, then it switches to a different pitch.</p>
<p><object width="450" height="364"><param name="movie" value="http://www.youtube.com/v/vIiqGVKPgPE&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/vIiqGVKPgPE&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999" type="application/x-shockwave-flash" allowfullscreen="true" width="450" height="364"></embed></object><br />Embedded above is Bleep Labs official demo video.</p>
<h2>Building the ThingamaKIT</h2>
<p><object width="450" height="338"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id=1370175&amp;server=www.vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=23C50B&amp;fullscreen=1" /><embed src="http://www.vimeo.com/moogaloop.swf?clip_id=1370175&amp;server=www.vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=23C50B&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="450" height="338"></embed></object><br />The instructions for building the ThingamaKIT are printed well and easy to follow. [Surachai]&#8217;s build time lapse, shown above, gives a nice overview of the process. We had no problem finding components and soldering them to the board. Though troubleshooting instructions are provided in the manual, our device worked fine, and we did not need them.</p>
<p>If you are assembling the ThingamaKIT with the intent to hack it as shown in the rest of this article, there are a couple things you should do differently than shown in the instructions.</p>
<ul>
<li>Cut the 4&#8221; wires a little longer, closer to 6&#8221;. You&#8217;ll need the extra length when fitting components.</li>
<li>Do not install the waveshape switch, unless you want to test the default ThingamaKIT unit without modifications.</li>
<li>Do not proceed to the casing steps until you have made modifications.</li>
</ul>
<p><img width="450" vspace="4" hspace="4" height="347" border="0" id="img2" src="http://hackadaycom.files.wordpress.com/2008/08/board.jpg?w=450&#038;h=347" alt="" /></p>
<h2>Hacking the ThingamaKIT</h2>
<p>Bleep Labs has designed the ThingamaKIT to be easily <a href="http://en.wikipedia.org/wiki/Circuit_bending">circuit bendable</a>, and there are many fun hacks that can be done with this unit. A few are briefly presented in the extra information given with the kit. While playing around with it and assembling it, we also discovered several more. We&#8217;ll show you a few different hacks and circuit bends that you can do with an assembled ThingamaKIT.</p>
<h2>Adding an audio input</h2>
<p>Our favorite hack for the ThingamaKIT is to add an audio input. The ThingamaKIT will completely warp any audio input, crushing it to lo-fi fuzz and crunches. Here is its emotional rendition of The Police&#8217;s &#8220;Every Breath You Take&#8221;:</p>
<p><embed width="450" height="27" type="application/x-shockwave-flash" src="http://www.google.com/reader/ui/3247397568-audio-player.swf?audioUrl=http://blog.mahalo.com/hackaday/howto/ThingamaKIT_sample.mp3" allowscriptaccess="never" quality="best" bgcolor="#ffffff" wmode="window" flashvars="playerMode=embedded"></embed><img width="450" vspace="4" hspace="4" height="285" border="0" src="http://hackadaycom.files.wordpress.com/2008/08/input_1.jpg?w=450&#038;h=285" id="img3" alt="" /><br />To do this, you&#8217;ll need a 3.5mm audio jack, like the kind used in the <a href="http://www.hackaday.com/2008/05/01/how-to-make-a-digital-synthesizer/">previous synthesizer how-to article</a> and a SPDT (three way) switch. Solder a wire to the signal lug and a wire to the ground lug on the jack. Then, solder the signal wire (the blue wire) to the left hand pad of the .01 uF capacitor, which is outlined above in red. Our solder joints look like a warzone, but it all works. We swear.</p>
<p><img width="450" vspace="4" hspace="4" height="267" border="0" src="http://hackadaycom.files.wordpress.com/2008/08/input_2.jpg?w=450&#038;h=267" id="img4" alt="" /><br />There are two places the ground wire can be soldered, and each has a different sound; we installed a switch so that both could be used. Solder the ground wire to the center lug on the SPDT switch. Solder one of the outside lugs to the board&#8217;s ground, and another to the other pin of the .01 uF capacitor, as outlined in red above.</p>
<p>To use the audio input, flip the SPDT switch to either outside position, then patch some audio to the input. Music, drum machines, other synthesizers and more all work to make an interesting sound.</p>
<h2>Adding a waveshaper knob</h2>
<p>In its default configuration, the ThingamaKIT only has a switch to select between triangle and square wave main oscillators. By replacing this knob with a potentiometer, you can transition smoothly between the two waveforms. However, there will be a significant attenuation (decrease in volume) when the potentiometer is near its center, as both outputs will have increased impedance. This is not easily corrected, except with active amplification, or a dual potentiometer with two different tapers, which we have been unable to find.</p>
<p><img width="450" vspace="4" hspace="4" height="300" border="0" src="http://hackadaycom.files.wordpress.com/2008/08/knob_1.jpg?w=450&#038;h=300" id="img5" alt="" /><br />To do this mod, you first need to remove the waveshape switch if you have already attached it. The easiest way to remove it is with a <a href="http://www.radioshack.com/product/index.jsp?productId=2062731&amp;cp=&amp;sr=1">desoldering iron</a>. Simply squeeze the bulb, place the hot iron over each pad (pads to remove are outlined in red on the image above), and release the bulb. Do this for each pad until all solder is removed, then remove the switch. Keep the switch, as it will be useful if you want to do the sine wave hack.</p>
<p><img width="450" vspace="4" hspace="4" height="288" border="0" src="http://hackadaycom.files.wordpress.com/2008/08/knob_2.jpg?w=450&#038;h=288" id="img6" alt="" /><br />Next, solder three wires to a 10K potentiometer, such as the one pictured above. The red wire goes to the middle lug, and the other two go to either end on the board. </p>
<p><img width="450" vspace="4" hspace="4" height="300" border="0" src="http://hackadaycom.files.wordpress.com/2008/08/knob_3.jpg?w=450&#038;h=300" id="img7" alt="" /><br />The waveshaper knob is complete, and you can now easily fade between square and triangle waves.</p>
<h2>Adding a sine wave switch</h2>
<p>While reading the <a href="https://www.jameco.com/Jameco/Products/ProdDS/34972.pdf">datasheet</a> (PDF) for the XR2206, the signal generator that the ThingamaKIT uses, we noticed a very easy way to change the triangle wave output into a sine wave, which has a softer sound.</p>
<p><img width="450" vspace="4" hspace="4" height="225" border="0" src="http://hackadaycom.files.wordpress.com/2008/08/sine_1.jpg?w=450&#038;h=225" id="img8" alt="" /><br />If you are doing this with the waveshaper hack above, start by taking the old switch, and removing one lug from its side. Then bend the other two down slightly, as shown. This will allow the switch to fit where the old one did on the panel, without being in contact with the board. Solder two short wires to the remaining lugs. Then, stick a piece of electrical tape over the top of the pads on the board where the potentiometer is now wired, and put the switch there, using a bit of hot glue to hold it in place.</p>
<p><img width="450" vspace="4" hspace="4" height="257" border="0" src="http://hackadaycom.files.wordpress.com/2008/08/sine_2.jpg?w=450&#038;h=257" id="img9" alt="" /><br />To one wire, solder a 220 ohm resistor inline; an extra is helpfully provided in the kit. Wrap the resistor in electrical tape to cover the exposed leads, then solder the two wire ends to pins 13 and 14 of the XR2206 as outlined in red above. The sine wave mod is complete!</p>
<p><img width="450" vspace="4" hspace="4" height="300" border="0" src="http://hackadaycom.files.wordpress.com/2008/08/sine_3.jpg?w=450&#038;h=300" id="img10" alt="" /></p>
<h2>Adding a spike wave switch</h2>
<p><img width="450" vspace="4" hspace="4" height="300" border="0" src="http://hackadaycom.files.wordpress.com/2008/08/spike_1.jpg?w=450&#038;h=300" id="img11" alt="" /><br />Another bend we found while poking around in the unit caused the main oscillator to create a &#8220;spike&#8221; waveform. It produces a nice lo-fi, glitchy sound. To add this bend, take any normal SPST (two way on-off switch) and solder a wire to each lug.</p>
<p><img width="450" vspace="4" hspace="4" height="300" border="0" src="http://hackadaycom.files.wordpress.com/2008/08/spike_2.jpg?w=450&#038;h=300" id="img12" alt="" /><br /> Then, connect it to pins 8 and 6 on the XR2206, as outlined in red. The spike wave mod is done.</p>
<h2>Packaging it all up</h2>
<p>To finish up our ThingamaKIT, we followed the instructions provided with the kit, but with a few modifications. A couple of extra holes had to be drilled for the new potentiometer (5/16&#8221;), the spike wave switch (5/16&#8221;), and the audio input (1/4&#8221;).</p>
<p><img width="450" vspace="4" hspace="4" height="300" border="0" src="http://hackadaycom.files.wordpress.com/2008/08/case_1.jpg?w=450&#038;h=300" id="img1" alt="" /><br />We had some difficulty getting all of the new components fitted into the case, but with some rearranging we managed. Be sure not to push the photoresistors up higher on the face then is shown on the drill jig, or you will have trouble fitting them around the LEDacles. The volume potentiometer was also mounted a little low, and we had to put the speaker toward the controls side rather then the LEDacle side of the case to fit it in.</p>
<p><img width="450" vspace="4" hspace="4" height="675" border="0" src="http://hackadaycom.files.wordpress.com/2008/08/case_2.jpg?w=450&#038;h=675" id="img2" alt="" /><br />Check out the demo video below to see our glorious leader in action.</p>
<p><object type="application/x-shockwave-flash" width="450" height="338" data="http://www.flickr.com/apps/video/stewart.swf?v=58825" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="flashvars" value="intl_lang=en-us&amp;photo_secret=97e4947114&amp;photo_id=2752387990"></param><param name="movie" value="http://www.flickr.com/apps/video/stewart.swf?v=58825"></param><param name="bgcolor" value="#000000"></param><param name="allowFullScreen" value="true"></param><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/video/stewart.swf?v=58825" bgcolor="#000000" allowfullscreen="true" flashvars="intl_lang=en-us&amp;photo_secret=97e4947114&amp;photo_id=2752387990" height="338" width="450"></embed></object> </p>
<h2>Further hacks</h2>
<p>To hack your ThingamaKIT further, Dr. Bleep has some <a href="http://bleeplabs.com/thingamakit/extra-2/">recommendations</a> in the manual: using the extra oscillators on the board to add effects, replacing the variable photocells with resistors and buttons to make a keyboard, making a patchbay, and getting complete control over LEDacle 1 with potentiometers.</p>
<p>That concludes our ThingamaKIT hacking. Have any of you built one? To see other custom ThingamaKITs, check out the <a href="http://www.flickr.com/groups/772348@N24/">Flickr group</a>.<br /><script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hackadaycom.wordpress.com/2470/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hackadaycom.wordpress.com/2470/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/2470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/2470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/2470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/2470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/2470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/2470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/2470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/2470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/2470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/2470/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&blog=4779443&post=2470&subd=hackadaycom&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2008/08/19/how-to-hack-a-thingamakit/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">loganwilliams</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2008/08/header.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/08/board.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/08/input_1.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/08/input_2.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/08/knob_1.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/08/knob_2.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/08/knob_3.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/08/sine_1.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/08/sine_2.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/08/sine_3.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/08/spike_1.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/08/spike_2.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/08/case_1.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/08/case_2.jpg" medium="image" />
	</item>
		<item>
		<title>How-To: Expand your camera with CHDK</title>
		<link>http://hackaday.com/2008/05/27/how-to-expand-your-camera-with-chdk/</link>
		<comments>http://hackaday.com/2008/05/27/how-to-expand-your-camera-with-chdk/#comments</comments>
		<pubDate>Tue, 27 May 2008 18:00:00 +0000</pubDate>
		<dc:creator>loganwilliams</dc:creator>
				<category><![CDATA[digital cameras hacks]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[camera]]></category>
		<category><![CDATA[canon]]></category>
		<category><![CDATA[chdk]]></category>
		<category><![CDATA[digicam]]></category>
		<category><![CDATA[digitalcamera]]></category>
		<category><![CDATA[dslr]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[hdr]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[intervalometer]]></category>
		<category><![CDATA[lifehacker]]></category>
		<category><![CDATA[pointandshoot]]></category>
		<category><![CDATA[powershot]]></category>
		<category><![CDATA[timelapse]]></category>

		<guid isPermaLink="false">http://hackaday.iheartcashews.com:8181/2008/05/27/how-to-expand-your-camera-with-chdk/</guid>
		<description><![CDATA[
As anyone who has lusted over the technical specifications for Canon&#8217;s new Digital Rebel XSi knows, the capabilities of the average point and shoot camera are severely limited. Using the CHDK firmware hack, the features of Canon point and shoot cameras can be significantly expanded, allowing for ultra-high speed photography, very long exposures, time lapse [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&blog=4779443&post=1883&subd=hackadaycom&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="450" height="338" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="flashvars" value="intl_lang=en-us&amp;photo_secret=32caf6d56b&amp;photo_id=2492006969" /><param name="bgcolor" value="#000000" /><param name="allowFullScreen" value="true" /><param name="src" value="http://www.flickr.com/apps/video/stewart.swf?v=49235" /><embed type="application/x-shockwave-flash" width="450" height="338" src="http://www.flickr.com/apps/video/stewart.swf?v=49235" allowfullscreen="true" bgcolor="#000000" flashvars="intl_lang=en-us&amp;photo_secret=32caf6d56b&amp;photo_id=2492006969"></embed></object></p>
<p>As anyone who has lusted over the technical specifications for Canon&#8217;s new <a href="http://www.mahalo.com/Canon_EOS_Rebel_XSi_DSLR">Digital Rebel XSi</a> knows, the capabilities of the average point and shoot camera are severely limited. Using the <a href="http://chdk.wikia.com/wiki/Main_Page">CHDK firmware hack</a>, the features of Canon point and shoot cameras can be significantly expanded, allowing for ultra-high speed photography, very long exposures, time lapse photography, and RAW capture. This How-To provides a guide to our experiences using the CHDK firmware, and shows just how easy it is to get more out of a point and shoot than ever thought possible.</p>
<p><span id="more-1883"></span></p>
<h2>Installing CHDK</h2>
<p>The first step is to install the CHDK software. Our friends at Lifehacker <a href="http://lifehacker.com/387380/turn-your-point+and+shoot-into-a-super+camera">recently ran an article covering exactly that</a>, so we won&#8217;t bother repeating the instructions. Be sure to install the Allbest build, it has all of the nice features.</p>
<p>After installing, you&#8217;ll want to have the firmware autoload when you boot up your camera. To do so, open up the main CHDK menu by pressing your ALT button, then the MENU button. Scroll down to &#8220;Debug parameters&#8221;, then click on &#8220;Make card bootable&#8230;&#8221; After it is done, turn off your camera, remove the SD card, and toggle the write protect switch. When this switch is toggled, the camera will automatically boot into CHDK (you&#8217;ll still be writing to it).</p>
<h2>Taking long exposures</h2>
<p>Long exposure photography is appreciated for its soft, sometimes surreal images of (usually) night scenes. Many point and shoot cameras only allow exposures of 15 seconds, but with CHDK, you can take photos at up to 64 seconds.</p>
<p><img src="http://hackadaycom.files.wordpress.com/2008/05/sss_example.jpg" border="0" alt="" hspace="4" vspace="4" /></p>
<p>Navigate to CHDK&#8217;s main menu and find Extra Photo Operations. In Extra Photo Operations, change the Override Shutter Speed value to the shutter speed you wish to shoot at, such as 64 seconds. Scroll down and change the Value Factor from OFF to 1.</p>
<p><img src="http://hackadaycom.files.wordpress.com/2008/05/sss_menu.jpg" border="0" alt="" hspace="4" vspace="4" /></p>
<p>Though the camera will not indicate the modified shutter speed, the changes will take place. Just take a picture as you normally would. Be sure to have your camera set to manual mode. Taking photos of moving things works best for long exposures: try subjects like the ocean, windy trees, and traffic. Additionally, using <a href="http://www.cs.mtu.edu/~shene/DigiCam/User-Guide/filter/filter-ND.html">neutral density filters</a>, you can even take long exposures in the day time!</p>
<h2>Taking ultra-fast exposures</h2>
<p><img src="http://hackadaycom.files.wordpress.com/2008/05/fss_example.jpg" border="0" alt="" hspace="4" vspace="4" /></p>
<p>Just as you can override the shutter speed for long exposures, you can take ultra-fast exposures as well, at up to 1/100,000 of a second with some cameras. Flash will sync at up to 1/60,000 of a second, and you&#8217;ll need flash with such short exposures. We were unsure how useful or easy this would be to use, but the results surprised us: in just a few minutes we were able to capture nice looking water droplets, without a hint of motion blur.</p>
<p><img src="http://hackadaycom.files.wordpress.com/2008/05/fss_menu.jpg" border="0" alt="" hspace="4" vspace="4" /></p>
<p>Navigate to CHDK&#8217;s main menu and find Extra Photo Operations. In Extra Photo Operations, change the Override Shutter Speed value to the shutter speed you wish to shoot at, such as 1/16,000 of a second. Scroll down and change the Value Factor from OFF to 1. Be sure to have your camera set to manual mode.</p>
<p>Note that the minimum shutter speed is restricted by the aperture value you have selected in the camera&#8217;s manual settings. The wide end (lower numbers), can usually only shoot at down to 1/8000 of a second, while the narrower end (higher numbers) can shoot for the full range.</p>
<p>Prefocus before taking the picture, either by using manual focus mode, or by holding the shutter button halfway down. Though the camera will not indicate the modified shutter speed, it will use the short shutter speed. There are many different things that can be done with high speed photography: capture water droplets, capture explosions, or even capture a bullet leaving a gun. All of these are possible with CHDK.</p>
<h2>Running scripts</h2>
<p>The real power in CHDK comes from running user made scripts. The first script we will look at is an intervalometer, which allows you to take many photos over a period of time. We used it to easily create a time-lapse video.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="450" height="338" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="flashvars" value="intl_lang=en-us&amp;photo_secret=32caf6d56b&amp;photo_id=2492006969" /><param name="bgcolor" value="#000000" /><param name="allowFullScreen" value="true" /><param name="src" value="http://www.flickr.com/apps/video/stewart.swf?v=49235" /><embed type="application/x-shockwave-flash" width="450" height="338" src="http://www.flickr.com/apps/video/stewart.swf?v=49235" allowfullscreen="true" bgcolor="#000000" flashvars="intl_lang=en-us&amp;photo_secret=32caf6d56b&amp;photo_id=2492006969"></embed></object></p>
<p>Copy and paste <a href="http://chdk.wikia.com/wiki/UBASIC/Scripts:_Ultra_Intervalometer">this script</a> into a new document, and save as ult_intrvl.bas to your computer. Then, plug in your camera&#8217;s SD card, and copy ult_intrvl.bas to /CHDK/SCRIPTS/.</p>
<p>To use the intervalometer, navigate to the main CHDK menu, find &#8220;Scripting parameters&#8221;, and click &#8220;Load script from file&#8221;. Find ult_intrvl.bas, and press set. Then, scroll down and adjust the script parameters: the delay until the first shot is taken, the number of shots you wish to take, the interval between each shot, and whether or not you want it to take an &#8220;endless&#8221; number of photos. Then, exit the menu, but leave your camera in ALT mode, and press the shutter button to start the script.</p>
<p>The video above was created by taking approximately 700 shots at 15 second intervals over 2 hours and 45 minutes. Just set your camera on a tripod or another steady surface, and start the intervalometer. Using QuickTime Pro, go to File&gt;Open Image Sequence to convert the hundreds of separate images into a movie. For space and processing considerations, we recommend setting your camera to a low-resolution mode before starting the intervalometer.</p>
<h2>Exposure bracketing</h2>
<p><img src="http://hackadaycom.files.wordpress.com/2008/05/exbrack_ex2.jpg" border="0" alt="" hspace="4" vspace="4" /></p>
<p>Exposure bracketing allows you to take many pictures at slightly different exposures nearly simultaneously. You  can use this to correct errors in the camera&#8217;s autoexposure, or merge exposures for <a href="http://www.flickr.com/groups/hdr/discuss/40580/">HDR photography</a>. Many higher end Canon PowerShot&#8217;s have exposure bracketing built in, but for those that don&#8217;t, CHDK has the answer.</p>
<p>Like with the intervalometer script, simply copy and paste <a href="http://chdk.wikia.com/wiki/UBASIC/Scripts:_Bracketing_and_EV_correction">this</a> script into a new text file. Name it bracketing.bas, and place it in the /CHDK/SCRIPTS/ folder of your SD card.</p>
<p>Then navigate to the main CHDK menu, find &#8220;Scripting parameters&#8221;, and click &#8220;Load script from file&#8221;. Find bracketing.bas, and press set. Then, scroll down and adjust the script parameters. The step size is the difference between each image taken, in 1/3 EV steps, the correction is the EV of the middle image taken. The only slightly tricky part here is that first parameter is the (number of images &#8211; 1)/2. This means that if you want three pictures, it must be 1, five is 2, seven is 3, and so on. To run the script, exit the menu, leave the camera in alt mode, and press the shutter button.</p>
<p><img src="http://hackadaycom.files.wordpress.com/2008/05/exbrack_example.jpg" border="0" alt="" hspace="4" vspace="4" /></p>
<p>With these different exposures, you can create HDR tone-mapped images, that show very bright and very dark regions exposed properly. For example, taking the seven different images of the lighthouse above into an HDR program such as <a href="http://www.hdrsoft.com/">Photomatix</a>, optimizing settings for realism, produces this result:</p>
<p><img src="http://hackadaycom.files.wordpress.com/2008/05/hdr_ex1.jpg" border="0" alt="" hspace="4" vspace="4" /></p>
<p>You can also use HDR to produce more dramatic photos, such as this train. It is all in how you process the images.</p>
<p><img src="http://hackadaycom.files.wordpress.com/2008/05/hdr_ex2.jpg" border="0" alt="" hspace="4" vspace="4" /></p>
<p>There is a lot that can be done with HDR, from <a href="http://flickr.com/photos/stuckincustoms/2351246463/">extremely vibrant photos</a>, to the scarily surreal, such as this one  below from <a href="http://flickr.com/photos/extranoise/278465198/">Till Krech</a>.</p>
<p><img src="http://hackadaycom.files.wordpress.com/2008/05/hdr_ex3.jpg" border="0" alt="" hspace="4" vspace="4" />..</p>
<p>For more information on HDR photography, Stuck In Customs has an <a href="http://stuckincustoms.com/2006/06/06/548/">excellent tutorial</a>.</p>
<h2>Taking RAW photos</h2>
<p><img src="http://hackadaycom.files.wordpress.com/2008/05/raw_example.jpg" border="0" alt="" hspace="4" vspace="4" /></p>
<p>RAW photos can be extremely useful to digital photographer. They enable you to extract more information from bright highlights in an image, and RAW gives the you complete control over white balance. For example, in the above photo the JPG had an incorrect white balance, which was easily corrected using the RAW image. While DSLRs offer 12 bits of data in RAWs, most point and shoot cameras can only provide 10, meaning that even with CHDK, you won&#8217;t be able to extract as much information from highlights as you could with a DSLR. Still, RAWs are very useful for having precise white balance control.</p>
<p><img src="http://hackadaycom.files.wordpress.com/2008/05/raw_menu.jpg" border="0" alt="" hspace="4" vspace="4" /></p>
<p>In the Raw Parameters menu, enable &#8220;Save RAW&#8221;, and adjust the other parameters as shown. Now, you can take photos as normal, and a RAW will be automatically saved with your JPG. The RAW file will take quite a bit a more space than the standard JPG, so your camera will not be able to correctly display remaining space on the SD card.</p>
<h3>Processing RAW photos</h3>
<p>To process your RAW photos, you&#8217;ll need to convert them to the Digital Negative format, DNG. The <a href="http://dng4ps2.chat.ru/index_en.html">DNG4PS-2</a> software can do this for these cameras: A610, A620, A630, A640, A710 IS, S2 IS, S3 IS, A700, G7, A560, A570 IS, IXUS 700, IXUS 70, IXUS 800, A720 IS, S5 IS, IXUS 950, A650 IS, A460, SD800 IS, A530, A540. You can also process the files using <a href="http://ufraw.sourceforge.net/">UFRaw</a> or <a href="http://www.cybercom.net/~dcoffin/dcraw/">dcraw</a>, though that is much more difficult.</p>
<p><img src="http://hackadaycom.files.wordpress.com/2008/05/dng4ps2.png" border="0" alt="" hspace="4" vspace="4" /></p>
<p>Open DNG4PS-2, then go to settings. Adjust the model settings based on how many megapixels your camera is. Next, press OK, and find the path to RAW files option. This is not the location of the file that you wish to convert, but the folder that contains the files. When you have selected the correct folder, press &#8220;Convert&#8221;.</p>
<p>The DNGs will be in a folder marked with today&#8217;s date, and from there, you can process them in Lightroom, Aperture, Photoshop, or whichever RAW processing software you prefer.</p>
<p><img src="http://hackadaycom.files.wordpress.com/2008/05/photoshop_process.png" border="0" alt="" hspace="4" vspace="4" /></p>
<h2>Adding a battery meter</h2>
<p>Tired of have the low battery warning sneak up on you? CHDK can add a battery meter to your camera, though the configuration depends on what type of camera you have.</p>
<p><img src="http://hackadaycom.files.wordpress.com/2008/05/osd_menu.jpg" border="0" alt="" hspace="4" vspace="4" /></p>
<p>To enable it, go to OSD parameters in the main menu, then to Battery. Edit the parameters so that they are as they appear above, if you have a camera with 4 AA rechargeable batteries. Cameras with 2 AA rechargeable batteries should be about half of that. For other power sources, experiment to find the best value.</p>
<h2>Writing your own scripts</h2>
<p>CHDK uses a very simple BASIC-like language called UBASIC. It has all of the features that one would expect from any language, but there are many camera specific features.</p>
<h3>Input/output</h3>
<p>Each script begins with a special header, that provides information and control to the user.</p>
<p><code> @title Intervalometer</p>
<p>@param a Number of shots</p>
<p>@default a 10</p>
<p>@param b Interval (Minutes)</p>
<p>@default b 1</p>
<p></code></p>
<p>In this header, the title of the script is declared, as are two user adjustable parameters. The syntax is simple: <code>@title</code> declares a title, <code>@param par</code> declares the name and label of a parameter, and <code>@default [par]</code> declares the default value of a parameter. Scripts can only receive input through the header, at the beginning of their execution.</p>
<p>To output information to the user, the <code>print</code> command is used: <code>print "Num shots: ", a</code> will print the number of shots, as inputted in the script header. Note the use of the comma to seperate text from variables. The <code>print</code> command is limited to 25 characters of text. To clear what has been printed, use the <code>cls</code> command.</p>
<h3>Standard program flow</h3>
<p><code>let a = 2</p>
<p>for x=1 to 10</p>
<p><span style="margin-left: 15px;">gosub "display"</span></p>
<p>next x</code></p>
<p>:display</p>
<p><span style="margin-left: 15px;">rem print even numbers</span></p>
<p><span style="margin-left: 15px;">if x % a = 0 then print x</span></p>
<p>return</p>
<p>This block of code demonstrates many of the logic features of the UBASIC language. To assign values to variables, use the <code>let</code> command. You can also see a <code>for</code> loop and a subroutine. Note the use of the <code>rem</code> command to insert comments, and the single line <code>if</code> statement. UBASIC supports most standard mathematical comparisons, including <code>+, -, *, /, %, &lt;, &gt;, =, &lt;=, &gt;=, &lt;&gt; </code>(not equal to)<code>, &amp;, |, ^</code> (xor).</p>
<h3>Camera control</h3>
<p>The meat of UBASIC is in its many commands for controlling the camera:</p>
<dl>
<dt style="font-weight: bold;"><code>shoot</code></dt>
<dd style="margin-left: 15px;">Takes a photo</dd>
<dt style="font-weight: bold;"><code>click<code>/<code>press<code>/<code>release "button"</code> </code></code></code></code></dt>
<dd style="margin-left: 15px;">Clicks (press and release), presses, or releases on the cameras buttons. The following are available: <code>up, down, left, right, set, shoot_half</code> (depresses the shutter halfway)<code>, shoot_full, zoom_in, zoom_out, menu, display, print, erase, iso, flash, mf</code> (manual focus)<code>, macro, video, timer</code>.</dd>
<dt style="font-weight: bold;"><code>wait_click <em>timeout</em></code></dt>
<dd style="margin-left: 15px;">Waits for a button to be pressed, then continues. The timeout value is optional.</dd>
<dt style="font-weight: bold;"><code>is_key x "button"</code></dt>
<dd style="margin-left: 15px;">Immediately follows a <code>wait_click</code> command. If the last button pressed is <code>"button"</code>, then the variable x is set with the value of 1. If <code>wait_click</code> timed out, then <code>"no_key"</code> is used as the button name.</dd>
<dt style="font-weight: bold;"><code>set_tv val</code></dt>
<dd style="margin-left: 15px;">Sets the shutter speed to <code>val</code>. Note that <code>val</code> is not &#8220;1/1000&#8243; or something similar, but rather an integer value. Each increase in the integer value corresponds to a 1/3 EV increase. The absolute mapping between integer values and shutter speeds varies between cameras, but tables are available <a href="http://chdk.wikia.com/wiki/UBASIC/TutorialScratchpad#The_set_tv.2C_get_tv.2C_etc_commands">here</a>. This, and all following commands must be used with the camera in manual mode.</dd>
<dt style="font-weight: bold;"><code>set_tv_rel val</code></dt>
<dd style="margin-left: 15px;">Sets the shutter speed relative to the current shutter speed. Example: <code>set_tv_rel 0-1</code> increases the shutter speed by 1/3 EV.</dd>
<dt style="font-weight: bold;"><code>get_tv target</code></dt>
<dd style="margin-left: 15px;">Sets <code>target</code> equal to the current shutter speed.</dd>
<dt style="font-weight: bold;"><code>set_av val, set_av_rel val, get_av target</code></dt>
<dd style="margin-left: 15px;">With the same syntax as shutter speed commands, these adjust aperture settings.</dd>
<dt style="font-weight: bold;"><code>set_zoom val, set_zoom_rel val, get_zoom target</code></dt>
<dd style="margin-left: 15px;">Just like <code>set_tv/set_tv_rel</code> commands. In <code>set_zoom_rel</code>, <code>val</code> is +/- the relative change. Zoom values range from 0 to 8 or 14 for A-series cameras, and 0 to 128 for S-series cameras.</dd>
<dt style="font-weight: bold;"><code>set_zoom_speed x</code></dt>
<dd style="margin-left: 15px;">S-series only. Sets the zoom speed, at <code>x</code>% of maximum speed. <code>x</code> may vary between 5 and 100.</dd>
<dt style="font-weight: bold;"><code>set_focus x, get_focus target</code></dt>
<dd style="margin-left: 15px;"><code>x/target</code> is distance in millimeters.</dd>
<dt style="font-weight: bold;"><code>set iso x, get iso target</code></dt>
<dd style="margin-left: 15px;"><code>x/target</code> is one of the following values: <code>0 (Auto ISO), 1 (50/80), 2 (100), 3 (200), 4 (400), 5 (800), -1 (High ISO)</code>.</dd>
</dl>
<h2>Where to go from here</h2>
<p>Try checking out the <a href="http://chdk.wikia.com/wiki/CHDK">CHDK wiki</a>, for more features then are even printed here. Finally, take photos! The most important thing that you can do to improve your photography skills is to take lots of photos.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hackadaycom.wordpress.com/1883/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hackadaycom.wordpress.com/1883/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/1883/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/1883/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/1883/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/1883/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/1883/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/1883/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/1883/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/1883/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/1883/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/1883/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&blog=4779443&post=1883&subd=hackadaycom&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2008/05/27/how-to-expand-your-camera-with-chdk/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">loganwilliams</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2008/05/sss_example.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/05/sss_menu.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/05/fss_example.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/05/fss_menu.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/05/exbrack_ex2.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/05/exbrack_example.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/05/hdr_ex1.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/05/hdr_ex2.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/05/hdr_ex3.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/05/raw_example.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/05/raw_menu.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/05/dng4ps2.png" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/05/photoshop_process.png" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/05/osd_menu.jpg" medium="image" />
	</item>
		<item>
		<title>How-To: Make a digital synthesizer</title>
		<link>http://hackaday.com/2008/05/01/how-to-make-a-digital-synthesizer/</link>
		<comments>http://hackaday.com/2008/05/01/how-to-make-a-digital-synthesizer/#comments</comments>
		<pubDate>Thu, 01 May 2008 18:55:00 +0000</pubDate>
		<dc:creator>loganwilliams</dc:creator>
				<category><![CDATA[how-to]]></category>
		<category><![CDATA[digitalsynth]]></category>
		<category><![CDATA[digitalsynthesizer]]></category>
		<category><![CDATA[feature]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[lfo]]></category>
		<category><![CDATA[lowfrequencyoscillator]]></category>
		<category><![CDATA[oscillator]]></category>
		<category><![CDATA[synth]]></category>

		<guid isPermaLink="false">http://hackaday.iheartcashews.com:8181/2008/05/01/how-to-make-a-digital-synthesizer/</guid>
		<description><![CDATA[
This week&#8217;s How-To comes from our newest contributor: Logan Williams.
This simple guide will show you how to build a digital synthesizer that generates and manipulates square waves. Your synthesizer will have one oscillator, which produces a variable pitch controlled by a potentiometer, as well as an LFO which modulates that pitch at a variable frequency. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&blog=4779443&post=1748&subd=hackadaycom&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img width="450" vspace="4" hspace="4" height="512" border="0" src="http://hackadaycom.files.wordpress.com/2008/04/lfo_breadboard.jpg?w=450&#038;h=512" alt="" />
<p><span style="font-style: italic;">This week&#8217;s How-To comes from our newest contributor: Logan Williams.</span></p>
<p>This simple guide will show you how to build a digital synthesizer that generates and manipulates square waves. Your synthesizer will have one oscillator, which produces a variable pitch controlled by a potentiometer, as well as an LFO which modulates that pitch at a variable frequency. The part count for this project is quite low, and it can be built for under $20.</p>
<p><span id="more-1748"></span></p>
<h2>Finding the Parts</h2>
<p>The first step in building this digital synthesizer is to <a href="http://www.hackaday.com/2007/11/16/how-to-where-to-find-parts-for-your-projects/">procure the parts</a> that you will need. Most of these can be bought at <a href="http://www.radioshack.com/category/index.jsp?categoryId=2032230">RadioShack</a>, but RadioShack&#8217;s prices are often much more expensive than ordering online. All of the parts for this project can be purchased at <a href="http://www.jameco.com/">Jameco</a>, <a href="http://digikey.com/">Digi-Key</a>, or <a href="http://mouser.com/">Mouser</a>. We&#8217;ve provided Jameco part numbers below. If you don&#8217;t mind waiting, this is the best way to order parts.</p>
<p><img width="450" vspace="4" hspace="4" height="605" border="0" src="http://hackadaycom.files.wordpress.com/2008/04/parts.jpg?w=450&#038;h=605" alt="" /></p>
<table>
<tbody>
<tr>
<th>Item</th>
<th>Name</th>
<th colspan="2">RadioShack</th>
<th colspan="2">Jameco</th>
</tr>
<tr>
<td>9V Battery Clip</td>
<td> </td>
<td><a href="http://www.radioshack.com/product/index.jsp?productId=2062219">270-325</a></td>
<td>$1.99</td>
<td><a href="http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&amp;storeId=10001&amp;catalogId=10001&amp;productId=11280">11280</a></td>
<td>$0.30</td>
</tr>
<tr>
<td>100K Linear Potentiometer</td>
<td>R2</td>
<td><a href="http://www.radioshack.com/product/index.jsp?productId=2062287">271-092</a></td>
<td>$2.99</td>
<td><a href="http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&amp;storeId=10001&amp;catalogId=10001&amp;productId=255696">255696</a></td>
<td>$1.35</td>
</tr>
<tr>
<td>1M Linear Potentiometer</td>
<td>R3</td>
<td><a href="http://www.radioshack.com/product/index.jsp?productId=2062297">271-211</a></td>
<td>$2.99</td>
<td><a href="http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&amp;storeId=10001&amp;catalogId=10001&amp;productId=255582">255582</a></td>
<td>$1.35</td>
</tr>
<tr>
<td>50K Linear Potentiometer</td>
<td>R4</td>
<td><a href="http://www.radioshack.com/product/index.jsp?productId=2062355">271-1716</a></td>
<td>$2.99</td>
<td><a href="http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&amp;storeId=10001&amp;catalogId=10001&amp;productId=255549">255549</a></td>
<td>$1.35</td>
</tr>
<tr>
<td>10K Linear Potentiometer</td>
<td>R5</td>
<td><a href="http://www.radioshack.com/product/index.jsp?productId=2062354">271-1715</a></td>
<td>$2.99</td>
<td><a href="http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&amp;storeId=10001&amp;catalogId=10001&amp;productId=255522">255522</a></td>
<td>$1.35</td>
</tr>
<tr>
<td>9V Battery</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>IRF 510 MOSFET Transistor</td>
<td>Q1</td>
<td><a href="http://www.radioshack.com/product/index.jsp?productId=2062618">276-2072</a></td>
<td>$1.99</td>
<td><a href="http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&amp;storeId=10001&amp;catalogId=10001&amp;productId=209234">209234</a></td>
<td>$0.69</td>
</tr>
<tr>
<td>3.5mm Audio Connector</td>
<td> </td>
<td><a href="http://www.radioshack.com/product/index.jsp?productId=2062618">274-333</a></td>
<td>$2.99</td>
<td><a href="http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&amp;storeId=10001&amp;catalogId=10001&amp;productId=109496">109496</a></td>
<td>$0.53</td>
</tr>
<tr>
<td>7805 5V Voltage Regulator</td>
<td>IC1</td>
<td><a href="http://www.radioshack.com/product/index.jsp?productId=2062599">276-1770</a></td>
<td>$1.59</td>
<td><a href="http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&amp;storeId=10001&amp;catalogId=10001&amp;productId=51262">51262</a></td>
<td>$0.20</td>
</tr>
<tr>
<td>0.1 uF capacitor</td>
<td>C1</td>
<td><a href="http://www.radioshack.com/product/index.jsp?productId=2062365">272-135</a></td>
<td>$1.49</td>
<td><a href="http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&amp;storeId=10001&amp;catalogId=10001&amp;productId=151118">151118</a></td>
<td>$0.20</td>
</tr>
<tr>
<td>1.0 uF capacitor</td>
<td>C2</td>
<td><a href="http://www.radioshack.com/product/index.jsp?productId=2102515">272-1055</a></td>
<td>$1.59</td>
<td><a href="http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&amp;storeId=10001&amp;catalogId=10001&amp;productId=544956">544956</a></td>
<td>$0.20</td>
</tr>
<tr>
<td>40106 Hex Inverter</td>
<td>IC2</td>
<td><a href="http://www.fairchildsemi.com/ShoppingExperience/action/displayItems?gpn=CD40106BC&amp;itemType=SAMPLE">Fairchild</a></td>
<td>$0.00</td>
<td><a href="http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&amp;storeId=10001&amp;catalogId=10001&amp;productId=785071">785071</a></td>
<td>$0.47</td>
</tr>
<tr>
<td>47K Resistor</td>
<td>R1</td>
<td><a href="http://www.radioshack.com/product/index.jsp?productId=2062349">271-1342</a></td>
<td>$0.99</td>
<td><a href="http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&amp;storeId=10001&amp;catalogId=10001&amp;productId=690540">690540</a></td>
<td>$1.00</td>
</tr>
<tr>
<td>1N4148 Diode</td>
<td>D1</td>
<td><a href="http://www.radioshack.com/product/index.jsp?productId=2062587">276-1620</a></td>
<td>$2.59</td>
<td><a href="http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&amp;storeId=10001&amp;catalogId=10001&amp;productId=1537969">1537969</a></td>
<td>$0.27</td>
</tr>
<tr>
<td>Solderless breadboard</td>
<td> </td>
<td><a href="http://www.radioshack.com/product/index.jsp?productId=2734154">276-002</a></td>
<td>$14.99</td>
<td><a href="http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&amp;storeId=10001&amp;catalogId=10001&amp;productId=20723">20723</a></td>
<td>$9.85</td>
</tr>
<tr>     </tr>
</tbody>
</table>
<h3>Not Pictured</h3>
<table>
<tbody>
<tr>
<th>Item</th>
<th>Name</th>
<th colspan="2">RadioShack</th>
<th colspan="2">Jameco</th>
</tr>
<tr>
<td>22AWG Solid-core</td>
<td> </td>
<td><a href="http://www.radioshack.com/product/index.jsp?productId=2049742">278-1221</a></td>
<td>$5.99</td>
<td><a href="http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&amp;storeId=10001&amp;catalogId=10001&amp;productId=36792">36792</a></td>
<td>$6.59</td>
</tr>
<tr>
<td>Amplified speakers</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>
<h3>Tools</h3>
<table>
<tbody>
<tr>
<td>Wire strippers</td>
</tr>
</tbody>
</table>
<p><strong>Note</strong>: The potentiometers and audio jack must be either taped or soldered to 22 AWG solid core wire. <a href="http://www.hackaday.com/2007/10/26/how-to-introduction-to-soldering/">Soldering</a> is highly recommended, as it produces a more secure connection.</p>
<h2>Creating an oscillator</h2>
<p>Before we can begin with the digital synthesizer, we must generate the correct voltage. Most of you will be familiar with using a 7805 5V voltage regulator. It is very simple; connect the +9V from the battery to the left hand pin, ground the middle pin, and the right hand is +5V.</p>
<p>The most basic circuit in any synthesizer is the oscillator. A square wave oscillator constantly alternates between two voltages, in this case +5V and 0V. We have a logic inverter to create this, which operates quite simply; if it is given +5V in (a logic 1), it give<br />
s 0V out<br />
(a logic 0) and if it is given a logic 0, it gives a logic 1 as output. When the input and output are connected together, it will oscillate rapidly between those two values: a 0 goes in, comes out as a 1, goes in, comes out as a 0, and so on.</p>
<p>The problem is that it oscillates much too fast. A resistor capacitor (RC) delay circuit can be added to slow it down. This forces the output current to charge the capacitor before it can pass through to the input. The resulting brief delay slows the oscillations to audible frequencies.</p>
<p>To build the oscillator, assemble the schematic below on a breadboard.</p>
<p><img width="450" vspace="4" hspace="4" height="393" border="0" src="http://hackadaycom.files.wordpress.com/2008/04/osc.png?w=450&#038;h=393" alt="" /></p>
<p>When done, the oscillator should look something like this:</p>
<p> <img width="450" vspace="4" hspace="4" height="754" border="0" src="http://hackadaycom.files.wordpress.com/2008/04/osc.jpg?w=450&#038;h=754" alt="" />
<p>Connect one side of the audio jack to 0V and the other side to the output, and it will sound like this:</p>
<p> <embed width="450" height="27" type="application/x-shockwave-flash" src="http://www.google.com/reader/ui/3247397568-audio-player.swf?audioUrl=http://media.libsyn.com/media/markjeffrey/had_dsynth_oscillator_no_control.mp3" allowscriptaccess="never" quality="best" bgcolor="#ffffff" wmode="window" flashvars="playerMode=embedded"></embed>
</p>
<h2>Controlling the oscillator</h2>
<p>We can make things more interesting by allowing the user to change the frequency. We replace the constant resistor R1 with a potentiometer, such as the 100K R2. This is a simple change to do, and is reflected in this altered schematic.</p>
<p><img width="450" vspace="4" hspace="4" height="481" border="0" src="http://hackadaycom.files.wordpress.com/2008/04/osc_var.png?w=450&#038;h=481" alt="" /></p>
<p><img width="450" vspace="4" hspace="4" height="493" border="0" src="http://hackadaycom.files.wordpress.com/2008/04/osc_var.jpg?w=450&#038;h=493" alt="" /></p>
<p>Now the oscillator sounds like this:</p>
<p> <embed width="450" height="27" type="application/x-shockwave-flash" src="http://www.google.com/reader/ui/3247397568-audio-player.swf?audioUrl=http://media.libsyn.com/media/markjeffrey/had_dsynth_oscillator_control.mp3" allowscriptaccess="never" quality="best" bgcolor="#ffffff" wmode="window" flashvars="playerMode=embedded"></embed><br />Much more interesting. Try playing an actual song, if you dare.
</p>
<h2>Duty cycle adjustment</h2>
<p>We can add some basic timbre control to make the oscillator more interesting. The duty cycle of a square wave is how long it spends at logic 1 vs. at logic 0. For example, a wave that spends 1 ms at +5V and 1ms at 0V per cycle would have a 50% duty cycle. 1.5 ms at +5V and 0.5 ms at 0V would be a 75% duty cycle. To adjust the wave&#8217;s duty cycle, we can add another potentiometer and diode to the circuit. When the input is high and the output is low, current will be able to flow through both potentiometers, decreasing the amount of time it takes to charge the capacitor, and increasing the duty cycle.</p>
<p><img width="450" vspace="4" hspace="4" height="628" border="0" src="http://hackadaycom.files.wordpress.com/2008/04/osc_duty.png?w=450&#038;h=628" alt="" /></p>
<p><img width="450" vspace="4" hspace="4" height="394" border="0" src="http://hackadaycom.files.wordpress.com/2008/04/osc_duty.jpg?w=450&#038;h=394" alt="" /></p>
<p>It should sound like this when completed:</p>
<p> <embed width="450" height="27" type="application/x-shockwave-flash" src="http://www.google.com/reader/ui/3247397568-audio-player.swf?audioUrl=http://media.libsyn.com/media/markjeffrey/had_dsynth_oscillator_pwm_control.mp3" allowscriptaccess="never" quality="best" bgcolor="#ffffff" wmode="window" flashvars="playerMode=embedded"></embed>
</p>
<h2>Creating an LFO</h2>
<p>A low-frequency oscillator (LFO) is an oscillator that oscillates very slowly, from 1 to 100 cycles per second. We will use an LFO to alternate the pitch of our oscillator between two different frequencies. This can be used for siren like sound effects, timbre control, or musical sequences.</p>
<p>The circuit to control the LFO is slightly more complex than the ones we have used before. Because it uses a capacitor with 10x the capacitance, and a potentiometer with 10x the resistance, the oscillations are 100x slower than our first oscillator. The LFO connects to the gate of the IRF 510 MOSFET transistor. When the output of the LFO is +5V, the transistor connects its source and drain pins. With these pins connected, current can flow through the second potentiometer, increasing the pitch. When the LFO returns to 0V, the potentiometer is disconnected, and the pitch drops back to its original level.</p>
<p><img width="451" vspace="4" hspace="4" height="686" border="0" src="http://hackadaycom.files.wordpress.com/2008/04/lfo.png?w=451&#038;h=686" alt="" /></p>
<p><img width="450" vspace="4" hspace="4" height="512" border="0" src="http://hackadaycom.files.wordpress.com/2008/04/lfo_breadboard.jpg?w=450&#038;h=512" alt="" /></p>
<p>There are quite a number of sounds that can be produced with the LFO, such as this:</p>
<p> <embed width="450" height="27" type="application/x-shockwave-flash" src="http://www.google.com/reader/ui/3247397568-audio-player.swf?audioUrl=http://media.libsyn.com/media/markjeffrey/had_dsynth_lfo1.mp3" allowscriptaccess="never" quality="best" bgcolor="#ffffff" wmode="window" flashvars="playerMode=embedded"></embed><br />and this:<br /><embed width="450" height="27" type="application/x-shockwave-flash" src="http://www.google.com/reader/ui/3247397568-audio-player.swf?audioUrl=http://media.libsyn.com/media/markjeffrey/had_dsynth_lfo2.mp3" allowscriptaccess="never" quality="best" bgcolor="#ffffff" wmode="window" flashvars="playerMode=embedded"></embed>
</p>
<h2>Conclusion</h2>
<p>You have now made your own simple digital synthesizer. Keep experimenting with different control methods. The frequency is adjusted with just resistance, so almost anything can be used for an input. Try a <a href="http://www.engadget.com/2006/07/05/thingamagoop-the-synth-with-personality/">photocell</a>, or a <a href="http://createdigitalmusic.com/2005/08/08/hypersense-complex-gestural-gloves-for-music/">flex sensor</a>. Try combining the LFO and the duty cycle adjustment. Try using it to actually make music! We&#8217;d love to see what you come up with.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hackadaycom.wordpress.com/1748/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hackadaycom.wordpress.com/1748/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/1748/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/1748/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/1748/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/1748/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/1748/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/1748/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/1748/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/1748/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/1748/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/1748/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&blog=4779443&post=1748&subd=hackadaycom&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2008/05/01/how-to-make-a-digital-synthesizer/feed/</wfw:commentRss>
		<slash:comments>77</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">loganwilliams</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2008/04/lfo_breadboard.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/04/parts.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/04/osc.png" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/04/osc.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/04/osc_var.png" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/04/osc_var.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/04/osc_duty.png" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/04/osc_duty.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/04/lfo.png" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/04/lfo_breadboard.jpg" medium="image" />
	</item>
	</channel>
</rss>