<?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>Slashdev &#187; Make</title>
	<atom:link href="http://www.slashdev.ca/category/make/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.slashdev.ca</link>
	<description>Hardware, software, and just general tinkering</description>
	<lastBuildDate>Mon, 14 Jun 2010 01:54:47 +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>Wire Harness Lacing &#8211; A Dead Art?</title>
		<link>http://www.slashdev.ca/2010/06/13/wire-harness-lacing-a-dead-art/</link>
		<comments>http://www.slashdev.ca/2010/06/13/wire-harness-lacing-a-dead-art/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 01:53:45 +0000</pubDate>
		<dc:creator>jiGGaK</dc:creator>
				<category><![CDATA[Make]]></category>

		<guid isPermaLink="false">http://www.slashdev.ca/?p=367</guid>
		<description><![CDATA[I don&#8217;t pretend to be a master of wire lacing. To be honest this is my first attempt but I am thoroughly pleased with the results. I was inspired by a recent article by Keith Neufeld in which he showed off his x0xb0x Wiring Harnesses.
This is my latest arcade joystick build incorporating my recent teensy++ [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_370" class="wp-caption aligncenter" style="width: 410px"><a href="http://www.slashdev.ca/wp-content/uploads/2010/06/IMG_2554.jpg"><img src="http://www.slashdev.ca/wp-content/uploads/2010/06/IMG_2554-400x300.jpg" alt="" title="IMG_2554" width="400" height="300" class="size-medium wp-image-370" /></a><p class="wp-caption-text">A wire harness promoting proper dental hygiene.</p></div>
<p>I don&#8217;t pretend to be a master of wire lacing. To be honest this is my first attempt but I am thoroughly pleased with the results. I was inspired by a recent article by <a href="http://www.neufeld.newton.ks.us/electronics/">Keith Neufeld</a> in which he showed off his <a href="http://www.neufeld.newton.ks.us/electronics/?p=1091">x0xb0x Wiring Harnesses</a>.</p>
<p>This is my latest arcade joystick build incorporating my recent <a href="/2010/05/25/ps3-gamepad-with-home-button/">teensy++ based controller</a>. Locating resources on the web describing the art of wire harness lacing can be tricky as it doesn&#8217;t seem to be a popular practice but I found a decent writeup <a href="http://www.dairiki.org/hammond/cable-lacing-howto/">here</a>. The wires on my controller are 24 gauge so the thick string Keith used would have been overkill. Instead I opted for waxed dental floss to wrap the wires (tip: waxed is important as it helps the knots stay tight).</p>
<p><span id="more-367"></span></p>
<div id="attachment_373" class="wp-caption aligncenter" style="width: 410px"><a href="http://www.slashdev.ca/wp-content/uploads/2010/06/IMG_2547.jpg"><img src="http://www.slashdev.ca/wp-content/uploads/2010/06/IMG_2547-400x300.jpg" alt="" title="IMG_2547" width="400" height="300" class="size-medium wp-image-373" /></a><p class="wp-caption-text">Full harness</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.slashdev.ca/2010/06/13/wire-harness-lacing-a-dead-art/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PS3 Gamepad With Home Button</title>
		<link>http://www.slashdev.ca/2010/05/25/ps3-gamepad-with-home-button/</link>
		<comments>http://www.slashdev.ca/2010/05/25/ps3-gamepad-with-home-button/#comments</comments>
		<pubDate>Tue, 25 May 2010 14:45:36 +0000</pubDate>
		<dc:creator>jiGGaK</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[Make]]></category>

		<guid isPermaLink="false">http://www.slashdev.ca/?p=353</guid>
		<description><![CDATA[It&#8217;s no secret the PS3 will work with most USB HID gamepads or joysticks. However the Home button is something special. If you connect your sixaxis controller to your PC and monitor button presses, the Home button comes up as button number 13. If you then create a standard gamepad with the same button mapping, [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_354" class="wp-caption aligncenter" style="width: 410px"><a href="http://www.slashdev.ca/wp-content/uploads/2010/05/IMG_2539.jpg"><img src="http://www.slashdev.ca/wp-content/uploads/2010/05/IMG_2539-400x300.jpg" alt="" title="ps3-teensy-shield" width="400" height="300" class="size-medium wp-image-354" /></a><p class="wp-caption-text">Teensy++ on a breakout board</p></div>
<p>It&#8217;s no secret the PS3 will work with most <a href="http://www.slashdev.ca/2010/05/22/simple-6-button-ps3-gamepad/">USB HID gamepads or joysticks</a>. However the Home button is something special. If you connect your sixaxis controller to your PC and monitor button presses, the Home button comes up as button number 13. If you then create a standard gamepad with the same button mapping, the PS3 will refuse to recognize the Home button.</p>
<p>After some tracing of the USB traffic from an official Madcatz Street Fighter IV FightStick I was able to come up with a solution! There are 8 bytes transfered during the enumeration phase, just after the device sends it&#8217;s report descriptor. Mimicking the same exchange results in the Home button functioning correctly when button 13 is pressed.</p>
<p>I used the amazingly awesome <a href="http://www.pjrc.com/teensy/">Teensy++</a> development board after being inspired by <a href="http://diy-machine.blogspot.com/">this guys work</a>. I also used the report descriptor from Toodles <a href="http://www.shoryuken.com/showthread.php?t=131230">UPCB</a> project which appears to come from the SEGA VIRTUA STICK. This descriptor is very similar to the one from the Madcatz controller, except their is one endpoint instead of two which simplifies things somewhat.</p>
<p>I also created a shield (pictured above) which brings several pins on the Teensy to convenient screw terminals.</p>
<p>Source code and Eagle files are available in a <a href="http://git.slashdev.ca/ps3-teensy-hid/">git repository</a>. Code is licensed under the <a href="http://www.gnu.org/licenses/">GPL v3</a> and the PCB design is distributed under a Creative Commons license <a href="http://creativecommons.org/licenses/by-sa/2.5/">Attribution-ShareAlike 2.5</a>.</p>
<div id="attachment_359" class="wp-caption aligncenter" style="width: 358px"><img src="http://www.slashdev.ca/wp-content/uploads/2010/05/ps3-teensy-hid-v11.png" alt="" title="ps3-teensy-hid-v11" width="348" height="243" class="size-full wp-image-359" /><p class="wp-caption-text">Terminal reference</p></div>
<p><a href='http://www.slashdev.ca/wp-content/uploads/2010/05/ps3-teensy-hid-v11.pdf'>This document</a> can be printed onto transparency for exposing your pre-sensitized copper clad. To use this for toner transfer, be sure to mirror the image first.</p>
<p>And a compiled version of the <a href="http://git.slashdev.ca/ps3-teensy-hid/tree/ps3-teensy-hid.hex">code in ihex</a>. This is for the teensy++ 2.0. The code might work with other versions of the teensy, but a re-compile will be required.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.slashdev.ca/2010/05/25/ps3-gamepad-with-home-button/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Simple 6-Button PS3 Gamepad</title>
		<link>http://www.slashdev.ca/2010/05/22/simple-6-button-ps3-gamepad/</link>
		<comments>http://www.slashdev.ca/2010/05/22/simple-6-button-ps3-gamepad/#comments</comments>
		<pubDate>Sat, 22 May 2010 23:56:45 +0000</pubDate>
		<dc:creator>jiGGaK</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[Make]]></category>

		<guid isPermaLink="false">http://www.slashdev.ca/?p=341</guid>
		<description><![CDATA[I built this board several months ago. It&#8217;s a USB gamepad circuit with 6 buttons mapped to correlate with the standard layout of a Street Fighter IV FightStick for the PS3.
It&#8217;s based on another design by Raphaël Assénat.
You&#8217;ll find the source code and Eagle files here, both licensed under the GPL.
PS: It&#8217;ll also work just [...]]]></description>
			<content:encoded><![CDATA[<p>I built this board several months ago. It&#8217;s a USB gamepad circuit with 6 buttons mapped to correlate with the standard layout of a Street Fighter IV FightStick for the PS3.</p>
<div id="attachment_342" class="wp-caption aligncenter" style="width: 410px"><a href="http://www.slashdev.ca/wp-content/uploads/2010/05/img_1735.jpg"><img src="http://www.slashdev.ca/wp-content/uploads/2010/05/img_1735-400x300.jpg" alt="" title="ps3-hid" width="400" height="300" class="size-medium wp-image-342" /></a><p class="wp-caption-text">Gamepad Circuit Board</p></div>
<div id="attachment_347" class="wp-caption aligncenter" style="width: 416px"><img src="http://www.slashdev.ca/wp-content/uploads/2010/05/ps3-usb-hid.png" alt="" title="ps3-usb-hid-eagle" width="406" height="270" class="size-full wp-image-347" /><p class="wp-caption-text">Export from EagleCAD with terminal labels</p></div>
<p>It&#8217;s based on <a href="http://www.slashdev.ca/2009/04/12/nes-usb-gamepad/">another design</a> by <a href="http://www.raphnet.net/electronique/usb_game12/index_en.php">Raphaël Assénat</a>.</p>
<p>You&#8217;ll find the source code and Eagle files <a href="http://git.slashdev.ca/ps3-usb-hid">here</a>, both licensed under the GPL.</p>
<p>PS: It&#8217;ll also work just fine on a Window/Linux/Mac OS X computer as well since all operating systems come with drivers for USB HID gamepads.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.slashdev.ca/2010/05/22/simple-6-button-ps3-gamepad/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>NES USB Gamepad</title>
		<link>http://www.slashdev.ca/2009/04/12/nes-usb-gamepad/</link>
		<comments>http://www.slashdev.ca/2009/04/12/nes-usb-gamepad/#comments</comments>
		<pubDate>Sun, 12 Apr 2009 06:25:21 +0000</pubDate>
		<dc:creator>jiGGaK</dc:creator>
				<category><![CDATA[Make]]></category>

		<guid isPermaLink="false">http://www.slashdev.ca/?p=228</guid>
		<description><![CDATA[This is mainly a show and tell post.  What we have here is a NES controller that has been converted into a USB HID device.  This means it can be connected to a computer without installing any drivers (Linux, Mac OS X, and Windows XP).
The circuit, PCB design, and firmware for the Atmega8 [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_229" class="wp-caption alignleft" style="width: 310px"><img src="http://www.slashdev.ca/wp-content/uploads/2009/04/img_1733-300x225.jpg" alt="Assembled controller" title="nes_usb" width="300" height="225" class="size-medium wp-image-229" /><p class="wp-caption-text">Assembled controller</p></div>
<p>This is mainly a show and tell post.  What we have here is a NES controller that has been converted into a USB HID device.  This means it can be connected to a computer without installing any drivers (Linux, Mac OS X, and Windows XP).</p>
<p>The circuit, PCB design, and firmware for the Atmega8 micro-controller are courtesy of <a href="http://www.raphnet.net/electronique/snes_nes_usb/index_en.php">Raphaël Assénat</a>.  His website is a veritable cornucopia of awesome circuitry.  And the best part?  All of his work is fully documented and provided for use under the GPL license where applicable.</p>
<p>Now the show part is over, time for the tell.</p>
<p><span id="more-228"></span></p>
<h2>PCB Fabrication</h2>
<p>First I would like to say I am no electrical engineer.  I love building circuits and playing with micro-controllers but I have very little knowledge of the theory behind a circuit.  That said, I learned a few things during this project that I would like to share.</p>
<p>The first lesson: surface mount PCB&#8217;s are painful!  The actual soldering isn&#8217;t so bad.  Search <a href="http://www.youtube.com">YouTube</a> for <em>surface mount soldering</em> and you will get a ton of great instructional videos.</p>
<div id="attachment_233" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.slashdev.ca/wp-content/uploads/2009/04/img_1728.jpg"><img src="http://www.slashdev.ca/wp-content/uploads/2009/04/img_1728-300x225.jpg" alt="Isn&#039;t it cute!" title="nes_usb_circuit" width="300" height="225" class="size-medium wp-image-233" /></a><p class="wp-caption-text">Isn't it cute!</p></div>
<p>The real issue for me was fabricating the PCB.  I usually use the <a href="http://www.mgchemicals.com/products/416k.html">photo fabrication</a> method but one of the tiny traces would get burned off every time.  It&#8217;s poossible through some trial and error with expossure time I might have been able to get this to work but each failure is expensive!  Pre-sensitized copper clad can cost up to $10 per sheet (aprox. 6&#215;6 inches).</p>
<p>I ended up using the <a href="http://www.fullnet.com/~tomg/gooteepc.htm">toner transfer</a> method which I found tedious at best.  I had to experiment several times over with different laser printers, print settings, iron temperature, iron pressure, and ironing time.  Too many variables!  That said, failures are cheep.  If the artwork did not stick to the copper correctly, just clean the copper and try again.</p>
<h2>Atmega8 Micro-controller</h2>
<p>I actually built this circuit a few months ago.  After assembling the circuit and connecting the ICSP programmer I successfully:</p>
<ol>
<li>flashed the firmware</li>
<li>burned the fuses</li>
</ol>
<p>Then I connected the USB cable to the computer but the device failed to register!  I was so frustrated that after all of that work, I just stuck the project on the shelf and forgot about it.</p>
<p>Recently I was working with another Atmega8 based board when I realized my error.  See, when you receive your AVR chip from the factory it is configured to use an internal oscilator.  This internal osilator circuit tells the AVR what speed to run at (eg: 1 MHz).</p>
<p>The <a href="http://www.engbedded.com/fusecalc">fuses</a> are a set of bytes in the flash that determine how the chip operates.  One of the fuse settings tell the chip to ignore the internal osilator circuit and look for an external one.  The NES USB board is an example of a circuit that uses an external oscilator in the form of a crystal.</p>
<p>Beside the crystal are two capacitors and here is where I went wrong.  These capacitors are 27pF on Raphaël&#8217;s circuit but I used a through hole crystal instead of the surface mount variety and these capacitor values are specific to the crystal!  You can find the appropriate values in the crystals datasheet, in my case 18pF.</p>
<p>This explains why I was able to flash the firmware and the fuses.  Once the fuses where flashed the AVR chip expected to have a working external oscilator but due to incorrect capacitors the external oscilator couldn&#8217;t function and neither could the chip.  After replacing the capacitors the circuit sprang to life.</p>
<p>So in closing I hope this helps another noob like me out there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.slashdev.ca/2009/04/12/nes-usb-gamepad/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Lean Mean Mediacenter Machine</title>
		<link>http://www.slashdev.ca/2008/08/11/lean-mean-mediacenter-machine/</link>
		<comments>http://www.slashdev.ca/2008/08/11/lean-mean-mediacenter-machine/#comments</comments>
		<pubDate>Mon, 11 Aug 2008 22:19:34 +0000</pubDate>
		<dc:creator>jiGGaK</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Make]]></category>

		<guid isPermaLink="false">http://www.slashdev.ca/?p=131</guid>
		<description><![CDATA[A short time ago Handbrake began to ship with default encoding settings for the &#8220;Normal&#8221; profile using 2-pass h264 encoding.  Sadly my XBox and XBMC just weren&#8217;t up to the task of decoding all those fancy h264 bits in software anymore.
Naturally instead of adjusting the encoding parameters, I decided to begin the hunt for [...]]]></description>
			<content:encoded><![CDATA[<p>A short time ago <a href="http://handbrake.fr/">Handbrake</a> began to ship with default encoding settings for the &#8220;Normal&#8221; profile using 2-pass h264 encoding.  Sadly my <a href="xbox-remote-onoff">XBox</a> and <a href="http://xbmc.org/">XBMC</a> just weren&#8217;t up to the task of decoding all those fancy h264 bits in software anymore.</p>
<p>Naturally instead of adjusting the encoding parameters, I decided to begin the hunt for a new video player&#8230; oh and it has to be cheaper than that <a href="http://www.apple.com/appletv/">AppleTV</a> thing since it does h264.  It also has to be similarly quiet, power efficient, and small.</p>
<div id="attachment_141" class="wp-caption alignleft" style="width: 310px"><a href="http://www.slashdev.ca/wp-content/uploads/2008/07/finished_case.jpg"><img src="http://www.slashdev.ca/wp-content/uploads/2008/07/finished_case-300x167.jpg" alt="Not quite an AppleTV" title="finished_case" width="300" height="167" class="size-medium wp-image-141" /></a><p class="wp-caption-text">Not quite an Apple TV</p></div>
<p>Well this is the result.  It&#8217;s a bit bigger than an AppleTV but it&#8217;s certainly quiet and power efficient.  And I actually quite like the look of it.</p>
<p><br style="clear: both" /><br />
<span id="more-131"></span></p>
<h2>Hardware</h2>
<div id="attachment_143" class="wp-caption alignright" style="width: 160px"><a href="http://www.slashdev.ca/wp-content/uploads/2008/07/hardware.jpg"><img src="http://www.slashdev.ca/wp-content/uploads/2008/07/hardware-150x112.jpg" alt="The beginnings of a mediacenter pc" title="Hardware" width="150" height="112" class="size-thumbnail wp-image-143" /></a><p class="wp-caption-text">The beginnings of a mediacenter pc</p></div>
<p>D201GLY2TA MiniITX board, 1GB Kingston DDR2 667MHz, picoPSU 120W, Transcend 4GB x266 CF, and SAT2CF by startech.com.  Board, PSU/AC-DC converter came from <a href="http://www.mini-box.com">mini-box.com</a>, the memory and CF card from <a href="http://www.canadacomputers.com">canadacomputers.com</a> and the CF-SATA adaptor from <a href="http://www.ncix.com">ncix.com</a>.  Cost breakdown:</p>
<p><br style="clear: both" /></p>
<table>
<tr>
<th>Item</th>
<th>Cost</th>
<th>Comments</th>
</tr>
<tr>
<td>D201GLY2TA</td>
<td>$75.00</td>
<td>crappy frackin BIOS, not very Linux friendly&#8230; but it&#8217;s CHEAP!</td>
</tr>
<tr>
<td>picoPSU-120 power kit</td>
<td>$54.95</td>
<td>small, efficient, awesome&#8230; nuff said</td>
</tr>
<tr>
<td>CF200 IDE to CF adaptor</td>
<td>$9.50</td>
<td>BIOS is garbage, or the adaptor sucks&#8230; needless to say $10 down the crap shoot</td>
</tr>
<tr>
<td>1GB Memory</td>
<td>$29.99</td>
<td>it works</td>
</tr>
<tr>
<td>Trancend 4GB CF</td>
<td>$51.99</td>
<td>also, just works</td>
</tr>
<tr>
<td>SAT2CF</td>
<td>$38.04</td>
<td>slooooooow, as frack!  but so far not much of an issue</td>
</tr>
</table>
<p>Grand total including taxes, shipping and brokerage fees&#8230; aprox. $370 CDN.  Mother, %$*#!  That&#8217;s way more than the AppleTV.  Oh well, at least I didn&#8217;t have to give Apple Inc. any more of my hard earned money and this thing <strong>should</strong> be much more customizable&#8230; right?  Read on for details of the software.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.slashdev.ca/2008/08/11/lean-mean-mediacenter-machine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
