<?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; jtag</title>
	<atom:link href="http://hackaday.com/tag/jtag/feed/" rel="self" type="application/rss+xml" />
	<link>http://hackaday.com</link>
	<description>Fresh hacks every day</description>
	<lastBuildDate>Fri, 10 Feb 2012 06:18:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='hackaday.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/5560f98f805877b0e332f191cb9e0af3?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Hack a Day &#187; jtag</title>
		<link>http://hackaday.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://hackaday.com/osd.xml" title="Hack a Day" />
	<atom:link rel='hub' href='http://hackaday.com/?pushpress=hub'/>
		<item>
		<title>Serial port JTAG programmer</title>
		<link>http://hackaday.com/2011/05/22/serial-port-jtag-programmer/</link>
		<comments>http://hackaday.com/2011/05/22/serial-port-jtag-programmer/#comments</comments>
		<pubDate>Sun, 22 May 2011 23:45:19 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[tool hacks]]></category>
		<category><![CDATA[jtag]]></category>
		<category><![CDATA[programmer]]></category>
		<category><![CDATA[serial port]]></category>
		<category><![CDATA[voltage divider]]></category>
		<category><![CDATA[zener diode]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=43412</guid>
		<description><![CDATA[If you&#8217;re planning to do some hacking with CPLD or FPGA chips you&#8217;ll need a way to program them. JTAG is one of the options and here&#8217;s a cheap method that uses the serial port (translated). This method requires only four signals (TDI, TMS, TCK and TDO) plus ground. But the problem is that an RS232 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=43412&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-43413" title="serial-port-jtag-programmer" src="http://hackadaycom.files.wordpress.com/2011/05/serial-port-jtag-programmer-e1306095415984.jpg" alt="" width="470" height="353" /></p>
<p>If you&#8217;re planning to do some hacking with CPLD or FPGA chips you&#8217;ll need a way to program them. JTAG is one of the options and here&#8217;s <a href="http://marsohod.org/index.php/ourblog/11-blog/163-marsblaster">a cheap method that uses the serial port</a> (<a href="http://translate.google.com/translate?js=n&amp;prev=_t&amp;hl=en&amp;ie=UTF-8&amp;layout=2&amp;eotf=1&amp;sl=auto&amp;tl=en&amp;u=http%3A%2F%2Fmarsohod.org%2Findex.php%2Fourblog%2F11-blog%2F163-marsblaster">translated</a>).</p>
<p>This method requires only four signals (TDI, TMS, TCK and TDO) plus ground. But the problem is that an RS232 serial port operates with 12V logic levels and the JTAG side of the programmer needs to operate with the logic levels native to the device you&#8217;re programming. Commercial programmers use a level convert IC to take care of this for you, but that doesn&#8217;t mesh with the cheap goal of this project. Instead, [Nicholas] uses Zener diodes and voltage dividers to make the conversion. There is also an LED for each data signal to give some feedback if you&#8217;re having trouble.</p>
<p>You can use this along with a programming application that [Nicholas] whipped up using Visual Studio. It works well via the serial port, but he did try programming with a USB-to-Serial dongle. He found that this method slows the process down to an unbearable 5-minutes. Take a look, maybe you can help to get that sloth-like programming up to a manageable speed.</p>
<p>[Thanks Alex]</p>
<br />Filed under: <a href='http://hackaday.com/category/tool-hacks/'>tool hacks</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/43412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/43412/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/43412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/43412/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/43412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/43412/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/43412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/43412/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/43412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/43412/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/43412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/43412/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/43412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/43412/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=43412&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/05/22/serial-port-jtag-programmer/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Mike Szczys</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2011/05/serial-port-jtag-programmer-e1306095415984.jpg" medium="image">
			<media:title type="html">serial-port-jtag-programmer</media:title>
		</media:content>
	</item>
		<item>
		<title>Versaloon ported to STM8 and STM32 discovery boards</title>
		<link>http://hackaday.com/2011/02/06/versaloon-ported-to-stm8-and-stm32-discovery-boards/</link>
		<comments>http://hackaday.com/2011/02/06/versaloon-ported-to-stm8-and-stm32-discovery-boards/#comments</comments>
		<pubDate>Sun, 06 Feb 2011 20:53:39 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[tool hacks]]></category>
		<category><![CDATA[discovery]]></category>
		<category><![CDATA[jtag]]></category>
		<category><![CDATA[openocd]]></category>
		<category><![CDATA[stm32]]></category>
		<category><![CDATA[stm8]]></category>
		<category><![CDATA[versaloon]]></category>
		<category><![CDATA[vsprog]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=32475</guid>
		<description><![CDATA[[Bingo] did some work porting Versaloon for STM8 and STM32 discovery boards. Versaloon is a multiple-architecture programmer that we saw a few weeks back. At its center is an STM32 microprocessor, which greatly simplifies the work necessary to use the two discovery boards instead. Flashing the firmware to the boards will zap the ST-link firmware and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=32475&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-32477" title="versaloon-on-stm8" src="http://hackadaycom.files.wordpress.com/2011/01/versaloon-on-stm8.jpg" alt="" width="470" height="353" /></p>
<p>[Bingo] did some work <a href="http://www.avrfreaks.net/index.php?name=PNphpBB2&amp;file=viewtopic&amp;t=101700&amp;start=0&amp;postdays=0&amp;postorder=asc&amp;highlight=">porting Versaloon for STM8 and STM32 discovery boards</a>. Versaloon is a multiple-architecture programmer that <a href="http://hackaday.com/2010/12/25/versaloon-can-program-hardware-from-several-manufacturers/">we saw a few weeks back</a>. At its center is an STM32 microprocessor, which greatly simplifies the work necessary to use <a href="http://hackaday.com/2010/10/12/arm-prototyping-on-the-cheap-with-stm32-discovery/">the two</a> <a href="http://hackaday.com/2009/11/23/stm8s-discovery-microcontrollers-reach-a-new-low/">discovery boards</a> instead. Flashing <a href="http://hosted.hackaday.com/STMxx-Discovery-Versaloon-SWD.tar.gz">the firmware</a> to the boards will zap the ST-link firmware and [Bingo] doesn&#8217;t know of a way to restore that so be warned. This hack is still pretty fresh off the bench, but so far it looks like vsprog and OpenOCD both work just fine with the new hardware.</p>
<br />Filed under: <a href='http://hackaday.com/category/tool-hacks/'>tool hacks</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/32475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/32475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/32475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/32475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/32475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/32475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/32475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/32475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/32475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/32475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/32475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/32475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/32475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/32475/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=32475&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/02/06/versaloon-ported-to-stm8-and-stm32-discovery-boards/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Mike Szczys</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2011/01/versaloon-on-stm8.jpg" medium="image">
			<media:title type="html">versaloon-on-stm8</media:title>
		</media:content>
	</item>
		<item>
		<title>Versaloon can program hardware from several manufacturers</title>
		<link>http://hackaday.com/2010/12/25/versaloon-can-program-hardware-from-several-manufacturers/</link>
		<comments>http://hackaday.com/2010/12/25/versaloon-can-program-hardware-from-several-manufacturers/#comments</comments>
		<pubDate>Sat, 25 Dec 2010 19:00:56 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[tool hacks]]></category>
		<category><![CDATA[icp]]></category>
		<category><![CDATA[isp]]></category>
		<category><![CDATA[jtag]]></category>
		<category><![CDATA[programmer]]></category>
		<category><![CDATA[stm32]]></category>
		<category><![CDATA[versaloon]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=32055</guid>
		<description><![CDATA[Versaloon is an open source, USB connected project, that centers around an STM32 processor and provides a standard JTAG pinout. Above you see the Nano version which has a 10-pin JTAG connector, but there is also a 20-pin option on the Handy model. Great, another JTAG programmer. Well this can do a bit more than [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=32055&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-32058" title="versaloon-nano" src="http://hackadaycom.files.wordpress.com/2010/12/versaloon-nano-e1293213494346.jpg" alt="" width="470" height="283" /></p>
<p><a href="http://www.versaloon.com/">Versaloon</a> is an open source, USB connected project, that centers around an <a href="http://hackaday.com/2010/10/12/arm-prototyping-on-the-cheap-with-stm32-discovery/">STM32 processor</a> and provides a standard JTAG pinout. Above you see the Nano version which has a 10-pin JTAG connector, but there is also a 20-pin option on the Handy model. Great, another JTAG programmer. Well this can do a bit more than that. With a bit of help from the software it has been turned into a programmer for ten different types of hardware. Obviously this should be able to program anything that works with the JTAG protocol, but the script adapts it to work as an In System (or In Circuit) Programmer too. So far <a href="http://www.versaloon.com/doc/versaloon/doc_versaloon_programmer_platform.html#doc_versaloon_programmer_connection_to_targets">the list of programming targets</a> includes STM32, LPC1000, LPC900, STM8, AR8, MSP430, and a few others.</p>
<p>We had some trouble finding an actual picture of this hardware. If you&#8217;ve got one, snap a picture and leave a link to it in the comments along with your thoughts on the device.</p>
<p>[Thanks Geekabit]</p>
<br />Filed under: <a href='http://hackaday.com/category/tool-hacks/'>tool hacks</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/32055/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/32055/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/32055/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/32055/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/32055/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/32055/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/32055/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/32055/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/32055/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/32055/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/32055/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/32055/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/32055/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/32055/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=32055&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2010/12/25/versaloon-can-program-hardware-from-several-manufacturers/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Mike Szczys</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/12/versaloon-nano-e1293213494346.jpg" medium="image">
			<media:title type="html">versaloon-nano</media:title>
		</media:content>
	</item>
		<item>
		<title>Revive a DockStar and get so much more</title>
		<link>http://hackaday.com/2010/09/09/revive-a-dockstar-and-get-so-much-more/</link>
		<comments>http://hackaday.com/2010/09/09/revive-a-dockstar-and-get-so-much-more/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 13:27:38 +0000</pubDate>
		<dc:creator>Jakob Griffith</dc:creator>
				<category><![CDATA[classic hacks]]></category>
		<category><![CDATA[dockstar]]></category>
		<category><![CDATA[jtag]]></category>
		<category><![CDATA[parallel]]></category>
		<category><![CDATA[tiao]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=28070</guid>
		<description><![CDATA[[Firestorm_v1] has done a fabulous writeup on not only resurrecting his dead DockStar with JTAG, but also includes some handy techniques and useful information that could be used with other hardware and JTAG equipped devices. The tutorial itself goes into the details of finding the JTAG, correctly identifying the ports and making an adapter cable. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=28070&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-28071" title="You know those days where you don't feel like you can write anything? And then an hour later there is an article infront of you? Of course you don't, you don't work for HAD, GTFO. Just kidding, we love you guys." src="http://hackadaycom.files.wordpress.com/2010/09/dscf0701.jpg" alt="" width="470" height="353" /></p>
<p>[Firestorm_v1] has done a fabulous writeup on not only resurrecting his <a href="http://www.yourwarrantyisvoid.com/2010/09/08/dead-dockstar-resurrected-with-jtag/">dead DockStar with JTAG</a>, but also includes some handy techniques and useful information that could be used with other hardware and <a href="http://hackaday.com/2009/10/20/freeboot-gives-the-xbox-360-jtag-hack-new-life/">JTAG equipped devices</a>.</p>
<p>The tutorial itself goes into the details of finding the JTAG, correctly identifying the ports and making an adapter cable. Then wiring a <a href="http://www.tiaowiki.com/w/Universal_JTAG_User_Manual_%28Parallel%29">TIAO Parallel JTAG</a> kit and finally the flash and upload of firmware to the deceased Dockstar to give it new life.</p>
<p>While the fun stops a little short, we&#8217;ll be sure to keep an eye out for [Firestorm_v1's] future plans involving these surprisingly useful (read: hackable) <a href="http://www.seagate.com/www/en-us/products/network_storage/freeagent_dockstar/">storage devices</a>, &#8220;roving USB camera with WiFi&#8221; we hear?﻿</p>
<br />Filed under: <a href='http://hackaday.com/category/classic-hacks/'>classic hacks</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/28070/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/28070/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/28070/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/28070/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/28070/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/28070/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/28070/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/28070/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/28070/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/28070/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/28070/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/28070/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/28070/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/28070/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=28070&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2010/09/09/revive-a-dockstar-and-get-so-much-more/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Jakob Griffith</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/09/dscf0701.jpg" medium="image">
			<media:title type="html">You know those days where you don&#039;t feel like you can write anything? And then an hour later there is an article infront of you? Of course you don&#039;t, you don&#039;t work for HAD, GTFO. Just kidding, we love you guys.</media:title>
		</media:content>
	</item>
		<item>
		<title>JTAG programming over a network</title>
		<link>http://hackaday.com/2010/06/01/jtag-programming-over-a-network/</link>
		<comments>http://hackaday.com/2010/06/01/jtag-programming-over-a-network/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 16:00:16 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[linux hacks]]></category>
		<category><![CDATA[jtag]]></category>
		<category><![CDATA[programmer]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[serial]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=24633</guid>
		<description><![CDATA[[Matt Evans] was running up against the common programming gotcha caused by disappearing parallel ports. For years he had used a JTAG parallel cable when working with FPGAs but recently realized he no longer owned any machines with that interface available. Instead of shelling out $50 for a USB programmer he a programming interface from [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=24633&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-24634" title="router-jtag-programmer" src="http://hackadaycom.files.wordpress.com/2010/06/router-jtag-programmer-e1275402780683.jpg" alt="" width="470" height="314" /></p>
<p>[Matt Evans] was running up against the common programming gotcha caused by disappearing parallel ports. For years he had used a JTAG parallel cable when working with FPGAs but recently realized he no longer owned any machines with that interface available. Instead of shelling out $50 for a USB programmer <a href="http://axio.ms/projects/wrtag/">he a programming interface from an old router</a>.What he&#8217;s doing is <a href="http://hackaday.com/2009/09/22/introduction-to-ftdi-bitbang-mode/">bit-banging</a> using Linux. In this case it&#8217;s a router running a version of Linux which makes his setup Internet friendly but this could be done in the same basic manner on any Linux device with enough available I/O to connect to the device you are programming.</p>
<br />Filed under: <a href='http://hackaday.com/category/linux-hacks/'>linux hacks</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/24633/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/24633/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/24633/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/24633/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/24633/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/24633/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/24633/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/24633/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/24633/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/24633/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/24633/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/24633/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/24633/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/24633/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=24633&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2010/06/01/jtag-programming-over-a-network/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Mike Szczys</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/06/router-jtag-programmer-e1275402780683.jpg" medium="image">
			<media:title type="html">router-jtag-programmer</media:title>
		</media:content>
	</item>
		<item>
		<title>freeBOOT gives the Xbox 360 JTAG hack new life</title>
		<link>http://hackaday.com/2009/10/20/freeboot-gives-the-xbox-360-jtag-hack-new-life/</link>
		<comments>http://hackaday.com/2009/10/20/freeboot-gives-the-xbox-360-jtag-hack-new-life/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 20:00:42 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[security hacks]]></category>
		<category><![CDATA[xbox hacks]]></category>
		<category><![CDATA[cygnos360]]></category>
		<category><![CDATA[exploit]]></category>
		<category><![CDATA[freeBoot]]></category>
		<category><![CDATA[jtag]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[mod chip]]></category>
		<category><![CDATA[xbox 360]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=17550</guid>
		<description><![CDATA[There has been another development in the never-ending battle that is Microsoft trying to keep its gaming system closed to unauthorized use. Xbox-scene reports that a new hack called freeBOOT v0.01 allows the Xbox 360 to upgrade to the newer kernels, but allows the option of rebooting to an older kernel in order use the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=17550&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-17551" title="xbox360-freeBOOT-exploit" src="http://hackadaycom.files.wordpress.com/2009/10/xbox360-freeboot-exploit.jpg" alt="xbox360-freeBOOT-exploit" width="470" height="335" /></p>
<p>There has been another development in the never-ending battle that is Microsoft trying to keep its gaming system closed to unauthorized use. <a href="http://www.xbox-scene.com/xbox1data/sep/EkVVAEkpZELlGflwlM.php">Xbox-scene reports that a new hack</a> called freeBOOT v0.01 allows the Xbox 360 to upgrade to the newer kernels, but allows the option of rebooting to an older kernel in order use the JTAG exploit and gain access to the hardware.</p>
<p>In case you missed it, the <a href="http://www.free60.org/JTAG_Hack">JTAG hack</a> is a way to run <a href="http://hackaday.com/2009/08/17/snes-on-an-xbox360/">homebrew code on an Xbox 360</a>. Exploiting this hack makes it possible to boot a Linux kernel in about five seconds. We&#8217;ve long been fans of the <a href="http://hackaday.com/2008/09/20/xbmc-cross-platform-beta-released/">homebrew work done with XBMC</a> on the original Xbox and hope that advances like this will lead to that end. We want this because the older hardware cannot handle high definition content at full resolution but the Xbox 360 certainly can.</p>
<p>This exploit is still far from perfect. It currently requires that the <a href="http://www.cygnos360.com/">Cygnos360 mod chip</a> be installed on the system. A resistor also needs to be removed from the board to prevent accidental kernel updating. That being said, this is still progress. If you&#8217;re interested in step-by-step details, <a href="http://dwl.xbox-scene.com/nfo/freebootv0.01.txt">take a look at the text file instructions provided</a>.</p>
<p>[Thanks wdfowty]</p>
<br />Posted in security hacks, xbox hacks  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/17550/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/17550/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/17550/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/17550/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/17550/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/17550/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/17550/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/17550/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/17550/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/17550/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/17550/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/17550/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/17550/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/17550/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=17550&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2009/10/20/freeboot-gives-the-xbox-360-jtag-hack-new-life/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Mike Szczys</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/10/xbox360-freeboot-exploit.jpg" medium="image">
			<media:title type="html">xbox360-freeBOOT-exploit</media:title>
		</media:content>
	</item>
		<item>
		<title>Parts: Unboxing the Bus Pirate</title>
		<link>http://hackaday.com/2009/07/20/parts-unboxing-the-bus-pirate/</link>
		<comments>http://hackaday.com/2009/07/20/parts-unboxing-the-bus-pirate/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 19:00:32 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[parts]]></category>
		<category><![CDATA[tool hacks]]></category>
		<category><![CDATA[1-wire]]></category>
		<category><![CDATA[bus pirate]]></category>
		<category><![CDATA[i2c]]></category>
		<category><![CDATA[jtag]]></category>
		<category><![CDATA[preorder]]></category>
		<category><![CDATA[serial interface]]></category>
		<category><![CDATA[spi]]></category>
		<category><![CDATA[unboxing]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=12819</guid>
		<description><![CDATA[For months we&#8217;ve used our Bus Pirate universal serial interface tool to demonstrate electronics parts, so it&#8217;s only appropriate that the Bus Pirate get it&#8217;s own parts post. We recently had a Bus Pirate preorder, and today we received the pre-production Bus Pirate prototype from Seeed Studio. This prototype was mailed just a few days [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=12819&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-12833" title="bp-unbox-3" src="http://hackadaycom.files.wordpress.com/2009/07/bp-unbox-3.jpg" alt="bp-unbox-3" width="470" height="326" /></p>
<p>For months we&#8217;ve used our <a href="http://www.buspirate.com">Bus Pirate universal serial interface tool</a> to demonstrate <a href="http://hackaday.com/category/parts/">electronics parts</a>, so it&#8217;s only appropriate that the Bus Pirate  get it&#8217;s own parts post. We recently had a <a href="http://hackaday.com/2009/06/25/bus-pirate-preorders-open/">Bus Pirate preorder</a>, and today we received the pre-production Bus Pirate prototype from <a href="http://www.seeedstudio.com/depot/">Seeed Studio</a>. This prototype was mailed just a few days before <a href="http://hackaday.com/2009/07/16/bus-pirate-preorder-1-ships/">preorder 1 started to ship</a>, so those packages should  start arriving any day.</p>
<p>Follow along as we unbox the prototype Bus Pirate, and connect it to a debugger to determine  the <a href="http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en026374">PIC24FJ64GA002-I/SO</a> revision that shipped with this board. Use this post to share your own Bus Pirate unboxing experience. Pictures and discussion after the break.</p>
<p><span id="more-12819"></span></p>
<p><img class="alignnone size-full wp-image-12831" title="bp-unbox-1" src="http://hackadaycom.files.wordpress.com/2009/07/bp-unbox-1.jpg" alt="bp-unbox-1" width="470" height="328" /></p>
<p>Most Bus Pirates will ship <a href="http://hackadaycom.files.wordpress.com/2009/07/ready-envelope-470.jpg?w=470&amp;h=312">in a padded envelope</a> (JPG), but ours came in a box with some PCBs for future projects and  an AVR programmer.</p>
<p><img class="alignnone size-full wp-image-12832" title="bp-unbox-2" src="http://hackadaycom.files.wordpress.com/2009/07/bp-unbox-2.jpg" alt="bp-unbox-2" width="470" height="287" /></p>
<p>Inside the box, the Bus Pirate is protected by a <em>static dissipative</em> bag. The Bus Pirate pin headers are stuck in foam to protect the packaging.</p>
<p><img class="alignnone size-full wp-image-12834" title="bp-unbox-5" src="http://hackadaycom.files.wordpress.com/2009/07/bp-unbox-5.jpg" alt="bp-unbox-5" width="470" height="350" /></p>
<p>We ran a battery of functionality tests that covered USB, the user terminal, protocol libraries, power supplies, and pullup resistors. Everything passed our tests.</p>
<p>Next, we used a Microchip ICD2 debugger/programmer to  make a backup of the firmware prior to doing a test upgrade/downgrade with the bootloader.</p>
<blockquote><p>Connecting to MPLAB ICD 2<br />
&#8230;Connected<br />
Setting Vdd source to target<br />
<strong>Target Device PIC24FJ64GA002 found, <span style="text-decoration:underline;">revision = Rev 0&#215;3042</span></strong><br />
&#8230;Reading ICD Product ID<br />
Running ICD Self Test<br />
&#8230;Passed<br />
MPLAB ICD 2 ready for next operation</p></blockquote>
<p>All of our previous Bus Pirate version were built using Rev 0&#215;3003 (A3) of the PIC 24FJ64GA002. Version A3 has a few issues, known as <a href="http://ww1.microchip.com/downloads/en/DeviceDoc/80470a.pdf">errata</a> (PDF), one of which is a <a href="http://www.google.com/codesearch/url?ct=ext&amp;url=http://forum.microchip.com/tm.aspx%3Fm%3D271183%26mpage%3D1&amp;usg=AFQjCNFvedVtagkyXzTS-vmSKIk3OE0eiw">flaky hardware I2C module</a>. These chips aren&#8217;t &#8216;defective&#8217;, they just have a few quirks like any complicated integrated circuit. The Bus Pirate firmware works around these issues using software techniques. Most desktop computer processors go through a similar stepping process.</p>
<p>Our Bus Pirate appears to have a B4 revision PIC (0&#215;3042) that corrects some, but not all, of the errata from A3. This is no guarantee that every Bus Pirate will have a B4 PIC, preorder 1 and 2 are both sourced from multiple international vendors. Additionally, there&#8217;s no immediate benefit from having a B4 chip, someone will have to write software that takes advantage of the hardware. The next  firmware update will print the PIC revision in the user terminal, check the <a href="http://code.google.com/p/the-bus-pirate/source/browse/#svn/trunk/firmware/v0h-nightly">nightly compiles</a> if you&#8217;re anxious.</p>
<p>There is a revision B5 mentioned in the PIC errata. Some of these might find their way into preorder 2 boards.</p>
<p><img class="alignnone size-full wp-image-12830" title="bp-unbox-0" src="http://hackadaycom.files.wordpress.com/2009/07/bp-unbox-0.jpg" alt="bp-unbox-0" width="470" height="361" /></p>
<p>Now that you&#8217;ve got your Bus Pirate, what do you do with it? We&#8217;ve got a bunch of <a href="http://hackaday.com/the-bus-pirate-universal-serial-interface/">part demonstrations</a> to get you started.</p>
<p>Please leave a comment about your unboxing experience, and the devices you plan to interface.</p>
<br />Posted in parts, tool hacks  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/12819/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/12819/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/12819/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/12819/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/12819/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/12819/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/12819/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/12819/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/12819/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/12819/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/12819/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/12819/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/12819/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/12819/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=12819&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2009/07/20/parts-unboxing-the-bus-pirate/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Ian</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/07/bp-unbox-3.jpg" medium="image">
			<media:title type="html">bp-unbox-3</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/07/bp-unbox-1.jpg" medium="image">
			<media:title type="html">bp-unbox-1</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/07/bp-unbox-2.jpg" medium="image">
			<media:title type="html">bp-unbox-2</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/07/bp-unbox-5.jpg" medium="image">
			<media:title type="html">bp-unbox-5</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/07/bp-unbox-0.jpg" medium="image">
			<media:title type="html">bp-unbox-0</media:title>
		</media:content>
	</item>
		<item>
		<title>How-to: The Bus Pirate V2 with USB</title>
		<link>http://hackaday.com/2009/06/25/how-to-the-bus-pirate-v2-with-usb/</link>
		<comments>http://hackaday.com/2009/06/25/how-to-the-bus-pirate-v2-with-usb/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 00:15:21 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[hardware]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[tool hacks]]></category>
		<category><![CDATA[1-wire]]></category>
		<category><![CDATA[bus pirate]]></category>
		<category><![CDATA[i2c]]></category>
		<category><![CDATA[jtag]]></category>
		<category><![CDATA[midi]]></category>
		<category><![CDATA[pc keyboard]]></category>
		<category><![CDATA[spi]]></category>
		<category><![CDATA[the bus pirate]]></category>
		<category><![CDATA[uart]]></category>
		<category><![CDATA[universal serial interface]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=10041</guid>
		<description><![CDATA[Update, Saturday July 4th, 2009: All preorders are closed. The Bus Pirate is a universal serial interface tool, we use it to test new chips without writing any code. It currently supports most serial protocols, including 1-Wire, I2C, SPI, JTAG, asynchronous serial, MIDI, and more. We added some other features we frequently need, like pulse-width [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=10041&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-10467" title="buspiratev2goii450" src="http://hackadaycom.files.wordpress.com/2009/04/buspiratev2goii450.jpg" alt="buspiratev2goii450" width="450" height="314" /></p>
<p><strong>Update, Saturday July 4th, 2009: </strong>All preorders are closed.</p>
<p>The <a href="http://www.buspirate.com">Bus Pirate</a> is a universal serial interface tool, we use it to <a href="http://hackaday.com/category/parts/">test new chips</a> without writing any code. It currently supports most serial protocols, including 1-Wire, I2C, SPI, JTAG, asynchronous serial, MIDI, and more. We added some other features we frequently need, like pulse-width modulation, frequency measurement, voltage measurement, bus sniffers, pull-up resistors, and switchable 3.3volt and 5volt power supplies.</p>
<p>The new v2 family adds USB power and connectivity to the best Bus Pirate design yet.  We also reduced the part count and cost wherever possible. If you want to get your hands on some Bus Pirate USB goodness, Seeed Studio has assembled hardware for $30 (including worldwide shipping).</p>
<p>Read about the new design after the break.</p>
<p><span id="more-10041"></span></p>
<p><strong>Concept overview</strong></p>
<p><img class="alignnone size-full wp-image-10458" title="overview450" src="http://hackadaycom.files.wordpress.com/2009/04/overview450.png" alt="overview450" width="450" height="212" /></p>
<p>The Bus Pirate connects to a PC USB port. The user send commands to the Bus Pirate from a serial terminal on the PC. Commands are translated to the bus protocols that control microchips. See our <a href="http://www.buspirate.com">Bus Pirate page</a> for full documentation.</p>
<p>The latest firmware supports 1-Wire, I2C, SPI, JTAG, asynchronous serial, MIDI, and PC keyboards. Bit-wise 2- and 3-wire libraries can interface most proprietary serial protocols.  More protocols are being added all the time, check out the source code on our <a href="http://code.google.com/p/the-bus-pirate/">Google Code SVN page</a>.</p>
<p><strong>Hardware</strong></p>
<p><strong><img class="alignnone size-full wp-image-10048" title="cct25450" src="http://hackadaycom.files.wordpress.com/2009/04/cct25450.jpg" alt="cct25450" width="450" height="209" /></strong></p>
<p><a href="http://hackadaycom.files.wordpress.com/2009/05/cct25a.png">Click for a large image of the schematic</a> (PNG). The schematic and board layout were made with the freeware version of <a href="http://www.cadsoft.de">Cadsoft Eagle</a>. Download the latest files from our <a href="http://code.google.com/p/the-bus-pirate/downloads/list">Google Code</a> page.</p>
<p><em>PIC24F</em></p>
<p><em><img class="alignnone size-full wp-image-10480" title="pic24f-highlight" src="http://hackadaycom.files.wordpress.com/2009/04/pic24f-highlight.jpg" alt="pic24f-highlight" width="450" height="329" /><br />
</em></p>
<p>A Microchip <a href="http://hackaday.com/2008/09/18/web-server-on-a-business-card-part-1/">PIC24F series</a> microcontroller generates the user interface and translates input into bus communications. V2 uses the same <a href="http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en026374">24FJ64GA002</a> as the previous Bus Pirate versions. It&#8217;s cheap, has a ton of memory,  a couple 5volt tolerant input pins, and the peripheral pin select feature lets us assign hardware modules anywhere we want.</p>
<p>The PIC (IC1) is powered by a 3.3volt regulator (VR2, C23). Each PIC power pin gets a 0.1uF bypass capacitor (C1,2). The internal 2.5volt regulator requires a 10uF tantalum capacitor (C20). The programming pins are brought to a five pin header (ICSP) on the edge of the PCB.</p>
<p><em>USB interface<br />
</em></p>
<p><em><img class="alignnone size-full wp-image-10471" title="ftdi-450ii1" src="http://hackadaycom.files.wordpress.com/2009/04/ftdi-450ii1.jpg" alt="ftdi-450ii1" width="450" height="229" /></em></p>
<p>The Bus Pirate is powered from the USB 5volt supply, which is first filtered with a ferrite bead (L1) and 10uF tantalum capacitor (C21). We used the small, still-not-quite-common, <a href="http://en.wikipedia.org/wiki/USB#Types_of_USB_connector">USB mini-b</a> connector (J2).</p>
<p>Choosing a ferrite bead is a common hangup. Its purpose is to filter small power fluctuations, all the current for the circuit will go through it. We can guestimate that the Bus Pirate&#8217;s worst case current consumption is 525ma (3 power supplies @ 150ma, the FTDI chip @ 25ma, 2 LEDs @ 50ma max). Use a ferrite bead rated for at least 1000ma to be safe. We used <a href="http://www.mouser.com/Search/ProductDetail.aspx?R=BLM21PG331SN1Dvirtualkey64800000virtualkey81-BLM21P331SG">this one</a>, which is rated for 1500ma and costs 10 cents.</p>
<p>An FTDI <a href="http://www.ftdichip.com/Products/FT232BM.htm">FT232BL</a> USB-&gt;serial chip (IC2) handles the USB connection. You might be familiar with this chip from various <a href="http://hackaday.com/category/arduino-hacks/">Arduino</a> boards. FTDI has <a href="http://www.ftdichip.com/Drivers/VCP.htm">extensive driver support</a> for most platforms, we used the virtual com port drivers.  This is the latest generation chip, and it&#8217;s only available in small SSOP and QFN packages. We had no problem hand-soldering it to a professional PCB, but it&#8217;s not for everyone.</p>
<p>The FT232BL is powered directly from the filtered, unregulated USB supply. C4 is a  decoupling capacitor for the FTDI232BL supply pin. A single LED (LED4/USB) indicates USB status and activity. The FT232BL RXLED pin sinks current, so we powered the LED from the 5volt USB supply through a 1.1K resistor (R3).</p>
<p>While the FT232BL runs at 5volts from the USB supply, its serial IO pins have an independent supply input &#8211; they can operate at another voltage. Since the microcontroller is 3.3volts, we just feed the FT232BL IO pins a 3.3volt supply and eliminate any funky translation circuitry. We used the chip&#8217;s internal 3.3volt regulator to supply the IO pins because it was the easiest trace to route. The IO pins get their own 0.1uF bypass capacitor (C5).</p>
<p><em>Switchable power supplies</em></p>
<p><em><img class="alignnone size-full wp-image-10475" title="vreg-450ii" src="http://hackadaycom.files.wordpress.com/2009/04/vreg-450ii.jpg" alt="vreg-450ii" width="449" height="297" /><br />
</em></p>
<p>The Bus Pirate has on-board 3.3volt and 5volt supplies (VR3, VR4) that can power a test circuit. The  supplies are switchable, so we can reset the circuit from software when something goes wrong. To be extra safe, the supplies are held off until activated in the terminal.</p>
<p>[<a href="http://www.sparkfun.com/commerce/account.php?id=7185">Nathan Seidle</a>] at <a href="http://www.sparkfun.com">SparkFun</a> recommended that we replace the  <a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=sGAEpiMZZMsGz1a6aV8DcPXeWoVS0Fnzr3zi8%252bAr99Q%3d">TPS796xx</a> ($2.50) we used in <a href="http://hackaday.com/2009/01/22/how-to-bus-pirate-v1-improved-universal-serial-interface">The Bus Pirate v1a</a> with a <a href="http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&amp;name=576-1259-1-ND">MIC5205-xxYM5</a> ($0.90). They supply just 150ma maximum current, compared to 800ma from the TPS796xx, but the cost savings and reduced part-count are worth it.</p>
<p>The regulators are fed from the 5volt USB supply. The 5volt regulator drops a few millivolts below optimal because there&#8217;s no headroom, but it&#8217;s within the minimum level specified by  most 5volt parts.</p>
<p>The MIC5205 requires a large output filter capacitor (C22-24, 10uF), but no input capacitor. An optional small-value capacitor on the BP pin can decrease power supply noise, but we left this off because it didn&#8217;t make much difference in practice.</p>
<p>A small voltage on the <em>EN</em> pin enables the supply, we used a 10K pull-down resistor (R18, not shown) to ensure that the supplies stay off while the PIC initializes. LED3/VREG, with current limiting resistor R32, lights when the power supplies are active.</p>
<p><em>On-board pull-up resistors</em></p>
<p><em><img class="alignnone size-full wp-image-10469" title="resis" src="http://hackadaycom.files.wordpress.com/2009/04/resis.jpg" alt="resis" width="450" height="298" /><br />
</em></p>
<p>Bus Pirate V2 has multi-voltage, software controlled pull-up resistors via the <a href="http://www.fairchildsemi.com/ds/CD%2FCD4066BC.pdf">4066</a> (PDF) quad bilateral switch (IC3). When enabled, the 4066 connects the four on-board bus pull-up resistors (R20-23, 10K) to any external signal on the Vpullup pin (0 to 5volts). When disabled, the outputs are high-impedance and have no effect on the bus lines.</p>
<p>The 4066 can&#8217;t switch an input voltage greater than the supply voltage. To give it the widest possible range, we powered it from the USB supply (5volts).</p>
<p>When operated at 5volts, it takes 4volts+ to enable the 4066. The PIC pins have a maximum output of 3.3volts, so we have a problem. We  solve it with a 5volt tolerant PIC pin and a pull-up resistor.  We turn on the 4066 with a pull-up resistor to 5volts (R19, 10K), and then disable it by switching the connected PIC pin to ground.</p>
<p>For a brief instant at power-on, the PIC pin is high-impedance and the 4066 outputs are active because the pull-up resistor holds the control pins at 5volts. This is a concern if the Vpullup input is connected to an external 5volt supply while the bus is connected to a 3.3volt device &#8211; the brief exposure to 5volts might harm the device. If you&#8217;re worried about this, make sure there&#8217;s no active power supply connected to the Vpullup input before powering the Bus Pirate. This isn&#8217;t a concern if you use one of the on-board power supplies for the pull-up voltage because they&#8217;re disabled at startup.</p>
<p><em>Voltage monitoring</em></p>
<p><em><img class="alignnone size-full wp-image-10474" title="cct-adcin" src="http://hackadaycom.files.wordpress.com/2009/04/cct-adcin.jpg" alt="cct-adcin" width="450" height="309" /><br />
</em></p>
<p>Four <a href="http://en.wikipedia.org/wiki/Voltage_divider">voltage dividers</a> (R10-17, 10K), attached to <a href="http://en.wikipedia.org/wiki/Analog-to-digital_converter">analog to digital converters</a>, allow the 3.3volt PIC to safely measure up to 6volts DC.</p>
<p>Two voltage monitors measure the switchable power supply output. One measures the Vpullup input voltage, and another connects to the external voltage measurement probe.</p>
<p><em>Indicator LEDs</em></p>
<p><em><img class="alignnone size-full wp-image-10463" title="front-back2450" src="http://hackadaycom.files.wordpress.com/2009/04/front-back2450.jpg" alt="front-back2450" width="450" height="191" /><br />
</em></p>
<p>Three LEDs indicate power, mode, and voltage regulator status (LED1-3). LED4/USB displays USB activity.</p>
<p>There are pads for resistors R30-32 and LEDs 1-3 on the front and back of the PCB. Only one set should be populated. We put pads on both sides so the board could be mounted with the indicator LEDs abutting the top of an enclosure.</p>
<p><em>V2a vs V2go</em></p>
<p><em><img class="alignnone size-full wp-image-10441" title="bpv2450" src="http://hackadaycom.files.wordpress.com/2009/04/bpv2450.jpg" alt="bpv2450" width="450" height="354" /><br />
</em></p>
<p>Click for large <a href="http://hackadaycom.files.wordpress.com/2009/04/cct1.png">schematic</a> (PNG) and <a href="http://hackadaycom.files.wordpress.com/2009/04/brd.png">layout</a> (PNG) images of the version 2a hardware. The Eagle layout files are available in our <a href="http://code.google.com/p/the-bus-pirate/downloads/list">Google Code SVN</a>.</p>
<p>Bus Pirate V2a is a developer&#8217;s board. In addition to all the features of V2go, it includes a jack (J1) for an external power supply and an additional 5volt regulator (VR1).  A switch (S1) selects between USB power and the external supply.</p>
<p>The FT232BL chip on V2a is powered directly from the USB supply, and is not connected to the external supply. This is useful if you want to disable USB and use the Bus Pirate with a serial port on a PC or PDA.</p>
<p>The V2a 4066 enable pull-up resistor is powered by the switchable 5volt regulator. The 5volt regulator must be enabled for the 4066 to be active. Don&#8217;t forget to install the 4066 pull-up resistor (R19), located on the back of the v2a PCB.</p>
<p><strong>PCB</strong></p>
<p><img class="alignnone size-full wp-image-10047" title="brd25450" src="http://hackadaycom.files.wordpress.com/2009/04/brd25450.png" alt="brd25450" width="437" height="354" /></p>
<p>The PCB is a compact, 2-layer design. We <a href="http://hackaday.com/2009/01/15/how-to-prepare-your-eagle-designs-for-manufacture/">prepared gerbers</a> and had PCBs made by our usual service, <a href="https://www.batchpcb.com/">BatchPCB</a> ($21, shipped to EU), and tried a new service offered by <a href="http://www.seeedstudio.com/wiki/index.php?title=Main_Page">Seeed Studio</a> ($32, shipped worldwide).</p>
<p>Seeed has a PCB service specifically for open source hardware projects. For $32 (including worldwide shipping) we got 5 small PCBs, and Seeed made a few extra to sell in their shop. We liked the idea that there would be extra PCBs available.</p>
<p>You might know Seeed Studio from their cheap, improved <a href="http://www.makershed.com/ProductDetails.asp?ProductCode=MKSEEED2">Seeeduino</a> Arduino clone. They&#8217;re located in Shenzhen, a Chinese electronics manufacturing hot-spot. A bunch of notable bloggers recently <a href="http://www.sparkfun.com/commerce/news.php?id=236">visited the region</a> and wrote about the <a href="http://www.sparkfun.com/commerce/news.php?id=237">huge electronic component markets</a>.</p>
<p><img class="alignnone size-full wp-image-10461" title="seeed-batchpcb4501" src="http://hackadaycom.files.wordpress.com/2009/04/seeed-batchpcb4501.jpg" alt="seeed-batchpcb4501" width="450" height="232" /></p>
<p>The Seed order arrived in 14 days (left), the BatchPCB order arrived in 30 days (right).  Seeed and BatchPCB both make beautiful PCBs. Seeed has a much faster turn-around, and has better minimum trace widths and separation (8mil vs 6mil). BatchPCB has standard green PCBs, Seeed gives you the choice of green, black, or white; red, blue and yellow are $7.50 extra.</p>
<p>We really like the Seeed PCB service, extra Bus Pirate <a href="http://www.seeedstudio.com/depot/the-bus-pirate-v2-go-pcb-p-331.htmlhttp://www.seeedstudio.com/depot/the-bus-pirate-v2-go-pcb-p-331.html">v2go</a> and <a href="http://www.seeedstudio.com/depot/the-bus-pirate-v2-pcb-p-330.html">v2a</a> PCBs from our order are available in the Seeed shop. BatchPCB remains the cheapest prototyping option if you want a single board, closed source work, or don&#8217;t mind the extra wait.</p>
<p><em>Parts list</em></p>
<table border="0">
<tbody>
<tr>
<td><strong>Part</strong></td>
<td><strong>Value (package)</strong></td>
</tr>
<tr>
<td>IC1</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=V/yyTCAHA4D/h5r3CRQDtA==">PIC24J64GA002</a> (SOIC)</td>
</tr>
<tr>
<td>IC2</td>
<td><a href="http://www.sparkfun.com/commerce/product_info.php?products_id=650">FT232RL</a> (SSOP)</td>
</tr>
<tr>
<td>IC3</td>
<td><a href="http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&amp;name=CD4066BCM-ND">CD4066D</a> (SOIC-N)</td>
</tr>
<tr>
<td>VR2,3</td>
<td><a href="http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&amp;name=576-1259-1-ND">MIC5205-3.3YM5 3.3volt regulator</a> (SOT23-5)</td>
</tr>
<tr>
<td>VR4</td>
<td><a href="http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&amp;name=576-1261-1-ND">MIC5205-5.0YM5 5volt regulator</a> (SOT23-5)</td>
</tr>
<tr>
<td>C1-5</td>
<td><a href="https://www.mouser.com/Search/ProductDetail.aspx?R=C0805C104M5RACTUvirtualkey64600000virtualkey80-C0805C104M5R">0.1uF capacitor</a> (0805)</td>
</tr>
<tr>
<td>C20-24</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=293D106X96R3A2TE3virtualkey61320000virtualkey74-293D106X96R3A2TE3">10uF tantalum capacitor</a> (SMC-A)</td>
</tr>
<tr>
<td>L1</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=BLM21PG331SN1Dvirtualkey64800000virtualkey81-BLM21P331SG">1000ma+ Ferrite bead</a> (0805)</td>
</tr>
<tr>
<td>R1</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=jBethxrBxZb5NLDetw123g==">2000 ohm resistor</a> (0805)</td>
</tr>
<tr>
<td>R3,30</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=DZvKvnD5UYWyFJjgnPvJ4g%3d%3d">1100 ohm resistor</a> (0805)</td>
</tr>
<tr>
<td>R10-23</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=sGAEpiMZZMtlubZbdhIBIADEshVnklemK%252bhrLNEuMe8%3d">10,000 ohm resistor</a> (0805)</td>
</tr>
<tr>
<td>R31,32</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=2BMLUTrrT4P7Xm58YbKmPg==">390 ohm resistor</a> (0805)</td>
</tr>
<tr>
<td>LED1-4</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=7JStj%2fjQ2SElGv%2fp7IzKlg%3d%3d">LED</a> (0805)</td>
</tr>
<tr>
<td>J2</td>
<td><a href="http://www.sparkfun.com/commerce/product_info.php?products_id=587">USB MINI-B</a> (SMD)</td>
</tr>
<tr>
<td>I/O</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=9-146278-0virtualkey57100000virtualkey571-9-146278-0">0.1&#8243; pin header</a> (2&#215;05)</td>
</tr>
<tr>
<td>ICSP</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=9-146278-0virtualkey57100000virtualkey571-9-146278-0">0.1&#8243; pin header</a> (1&#215;05)</td>
</tr>
<tr>
<td>ST</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=9-146278-0virtualkey57100000virtualkey571-9-146278-0">0.1&#8243; pin header</a> (1&#215;03) <em>*unpopulated, optional*</em></td>
</tr>
<tr>
<td><strong><br />
</strong></td>
<td></td>
</tr>
</tbody>
</table>
<table border="0">
<tbody>
<tr>
<td><em><strong>Optional</strong></em></td>
<td><em><strong>Parts for V2a</strong></em></td>
</tr>
<tr>
<td>C6-10</td>
<td><a href="https://www.mouser.com/Search/ProductDetail.aspx?R=C0805C104M5RACTUvirtualkey64600000virtualkey80-C0805C104M5R">0.1uF capacitor</a> (0805)</td>
</tr>
<tr>
<td>J1</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=b2tC%2fwvzm2TxaPjSsb%252bCzQ%3d%3d">2.1mm power jack</a> (SMD)</td>
</tr>
<tr>
<td>LED5,6</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=7JStj%2fjQ2SElGv%2fp7IzKlg%3d%3d">LED</a> (0805)</td>
</tr>
<tr>
<td>R33,34,40</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=DZvKvnD5UYWyFJjgnPvJ4g%3d%3d">1100 ohm resistor</a> (0805)</td>
</tr>
<tr>
<td>S1</td>
<td><a href="http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&amp;name=679-1849-ND">Slide switch, SPDT, rt angle</a></td>
</tr>
<tr>
<td>VR1</td>
<td><a href="https://www.mouser.com/Search/ProductDetail.aspx?R=LD1117S50TRvirtualkey51120000virtualkey511-LD1117S50">LD1117s50 5volt regulator</a> (SOT223)</td>
</tr>
</tbody>
</table>
<p><strong>Firmware</strong></p>
<p>The latest Bus Pirate firmware for all hardware version is always available on our <a href="http://code.google.com/p/the-bus-pirate/">Google Code page</a>. The code is written in C, and is compiled with the <a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=1406&amp;dDocName=en534868&amp;redirects=c30">Microchip C30 demonstration compiler</a>.</p>
<p><em>Bootloader</em></p>
<p>The biggest change in the latest firmware is the addition of a <a href="http://en.wikipedia.org/wiki/Boot_loader#Boot_loader">bootloader</a>. Now the firmware can be updated through the USB or serial connection.</p>
<p>A bootloader is small program that sits at the beginning of the PIC program memory. It accepts updated firmware through the USB or serial port and saves it to the chip.</p>
<p><img class="alignnone size-full wp-image-10449" title="bootload-jumper4501" src="http://hackadaycom.files.wordpress.com/2009/04/bootload-jumper4501.jpg" alt="bootload-jumper4501" width="450" height="112" /></p>
<p>The bootloader comes from Microchip application note <a href="http://en.wikipedia.org/wiki/Boot_loader#Boot_loader">AN1157</a>. We modified the bootloader to check for a jumper between the programming clock (PGC) and data (PGD) pins at power-up (update, above left). If there&#8217;s a connection, the bootloader takes over and waits for new code. Without a connection, the bootloader exits and runs the main program.</p>
<p>There&#8217;s a very minor chance of accidentally entering the bootloader with no jumper installed. This won&#8217;t damage the Bus Pirate, but you will need to connect it again.  You can prevent it by moving the jumper over one position,  between the ground pin and the inner programming pin (normal, above right).</p>
<p><em>Upgrading the firmware with the bootloader</em></p>
<p><em><img class="alignnone size-full wp-image-10443" title="pic24fqp" src="http://hackadaycom.files.wordpress.com/2009/04/pic24fqp.png" alt="pic24fqp" width="450" height="141" /><br />
</em></p>
<p>If you&#8217;re using a fresh chip, first program it with the bootloader firmware (vxx-PIC Bootloader.hex) through the ICSP header using a &#8216;real&#8217; programmer like an <a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=1406&amp;dDocName=en010046">ICD2</a> or <a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=1406&amp;dDocName=en010046">PicKit</a>.</p>
<p>If you&#8217;re upgrading, follow this procedure or refer to the instructions in the firmware download.</p>
<ul>
<li>Disconnect the Bus Pirate from any power supply such as the USB cable.</li>
<li>Place a jumper between the programming data and clock pins of the ICSP header. This will trigger the bootloader mode.</li>
<li>Connect the Bus Pirate to a USB port (or, if applicable, power and serial cable).</li>
<li>Start the MS Windows P24QP.exe programmer utility. You may need to modify the COM port (portindex=) in P24qp.ini to match your system.  Programmer source is available, and the simple bootloader protocol is documented in AN1157 if you want to write an app for a non-Windows system.</li>
<li>Click the connect to device icon (#1). The program will connect to the PIC.</li>
<li>Click the folder icon (#2) and open the firmware update file (vxx-Firmware for BL.hex).</li>
<li> Click the erase device icon (#3) to erase the chip. DO NOT SKIP THIS STEP. Programming may not be successful if you forget to erase the chip.</li>
<li> Click the write device icon (#4) to program the new firmware. Ignore any verify errors between 0&#215;400 and 0xBFF, the bootloader lives in this region and doesn&#8217;t get updated.</li>
<li> Click the green arrow icon (#5) to exit the bootloader and start the program.  Click OK at the warning, we use the jumper to re-enter the bootloader.</li>
<li> Remove the jumper from the programming pins, or move it over one position to connect the inner PGx pin to ground (GND).</li>
<li>***IMPORTANT*** Now restart the Bus Pirate by disconnecting and reconnecting the USB cable (or power cable). Some features won&#8217;t work until after a complete hardware reset.</li>
</ul>
<p><strong>Using it</strong></p>
<p><em>USB device driver<br />
</em></p>
<p>You may need to install an <a href="http://www.ftdichip.com/Drivers/VCP.htm">FTDI virtual serial port driver</a> for your platform.</p>
<p>On Windows, go to the Device Manager to configure the FTDI driver or check the COM port number.</p>
<p><em>Menus and Syntax</em></p>
<p><em><img class="alignnone size-full wp-image-10444" title="term450" src="http://hackadaycom.files.wordpress.com/2009/04/term450.png" alt="term450" width="420" height="195" /><br />
</em></p>
<p>Use a serial terminal to communicate with the Bus Pirate. We like <a href="http://www.ayera.com/teraterm/">Tera Term</a>.</p>
<p>The Bus Pirate works best with the terminal set to 115200bps, 8 databits, no parity, 1stopbit. Disable local echo in the terminal, and use CR for line breaks. Some modes also require Xon/Xoff software flow control.</p>
<p>In the serial terminal, press ? for the help menu. Read more about the Bus Pirate&#8217;s menu and syntax on the <a href="http://www.buspirate.com">Bus Pirate page</a>. There&#8217;s lots of demonstrations in our recent <a href="http://hackaday.com/category/parts/">parts posts</a>.</p>
<p><em>LED indicators</em></p>
<p><em><img class="alignnone size-full wp-image-10476" title="leds-450" src="http://hackadaycom.files.wordpress.com/2009/04/leds-450.jpg" alt="leds-450" width="450" height="81" /><br />
</em></p>
<ul>
<li><strong>PWR</strong> indicates power to the Bus Pirate.</li>
<li><strong>MODE</strong> is off when the I/O pins are in a safe, high-impedance state. MODE is lit when a bus mode is engaged, the pins may be active.</li>
<li><strong>VREG</strong> indicates that the on-board switchable power supplies are active.</li>
<li><strong>UR</strong> is a single USB activity indicator LED. It displays data coming <em>from</em> the PC <em>to</em> the Bus Pirate. You can probably change what this LED displays with the <a href="http://www.ftdichip.com/Resources/Utilities.htm">FTDI configuration utility</a>.</li>
</ul>
<p><em>Connections</em></p>
<p>Pin location diagrams: <a href="http://hackadaycom.files.wordpress.com/2009/01/brd3.png">v2a</a>, <a href="http://hackadaycom.files.wordpress.com/2009/01/brd251.png">v2g0</a>.</p>
<table border="0">
<tbody>
<tr>
<td><strong>Pin name |<br />
</strong></td>
<td><strong>Description (Bus Pirate is the master)</strong></td>
</tr>
<tr>
<td>MOSI</td>
<td>Master data out, slave in (SPI, JTAG), Serial data (1-Wire, I2C, KB), TX* (UART)</td>
</tr>
<tr>
<td>CLK</td>
<td>Clock signal (I2C, SPI, JTAG, KB)</td>
</tr>
<tr>
<td>MISO</td>
<td>Master data in, slave out (SPI, JTAG) RX (UART)</td>
</tr>
<tr>
<td>CS*</td>
<td>Chip select (SPI), TMS (JTAG)</td>
</tr>
<tr>
<td>AUX</td>
<td>Auxiliary IO, frequency probe</td>
</tr>
<tr>
<td>ADC</td>
<td>Voltage measurement probe (max 6volts)</td>
</tr>
<tr>
<td>Vpu</td>
<td>Voltage input for on-board pull-up resistors (0-5volts).</td>
</tr>
<tr>
<td>+3.3v</td>
<td>+3.3volt switchable power supply, max 150ma</td>
</tr>
<tr>
<td>+5.0v</td>
<td>+5volt switchable power supply, max 150ma</td>
</tr>
<tr>
<td>GND</td>
<td>Ground, connect to ground of test circuit</td>
</tr>
</tbody>
</table>
<p>Notes: * TX moved from CS to MOSI in firmware v0g.</p>
<p>The 10 pin I/O block contains the data signals and power supplies that connect to a test circuit. Each pin is labeled on the back of the PCB, refer to the table above for a detailed description.</p>
<p>The pinout on V2 is similar to V1, but we moved the power supply output and Vpullup input  to the cable bundle. We also eliminated the second, unused auxiliary pin.</p>
<p><strong>Conclusion</strong></p>
<p>If you want a complete Bus Pirate or a kit, here&#8217;s a couple options:</p>
<ul>
<li> Seeed Studio is accepting pre-orders for assembled Bus Pirate v2go hardware until the end of Friday, July 3.  An assembled Bus Pirate v2go is $30, including worldwide shipping.</li>
<li>Seeed Studio also has the extra <a href="http://www.seeedstudio.com/depot/the-bus-pirate-v2-go-pcb-p-331.html">v2g0</a> ($5.90) and <a href="http://www.seeedstudio.com/depot/the-bus-pirate-v2-pcb-p-330.html">v2a</a> ($6.50) PCBs from our order.</li>
<li>Fundamental Logic sells a <a href="http://spiffie.org/kits/buspirate/">through-hole kit</a> version of the Bus Pirate V1a ($29.50). <strong>***v1a is serial port only***</strong></li>
</ul>
<p>Thanks to everyone who contributed to this project. The Bus Pirate wouldn&#8217;t be possible without a ton of great feedback from the comments. If you&#8217;d like to get involved, join the <a href="http://code.google.com/p/the-bus-pirate/">Bus Pirate project</a> at Google Code.</p>
<p><strong>Hack a Day review disclosure</strong>: We asked Seeed Studio to make our first order of PCBs for free. Since then, we&#8217;ve made several paid orders.</p>
<p><img class="alignnone size-full wp-image-12042" title="bpv2goiii" src="http://hackadaycom.files.wordpress.com/2009/06/bpv2goiii.jpg" alt="bpv2goiii" width="450" height="330" /></p>
<br />Posted in hardware, how-to, tool hacks  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/10041/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/10041/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/10041/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/10041/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/10041/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/10041/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/10041/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/10041/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/10041/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/10041/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/10041/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/10041/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/10041/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/10041/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=10041&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2009/06/25/how-to-the-bus-pirate-v2-with-usb/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Ian</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/04/buspiratev2goii450.jpg" medium="image">
			<media:title type="html">buspiratev2goii450</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/04/overview450.png" medium="image">
			<media:title type="html">overview450</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/04/cct25450.jpg" medium="image">
			<media:title type="html">cct25450</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/04/pic24f-highlight.jpg" medium="image">
			<media:title type="html">pic24f-highlight</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/04/ftdi-450ii1.jpg" medium="image">
			<media:title type="html">ftdi-450ii1</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/04/vreg-450ii.jpg" medium="image">
			<media:title type="html">vreg-450ii</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/04/resis.jpg" medium="image">
			<media:title type="html">resis</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/04/cct-adcin.jpg" medium="image">
			<media:title type="html">cct-adcin</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/04/front-back2450.jpg" medium="image">
			<media:title type="html">front-back2450</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/04/bpv2450.jpg" medium="image">
			<media:title type="html">bpv2450</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/04/brd25450.png" medium="image">
			<media:title type="html">brd25450</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/04/seeed-batchpcb4501.jpg" medium="image">
			<media:title type="html">seeed-batchpcb4501</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/04/bootload-jumper4501.jpg" medium="image">
			<media:title type="html">bootload-jumper4501</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/04/pic24fqp.png" medium="image">
			<media:title type="html">pic24fqp</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/04/term450.png" medium="image">
			<media:title type="html">term450</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/04/leds-450.jpg" medium="image">
			<media:title type="html">leds-450</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/06/bpv2goiii.jpg" medium="image">
			<media:title type="html">bpv2goiii</media:title>
		</media:content>
	</item>
		<item>
		<title>How-to: Bus Pirate v1, improved universal serial interface</title>
		<link>http://hackaday.com/2009/01/22/how-to-bus-pirate-v1-improved-universal-serial-interface/</link>
		<comments>http://hackaday.com/2009/01/22/how-to-bus-pirate-v1-improved-universal-serial-interface/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 02:43:56 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[hardware]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[tool hacks]]></category>
		<category><![CDATA[bus pirate]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[i2c]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[interface tools]]></category>
		<category><![CDATA[jtag]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[pc at keyboard]]></category>
		<category><![CDATA[scancode]]></category>
		<category><![CDATA[serial]]></category>
		<category><![CDATA[serial port]]></category>
		<category><![CDATA[spi]]></category>
		<category><![CDATA[uart]]></category>
		<category><![CDATA[universal interface]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=7361</guid>
		<description><![CDATA[We use the Bus Pirate to interface a new chip without writing code or designing a PCB. Based on your feedback, and our experience using the original Bus Pirate to demonstrate various parts, we updated the design with new features and cheaper components. There&#8217;s also a firmware update for both Bus Pirate hardware versions, with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=7361&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-8068" title="front450a" src="http://hackadaycom.files.wordpress.com/2009/01/front450a.jpg" alt="front450a" width="450" height="269" /></p>
<p>We use the Bus Pirate to interface a new chip without writing code or designing a PCB. Based on your feedback, and our experience using <a href="http://hackaday.com/2008/11/19/how-to-the-bus-pirate-universal-serial-interface/">the original Bus Pirate</a> to demonstrate various <a href="http://hackaday.com/category/parts/">parts</a>, we updated the design with new features and cheaper components.</p>
<p>There&#8217;s also a firmware update for both Bus Pirate hardware versions, with bug fixes, and a PC AT keyboard decoder. Check out the new <a href="http://hackaday.com/the-bus-pirate-universal-serial-interface/">Hack a Day Bus Pirate page</a>, and browse the Bus Pirate source code in our <a href="http://code.google.com/p/the-bus-pirate/source/browse/">Google code SVN repository</a>.</p>
<p>We cover the design updates and interface a digital to analog converter below.</p>
<p><span id="more-7361"></span></p>
<p><strong>Concept overview</strong></p>
<p><strong><img class="alignnone size-full wp-image-8067" title="overview-diagram1" src="http://hackadaycom.files.wordpress.com/2009/01/overview-diagram1.png" alt="overview-diagram1" width="450" height="212" /><br />
</strong></p>
<p>The Bus Pirate started as a collection of code fragments we used to test new chips without endless compile-program-run development cycles. We released it in a how-to and used it to demonstrate a bunch of serial interface ICs in our <a href="http://hackadaycom.wordpress.com/category/parts/">parts posts</a>. This article introduces an updated design with new features and a bunch of improvements.</p>
<ul>
<li>Surface mount design</li>
<li>Pull-up resistors on all bus lines with external voltage source</li>
<li>Software resettable 3.3volt and 5volt power supplies</li>
<li>Voltage monitoring of all power supplies</li>
<li>An external voltage measurement probe</li>
<li>Cheaper parts</li>
</ul>
<p><img class="alignnone size-full wp-image-7996" title="top" src="http://hackadaycom.files.wordpress.com/2009/01/top.jpg" alt="top" width="450" height="254" /></p>
<p><strong>Hardware</strong></p>
<p><strong><img class="alignnone size-full wp-image-8001" title="cct-450" src="http://hackadaycom.files.wordpress.com/2009/01/cct-450.jpg" alt="cct-450" width="450" height="140" /></strong></p>
<p><a href="http://hackadaycom.files.wordpress.com/2009/01/cct1.png">Click for a full size schematic image</a><strong> </strong>(PNG). The circuit and PCB are designed using the freeware version of <a href="http://www.cadsoft.de/">Cadsoft Eagle</a>. All the files for this project are included in the project archive linked at the end of the article.</p>
<p><em>Microcontroller</em></p>
<p>We used a Microchip <a href="http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en026374">PIC24FJ64GA002</a> 28pin SOIC microcontroller (IC1) in this project. The power pins have 0.1uF bypass capacitors to ground (C1,2). The 2.5volt internal regulator requires a 10uF tantalum capacitor (C20). The chip is programmed through a five pin header (ICSP). A 2K pull-up resistor (R1) is required for the MCLR function on pin 1. Read more about this chip in our <a href="http://hackaday.com/2008/09/18/web-server-on-a-business-card-part-1/">PIC24F introduction</a>.</p>
<p><em>RS-232 transceiver<br />
</em></p>
<p>An inexpensive <a href="http://www.maxim-ic.com/quick_view2.cfm/qv_pk/1068">MAX3232CSE</a> RS232 transceiver (IC2) interfaces the PIC to a PC serial port. This chip replaces the expensive through-hole <a href="http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail?name=MAX3223EEPP%2B-ND">MAX3223EEPP+</a> used in the previous version of the Bus Pirate. The serial interface will work with a USB-&gt;serial adapter.</p>
<p><em>Bus pull-up resistors</em></p>
<p><em><img class="alignnone size-full wp-image-8006" title="cct-pu450" src="http://hackadaycom.files.wordpress.com/2009/01/cct-pu450.png" alt="cct-pu450" width="450" height="137" /><br />
</em></p>
<p>The original Bus Pirate has 3.3volt pull-up resistors on 2 pins, but most of our tests required additional external resistors. The updated design has pull-up resistors (R20-23) on the three main bus signals (data in, data out, clock) and the chip select (CS) pin.</p>
<p>A row of jumpers (SV5) connects each resistor to an external voltage supplied through the Vext terminal (X4). Through-hole resistors are used like jumper-wires to make the PCB easier to etch at home.</p>
<p>We couldn&#8217;t find an elegant way to control an arbitrary voltage pull-up resistor array from a 3.3volt microcontroller. If you have any ideas, please share them in the comments.</p>
<p><em>Power supply</em></p>
<p>VR1 is a 3.3volt supply for the microcontroller and RS232 transceiver. VR2 is a 5volt supply. Both require two 0.1uF bypass capacitors (C3-C6). J1 is a power supply jack for a common <a href="http://en.wikipedia.org/wiki/DC_connector">2.1mm DC barrel plug</a>. 7-10volts DC is probably the ideal power supply range.</p>
<p><img class="alignnone size-full wp-image-8008" title="cct-vr4" src="http://hackadaycom.files.wordpress.com/2009/01/cct-vr4.png" alt="cct-vr4" width="450" height="230" /></p>
<p>The original Bus Pirate had dual power supplies, 3.3volts and 5volts, so most ICs could be interfaced without an additional power supply. A major annoyance was the lack of a power reset for connected chips. If a misconfigured IC needed to be power-cycled, we had to disconnect a wire. We got so tired of this routine that we added a software controlled reset to the updated design.</p>
<p>VR3 (3.3volts) and VR4 (5volts) are TI <a href="http://focus.ti.com/docs/prod/folders/print/tps79650.html">TPS796XX</a> voltage regulators with an enable switch. A high level on pin 1 enables the regulator. A pull-down resistor (R13,R12) ensures that the regulators are off when the PIC isn&#8217;t actively driving the line, such as during power-up initialization. The datasheet specifies a hefty capacitor on the input (C23, C21) and output (C24, C22) pins, we used the same 10uF tantalum we use everywhere. An additional, optional, 0.1uF capacitor (C12,C11) can improve regulation.</p>
<p>The switchable regulators are powered by VR2, a 5volt supply.  We did this because the maximum input for VR3 and VR4 is 6volts, leaving the device with a narrow 5.2-6volt power supply range. VR2 will work well above 10volts, and provides an adequate supply for the other regulators.</p>
<p>VR3 (3.3volts) has plenty of headroom to operate from a 5volt supply. VR4 (5volts) will lose about 0.2volts, but 4.8volts remains well within the acceptable range for most 5volt chips. In practice, and under light loads, we see less than 0.1volts drop-out from VR4.</p>
<p><em>Voltage monitoring</em></p>
<p><em><img class="alignnone size-full wp-image-8003" title="cct-adcin" src="http://hackadaycom.files.wordpress.com/2009/01/cct-adcin.png" alt="cct-adcin" width="373" height="76" /><br />
</em></p>
<p>Voltage monitoring is a new feature we&#8217;re really excited about. Has your project ever mysteriously stopped responding because of an accidental short circuit? The Bus Pirate&#8217;s power supplies are equipped with voltage monitoring that can detect a change in power levels.</p>
<p>Each monitored signal is connected to an <a href="http://en.wikipedia.org/wiki/Analog-to-digital_converter">analog to digital converter</a> (ADC) through a resistor voltage divider. Two 10K resistors (R10,R11 above) divide the input voltage in half, making it possible to measure up to 6.6volts with the 3.3volt PIC microcontroller.</p>
<p>The Bus Pirate has four voltage monitors. The 3.3volt and 5volt power supplies are monitored, as is the external voltage fed to the pull-up resistors. A fourth monitor is connected to pin 9 of the output header to make a voltage probe.</p>
<p><strong>PCB</strong></p>
<p><strong><img class="alignnone size-large wp-image-8134" title="brd450alt" src="http://hackadaycom.files.wordpress.com/2009/01/brd450alt.png?w=450&#038;h=330" alt="brd450alt" width="450" height="330" /><br />
</strong></p>
<p><a href="http://hackadaycom.files.wordpress.com/2009/01/brd.png">Click for a full size placement diagram</a> (PNG). The board is a quasi single-sided design, we etched ours in the lab on a single-sided photo-resist PCB. At the top, near C13, two jumper wires meet at a single via; we soldered one jumper wire to the other on the back of the board.</p>
<p><em>Part list</em></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>Part</td>
<td>Value</td>
</tr>
<tr>
<td>IC1</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=V/yyTCAHA4D/h5r3CRQDtA==">PIC24FJ64GA002</a> (SOIC)</td>
</tr>
<tr>
<td>IC2</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=SN75C3232EDvirtualkey59500000virtualkey595-SN75C3232ED">MAX3232CSE</a> (SOIC-N)</td>
</tr>
<tr>
<td>VR1</td>
<td><a href="https://www.mouser.com/Search/ProductDetail.aspx?R=LD1117S33CTRvirtualkey51120000virtualkey511-LD1117S33C">LD1117S33</a> 3.3volt regulator (SOT223)</td>
</tr>
<tr>
<td>VR2</td>
<td><a href="https://www.mouser.com/Search/ProductDetail.aspx?R=LD1117S50TRvirtualkey51120000virtualkey511-LD1117S50">LD1117s50</a> 5volt regulator (SOT223)</td>
</tr>
<tr>
<td>VR3</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=sGAEpiMZZMsGz1a6aV8DcPXeWoVS0Fnzr3zi8%252bAr99Q%3d">TPS79633</a> 3.3volt regulator (SOT223-6)</td>
</tr>
<tr>
<td>VR4</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=TPS79650DCQRvirtualkey59500000virtualkey595-TPS79650DCQR">TPS79650</a> 5volt regulator (SOT223-6)</td>
</tr>
<tr>
<td>C1-13</td>
<td><a href="https://www.mouser.com/Search/ProductDetail.aspx?R=C0805C104M5RACTUvirtualkey64600000virtualkey80-C0805C104M5R">0.1uF capacitor</a> (0805)</td>
</tr>
<tr>
<td>C20-24</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=293D106X96R3A2TE3virtualkey61320000virtualkey74-293D106X96R3A2TE3">10uF tantalum capacitor</a> (SMC A)</td>
</tr>
<tr>
<td>R1</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=jBethxrBxZb5NLDetw123g%3d%3d">2000 ohm resistor</a> (0805)</td>
</tr>
<tr>
<td>R2,3</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=2BMLUTrrT4P7Xm58YbKmPg==">390 ohm resistor</a> (0805)</td>
</tr>
<tr>
<td>R4-13</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=sGAEpiMZZMtlubZbdhIBIADEshVnklemK%252bhrLNEuMe8%3d">10000 ohm resistor</a> (0805)</td>
</tr>
<tr>
<td>R20-23</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=8tsW7z%2fc78pkoLNVKn1xoQ%3d%3d">2.2K</a>-<a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=sGAEpiMZZMtMTfExsNintTsTnthYiOMx%2fND7UkWzrMM%3d">10K</a> ohm resistor (through-hole)</td>
</tr>
<tr>
<td>LED1,2</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=7JStj%2fjQ2SElGv%2fp7IzKlg%3d%3d">LED</a> (0805)</td>
</tr>
<tr>
<td>J1</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=8xMK%2bwDsXhcfMNb/YnnwLQ==">2.1mm power jack</a></td>
</tr>
<tr>
<td>X2,X4</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=wjes1ZhMGKfGv3iS94oZ%252bQ%3d%3d">screw clamp (2 terminals)</a> *untested</td>
</tr>
<tr>
<td>X3</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=nAEW9fCjKd%2fyLNwP2ItddQ%3d%3d"></a><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=nAEW9fCjKd%2fyLNwP2ItddQ%3d%3d">db9 female serial port connector</a> *untested</td>
</tr>
<tr>
<td>ICSP</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=9-146278-0virtualkey57100000virtualkey571-9-146278-0">0.1&#8243; pin header, straight</a></td>
</tr>
<tr>
<td>SV4</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=9-146278-0virtualkey57100000virtualkey571-9-146278-0">0.1&#8243; pin header</a> or shrouded header</td>
</tr>
<tr>
<td>SV5</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=9-146278-0virtualkey57100000virtualkey571-9-146278-0">0.1&#8243; pin header, straight</a></td>
</tr>
</tbody>
</table>
<p><strong>Firmware</strong></p>
<p>The firmware is written in C using the free demonstration version of the <a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=1406&amp;dDocName=en010065">PIC C30 compiler</a>. Learn all about working with this PIC in our <a href="http://hackaday.com/2008/09/18/web-server-on-a-business-card-part-1/">introduction to the PIC 24F series</a>.</p>
<p>The latest firmware is posted on the <a href="http://hackaday.com/the-bus-pirate-universal-serial-interface/">Hack a Day Bus Pirate page</a>. The latest source is in our <a href="http://code.google.com/p/the-bus-pirate/source/checkout">Google Code SVN repository</a>.</p>
<p><strong>Using it</strong></p>
<p><strong><img class="alignnone size-full wp-image-8004" title="cct-pinout450" src="http://hackadaycom.files.wordpress.com/2009/01/cct-pinout450.png" alt="cct-pinout450" width="450" height="179" /><br />
</strong></p>
<p>The diagram above shows the Bus Pirate pinout.</p>
<p>We made a cable with alligator clips on the end, and added labels to each wire so we don&#8217;t have to refer to this table every time we interface a new chip.</p>
<p>If you know of any cool connectors or cables, please link to them in the comments.</p>
<p><img class="alignnone size-full wp-image-8066" title="ltc2640" src="http://hackadaycom.files.wordpress.com/2009/01/ltc2640.jpg" alt="ltc2640" width="450" height="354" /></p>
<p><em>LTC2640 SPI digital to analog voltage converter</em></p>
<p>The Linear Technology <a href="http://www.linear.com/pc/productDetail.jsp?navId=H0,C1,C1155,C1005,C1156,P85250">LTC2640-LZ8</a> is an 8bit <a href="http://en.wikipedia.org/wiki/Digital-to-analog_converter">digital to analog converter</a> (DAC) programmed over <a href="http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus">SPI</a>. A DAC is essentially a programmable voltage divider. They&#8217;re useful for recreating waveforms, such as audio signals. An 8bit DAC has 255 even intervals between 0 and the reference voltage, the L part we used has an internal 2.5volt reference.</p>
<p>The LTC2640 only comes in a small SOT223-8 package, so we made a breadboard adapter in the profile of a DIP-8 chip.  Our LTC2640 footprint is included in the project archive attached at the end of this article.</p>
<p><img class="alignnone size-large wp-image-8019" title="ltc2640450" src="http://hackadaycom.files.wordpress.com/2009/01/ltc2640450.png?w=450&#038;h=218" alt="ltc2640450" width="450" height="218" /></p>
<p>The schematic above shows our test circuit for the LTC2640. It requires a 2.7-5volt power supply, we used the Bus Pirate&#8217;s 3.3volt supply. C1 is a bypass capacitor between the power pin and ground. Pin 8 is an active-low reset pin, tie it high for normal operation. Pin 7 is the DAC output, connect the Bus Pirate voltage measurement probe (ADC) here.</p>
<table border="0">
<tbody>
<tr>
<td><strong>Bus Pirate</strong></td>
<td><strong>LTC2640 (pin #)</strong></td>
</tr>
<tr>
<td>MOSI</td>
<td>SDI (3)</td>
</tr>
<tr>
<td>CLOCK</td>
<td>SCK (2)</td>
</tr>
<tr>
<td>CS</td>
<td>CS/LD (1)</td>
</tr>
<tr>
<td>ADC</td>
<td>VOUT (7)</td>
</tr>
<tr>
<td>+3.3volts</td>
<td>CLR (8 )</td>
</tr>
<tr>
<td>+3.3volts</td>
<td>VDD (5)</td>
</tr>
<tr>
<td>GND</td>
<td>GND (4)</td>
</tr>
</tbody>
</table>
<p>We connected the Bus Pirate to the LTC2640 as shown in the table. The LTC2640 doesn&#8217;t have a data output pin, this SPI connection remains unused.</p>
<p>The Bus Pirate&#8217;s hardware SPI library and software RAW3WIRE library are compatible with the LTC2640&#8242;s SPI interface. We used the SPI library; if you use the RAW3WIRE library be sure to choose <em>normal pin output</em>.</p>
<blockquote><p>HiZ&gt;m<strong>&lt;&#8211;select mode</strong><br />
1. HiZ<br />
2. 1-WIRE<br />
3. UART<br />
4. I2C<br />
5. SPI<br />
6. JTAG<br />
7. RAW2WIRE<br />
8. RAW3WIRE<br />
9. PC AT KEYBOARD<br />
MODE&gt;5<strong>&lt;&#8211;SPI or RAW3WIRE</strong><br />
900 MODE SET<br />
Set speed:<br />
1. 30KHz<br />
2. 125KHz<br />
3. 250KHz<br />
4. 1MHz<br />
SPEED&gt;1 <strong>&lt;&#8211;test at low speed</strong><br />
&#8230;<br />
102 SPI READY<br />
SPI&gt;</p></blockquote>
<p>Press M for the Bus Pirate mode menu, choose 5 for SPI mode. There are a bunch of configuration options for the SPI module, use the default options for all of them. After SPI mode is ready we need to configure the power supply.</p>
<blockquote><p>SPI&gt;p<strong>&lt;&#8211;power supply setup</strong><br />
W/w toggles 3.3volt supply?<br />
1. NO<br />
2. YES<br />
MODE&gt;2<strong>&lt;&#8211;use 3.3volt supply</strong><br />
W/w toggles 5volt supply?<br />
1. NO<br />
2. YES<br />
MODE&gt;1<strong>&lt;&#8211;don&#8217;t use 5volt supply</strong><br />
9xx SUPPLY CONFIGURED, USE W/w TO TOGGLE<br />
9xx VOLTAGE MONITOR: 5V: 0.0 | 3.3V: 0.0 | VPULLUP: 0.0 |<br />
SPI&gt;</p></blockquote>
<p>p opens the Bus Pirate power supply menu. We use the 3.3volt supply but not the 5volt supply. The voltage monitor verifies that the power supplies are off.</p>
<blockquote><p>SPI&gt;W<strong>&lt;&#8211;capital W (<a href="http://www.w3.org/TR/CSS2/text.html#caps-prop">silly CSS</a>) enables power supply</strong><br />
9xx 3.3VOLT SUPPLY ON<br />
SPI&gt;v<strong>&lt;&#8211;voltage monitor</strong><br />
9xx VOLTAGE MONITOR: 5V: 0.0 | 3.3V: 3.3 | VPULLUP: 0.0 |<br />
SPI&gt;</p></blockquote>
<p>Capital &#8216;W&#8217; enables any power supplies selected in the previous menu, a small &#8216;w&#8217; disables them. V displays the supply voltage monitor, which now shows 3.3volts output from the 3.3volt supply.</p>
<p>Now that configuration is finished, we can send commands to the LTC2640 over the SPI bus. The LTC2640 has a 24bit (3byte) interface protocol. The first byte is a command, followed by two data bytes. The LTC2640 is available in 8,10, and 12bit versions; the 8bit version uses the first byte to set the DAC value, and ignores the second byte.</p>
<blockquote><p>SPI&gt;[0b00110000 255 0]<strong>&lt;&#8211;set DAC to full</strong><br />
110 SPI CS ENABLED<br />
120 SPI WRITE: 0&#215;30<strong>&lt;&#8211;write DAC command</strong><br />
120 SPI WRITE: 0xFF<strong>&lt;&#8211;DAC value</strong><br />
120 SPI WRITE: 0&#215;00<strong>&lt;&#8211;don&#8217;t care</strong><br />
140 CS DISABLED<br />
SPI&gt;</p></blockquote>
<p>Every SPI command begins by enabling the chip select pin ([). The first byte is the command to update the DAC (0b00110000), followed by the value to output (255), and a third byte that's ignored (0). The command ends by disabling chip select (]).</p>
<p>We used an 8bit DAC with 255 even voltage steps, output set to 255 is 100%. We can use the Bus Pirate voltage probe to measure the output.</p>
<blockquote><p>SPI&gt;d<strong>&lt;&#8211;measure voltage</strong><br />
9xx VOLTAGE PROBE: 2.5VOLTS<strong>&lt;&#8211;DAC output</strong><br />
SPI&gt;</p></blockquote>
<p>D triggers a voltage measurement. The DAC output voltage is 100% (255/255) of the internal reference, 2.5volts.</p>
<blockquote><p>SPI&gt;[0b00110000 0 0] d<br />
110 SPI CS ENABLED<br />
120 SPI WRITE: 0&#215;30<strong>&lt;&#8211;write DAC command</strong><br />
120 SPI WRITE: 0&#215;00<strong>&lt;&#8211;DAC value</strong><br />
120 SPI WRITE: 0&#215;00<strong>&lt;&#8211;don&#8217;t care</strong><br />
140 CS DISABLED<br />
9xx VOLTAGE PROBE: 0.0VOLTS<strong>&lt;&#8211;DAC output</strong><br />
SPI&gt;</p></blockquote>
<p>The same command with a DAC value of 0 outputs 0% (0/255) of 2.5volts; 0volts.</p>
<blockquote><p>SPI&gt;[0b00110000 128 0] d<br />
110 SPI CS ENABLED<br />
120 SPI WRITE: 0&#215;30<strong>&lt;&#8211;write DAC command</strong><br />
120 SPI WRITE: 0&#215;80<strong>&lt;&#8211;DAC value</strong><br />
120 SPI WRITE: 0&#215;00<strong>&lt;&#8211;don&#8217;t care</strong><br />
140 CS DISABLED<br />
9xx VOLTAGE PROBE: 1.2VOLTS<strong>&lt;&#8211;DAC output</strong><br />
SPI&gt;</p></blockquote>
<p>A DAC value of 128 is about 50% (128/255) of the reference voltage, 1.2volts.</p>
<blockquote><p>SPI&gt;[0b01000000 0 0] d<br />
110 SPI CS ENABLED<br />
120 SPI WRITE: 0&#215;40<strong>&lt;&#8211;power down command</strong><br />
120 SPI WRITE: 0&#215;00<strong>&lt;&#8211;don&#8217;t care</strong><br />
120 SPI WRITE: 0&#215;00<strong>&lt;&#8211;don&#8217;t care</strong><br />
140 CS DISABLED<br />
9xx VOLTAGE PROBE: 0.0VOLTS<strong>&lt;&#8211;DAC off</strong><br />
SPI&gt;</p></blockquote>
<p>The LTC2640 has a low power mode, triggered by the command 0b01000000 and two bytes that are ignored. After the power down command we can verify that there&#8217;s output from the DAC. Write any DAC value to exit low power mode.</p>
<p><strong>Taking it further</strong></p>
<p>What&#8217;s the next step for the Bus Pirate? We&#8217;ll eventually make a final update to the design that includes USB on a professionally made, double-sided PCB. Power supply indicator LEDs were slated for this version, but didn&#8217;t get included. It would also be handy to have an AT  keyboard connector for debugging without a PC. Check out the roadmap and wishlists on the <a href="http://hackaday.com/the-bus-pirate-universal-serial-interface/">Hack a Day Bus Pirate page</a>.</p>
<p><strong>Download: <a href="http://blog.mahalo.com/hackaday/howto/buspirate.v1a.zip">buspirate.v1a.zip</a></strong></p>
<br />Posted in hardware, how-to, tool hacks  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/7361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/7361/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/7361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/7361/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/7361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/7361/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/7361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/7361/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/7361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/7361/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/7361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/7361/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/7361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/7361/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=7361&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2009/01/22/how-to-bus-pirate-v1-improved-universal-serial-interface/feed/</wfw:commentRss>
		<slash:comments>65</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Ian</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/01/front450a.jpg" medium="image">
			<media:title type="html">front450a</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/01/overview-diagram1.png" medium="image">
			<media:title type="html">overview-diagram1</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/01/top.jpg" medium="image">
			<media:title type="html">top</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/01/cct-450.jpg" medium="image">
			<media:title type="html">cct-450</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/01/cct-pu450.png" medium="image">
			<media:title type="html">cct-pu450</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/01/cct-vr4.png" medium="image">
			<media:title type="html">cct-vr4</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/01/cct-adcin.png" medium="image">
			<media:title type="html">cct-adcin</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/01/brd450alt.png?w=450" medium="image">
			<media:title type="html">brd450alt</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/01/cct-pinout450.png" medium="image">
			<media:title type="html">cct-pinout450</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/01/ltc2640.jpg" medium="image">
			<media:title type="html">ltc2640</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/01/ltc2640450.png?w=450" medium="image">
			<media:title type="html">ltc2640450</media:title>
		</media:content>
	</item>
		<item>
		<title>Bus Pirate firmware update (v.0c), JTAG and more</title>
		<link>http://hackaday.com/2008/12/01/bus-pirate-firmware-update-v0c-jtag-and-more/</link>
		<comments>http://hackaday.com/2008/12/01/bus-pirate-firmware-update-v0c-jtag-and-more/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 20:37:35 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[classic hacks]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[tool hacks]]></category>
		<category><![CDATA[bench tools]]></category>
		<category><![CDATA[bus]]></category>
		<category><![CDATA[bus pirate]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[i2c]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[jtag]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://hackadaycom.wordpress.com/?p=6457</guid>
		<description><![CDATA[Download: buspirate.v0c.zip A few weeks ago we wrote about our Bus Pirate universal serial interface tool. We used the recent holiday to add some new features, like a JTAG programmer, macros, frequency measurement, and more. A major code reorganization makes everything easier to read and update. Check out the a demonstration of the new features [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=6457&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-6496" title="stat" src="http://hackadaycom.files.wordpress.com/2008/12/stat.jpg" alt="stat" width="450" height="323" /></p>
<p><strong>Download:</strong> <a href="http://blog.mahalo.com/hackaday/howto/buspirate.v0c.zip">buspirate.v0c.zip</a></p>
<p>A few weeks ago we wrote about our <a href="http://hackaday.com/2008/11/19/how-to-the-bus-pirate-universal-serial-interface/">Bus Pirate universal serial interface tool</a>. We used the recent holiday to add some new features, like a JTAG programmer, macros, frequency measurement, and more. A major code reorganization makes everything easier to read and update.</p>
<p>Check out the a demonstration of the new features below. We&#8217;re compiling a roadmap and wish list, so share your ideas in the comments. You can also see how we used the Bus Pirate to <a href="http://hackaday.com/2008/11/25/how-to-read-a-fedex-kinkos-smart-card-sle4442/">read a smart card</a> and <a href="http://hackaday.com/2008/11/28/parts-133mhz-162khz-programmable-oscillator-ds1077/">test-drive an I2C crystal oscillator</a>.</p>
<p><span id="more-6457"></span><strong>New protocols<br />
</strong></p>
<blockquote><p>I2C&gt;m <strong>&lt;&#8211;setup mode</strong><br />
1. HiZ <strong>&lt;&#8211; high impedance pins (safe mode)</strong><br />
2. 1-WIRE <strong>&lt;&#8211; not ready for this release</strong><br />
3. UART<br />
4. I2C<br />
5. SPI<br />
6. JTAG <strong>&lt;&#8211; interface and programmer</strong><br />
7. RAW2WIRE<br />
8. RAW3WIRE<br />
MODE&gt;1<br />
900 MODE SET<br />
HiZ&gt;</p></blockquote>
<p>This firmware release lists three new protocols.</p>
<p>Hi-Z makes all pins <a href="http://en.wikipedia.org/wiki/High_impedance">high impedance</a>/input, a safe state that won&#8217;t damage an attached circuit. To be safe, the Bus Pirate now starts in this mode.</p>
<p>1-Wire is listed, but we couldn&#8217;t include it in this release because we still don&#8217;t have any parts to test with our library. This is just a placeholder for now, but it will be added as soon as we get a 1-Wire part to test.</p>
<p>We wrote a simplified JTAG interface that includes a XSVF player for programming JTAG device chains.</p>
<p>**We included a hardware I2C library, but according to the device errata <a href="http://forum.microchip.com/tm.aspx?m=271183&amp;mpage=1">there&#8217;s a bug in the 24FJ64GA002 rev3 I2C module</a>. This will work with a different chip (e.g. a 28pin dsPIC33).</p>
<p><em>Connection table</em></p>
<table border="0">
<tbody>
<tr>
<td>
<div><strong>PIN</strong></div>
</td>
<td><strong>1-Wire</strong></td>
<td>
<div><strong>I2C*</strong></div>
</td>
<td>
<div><strong>SPI</strong>**</div>
</td>
<td>
<div><strong>RS232</strong></div>
</td>
<td><strong>JTAG</strong></td>
</tr>
<tr>
<td>
<div><strong>B9</strong></div>
</td>
<td>SDA</td>
<td>
<div>SDA</div>
</td>
<td>
<div>MOSI</div>
</td>
<td>
<div>-</div>
</td>
<td>TDI</td>
</tr>
<tr>
<td>
<div><strong>B8</strong></div>
</td>
<td>-</td>
<td>
<div>SCL</div>
</td>
<td>
<div>CLK</div>
</td>
<td>
<div>-</div>
</td>
<td>TCK</td>
</tr>
<tr>
<td>
<div><strong>B7</strong></div>
</td>
<td>-</td>
<td>
<div>-</div>
</td>
<td>
<div>MISO</div>
</td>
<td>
<div>RX</div>
</td>
<td>TDO</td>
</tr>
<tr>
<td>
<div><strong>B6</strong></div>
</td>
<td>-</td>
<td>
<div>-</div>
</td>
<td>
<div>CS</div>
</td>
<td>
<div>TX</div>
</td>
<td>TMS</td>
</tr>
<tr>
<td>
<div><strong>B5</strong></div>
</td>
<td>AUX</td>
<td>
<div>AUX</div>
</td>
<td>
<div>AUX</div>
</td>
<td>
<div>AUX</div>
</td>
<td>AUX</td>
</tr>
<tr>
<td>
<div><strong>Ground</strong></div>
</td>
<td>GND</td>
<td>
<div>GND</div>
</td>
<td>
<div>GND</div>
</td>
<td>
<div>GND</div>
</td>
<td>GND</td>
</tr>
</tbody>
</table>
<p>*also raw 2 wire. **also raw 3 wire.</p>
<p>The new modes connect to the Bus Pirate as outlined in the table.</p>
<p><strong>New features and settings</strong></p>
<p><em>Frequency measurement</em></p>
<blockquote><p>HiZ&gt;F <strong>&lt;&#8211; do a frequency count</strong><br />
9xx FREQ COUNT ON AUX: 22199552Hz (22MHz)<br />
HiZ&gt;</p></blockquote>
<p>As seen in the <a href="http://hackaday.com/2008/11/28/parts-133mhz-162khz-programmable-oscillator-ds1077/">DS1077 demonstration</a>, we added a frequency counter to the Bus Pirate&#8217;s AUX pin.  &#8216;F&#8217; measures frequency, maximum of about 50MHz.</p>
<p><em>Assign axillary control</em></p>
<blockquote><p>HiZ&gt;c <strong>&lt;&#8211; menu c</strong><br />
AUX PIN<br />
1. AUX (DEFAULT)<br />
2. CS/TMS<br />
MODE&gt;1 <strong>&lt;&#8211; set AUX control mode</strong><br />
9xx AUX: DEFAULT SETTING (AUX PIN)<br />
HiZ&gt;</p></blockquote>
<p>Sometimes we need to control the chip select (CS) /JTAG state machine (TMS) pins manually. &#8216;c&#8217; toggles the pin control between the axillary pin and the chip select pin.</p>
<p><em>Set terminal speed</em></p>
<blockquote><p>HiZ&gt;b <strong>&lt;&#8211; menu b</strong><br />
Set serial port speed: (bps)<br />
1. 300<br />
&#8230;<br />
9. 115200<br />
SPEED&gt;9 <strong>&lt;&#8211; set speed</strong><br />
Adjust your terminal and press space to continue<br />
HiZ&gt;</p></blockquote>
<p>&#8216;b&#8217; adjusts the PC-side serial port speed.</p>
<p><strong>Macros</strong></p>
<p>A new syntax addition, &#8216;(#)&#8217;, triggers protocol dependent macros.</p>
<blockquote><p>JTAG&gt;(0) <strong>&lt;&#8211;macro 0</strong><br />
0.Macro menu<br />
1.Reset chain<br />
2.Probe chain<br />
3.XSVF player<br />
JTAG&gt;</p></blockquote>
<p>In any mode, use the macro (0) to display a menu of available macros.</p>
<p><em>I2C address search </em></p>
<blockquote><p>I2C&gt;(1) <strong>&lt;&#8211;scan I2C addresses macro</strong><br />
xxx Searching 7bit I2C address space.<br />
Found devices at:<br />
0xB0 0xB1 <strong>&lt;&#8211;DS1077 responds to write and read address</strong><br />
I2C&gt;</p></blockquote>
<p>The I2C library includes a macro to automatically search the I2C address range for devices. Helpful when you work with an unknown chip.</p>
<p><em>Raw2wire smart card ISO 7813-3 ATR</em></p>
<blockquote><p>RAW2WIRE&gt;(1)<strong>&lt;&#8211;ATR and decode macro</strong><br />
ISO 7813-3 ATR<br />
950 AUX LOW<br />
951 AUX HIGH<br />
4xx RAW2WIRE 0&#215;01 CLOCK TICKS<br />
950 AUX LOW<br />
ISO 7813-3 reply: 0xA2 0&#215;13 0&#215;10 0&#215;91<strong>&lt;&#8211;ATR bytes</strong><br />
Protocol: 2 wire <strong>&lt;&#8211;decoded ATR data</strong><br />
Read type: to end<strong>&lt;&#8211;</strong><br />
Data units: 256 <strong>&lt;&#8211;</strong><br />
Data unit length: 8 bits <strong>&lt;&#8211;</strong><br />
RAW2WIRE&gt;</p></blockquote>
<p>Macro 1 resets and identifies a smart card. For more about the ISO7813-3 ATR, see how we <a href="http://hackaday.com/2008/11/25/how-to-read-a-fedex-kinkos-smart-card-sle4442/">used the Bus Pirate to read a smart card</a>.</p>
<p><strong>JTAG</strong></p>
<p><a href="http://www.fpga4fun.com/JTAG.html">JTAG</a> is a debugging and programming interface for all kinds of electronics. The raw hardware interface can be accessed with the Bus Pirate&#8217;s raw 3 wire library, but we added a few features to make it much easier.</p>
<p><strong><img class="alignnone size-full wp-image-6468" title="jtagstate" src="http://hackadaycom.files.wordpress.com/2008/12/jtagstate.png" alt="jtagstate" width="450" height="312" /></strong></p>
<p>JTAG has different modes where data entry does different things. Modes are navigated with the JTAG TMS signal; there are a <a href="http://www.fpga4fun.com/JTAG2.html">bunch of JTAG modes</a>, called states.The Bus Pirate&#8217;s JTAG library is just the raw 3 wire library, enhanced to help with JTAG state changes.</p>
<p>We only implemented the JTAG states we need to get data in and out of a JTAG device chain: reset, idle, data register, and instruction register. Macro (1) issues a JTAG chain reset, and initializes the chain to the idle state. { puts the JTAG chain in data register mode. [ puts the chain in instruction register mode. ] or } return the chain to the idle state. The Bus Pirate has an internal state machine tracker that is smart enough to manage the chain without explicitly returning the chain to idle; in other words, you don&#8217;t have to close your tags. The state machine tracker reports every state change to help debug problems.</p>
<blockquote><p>JTAG&gt;[0xfe {rrrr} <strong>&lt;-- same as [0xfe]{rrrr}</strong><br />
xxx JTAGSM: ALREADY IDLE<br />
xxx JTAGSM: IDLE-&gt;Instruction Register (DELAYED ONE BIT FOR TMS)<br />
610 JTAG READY TO WRITE IR <strong>&lt;&#8211; JTAG chain instruction register</strong><br />
620 JTAG WRITE: 0xFE <strong>&lt;&#8211; request ID</strong><br />
xxx JTAGSM: (WROTE DELAYED BIT) IR-&gt;IDLE<strong> &lt;&#8211;back to IDLE</strong><br />
xxx JTAGSM: IDLE-&gt;Data Register <strong>&lt;&#8211;IDLE to data register</strong><br />
611 JTAG READY TO READ/WRITE DR<br />
630 JTAG READ: 0&#215;93 <strong>&lt;&#8211;device ID</strong><br />
630 JTAG READ: 0&#215;40<br />
630 JTAG READ: 0&#215;60<br />
630 JTAG READ: 0&#215;59<br />
xxx JTAGSM: DR-&gt;IDLE <strong>&lt;&#8211;back to idle</strong><br />
640 JTAG IDLE<br />
JTAG&gt;</p></blockquote>
<p>Here is a short interaction with a <a href="http://www.xilinx.com/products/xc9500xl/index.htm">Xilinx XC9572 CPLD</a>. We go to the instruction register ( [ ), and send the device ID request command (0xfe). Then, we go the the data register( { ), read four bytes (rrrr, or r:4 shorthand), and return to idle ( } ).</p>
<p><em>What are delayed bit writes?</em></p>
<p>JTAG requires that the last data bit written to the instruction register be entered at the same time as the state change. Since the Bus Pirate has no way of predicting when we'll actually change states, it delays the last bit of each byte write until one of three things happens:</p>
<ul>
<li>Exit the instruction register with a }, ], or { command</li>
<li>Write another byte value</li>
<li>A read command</li>
</ul>
<p>Pending bits are not cleared by bitwise operations (like ! or ^). Do these before writing your last byte, or change the code. We haven&#8217;t implemented pending writes to the data register, but it&#8217;s probably needed. You might need to implement this if you&#8217;re writing the data register, rather just reading, like we did.</p>
<p><em>JTAG Macros</em></p>
<blockquote><p>JTAG&gt;(1) <strong>&lt;&#8211;macro 1</strong><br />
xxx JTAGSM: RESET<br />
xxx JTAGSM: RESET-&gt;IDLE<br />
JTAG&gt;</p></blockquote>
<p>JTAG macro (1) resets the JTAG chain and then advances it to the idle state.</p>
<blockquote><p>JTAG&gt;(2) <strong>&lt;&#8211;macro 2</strong><br />
xxx JTAG INIT CHAIN<br />
xxx JTAGSM: RESET<br />
xxx JTAGSM: RESET-&gt;IDLE<br />
xxx JTAGSM: IDLE-&gt;Instruction Register (DELAYED ONE BIT FOR TMS)<br />
xxx JTAGSM: IR-&gt;IDLE<br />
xxx JTAGSM: IDLE-&gt;Data Register<br />
xxx JTAGSM: DR-&gt;IDLE<br />
xxx JTAGSM: RESET<br />
xxx JTAGSM: RESET-&gt;IDLE<br />
xxx JTAGSM: IDLE-&gt;Data Register<br />
xxx JTAG CHAIN REPORT: <strong>&lt;&#8211;start of report</strong><br />
0&#215;01 DEVICE(S)<br />
#0&#215;01 : 0&#215;93 0&#215;40 0&#215;60 0&#215;59 <strong>&lt;&#8211;device IDs</strong><br />
xxx JTAGSM: DR-&gt;IDLE<br />
JTAG&gt;</p></blockquote>
<p>Macro (2) resets the chain, counts the devices, and reports all the device IDs.</p>
<p><img class="alignnone size-full wp-image-6470" title="xsfv" src="http://hackadaycom.files.wordpress.com/2008/12/xsfv.png" alt="xsfv" width="450" height="350" /></p>
<blockquote><p>JTAG&gt;(3) <strong>&lt;&#8211;macro 3</strong><br />
6xx JTAG XSVF PLAYER<br />
xxx XON/XOFF FLOW CONTROL REQUIRED <strong>&lt;&#8211;required!</strong><br />
xxx PRESS z TO CONTINUE <strong>&lt;&#8211; press z</strong><br />
xxx BEGIN XSVF UPLOAD <strong>&lt;&#8211; upload the file</strong><br />
6&#215;0 XSVF OK <strong>&lt;&#8211; result or error</strong><br />
YOUR PC DRIBBLED MAX 0&#215;05 BYTES AFTER XOFF (THAT&#8217;S OK)<br />
6xx PRESS z 5 TIMES TO CONTINUE <strong>&lt;&#8211; continue</strong><br />
JTAG&gt;</p></blockquote>
<p>Macro 3 is an XSVF player/programmer using code from Xilinx. XSVF is byte format <a href="http://www.asset-intertech.com/support/svf.html">SVF</a>, <a href="http://www.xilinx.com/support/documentation/application_notes/xapp058.pdf">as described by Xilinx</a> (pdf). XSVF files can be compiled for any chain with the correct <a href="http://www.xilinx.com/products/design_resources/config_sol/isp_standards_specs.htm">generic JTAG definition files</a>, even non-Xilinx devices. We successfully used the <em>binary</em> transfer features in <a href="http://www.hw-group.com/products/hercules/index_en.html">Hercules</a> and <a href="http://www.ayera.com/teraterm/">Tera Term</a> to send XSVF files to the programmer.</p>
<p>JTAG sometimes pauses longer than it takes the PC to transfer a byte of data, so we implemented <a href="http://en.wikipedia.org/wiki/XON">XON/XOFF software flow control</a> for the XSVF player. Your terminal must be in XON/XOFF flow control mode before you upload the XSVF file, or the programmer will fail. Even with software flow control, a modern PC has already send several bytes through the layers of operating system before it receives the flow control signals. We deal with this by catching these bytes before moving on, this is reported as the maximum number of bytes &#8220;dribbled&#8221;.</p>
<p>If there&#8217;s an error in the upload, the PC will probably continue to spit bytes at the Bus Pirate. To keep error messages visible, and prevent garbage in the terminal, the XSVF player waits for five lower case z&#8217;s before it returns to the prompt. We chose this sequence because it will never occur in an XSVF file.</p>
<p>*Note that the XSVF player does not respect the JTAG Hi-Z pin setting. Went it does, it fails. Be careful mixing voltages without a buffer.</p>
<p><strong>Better code structure</strong></p>
<p>The biggest difference between the version 0b and 0c firmware is a massive improvement in code structure. The Bus Pirate existed in many incarnations before we packaged it for the initial article. v.0c harmonizes the code libraries and makes it easier to add new protocols.</p>
<p><em>How to add a custom protocol</em></p>
<p>The Bus Pirate code handles the user interface, and passes two variables to the active protocol library. The first variable is a command, such as CMD_READ, CMD_READBULK, or CMD_WRITE. The entire command set is defined in base.h. The second variable is an optional value. A simple CMD_READ command passes no value, a bulk read command passes the number of bytes to read, a write command passes the value to write to the bus, etc. At minimum, a custom protocol needs a function to receive these variables and translate them to bus actions.</p>
<p>We used three different techniques to link commands to bus actions. Simple code can go directly in a giant switch statement, like SPI.c. External libraries use an single linking function, like I2C.c, and m_i2c_1.c. More complicated protocols use the switch statement to call functions included in the library (raw2wire.c, raw3wire.c, jtag.c UART.c). Helpful functions for terminal IO are included in base.h/c.</p>
<p>Due to massive code improvements, it&#8217;s now only mildly confusing to register a new protocol with the Bus Pirate:</p>
<p><em>base.h</em> &#8211; Create a definition for the protocol. The last entry is currently &#8220;#define RAW3WIRE 7&#8243;, so the next entry could be &#8220;#define MYCUSTOMWIRE 8&#8243;.</p>
<p><strong>busPirate.c</strong> &#8211; Include a header file with that gives access to the processing function.  Add a menu entry in the <em>char* mode[]  =</em> variable list. The menu entry <em>must</em> be in the same position on the list as the number assigned in the base.h define. If MYCUSTOMWIRE is number 8, it must be the eight entry in the mode variable. Finally, add an additional switch to the bpProcess() function that calls the custom library processing routine when the mode is set to &#8220;MYCUSTOMWIRE&#8221;.</p>
<p><strong>Taking it further: a Hack a Day wish list</strong></p>
<p>We compiled the feedback we&#8217;ve gotten into three wish lists: protocols, features, and macros.</p>
<p><em>Protocols</em></p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/1-Wire">1-Wire</a>, with enumeration (*ready as soon as we have parts to test it)</li>
<li><a href="http://www.elmelectronics.com/obdic.html">OBD-II</a> (thanks [<a href="http://hackaday.com/2008/11/19/how-to-the-bus-pirate-universal-serial-interface/#comment-51551">Shadyman</a>])</li>
<li><a href="http://en.wikipedia.org/wiki/Controller-area_network">CAN</a></li>
<li><a href="http://www.ucapps.de/">MIDI</a> (<a href="http://en.wikipedia.org/wiki/General_MIDI">Wikipedia</a>)</li>
<li><a href="http://en.wikipedia.org/wiki/DMX512-A">DMX512-A</a></li>
<li><a href="http://en.wikipedia.org/wiki/Irda">IRDA</a>, <a href="http://hackaday.com/2008/10/30/how-to-usb-remote-control-receiver/">RC5x</a>, etc.</li>
</ul>
<p>Some protocols will require an external transceiver.</p>
<p><em>Features</em></p>
<ul>
<li>Pulse-width modulator, frequency generator</li>
<li>&#8220;Wait until interrupt&#8221; command</li>
<li>Convert frequency measurement to input capture peripheral</li>
<li>Allow frequency measurement on any pin</li>
<li>Show a report of the current configuration settings and pin states.</li>
<li>Integer repeat values for bulk read, clock ticks, delays, etc.</li>
<li>A CRC generator</li>
</ul>
<p><em>Macros</em></p>
<ul>
<li>Transparent UART bridge</li>
<li>SD card initialization, meta data extract, and dump</li>
<li>EEPROM program/dump (I2C/SPI)</li>
<li>Nokia 6100 LCD initialization, control</li>
<li>NMEA GPS data decoder</li>
</ul>
<p>Do you have anything to add to the list?</p>
<p>Firmware download: <a href="http://blog.mahalo.com/hackaday/howto/buspirate.v0c.zip">buspirate.v0c.zip</a></p>
<br />Posted in classic hacks, hardware, news, tool hacks  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/6457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/6457/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/6457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/6457/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/6457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/6457/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/6457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/6457/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/6457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/6457/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/6457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/6457/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/6457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/6457/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=6457&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2008/12/01/bus-pirate-firmware-update-v0c-jtag-and-more/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Ian</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2008/12/stat.jpg" medium="image">
			<media:title type="html">stat</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2008/12/jtagstate.png" medium="image">
			<media:title type="html">jtagstate</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2008/12/xsfv.png" medium="image">
			<media:title type="html">xsfv</media:title>
		</media:content>
	</item>
		<item>
		<title>Automatic JTAG Pinout Detection</title>
		<link>http://hackaday.com/2007/09/29/automatic-jtag-pinout-detection/</link>
		<comments>http://hackaday.com/2007/09/29/automatic-jtag-pinout-detection/#comments</comments>
		<pubDate>Sat, 29 Sep 2007 18:39:00 +0000</pubDate>
		<dc:creator>fabienneserriere</dc:creator>
				<category><![CDATA[cellphones hacks]]></category>
		<category><![CDATA[handhelds hacks]]></category>
		<category><![CDATA[misc hacks]]></category>
		<category><![CDATA[wireless hacks]]></category>
		<category><![CDATA[automatic]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[jtag]]></category>
		<category><![CDATA[jtag finder]]></category>
		<category><![CDATA[jtag tools]]></category>
		<category><![CDATA[JtagFinder]]></category>
		<category><![CDATA[JtagTools]]></category>
		<category><![CDATA[pinout]]></category>

		<guid isPermaLink="false">http://hackaday.iheartcashews.com:8181/2007/09/29/automatic-jtag-pinout-detection/</guid>
		<description><![CDATA[Figuring out the JTAG pinout on a device turns out to be the most time consuming hardware portion of many hacks. [hunz] started a project called JTAG Finder to automatically detect the JTAG pinouts on arbitrary devices using an 8bit AVR ATmega16/32L microcontroller. Check out the slides (PDF) from the talk as they break down [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=1478&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img width="400" vspace="4" hspace="4" height="325" border="0" alt="" src="http://hackadaycom.files.wordpress.com/2007/09/jtagfinder.jpg?w=400&#038;h=325" /></p>
<p>Figuring out the JTAG pinout on a device turns out to be the most time consuming hardware portion of many hacks. [hunz] started a project called <a href="http://www.c3a.de/wiki/index.php/JTAG_Finder">JTAG Finder</a> to automatically detect the JTAG pinouts on arbitrary devices using an 8bit AVR ATmega16/32L microcontroller. Check out the <a href="http://hunz.org/jtag.pdf">slides</a> (PDF) from the talk as they break down how one finds JTAG ports on an arbitrary device, with or without a pinout detection tool. [hunz] is looking for people to pick up the project where he left off.</p>
<p>Once you determine the correct pinout, you will need a JTAG cable: there are two main types, buffered and unbuffered, both of which I have soldered up and tested from <a href="http://wiki.openwrt.org/OpenWrtDocs/Customizing/Hardware/JTAG_Cable">these</a> circuit diagrams (image of completed buffered cable <a href="http://hackadaycom.files.wordpress.com/2007/09/jtagbuffered.jpg">here</a>). The software most hardware people use today are the <a href="http://openwince.sourceforge.net/jtag/">openwince JTAG Tools</a>. To get the JTAG Tools to compile, grab the latest source directly from <a href="http://openwince.cvs.sourceforge.net/openwince/jtag/">their CVS repository</a>. </p>
<p>The last time we featured JTAG was <a href="http://www.hackaday.com/2006/04/07/dd-wrt-running-on-wrt54g-version-5/">with regards to Linksys</a> devices, but the tools listed above can be applied to any device with JTAG.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hackadaycom.wordpress.com/1478/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hackadaycom.wordpress.com/1478/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/1478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/1478/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/1478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/1478/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/1478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/1478/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/1478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/1478/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/1478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/1478/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/1478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/1478/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/1478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/1478/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=1478&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2007/09/29/automatic-jtag-pinout-detection/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">fabienneserriere</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2007/09/jtagfinder.jpg" medium="image" />
	</item>
		<item>
		<title>Free your iPhone</title>
		<link>http://hackaday.com/2007/08/26/free-your-iphone/</link>
		<comments>http://hackaday.com/2007/08/26/free-your-iphone/#comments</comments>
		<pubDate>Mon, 27 Aug 2007 06:40:00 +0000</pubDate>
		<dc:creator>Will O'Brien</dc:creator>
				<category><![CDATA[handhelds hacks]]></category>
		<category><![CDATA[iphone hacks]]></category>
		<category><![CDATA[ipod hacks]]></category>
		<category><![CDATA[misc hacks]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[jtag]]></category>

		<guid isPermaLink="false">http://hackaday.iheartcashews.com:8181/2007/08/26/free-your-iphone/</guid>
		<description><![CDATA[I wasn&#8217;t going to post this &#8211; it&#8217;s a freakin phone after all. But I&#8217;ve gotten quite a few tips on it, and I&#8217;d like them to end. [George] made a concerted effort to hack the iPhone &#8211; and it paid off. After his crazy ebay auction that topped out at 99,999,999.99 last time I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=1444&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img width="400" vspace="4" hspace="4" height="325" border="0" alt="" src="http://hackadaycom.files.wordpress.com/2007/08/iphone-solder-had.jpg?w=400&#038;h=325" /><br />I wasn&#8217;t going to post <a href="http://iphonejtag.blogspot.com/">this</a> &#8211; it&#8217;s a freakin phone after all. But I&#8217;ve gotten quite a few tips on it, and I&#8217;d like them to end. [George] made a concerted effort to hack the <a title="IPhone Hacks - Mahalo" href="http://www.mahalo.com/IPhone_Hacks">iPhone</a> &#8211; and it paid off. After his crazy <a href="http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&amp;item=230164884672">ebay auction</a> that topped out at 99,999,999.99 last time I checked, he ended up trading his first phone for a Nissan 350z and a few more iPhones. <br />He documented his process, step by step &#8211; if you&#8217;ve got the skills, you can probably do it yourself. The soldering work is damn fine work &#8211; probably the hardest thing there is. The write up is a little hard to follow, so plan on taking some time to comprehend everything. (Blogging software isn&#8217;t the best way to organize how-tos, trust me on this.) My hats off to [George], he did some great work. &#8211; So, why didn&#8217;t I want to post it? All this work yielded one thing: carrier choice for the iPhone.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hackadaycom.wordpress.com/1444/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hackadaycom.wordpress.com/1444/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/1444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/1444/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/1444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/1444/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/1444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/1444/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/1444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/1444/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/1444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/1444/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/1444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/1444/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/1444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/1444/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=1444&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2007/08/26/free-your-iphone/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Will O&#039;Brien</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2007/08/iphone-solder-had.jpg" medium="image" />
	</item>
	</channel>
</rss>
