<?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/"
	>

<channel>
	<title>Projects Log &#187; hardware</title>
	<atom:link href="http://dev.pulsed.net/wp/?cat=30&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://dev.pulsed.net/wp</link>
	<description>projects, diy</description>
	<lastBuildDate>Mon, 25 Jul 2011 11:22:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Breeding Terrarium Thermostat</title>
		<link>http://dev.pulsed.net/wp/?p=42</link>
		<comments>http://dev.pulsed.net/wp/?p=42#comments</comments>
		<pubDate>Sat, 30 Jan 2010 13:53:15 +0000</pubDate>
		<dc:creator>Kevin DEHLINGER</dc:creator>
				<category><![CDATA[DIY]]></category>
		<category><![CDATA[avr]]></category>
		<category><![CDATA[hardware]]></category>

		<guid isPermaLink="false">http://dev.pulsed.net/wp/?p=42</guid>
		<description><![CDATA[warning: work in progress
I&#039;m building a thermostat system for our turtle&#039;s breeding terrarium.
Basicaly, it&#039;ll control the temperatures in two zones of the terrarium, giving me the ability to set up the temperature I want for each zone per time period (e.g. 26Â°c  from 10:00 to 18:30 and at least 20Â°c the rest of the [...]]]></description>
			<content:encoded><![CDATA[<p><strong>warning: work in progress</strong></p>
<p>I&#039;m building a thermostat system for our turtle&#039;s breeding terrarium.<br />
Basicaly, it&#039;ll control the temperatures in two zones of the terrarium, giving me the ability to set up the temperature I want for each zone per time period (e.g. 26Â°c  from 10:00 to 18:30 and at least 20Â°c the rest of the time in Zone1 and 31Â°c from 11:00 to 17h30 and at least 21Â°c the rest of the time in Zone2)</p>
<p>I&#039;m using an atmega168 (not an atmega8 like the schematics says, but it&#039;s pin compatible), a 32.768khz xtal for the time, two 5v relays, and two p-channel mosfets to drive those relays, and an 2&#215;16 LCD.</p>
<p>Here&#039;s what i think the board will look like (design not tested yet)<br />
<img src="http://dev.pulsed.net/misc/turtle_sch.png" alt="http://dev.pulsed.net/misc/turtle_sch.png" /><br />
<span id="more-42"></span><br />
<img src="http://dev.pulsed.net/misc/turtle_th.png" alt="http://dev.pulsed.net/misc/turtle_th.png" /><img src="http://dev.pulsed.net/misc/turtle_th2.png" alt="http://dev.pulsed.net/misc/turtle_th2.png" /></p>
<p>the code is still work in progress, but i&#039;ll post it later </p>
<p>Edit: February 18th 2010<br />
Still no update on the code, but here are some pics of the actual board :<br />
<img src="http://dev.pulsed.net/misc/turtlebrd1.jpg" alt="http://dev.pulsed.net/misc/turtlebrd1.jpg" /><br />
<img src="http://dev.pulsed.net/misc/turtlebrd2.jpg" alt="http://dev.pulsed.net/misc/turtlebrd2.jpg" /><br />
yeah, the DIP IC socket should be reversed, I saw that too late, but no big deal, cause i know that ;) </p>
]]></content:encoded>
			<wfw:commentRss>http://dev.pulsed.net/wp/?feed=rss2&amp;p=42</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cheap DIY servo tester</title>
		<link>http://dev.pulsed.net/wp/?p=41</link>
		<comments>http://dev.pulsed.net/wp/?p=41#comments</comments>
		<pubDate>Mon, 19 Oct 2009 15:04:06 +0000</pubDate>
		<dc:creator>Kevin DEHLINGER</dc:creator>
				<category><![CDATA[DIY]]></category>
		<category><![CDATA[avr]]></category>
		<category><![CDATA[hardware]]></category>

		<guid isPermaLink="false">http://dev.pulsed.net/wp/?p=41</guid>
		<description><![CDATA[I have some cheap servos lying around, with no datasheet available&#8230; since I want to use them for a future robotics project I had to get the information I need one way or another&#8230;

Ladies and gentlemen, let me introduce you the DIY servo tester I made:

So first of all how do servos work? it&#039;s simple, [...]]]></description>
			<content:encoded><![CDATA[<p>I have some cheap servos lying around, with no datasheet available&#8230; since I want to use them for a future robotics project I had to get the information I need one way or another&#8230;</p>
<p><span id="more-41"></span></p>
<p>Ladies and gentlemen, let me introduce you the DIY servo tester I made:<br />
<img src="http://dev.pulsed.net/misc/servotester.jpg" alt="DIY Servo Tester" /></p>
<p>So first of all how do servos work? it&#039;s simple, really, most of them have 3 pins: VCC, GND, and PWM Hook the VCC pin to 5v, the GND one to 0v, and the PWM pin to a device that generates a 50hz pwm signal (a square signal with a variable duty cycle) with the smallest duty cycle handled by the servo the angular position is at its maximum position clockwise, and with the highest duty cycle handled by the servo the angular position is at its maximum counterclockwise. </p>
<p>My problem was to find those values!</p>
<p>As you can see on the picture the length of the pulse was 1.82ms which is 9.13% (duty cycle) of a 50 Hz period (20ms). Since I use the built-in pwm function provided by the atmega168 (the microcontroller I use) the OCR1A value and the top value associated (ICR1) I can generate an accurate square signal. Some internal counter starts at 0 with the output at 5v, when it reaches ORC1A the output goes to 0v, and when it reaches ICR1, the counter resets, and the output goes to 5v again and so on&#8230;</p>
<p>Anyway, there are to buttons, one to make it go CW, decreasing the OCR1A value, one to make it go CCW, increasing the OCR1A values&#8230; now all I have to do is read the values when it won&#039;t go any further in both directions&#8230;</p>
<p>I&#039;m going to post the source code and the schematics as soon as possible !</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.pulsed.net/wp/?feed=rss2&amp;p=41</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Control your Windows computer using your Sony Playstation 3</title>
		<link>http://dev.pulsed.net/wp/?p=40</link>
		<comments>http://dev.pulsed.net/wp/?p=40#comments</comments>
		<pubDate>Mon, 25 May 2009 15:08:46 +0000</pubDate>
		<dc:creator>Kevin DEHLINGER</dc:creator>
				<category><![CDATA[Project]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[awesome]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[win32]]></category>

		<guid isPermaLink="false">http://dev.pulsed.net/wp/?p=40</guid>
		<description><![CDATA[
Ok, let me introduce my new project: It&#039;s called PS3ReCon (which stands for Playstation 3 Remote Control), it allows you to use your Sony Playstation 3 Bluetooth Remote to control your computer.
It&#039;s fully writen in c# and supports external plugins (.dll files)
Oh, and also, it&#039;s free !
http://ps3recon.pulsed.net/
]]></description>
			<content:encoded><![CDATA[<p><a href="http://ps3recon.pulsed.net/"><img src="http://ps3recon.pulsed.net/banner3.png" alt="PS3ReCon" /></a><br />
Ok, let me introduce my new project: It&#039;s called PS3ReCon (which stands for Playstation 3 Remote Control), it allows you to use your Sony Playstation 3 Bluetooth Remote to control your computer.<br />
It&#039;s fully writen in c# and supports external plugins (.dll files)<br />
Oh, and also, it&#039;s free !</p>
<p><a href="http://ps3recon.pulsed.net/">http://ps3recon.pulsed.net/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.pulsed.net/wp/?feed=rss2&amp;p=40</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Laser + Webcam = 3D&#8230; maybe!</title>
		<link>http://dev.pulsed.net/wp/?p=38</link>
		<comments>http://dev.pulsed.net/wp/?p=38#comments</comments>
		<pubDate>Fri, 22 Feb 2008 16:45:24 +0000</pubDate>
		<dc:creator>Kevin DEHLINGER</dc:creator>
				<category><![CDATA[DIY]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[laser]]></category>
		<category><![CDATA[win32]]></category>

		<guid isPermaLink="false">http://dev.pulsed.net/wp/?p=38</guid>
		<description><![CDATA[So here the new project i&#039;m planning to work on: a 3D scanner!
Since a picture is worth a thousand words, lets start with them:


What I think is pretty simple (maybe too simple): the distance between the y axis and the edge of the object where the laser is beaming on, can be calculated using the [...]]]></description>
			<content:encoded><![CDATA[<p>So here the new project i&#039;m planning to work on: a 3D scanner!</p>
<p>Since a picture is worth a thousand words, lets start with them:</p>
<p><img src="http://dev.pulsed.net/misc/scan3d1.png" alt="3d scan 1" /><br />
<img src="http://dev.pulsed.net/misc/scan3d2.png" alt="3d scan 2" /></p>
<p>What I think is pretty simple (maybe too simple): the distance between the y axis and the edge of the object where the laser is beaming on, can be calculated using the delta value and some sines and cosines!</p>
<p><img src="http://dev.pulsed.net/misc/scan3d3.png" alt="3d scan 3" /><br />
I&#039;m not much of a math guy, but this sounds really easy!</p>
<p>x=delta/sin 60</p>
<p>Waaaaait&#8230; this may actually work!!!!</p>
<p>Oh and i&#039;ve made some huge progress with my realtime webcam tracking program!</p>
<p>here&#039;s an example tracking my external harddrive blue led:<br />
<img src="http://dev.pulsed.net/misc/ledtracker.jpg" alt="ledtrackr" /></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.pulsed.net/wp/?feed=rss2&amp;p=38</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The easiest, fastest, and most effective way to detect defective pixels on your LCD screen</title>
		<link>http://dev.pulsed.net/wp/?p=33</link>
		<comments>http://dev.pulsed.net/wp/?p=33#comments</comments>
		<pubDate>Wed, 26 Dec 2007 16:15:55 +0000</pubDate>
		<dc:creator>Kevin DEHLINGER</dc:creator>
				<category><![CDATA[easy]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[lcd]]></category>

		<guid isPermaLink="false">http://dev.pulsed.net/wp/?p=33</guid>
		<description><![CDATA[
Defective pixels are uncool, and you usually find them when it&#039;s to late to give your damn LCD screen back&#8230; here&#039;s the solution to find them in no time!

There are 3 types of defective pixels:
- dead pixels (always off => black)
- hot pixels (always on => white)
- stuck pixels (one or two subpixels are always [...]]]></description>
			<content:encoded><![CDATA[<p><iframe src='http://digg.com/api/diggthis.php?u=http%3A%2F%2Fdigg.com%2Fhardware%2FThe_easiest_way_to_detect_defective_pixels_on_your_new_lcd' height='82' width='55' frameborder='0' scrolling='no' style='float: right; margin-left: 10px; margin-bottom: 5px; padding: 4px 0 2px 4px; background: #fff;'></iframe><br />
Defective pixels are uncool, and you usually find them when it&#039;s to late to give your damn LCD screen back&#8230; here&#039;s the solution to find them in no time!<br />
<span id="more-33"></span></p>
<p>There are 3 types of defective pixels:<br />
- dead pixels (always off => black)<br />
- hot pixels (always on => white)<br />
- stuck pixels (one or two subpixels are always on or always off)</p>
<p>So, defective pixels can be black, white, red, green, blue, magenta, cyan or yellow when they should be another color of that list (i.e: a defective pixel that is red when it should be white => red subpixel always on)</p>
<p>after some research I found <a href="http://www.gdargaud.net/Hack/DeadPixels.html">Guillaume Dargaud&#039;s web page</a>; He provides links that open a page with two colors (one color of the list, and it&#039;s opposite:if color A is red, then color B is cyan) so that for each pixel, every pixel that is above, under, left, or right is the opposite color (like a draughtboard).<br />
The idea is pretty awesome, but I wasn&#039;t able to open the pages in fullscreen (F11 still displays the url bar and the tabs in ie or in firefox) so I decided to write a little perl script that generates the 8 pictures in the actual screen resolution.</p>
<p>Why is that method better than 8 unified color pictures?<br />
well the answer is quite simple: a defective pixel will appear like a group of 5 pixels, which is a lot easier to spot. See for yourself:<br />
<img src="http://dev.pulsed.net/misc/demo1.png" alt="" /><br />
to prove that i&#039;m not cheating, here&#039;s the pixel magnified 10x:<br />
<img src="http://dev.pulsed.net/misc/demo2.png" alt="" /><br />
this is of course a simulation, but it appears exactly the same with an actual dead pixel!</p>
<p>in order for this to work properly, there are a few prerequisites:<br />
- your desktop resolution must be the actual resolution of your lcd or plasma screen (also known as 1:1 pixel mapping)<br />
- the desktop color depth should be 32bits (also known as color quality)</p>
<p>your desktop resolution is <script>document.write(screen.width+'x'+screen.height);</script>; if you want to test another screen, or if this isn&#039;t your screen&#039;s native resolution, use the two boxes below to put in custom values.</p>
<p><script>document.write(String.fromCharCode(60)+'input name="x" id="x" value="'+screen.width+'"'+String.fromCharCode(62)+'x'+String.fromCharCode(60)+'input name="y" id="y" value="'+screen.height+'"'+String.fromCharCode(62));</script></p>
<p>And simply download every images in one folder! (no need to click a button)</p>
<p><a href="#" onclick="this.href ='http://cgi.pulsed.net/cgi/lcdtester.pl?q='+document.getElementById('x').value+'|'+document.getElementById('y').value+'|black|white'">Black on White</a> (example:<img src="http://dev.pulsed.net/misc/blackonwhite.png" alt="" />)<br />
<a href="#" onclick="this.href ='http://cgi.pulsed.net/cgi/lcdtester.pl?q='+document.getElementById('x').value+'|'+document.getElementById('y').value+'|white|black'">White on Black</a> (example:<img src="http://dev.pulsed.net/misc/whiteonblack.png" alt="" />)<br />
<a href="#" onclick="this.href ='http://cgi.pulsed.net/cgi/lcdtester.pl?q='+document.getElementById('x').value+'|'+document.getElementById('y').value+'|blue|yellow'">Blue on Yellow</a> (example:<img src="http://dev.pulsed.net/misc/blueonyellow.png" alt="" />)<br />
<a href="#" onclick="this.href ='http://cgi.pulsed.net/cgi/lcdtester.pl?q='+document.getElementById('x').value+'|'+document.getElementById('y').value+'|yellow|blue'">Yellow on Blue</a> (example:<img src="http://dev.pulsed.net/misc/yellowonblue.png" alt="" />)<br />
<a href="#" onclick="this.href ='http://cgi.pulsed.net/cgi/lcdtester.pl?q='+document.getElementById('x').value+'|'+document.getElementById('y').value+'|red|cyan'">Red on Cyan</a> (example:<img src="http://dev.pulsed.net/misc/redoncyan.png" alt="" />)<br />
<a href="#" onclick="this.href ='http://cgi.pulsed.net/cgi/lcdtester.pl?q='+document.getElementById('x').value+'|'+document.getElementById('y').value+'|cyan|red'">Cyan on Red</a> (example:<img src="http://dev.pulsed.net/misc/cyanonred.png" alt="" />)<br />
<a href="#" onclick="this.href ='http://cgi.pulsed.net/cgi/lcdtester.pl?q='+document.getElementById('x').value+'|'+document.getElementById('y').value+'|green|magenta'">Green on Magenta</a> (example:<img src="http://dev.pulsed.net/misc/greenonmagenta.png" alt="" />)<br />
<a href="#" onclick="this.href ='http://cgi.pulsed.net/cgi/lcdtester.pl?q='+document.getElementById('x').value+'|'+document.getElementById('y').value+'|magenta|green'">Magenta on Green</a> (example:<img src="http://dev.pulsed.net/misc/magentaongreen.png" alt="" />)<br />
<a href="http://www.kellys-korner-xp.com/xp_tweaks.htm"><br />
Please download the little vbs file that allows the &#034;Windows Picture and Fax Viewer&#034; to have more than 5secs between to images in slideshow mode from Kelly Theriot&#039;s webpage (scroll down to 81.)</a>, launch it, and put in 100 (that should be plenty enough).</p>
<p>Open one image in the &#034;Windows Picture and Fax Viewer&#034; and press F11 to enter the slideshow mode, and check the screen with every images using page up/page down; when you&#039;re done and if you want 5secs between images again in &#034;Windows Picture and Fax Viewer&#034; &#039;s slideshow mode again, run Kelly&#039;s script and put it 5!</p>
<p>So, if you&#039;ve found one or more defective pixels on your brand new lcd display, you can try to bring it back to the store (for example, you have like 15 days to bring something back at Mediamarkt [Germany]) but you should not say anything to them about defective pixels! if you can&#039;t give it back, try the manufacturer&#039;s waranty and finally if that doesn&#039;t work, you might want to try <a href="http://www.jscreenfix.com/basic.php">JscreenFix</a>, <a href="http://www.wikihow.com/Fix-a-Stuck-Pixel-on-an-LCD-Monitor">the pressure method, or the tapping method</a></p>
<p>if you haven&#039;t found any spot on your screen, congrats, you now know that you&#039;re using a 100% defective-pixel-free screen!</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.pulsed.net/wp/?feed=rss2&amp;p=33</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
