<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hacking With Gum &#187; Tools</title>
	<atom:link href="http://hackingwithgum.com/category/tools/feed/" rel="self" type="application/rss+xml" />
	<link>http://hackingwithgum.com</link>
	<description>A Hardware Hacking Blog</description>
	<lastBuildDate>Tue, 23 Mar 2010 00:47:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Dumping AVR Fuse Settings In Bash</title>
		<link>http://hackingwithgum.com/2009/11/05/dumping-avr-fuse-settings-in-bash/</link>
		<comments>http://hackingwithgum.com/2009/11/05/dumping-avr-fuse-settings-in-bash/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 03:44:19 +0000</pubDate>
		<dc:creator>cheffner</dc:creator>
				<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[avr-fusedump]]></category>
		<category><![CDATA[bash]]></category>

		<guid isPermaLink="false">http://hackingwithgum.com/?p=384</guid>
		<description><![CDATA[I&#8217;m starting to get more into AVR programming, and reading / writing fuses is a pretty essential skill. The fuses can be easily read with avrdude, and the Engbedded Fuse Calculator does a wonderful job of interpreting the fuse bytes for you. But I got tired of typing out the avrdude command, then opening up [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m starting to get more into AVR programming, and reading / writing fuses is a pretty essential skill. The fuses can be easily read with <a href="http://http://www.nongnu.org/avrdude/">avrdude</a>, and the Engbedded <a href="http://www.engbedded.com/fusecalc/">Fuse Calculator</a> does a wonderful job of interpreting the fuse bytes for you. But I got tired of typing out the avrdude command, then opening up firefox, going to the Engbedded site and copying and pasting the fuse bytes into the input fields every time I wanted to check fuse settings (granted, not that often, but still&#8230;).</p>
<p>So, naturally, I wrote a bash script: <a href="http://hackingwithgum.com/wp-content/uploads/avr-fusedump.txt">avr-fusedump</a>. Just give it the name of your programmer and the AVR chip that you have connected, and it will run avrdude, print out the high, low, and extended fuse bytes, and open up the Engbedded Fuse Calculator site with the current fuse settings of your AVR chip. Example:</p>
<blockquote><pre>
$ avr-fusedump -c usbtiny -p ATmega328P
lfuse	0xFF
hfuse	0xD9
efuse	0x07
</pre>
</blockquote>
<p>And the following page was opened:</p>
<div id="attachment_385" class="wp-caption aligncenter" style="width: 310px"><a href="http://hackingwithgum.com/wp-content/uploads/2009/11/engbedded.png"><img src="http://hackingwithgum.com/wp-content/uploads/2009/11/engbedded-300x147.png" alt="Engbedded page opened by avr-fusedump" title="Engbedded Screenshot" width="300" height="147" class="size-medium wp-image-385" /></a><p class="wp-caption-text">Engbedded page opened by avr-fusedump</p></div>
<p>The avr-fusedump script can be downloaded <a href="http://hackingwithgum.com/wp-content/uploads/avr-fusedump.txt">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://hackingwithgum.com/2009/11/05/dumping-avr-fuse-settings-in-bash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cenzic POV Fan Toolkit</title>
		<link>http://hackingwithgum.com/2009/10/08/cenzic-pov-fan-toolkit/</link>
		<comments>http://hackingwithgum.com/2009/10/08/cenzic-pov-fan-toolkit/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 02:56:56 +0000</pubDate>
		<dc:creator>cheffner</dc:creator>
				<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Cenzic]]></category>
		<category><![CDATA[POV]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://hackingwithgum.com/?p=366</guid>
		<description><![CDATA[In order to make hacking my Cenzic POV fan easier, I created a small tool kit consisting of a couple of Python scripts to aid in the creation of character maps and EEPROM images for the fan. The first Python script, ascii2cenzic.py, was mentioned in my original article; you simply pass it the ASCII text [...]]]></description>
			<content:encoded><![CDATA[<p>In order to make hacking my <a href="http://hackingwithgum.com/2009/10/06/hacking-the-cenzic-pov-fan/">Cenzic POV fan</a> easier, I created a small <a href="http://hackingwithgum.com/wp-content/uploads/cenzic_pov_toolkit.zip">tool kit</a> consisting of a couple of Python scripts to aid in the creation of character maps and EEPROM images for the fan.</p>
<p>The first Python script, ascii2cenzic.py, was mentioned in my original article; you simply pass it the ASCII text that you want the fan to display, and it will generate the binary data that you need to load onto the fan&#8217;s EERPOM using <a href="http://www.lancos.com/prog.html">PonyProg</a>. It has been updated to support uppercase alpha numeric characters, some punctuation, and smiley and frowney faces.</p>
<p>If you want to display an image that the ascii2cenzic script doesn&#8217;t support, you have to figure out the necessary byte patterns. This can be time consuming, so the second script included in the tool kit is graph2hex.py. Graph2hex will take a 5&#215;7 character ASCII art image and generate the five byte sequence needed in order to display that image on the fan. There are two important notes regarding the use of this tool:</p>
<ol>
<li>The image MUST be 5&#215;7 characters, no more, no less</li>
<li>Zeros in the ASCII art image will be where the LEDs are turned on; anything else is considered &#8220;off&#8221;.</li>
</ol>
<p><span id="more-366"></span></p>
<p>There is also an example ASCII art image of a smiley face included in the zip file, example_graph.txt. Note that there are five columns, with seven rows each, no more, no less:</p>
<blockquote><pre>
11111
01110
11111
11011
11111
01110
10001
</pre>
</blockquote>
<p>To make the image clearer, you can replace all the 1&#8242;s with spaces. Be careful with this though, it&#8217;s easy to accidentally add extra white space and then you&#8217;ll be left wondering why graph2hex is throwing errors:</p>
<blockquote><pre>

0   0

  0  

0   0
 000
</pre>
</blockquote>
<p>Running graph2hex on this file produces the five byte sequence needed to properly display this image:</p>
<blockquote><p>c:>python graph2hex.py example_graph.txt<br />
0xBD,0x7F,0x6F,0x7F,0xBD</p></blockquote>
<p>Once you have these bytes, you can add an entry to the ascii_table dictionary in ascii2cenzic.py (note that the key in the dictionary must be ONE character):</p>
<blockquote><p>&#8230;<br />
&#8216;)&#8217; : [0xBD,0x7F,0x6F,0x7F,0xBD], #Close paren displays a smiley face<br />
&#8230;</p></blockquote>
<p>You can download the tool kit <a href="http://hackingwithgum.com/wp-content/uploads/cenzic_pov_toolkit.zip">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://hackingwithgum.com/2009/10/08/cenzic-pov-fan-toolkit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
