<?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>MightyOhm &#187; Linux</title>
	<atom:link href="http://mightyohm.com/blog/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://mightyohm.com/blog</link>
	<description>Join the resistance.</description>
	<lastBuildDate>Wed, 16 May 2012 17:02:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Wifi Radio project mention in Nuts and Volts</title>
		<link>http://mightyohm.com/blog/2012/02/wifi-radio-project-mention-in-nuts-and-volts/</link>
		<comments>http://mightyohm.com/blog/2012/02/wifi-radio-project-mention-in-nuts-and-volts/#comments</comments>
		<pubDate>Thu, 23 Feb 2012 19:24:19 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[magazines]]></category>
		<category><![CDATA[nutsandvolts]]></category>
		<category><![CDATA[Project Index]]></category>
		<category><![CDATA[wifiradio]]></category>

		<guid isPermaLink="false">http://mightyohm.com/blog/?p=4953</guid>
		<description><![CDATA[The March issue of Nuts and Volts features an article by Craig Lindley about how to Build Your Own Wi-Fi Internet Radio. In the article, Craig mentions that my Wifi Radio project gave him the inspiration to build his project. Thanks for the shoutout, Craig! Related posts: Wifi Radio project mention in Popular Science
Related posts:<ol>
<li><a href='http://mightyohm.com/blog/2011/10/wifi-radio-project-mention-in-popular-science/' rel='bookmark' title='Wifi Radio project mention in Popular Science'>Wifi Radio project mention in Popular Science</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nutsvolts.com/index.php?/magazine/issue/2012/03"><img src="http://mightyohm.com/blog/wp-content/uploads/2012/02/nv2012_03_wifiradio-500x380.png" alt="" title="Nuts and Volts" width="500" height="380" class="alignnone size-medium wp-image-4954" /></a></p>
<p>The <a href="http://www.nutsvolts.com/index.php?/magazine/issue/2012/03">March issue</a> of <a href="http://www.nutsvolts.com">Nuts and Volts</a> features an article by Craig Lindley about how to <a href="http://www.nutsvolts.com/index.php?/magazine/article/march2012_lindley">Build Your Own Wi-Fi Internet Radio</a>.</p>
<p>In the article, Craig mentions that my <a href="http://mightyohm.com/wifiradio">Wifi Radio project</a> gave him the inspiration to build his project. Thanks for the shoutout, Craig!</p>
<p>Related posts:<ol>
<li><a href='http://mightyohm.com/blog/2011/10/wifi-radio-project-mention-in-popular-science/' rel='bookmark' title='Wifi Radio project mention in Popular Science'>Wifi Radio project mention in Popular Science</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://mightyohm.com/blog/2012/02/wifi-radio-project-mention-in-nuts-and-volts/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Atmel AVRISP mkII working in Virtualbox</title>
		<link>http://mightyohm.com/blog/2010/11/atmel-avrisp-mkii-working-in-virtualbox/</link>
		<comments>http://mightyohm.com/blog/2010/11/atmel-avrisp-mkii-working-in-virtualbox/#comments</comments>
		<pubDate>Thu, 18 Nov 2010 01:31:35 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[Atmel]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[virtualbox]]></category>

		<guid isPermaLink="false">http://mightyohm.com/blog/?p=3333</guid>
		<description><![CDATA[In the past I have had problems getting the Atmel AVRISP mkII to work with Virtualbox.  This can be really irritating if, like me, you want to write code in Linux but are forced to run Windows for Skype and various closed-source development tools (ugh). Today, it seems to be working.  I can talk to [...]]]></description>
			<content:encoded><![CDATA[<p>In the past I have had problems getting the <a href="http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3808">Atmel AVRISP mkII</a> to work with <a href="http://www.virtualbox.org/">Virtualbox</a>.  This can be really irritating if, like me, you want to write code in Linux but are forced to run Windows for Skype and various <a href="http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725&amp;source=redirect">closed-source development tools</a> (ugh).</p>
<p>Today, it seems to be working.  I can talk to the AVRISP with <a href="http://savannah.nongnu.org/projects/avrdude/">avrdude</a> and program devices.  Cool!</p>
<p>I&#8217;m not sure what I changed.  I&#8217;m using Virtualbox 3.2.10 r66523, running on a Windows 7 64-bit host.  The VM/client OS is Ubuntu 10.10.  I created a USB filter for the AVRISP in the Virtual Machine settings; it doesn&#8217;t seem to work without it.  That might be what I was missing before.</p>
<p>To avoid having to run avrdude with root priveledges, I created the file /etc/udev/rules.d/10-avrisp2.rules with the contents:</p>
<pre>SUBSYSTEM=="usb", SYSFS{idVendor}=="03eb", SYSFS{idProduct}=="2104", GROUP="adm", MODE="0666"</pre>
<p>Pretty simple.</p>
<p>Oh, I should add that there is no guarantee other combinations of host/client OS will work.   If you&#8217;re getting different results, leave a comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://mightyohm.com/blog/2010/11/atmel-avrisp-mkii-working-in-virtualbox/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>AVR Toolchain Installation Instructions for Windows, Mac OS X, Linux</title>
		<link>http://mightyohm.com/blog/2010/10/avr-toolchain-installation-instructions-for-windows-mac-os-x-linux/</link>
		<comments>http://mightyohm.com/blog/2010/10/avr-toolchain-installation-instructions-for-windows-mac-os-x-linux/#comments</comments>
		<pubDate>Fri, 29 Oct 2010 05:20:29 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[avr-gcc]]></category>
		<category><![CDATA[avrbook]]></category>
		<category><![CDATA[crosspack]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[winavr]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://mightyohm.com/blog/?p=3304</guid>
		<description><![CDATA[Mitch Altman and I are in the process of writing a book about Making Cool Things with Microcontrollers (for people who know nothing.) The book features several DIY projects that use AVR microcontrollers.  We&#8217;re aiming to teach absolute beginners how to solder, basic electronics, and the process of turning a cool idea into reality by [...]]]></description>
			<content:encoded><![CDATA[<div>
<p><a href="http://mightyohm.com/blog/wp-content/uploads/2010/10/winavr.png"><img class="alignnone size-medium wp-image-3269" title="WinAVR" src="http://mightyohm.com/blog/wp-content/uploads/2010/10/winavr-500x336.png" alt="" width="500" height="336" /></a></p>
<p><a href="http://www.cornfieldelectronics.com">Mitch Altman</a> and I are in the process of writing a book about Making Cool Things with Microcontrollers (for people who know nothing.)</p>
<p>The book features several DIY projects that use <a href="http://atmel.com/products/avr/default.asp?family_id=607&amp;source=home">AVR</a> microcontrollers.  We&#8217;re aiming to teach absolute beginners how to solder, basic electronics, and the process of turning a cool idea into reality by using microcontrollers.</p>
<p>I wrote these instructions about setting up a working avr-gcc environment in Windows, Mac OS X, or Linux.  Mitch and I felt that they could use some beta testing in the real world before bring included in the book, so we decided to make them available here.  We also felt that they might help some people get started with AVRs before the book is available.</p>
<p>We want to make the process of writing and compiling code for the AVR simple and accessible, so we&#8217;re not using any fancy IDEs (eg. no <a href="http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725">AVR Studio</a>).  We also wanted to use the same software on all three operating systems, so Windows-only tools were out.  Instead, we&#8217;re using avr-gcc, the compiler behind WinAVR, CrossPack, and Arduino.</p>
<p>I would appreciate any feedback on these instructions.</p>
<p>Here they are:</p>
<p><a href="http://mightyohm.com/blog/tutorials/avr-toolchain-installation/windows">Windows</a></p>
<p><a href="http://mightyohm.com/blog/tutorials/avr-toolchain-installation/mac-os-x">Mac OS X</a></p>
<p><a href="http://mightyohm.com/blog/tutorials/avr-toolchain-installation/linux">Linux</a></p>
<p><strong>Update:</strong> I totally rewrote this post after getting feedback that I didn&#8217;t properly identify my target audience and explain why I chose avr-gcc.  Sorry!</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://mightyohm.com/blog/2010/10/avr-toolchain-installation-instructions-for-windows-mac-os-x-linux/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Measuring network performance with iperf</title>
		<link>http://mightyohm.com/blog/2010/08/measuring-network-performance-with-iperf/</link>
		<comments>http://mightyohm.com/blog/2010/08/measuring-network-performance-with-iperf/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 16:41:15 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[ethernet]]></category>
		<category><![CDATA[iperf]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[Wifi]]></category>

		<guid isPermaLink="false">http://mightyohm.com/blog/?p=3016</guid>
		<description><![CDATA[My new place in Austin came with a huge perk for a tech geek like me &#8211; it came pre-wired for ethernet in every room.  (Well, technically not every room is wired.  The laundry room, bathrooms, and garage are not, an understandable oversight.) After installing a new D-Link Gigabit Ethernet Switch, I wanted to check [...]]]></description>
			<content:encoded><![CDATA[<p>My new place in Austin came with a huge perk for a tech geek like me &#8211; it came pre-wired for ethernet in every room.  (Well, technically not <em>every</em> room is wired.  The laundry room, bathrooms, and garage are not, an understandable oversight.)</p>
<p>After installing a new <a href="http://www.anrdoezrs.net/click-3238164-10440897?url=http%3A%2F%2Fwww.newegg.com%2FProduct%2FProduct.aspx%3FItem%3DN82E16833127082%26nm_mc%3DAFC-C8Junction%26cm_mmc%3DAFC-C8Junction-_-Network%2B-%2BSwitches-_-D-Link-_-33127082&amp;cjsku=N82E16833127082" target="_top">D-Link Gigabit Ethernet Switch</a><img src="http://www.ftjcfx.com/image-3238164-10440897" border="0" alt="" width="1" height="1" />, I wanted to check the throughput to see if I was actually getting gigabit speeds &#8211; particularly because the house is wired with CAT-5e cable (and not the recommended <a href="http://en.wikipedia.org/wiki/Category_6_cable">CAT-6</a>).</p>
<p>There are many ways to measure network throughput.  In the past I have usually copied a file across the network and used a stopwatch to get a relative sense of speed.  However, due to file sharing protocol overhead I always got disappointing results and never knew maximum capability of my network.</p>
<p>This time, based on the advice of a more network-savvy friend, I decided to use a command-line tool called <a href="http://sourceforge.net/projects/iperf/">iperf</a>.</p>
<p>iperf is a command-line tool to measure network performance.  It is very powerful, but also easy to use for simple tests.  For a more complete overview of what iperf is and what it can be used for, check out <a href="http://openmaniak.com/iperf.php">this tutorial</a> or <a href="http://en.wikipedia.org/wiki/Iperf">the iperf page on Wikipedia</a>.  iperf has a lot of options, and I won&#8217;t cover the majority of them here.  For more usage information, consult the <a href="http://manpages.ubuntu.com/manpages/lucid/en/man1/iperf.1.html">iperf manual</a>.</p>
<p>If you run Debian or Ubuntu (Linux), iperf can be installed by executing</p>
<pre><strong>sudo apt-get install iperf</strong></pre>
<p>I did these tests with OS X on the Mac since both of my Macs have gigabit ethernet ports and my older PCs don&#8217;t.  A package for iperf is conveniently available from <a href="http://www.macports.org/">Macports</a>.  It can be installed via the graphical package manager <a href="http://porticus.alittledrop.com/">Porticus</a> or opening a Terminal window and typing</p>
<pre><strong>sudo port install iperf</strong></pre>
<p>In my case, all I wanted was a quick test of TCP/IP network performance.  This is easy to do, but it requires two computers, a client and a server, both connected to the network under test.  Ideally, there should be no other network traffic during the test, as this will affect the results.</p>
<p>On the first computer, launch the iperf server by executing</p>
<pre><strong>iperf -s</strong></pre>
<p>You should see something like this:</p>
<pre>------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------</pre>
<p>On the 2nd computer (the client), open a Terminal window and run</p>
<pre><strong>iperf -c </strong>&lt;IP address or hostname of server&gt;<strong> -i 1</strong></pre>
<p>Within a few seconds, you should start to see reports coming in on both the client and server terminal windows:</p>
<pre>------------------------------------------------------------
Client connecting to mini.home, TCP port 5001
TCP window size:   129 KByte (default)
------------------------------------------------------------
[  3] local 192.168.24.135 port 65142 connected with 192.168.24.77 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec    110 MBytes    924 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  1.0- 2.0 sec    101 MBytes    850 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  2.0- 3.0 sec    109 MBytes    914 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  3.0- 4.0 sec    100 MBytes    841 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  4.0- 5.0 sec    111 MBytes    927 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  5.0- 6.0 sec    102 MBytes    853 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  6.0- 7.0 sec    110 MBytes    923 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  7.0- 8.0 sec    102 MBytes    858 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  8.0- 9.0 sec  79.4 MBytes    666 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  9.0-10.0 sec  93.6 MBytes    785 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1018 MBytes    854 Mbits/sec</pre>
<p>The last report (for the interval 0.0-10.0 sec) is the average throughput for the entire test.  I&#8217;m more than happy with 854 Mbits (927 Mbits/sec peak!) given my fairly long runs of CAT-5e cable and other machines using the network.   Contrast this with my results over 802.11g wireless:</p>
<pre>[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  24.9 MBytes  20.9 Mbits/sec</pre>
<div>Ouch.</div>
]]></content:encoded>
			<wfw:commentRss>http://mightyohm.com/blog/2010/08/measuring-network-performance-with-iperf/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Run avrdude on Ubuntu without root</title>
		<link>http://mightyohm.com/blog/2010/03/run-avrdude-without-root-privs-in-ubuntu/</link>
		<comments>http://mightyohm.com/blog/2010/03/run-avrdude-without-root-privs-in-ubuntu/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 21:31:36 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://mightyohm.com/blog/?p=2910</guid>
		<description><![CDATA[A quick tip for Ubuntu users: As installed by the avrdude package on Ubuntu, avrdude needs root priveledges to work properly with the Adafruit USBTinyISP AVR programmer.  This gets annoying pretty fast because to program an AVR you need to run avrdude (or make) with sudo every time or log in as root (not recommended).  [...]]]></description>
			<content:encoded><![CDATA[<h3>A quick tip for Ubuntu users:</h3>
<p>As installed by the <a href="http://packages.ubuntu.com/search?keywords=avrdude&amp;searchon=names&amp;suite=karmic&amp;section=all">avrdude package</a> on Ubuntu, <a href="http://www.bsdhome.com/avrdude/">avrdude</a> needs root priveledges to work properly with the Adafruit <a href="http://www.ladyada.net/make/usbtinyisp/index.html">USBTinyISP</a> AVR programmer.  This gets annoying pretty fast because to program an AVR you need to run avrdude (or make) with sudo every time or log in as root (not recommended).  Without sudo, avrdude will return an error:</p>
<pre>avrdude: error: usbtiny_transmit: error sending control message: Operation not permitted</pre>
<pre>avrdude: initialization failed, rc=-1</pre>
<pre> Double check connections and try again, or use -F to override</pre>
<pre> this check.</pre>
<pre>avrdude: error: usbtiny_transmit: error sending control message: Operation not permitted
avrdude done.  Thank you.</pre>
<p>LadyAda points out in <a href="http://www.ladyada.net/make/usbtinyisp/avrdude.html">her avrdude tutorial</a> that there is a way around this behavior by setting up some <a href="http://hackaday.com/2009/09/18/how-to-write-udev-rules/">udev rules</a> for the USBTinyISP.  However, I found that the rules given in her tutorial did not work with my stock Ubuntu 9.10 installation.  The problem arises because the user Ubuntu creates on install is not part of the &#8220;users&#8221; group.</p>
<h3>The fix:</h3>
<p>Create a file called <strong>10-usbtinyisp.rules</strong> in directory <strong>/etc/udev/rules.d</strong></p>
<pre> SUBSYSTEM=="usb", SYSFS{idVendor}=="1781", SYSFS{idProduct}=="0c9f", GROUP="adm", MODE="0666"</pre>
<p>Then execute:</p>
<pre> sudo restart udev</pre>
<p>That&#8217;s it.  Unplug and replug in the USB cable to your USBTinyISP programmer.  Now avrdude should be able to access the USBTinyISP without root privileges.</p>
<p>If your account is part of another group, just change the GROUP= flag to that group instead.  New users in Ubuntu are assigned to a group named after their username by default, so that is another option (ie. GROUP=&#8221;yourusername&#8221;).  Interestingly, new users are not assigned to the &#8220;users&#8221; group, for reasons that escape me (and no doubt some of our more Linux-savvy readers can enlighten us about).</p>
]]></content:encoded>
			<wfw:commentRss>http://mightyohm.com/blog/2010/03/run-avrdude-without-root-privs-in-ubuntu/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Building a Wifi Radio?  Leave a comment here!</title>
		<link>http://mightyohm.com/blog/2009/07/building-a-wifi-radio-leave-a-comment-here/</link>
		<comments>http://mightyohm.com/blog/2009/07/building-a-wifi-radio-leave-a-comment-here/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 18:58:48 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Asus]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[wifiradio]]></category>

		<guid isPermaLink="false">http://mightyohm.com/blog/?p=2081</guid>
		<description><![CDATA[Did my Wifi Radio project inspire you to buy a wireless router and start hacking?  If so, I&#8217;d like to hear from you! Leave a comment below and let me know how your project is coming along.  Even if you&#8217;re not building a Wifi Radio but used my firmware or tutorials as a starting point [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Did my <a href="http://mightyohm.com/wifiradio/">Wifi Radio project</a> inspire you to buy a wireless router and start hacking?  If so, I&#8217;d like to hear from you!</p>
<p style="text-align: left;">Leave a comment below and let me know how your project is coming along.  Even if you&#8217;re not building a Wifi Radio but used my firmware or tutorials as a starting point (a great example is the <a href="http://www.adafruit.com/blog/2009/04/04/hacking-the-asus-router-for-the-tweet-a-watt/">Tweet-a-Watt</a>), I&#8217;d love to hear from you.</p>
<p style="text-align: left;">If you have photos of your project, you can share them with the world by adding them to the <a href="http://www.flickr.com/groups/asushacks/">Asus Wireless Router Hacks</a> photo pool on flickr.</p>
<p><!-- Start of Flickr Badge --></p>
<style type="text/css">
#flickr_badge_source_txt {padding:0; font: 11px Arial, Helvetica, Sans serif; color:#666666;}
#flickr_badge_icon {display:block !important; margin:0 !important; border: 1px solid rgb(0, 0, 0) !important;}
#flickr_icon_td {padding:0 5px 0 0 !important;}
.flickr_badge_image {text-align:center !important;}
.flickr_badge_image img {border: 1px solid black !important;}
#flickr_www {display:block; text-align:left; padding:0 10px 0 10px !important; font: 11px Arial, Helvetica, Sans serif !important; color:#3993ff !important;}
#flickr_badge_uber_wrapper a:hover,
#flickr_badge_uber_wrapper a:link,
#flickr_badge_uber_wrapper a:active,
#flickr_badge_uber_wrapper a:visited {text-decoration:none !important; background:inherit !important;color:#3993ff;}
#flickr_badge_wrapper {background-color:#ffffff;border: solid 1px #000000}
#flickr_badge_source {padding:0 !important; font: 11px Arial, Helvetica, Sans serif !important; color:#666666 !important;}
</style>
<table id="flickr_badge_uber_wrapper" cellpadding="0" cellspacing="10" border="0">
<tr>
<td><a href="http://www.flickr.com" id="flickr_www">www.<strong style="color:#3993ff">flick<span style="color:#ff1c92">r</span></strong>.com</a><br />
<table cellpadding="0" cellspacing="10" border="0" id="flickr_badge_wrapper">
<tr>
<script type="text/javascript" src="http://www.flickr.com/badge_code_v2.gne?show_name=1&#038;count=3&#038;display=random&#038;size=t&#038;layout=h&#038;context=in%2Fpool-asushacks%2F&#038;source=group&#038;group=995895%40N25"></script></p>
<td id="flickr_badge_source" valign="center" align="center">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="10" id="flickr_icon_td"><a href="http://www.flickr.com/groups/asushacks/pool/"><img id="flickr_badge_icon" alt="items in Asus Wireless Router Hacks" src="http://farm4.static.flickr.com/3387/buddyicons/995895@N25.jpg?1235881613" align="left" width="48" height="48"></a></td>
<td id="flickr_badge_source_txt">More <a href="http://www.flickr.com/groups/asushacks/pool/">in Asus Wireless Router Hacks pool</a></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<p><!-- End of Flickr Badge --></p>
]]></content:encoded>
			<wfw:commentRss>http://mightyohm.com/blog/2009/07/building-a-wifi-radio-leave-a-comment-here/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Building a Wifi Radio &#8211; Part 10, Building the Box</title>
		<link>http://mightyohm.com/blog/2009/05/building-a-wifi-radio-part-10-building-the-box/</link>
		<comments>http://mightyohm.com/blog/2009/05/building-a-wifi-radio-part-10-building-the-box/#comments</comments>
		<pubDate>Fri, 29 May 2009 14:30:22 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[amplifier]]></category>
		<category><![CDATA[antenna]]></category>
		<category><![CDATA[case]]></category>
		<category><![CDATA[kc6qhp]]></category>
		<category><![CDATA[lcd]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[wifiradio]]></category>
		<category><![CDATA[Wireless]]></category>
		<category><![CDATA[WL-520GU]]></category>
		<category><![CDATA[woodworking]]></category>

		<guid isPermaLink="false">http://mightyohm.com/blog/?p=1887</guid>
		<description><![CDATA[This is the tenth and final part of a series about building a low cost, open source streaming internet radio based on the ASUS WL-520gU Wireless Router.  If you haven’t already, check out the previous parts (see the links below) for some background about the project. Wow, we&#8217;ve come a long way since part one!  [...]]]></description>
			<content:encoded><![CDATA[<p><em>This is the tenth and final part of a series about building a low cost, open source streaming internet radio based on the <a onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.dpbolvw.net/click-3238164-10440897?url=http%3A%2F%2Fwww.newegg.com%2FProduct%2FProduct.aspx%3FItem%3DN82E16833320023%26nm_mc%3DAFC-C8Junction%26cm_mmc%3DAFC-C8Junction-_-Network%2B-%2BWireless%2BRouters-_-ASUS-_-33320023&amp;cjsku=N82E16833320023');" href="http://www.dpbolvw.net/click-3238164-10440897?url=http%3A%2F%2Fwww.newegg.com%2FProduct%2FProduct.aspx%3FItem%3DN82E16833320023%26nm_mc%3DAFC-C8Junction%26cm_mmc%3DAFC-C8Junction-_-Network%2B-%2BWireless%2BRouters-_-ASUS-_-33320023&amp;cjsku=N82E16833320023" target="_top">ASUS WL-520gU Wireless Router</a><img src="http://www.ftjcfx.com/image-3238164-10440897" border="0" alt="" width="1" height="1" />.  If you haven’t already, check out the previous parts (see the links below) for some background about the project.</em></p>
<p>Wow, we&#8217;ve come a long way since part one!  To date, there have been nine parts in this series, each covering a different aspect of building the radio:</p>
<ol>
<li><a href="http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-1-introduction/">Building a Wifi Radio &#8211; Part 1, Introduction</a></li>
<li><a href="http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-2-choosing-an-embedded-platform/">Building a Wifi Radio &#8211; Part 2, Choosing an Embedded Platform</a></li>
<li><a href="http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-3-hacking-the-asus-wl-520gu/">Building a Wifi Radio &#8211; Part 3, Hacking the Asus WL-520GU</a></li>
<li><a href="http://mightyohm.com/blog/2008/11/building-a-wifi-radio-part-4-installing-openwrt/">Building a Wifi Radio &#8211; Part 4, Installing OpenWrt</a></li>
<li><a href="http://mightyohm.com/blog/2008/11/building-a-wifi-radio-part-5-lets-make-some-noise/">Building a Wifi Radio &#8211; Part 5, Let’s Make Some Noise!</a></li>
<li><a href="http://mightyohm.com/blog/2008/12/building-a-wifi-radio-part-6-a-conversation-with-mpd/">Building a Wifi Radio &#8211; Part 6, A Conversation with Mpd</a></li>
<li><a href="http://mightyohm.com/blog/2008/12/building-a-wifi-radio-part-7-building-an-lcd-display/">Building a Wifi Radio &#8211; Part 7, Building an LCD Display</a></li>
<li><a href="http://mightyohm.com/blog/2009/02/building-a-wifi-radio-part-8-adding-a-tuning-control/">Building a Wifi Radio &#8211; Part 8, Adding a Tuning Control</a></li>
<li><a href="http://mightyohm.com/blog/2009/05/building-a-wifi-radio-part-9-a-few-odds-and-ends/">Building a Wifi Radio &#8211; Part 9, A Few Odds and Ends</a></li>
<li>You are here.</li>
</ol>
<h3>Preface to Part 10:</h3>
<p>In this part, I&#8217;m going to show you a few steps in the process I used to turn <a href="http://mightyohm.com/blog/2008/10/detailed-specs-for-the-asus-wl-520gu-uber-hacking-platform/">a wireless router</a>, a breadboard, and a pile of loose parts into a finished standalone internet streaming radio receiver.  Unlike the previous parts in the series, I&#8217;m not going to provide detailed step by step instructions.  This is primarily because I don&#8217;t think it&#8217;s realistic to expect everyone to have access to the same tools and materials as I do.  Think of it this way &#8211; this is your opportunity to customize your radio.  Maybe you don&#8217;t like wood veneer, but prefer brushed aluminum or carbon fiber?  Maybe you have a <a href="http://www.epiloglaser.com/">laser cutter</a> at your disposal and can turn a flat sheet of clear acrylic into a snap-together radio in less than 5 minutes?  This is your chance to express your creativity!  Go ahead and <a href="http://creativecommons.org/licenses/by-sa/3.0/us/">copy my design</a>, but don&#8217;t be afraid to go off into left field either&#8230;</p>
<h3>The Box:</h3>
<p>Some time ago, I posted a <a href="http://sketchup.google.com/">Google Sketchup</a> model of the radio enclosure that I created with the help of Tony, a good friend of mine who lives in Southern California.  The idea was to build a box out of wood to mimic the style of a <a href="http://images.google.com/images?hl=en&amp;client=firefox-a&amp;rls=org.mozilla:en-US:official&amp;hs=Qii&amp;q=vintage%20wood%20table%20radio&amp;um=1&amp;ie=UTF-8&amp;sa=N&amp;tab=wi">vintage table radio</a>.  All the components of the radio would be mounted inside the box, with the exception of the antenna (not shown).  We also wanted to add some custom touches to make the design look modern and unique, like black controls and flush mounted contoured speaker grilles and a minimalist front panel layout.</p>
<p>Here&#8217;s the model we came up with:</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Wifi Radio Enclosure - Google Sketchup Model" href="http://www.flickr.com/photos/mightyohm/3306019406/"><img class="alignnone" src="http://farm4.static.flickr.com/3623/3306019406_7879de7ace.jpg" alt="Wifi Radio Enclosure - Google Sketchup Model" width="500" height="335" /></a></p>
<p>Tony and I spent a weekend in his garage near Los Angeles finalizing the design, cutting and bending sheets of plywood, making forms, and fitting various pieces of the box together.  Tony, who is far superior to me in the ways of woodworking and fabrication, did most of the work while I looked at stain colors and other details.</p>
<p>A few weeks later, Tony sent me this masterpiece.  Here&#8217;s the box, freshly stained and covered with many carefully sanded coats of polyurethane:</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Wifi Radio Case Build" href="http://www.flickr.com/photos/mightyohm/3508538787/"><img class="alignnone" src="http://farm4.static.flickr.com/3324/3508538787_0e6721f96a.jpg" alt="Wifi Radio Case Build" width="500" height="375" /></a></p>
<p>Hopefully Tony will write a post about the process of fabricating the box &#8211; he can provide a lot more details than I can.  For now, check out <a href="http://www.flickr.com/photos/mightyohm/sets/72157607903511625/">my photostream</a> for some in-progress photos of the box.  Tony has <a href="http://www.flickr.com/photos/kc6qhp/3560876194/">some photos</a> as well.</p>
<p>Once it arrived in the mail, it was up to me to combine the empty box with the pile of parts on my workbench to finish the project.</p>
<h3>Finding an Audio Amplifier:</h3>
<p>I wanted a small, inexpensive, stereo <a href="http://en.wikipedia.org/wiki/Audio_amplifier">audio amplifier</a> to mount inside the radio.  Originally, my goal was to find a kit with a few watts of power per channel, single supply operation (preferably with a common supply voltage, like 12V), volume and tone controls, and a compact PCB.  I never found any kits that I really liked (although I may look at <a href="http://www.41hz.com/">41hz</a> for some future higher powered projects).  Eventually I gave up and bought a pair of used <a href="http://support.dell.com/support/edocs/acc/61408/Specs.htm">Altec Lansing ACS90 computer speakers </a>for $5 from <a href="http://weirdstuff.com/">Weird Stuff</a> in Sunnyvale, CA.</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Altec Lansing PC Speakers" href="http://www.flickr.com/photos/mightyohm/3559664307/"><img class="alignnone" src="http://farm4.static.flickr.com/3600/3559664307_7c6a674fa3.jpg" alt="Altec Lansing PC Speakers" width="500" height="375" /></a></p>
<p>I took the speakers apart and threw away the plastic speaker boxes.  Inside one is a small stereo audio amplifier that runs on 12V @ &lt; 2A and delivers 4W per channel.  I couldn&#8217;t ask for a better amp for this project, especially for the price!  I also salvaged the hefty speakers for reuse in the radio.</p>
<h3>Building the LCD / Interface Circuit:</h3>
<p>I carefully transferred my AVR microcontroller-based LCD driver / tuner control circuit from my breadboard to a piece of electronics protoboard.  Here&#8217;s the &#8220;component side&#8221; of the perfboard, showing the AVR ATmega168 microcontroller (socketed), 16MHz crystal, contrast trimpot, <a href="http://en.wikipedia.org/wiki/In_Circuit_Serial_Programming_(ICSP)">ICSP</a> pins, and header socket for the LCD:</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Wifi Radio - Final Assembly" href="http://www.flickr.com/photos/mightyohm/3554113123/"><img class="alignnone" src="http://farm4.static.flickr.com/3305/3554113123_cac79cc8cd.jpg" alt="Wifi Radio - Final Assembly" width="500" height="375" /></a></p>
<p>The &#8220;solder side&#8221; is mostly just interconnect wiring.  The RESET button is in the lower left corner.  I had to notch the PCB to clear one of the control pots inside the radio box.</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Wifi Radio - Final Assembly" href="http://www.flickr.com/photos/mightyohm/3554920076/"><img class="alignnone" src="http://farm4.static.flickr.com/3580/3554920076_2ca4a8136e.jpg" alt="Wifi Radio - Final Assembly" width="500" height="375" /></a></p>
<p>Here&#8217;s the protoboard with the LCD installed and being tested.</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Wifi Radio - Final Assembly" href="http://www.flickr.com/photos/mightyohm/3554918518/"><img class="alignnone" src="http://farm3.static.flickr.com/2462/3554918518_a319b00f04.jpg" alt="Wifi Radio - Final Assembly" width="500" height="375" /></a></p>
<h3>Modifying the router:</h3>
<p>I removed the USB and DC power jacks from the WL-520gU PCB.  I&#8217;m planning to use the USB port solely to talk to my <a href="http://mightyohm.com/blog/2008/10/inside-the-syba-sd-cm-uaud-usb-stereo-audio-adapter/">SYBA USB-Audio adapter</a>, so I removed the USB connector from the SYBA as well and wired the USB lines directly to the router.  Some people may disagree with this, but wiring directly to the router simplified the wiring inside the radio and saved space by eliminating unnecessary USB connectors.  I can always put the USB jack back later if I want to connect other USB peripherals.  A pair of wires connects the DC power pins on the router to the radio&#8217;s 5V power supply.  Don&#8217;t attempt this unless you have a decent soldering iron &#8211; it&#8217;s easy to ruin the printed circuit board by overheating the traces.</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Wifi Radio - Final Assembly" href="http://www.flickr.com/photos/mightyohm/3554918950/"><img class="alignnone" src="http://farm4.static.flickr.com/3655/3554918950_65096001a8.jpg" alt="Wifi Radio - Final Assembly" width="500" height="375" /></a></p>
<h3>The power supply:</h3>
<p>To supply power to the radio, AVR microcontroller, and amplifier, I needed a power supply that could provide both 5V and 12VDC.  I found a used &#8220;brick&#8221; style power supply (also at Weird Stuff) rated at 5V and 12V @ 1.5A.  I believe this type of supply is very commonly used with external hard drive enclosures and shouldn&#8217;t be too hard to find.  Initially I was concerned that a <a href="http://en.wikipedia.org/wiki/Switched-mode_power_supply">switching supply</a> would be too noisy to use with an audio amplifier, but a quick test showed no unexpected noise from the amp.</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Wifi Radio Power Supply" href="http://www.flickr.com/photos/mightyohm/3570652013/"><img class="alignnone" src="http://farm3.static.flickr.com/2460/3570652013_b31e23036a.jpg" alt="Wifi Radio Power Supply" width="375" height="500" /></a></p>
<h3>Final assembly:</h3>
<p>Mounting all of the components inside the radio box took a lot of time, epoxy, velcro, and hot glue.  Eventually I was able to get everything except the power supply to fit.  Although originally I had wanted to mount the supply inside the radio, keeping it external ensures that there is no 110V running around inside the box.  This is a nice safety feature, and I think it was a worthwhile compromise.</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Wifi Radio - Final Assembly" href="http://www.flickr.com/photos/mightyohm/3554925954/"><img class="alignnone" src="http://farm4.static.flickr.com/3405/3554925954_e6b941ff62.jpg" alt="Wifi Radio - Final Assembly" width="500" height="375" /></a></p>
<p>The router is mounted on the left side of the box.  I positioned it close to the back panel so that the antenna connector can pass through and the antenna can be attached.  The amplifier is on the right side.</p>
<p>Here&#8217;s a shot inside the box, showing the microcontroller circuit and LCD display.  The LCD is simply hot glued to the inside of the box.  You can also see the speakers mounted on either side of the display.</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Wifi Radio - Final Assembly" href="http://www.flickr.com/photos/mightyohm/3554930936/"><img class="alignnone" src="http://farm4.static.flickr.com/3309/3554930936_b51388e53c.jpg" alt="Wifi Radio - Final Assembly" width="500" height="375" /></a></p>
<h3>The finished result:</h3>
<p>Here&#8217;s the front of the radio.  The LCD display is behind a thin sheet of smoked plexiglass that is press fit into the rectangular opening in the front panel.  The two smaller knobs are connected to potentiometers that I wired to the amplifier in place of the original controls.  The left knob controls volume, the right is for tone.  I originally wanted the volume knob to also be the power switch, but I couldn&#8217;t find a dual audio taper pot that included a switch as well.   The small knobs are from <a href="http://halted.com">HSC</a> in Sunnyvale.  The large knob in the center is the tuning control.  I spotted it at <a href="http://mouser.com">Mouser Electronics</a> (#<a href="http://mouser.com/Search/ProductDetail.aspx?qs=sGAEpiMZZMuiwDVLTMm01UmQJIldByZu8xNgsVCH7DA%3d">450-1755</a> / <a href="http://www.mouser.com/catalog/specsheets/EPD-200217.pdf">datasheet</a>) and couldn&#8217;t resist using it on the radio.</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Finished Wifi Radio" href="http://www.flickr.com/photos/mightyohm/3567599841/"><img class="alignnone" src="http://farm4.static.flickr.com/3593/3567599841_c6666d770c.jpg" alt="Finished Wifi Radio" width="500" height="375" /></a></p>
<p>Here&#8217;s a closeup of the front panel with the LCD display powered on:</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Finished Wifi Radio" href="http://www.flickr.com/photos/mightyohm/3567609195/"><img class="alignnone" src="http://farm3.static.flickr.com/2455/3567609195_79760d88fe.jpg" alt="Finished Wifi Radio" width="500" height="375" /></a></p>
<p>The back panel is made of fiberboard from Home Depot.  The Wi-Fi antenna is shown on the left.  The LAN ports and buttons of the router are accessible through cutouts in the back panel.  A 6-pin <a href="http://en.wikipedia.org/wiki/Mini-DIN">mini-DIN</a> power jack that matches the power supply I&#8217;m using and the power switch are shown on the right.  Four screws hold the back panel onto the box, so it&#8217;s easy to remove.</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Finished Wifi Radio" href="http://www.flickr.com/photos/mightyohm/3568415386/"><img class="alignnone" src="http://farm4.static.flickr.com/3304/3568415386_c4b8b4506e.jpg" alt="Finished Wifi Radio" width="500" height="375" /></a></p>
<p>Here&#8217;s a side view showing the radio&#8217;s rounded corners and matching curved speaker grilles:</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Finished Wifi Radio" href="http://www.flickr.com/photos/mightyohm/3568413842/"><img class="alignnone" src="http://farm4.static.flickr.com/3351/3568413842_ca6a2bc59d.jpg" alt="Finished Wifi Radio" width="500" height="375" /></a></p>
<p>Here&#8217;s a video of the radio in action, tuning between a few different preset stations, including <a href="http://www.slayradio.org/home.php">Slay Radio</a>, <a href="http://di.fm">di.fm</a>, and San Francisco&#8217;s <a href="http://somafm.com/">somafm</a> with <a href="http://somafm.com/play/groovesalad">Groove Salad</a>.</p>
<p><object width="500" height="375" data="http://vimeo.com/moogaloop.swf?clip_id=4855103&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=4855103&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /></object></p>
<p>There are <a href="http://www.flickr.com/photos/mightyohm/sets/72157607903511625/">a lot more pictures</a> on Flickr.  Check them out and keep watching the <a href="http://www.flickr.com/groups/asushacks/">Asus Wireless Router Hacks</a> group for other people&#8217;s creations as well!</p>
<h3>Conclusion:</h3>
<p>This has been an epic journey.  Back in October, when I <a href="http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-1-introduction/">first posted about this project</a>, I never anticipated how much interest there would be in creating a low-cost DIY wireless streaming radio.  I am really thankful for all of the encouragement I have received, both on this site and elsewhere.  Thanks to everyone who has visited from <a href="http://blog.makezine.com">Make</a> and <a href="http://hackaday.com/">Hack a Day</a>, as well as everyone who complimented me on <a href="http://vimeo.com/4714898">my talk</a> at <a href="http://notacon.org">NOTACON</a>.  You guys make it all worthwhile!</p>
<p>By the way, if you have questions or comments, join the <a href="http://mightyohm.com/forum/viewforum.php?f=2">forums</a>!</p>
<p>Thanks for reading, and until next time, happy hacking!</p>
<p>- Jeff Keyzer aka <em>mightyohm</em></p>
]]></content:encoded>
			<wfw:commentRss>http://mightyohm.com/blog/2009/05/building-a-wifi-radio-part-10-building-the-box/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Sneak peek at my finished Wifi Radio project!</title>
		<link>http://mightyohm.com/blog/2009/05/sneak-peak-at-my-finished-wifi-radio-project/</link>
		<comments>http://mightyohm.com/blog/2009/05/sneak-peak-at-my-finished-wifi-radio-project/#comments</comments>
		<pubDate>Thu, 28 May 2009 15:29:31 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[lcd]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[make]]></category>
		<category><![CDATA[maker faire]]></category>
		<category><![CDATA[OpenWRT]]></category>
		<category><![CDATA[photos]]></category>
		<category><![CDATA[wifiradio]]></category>
		<category><![CDATA[WL-520GU]]></category>

		<guid isPermaLink="false">http://mightyohm.com/blog/?p=1902</guid>
		<description><![CDATA[While I&#8217;m busy working on part ten of my series on building a wireless router-based DIY streaming internet radio, I couldn&#8217;t resist sharing a few photos of the finished project. If you want to see the radio in person, stop by Expo Hall Booth 166 at the Maker Faire in San Mateo, CA this weekend.  [...]]]></description>
			<content:encoded><![CDATA[<p>While I&#8217;m busy working on <strong>part ten</strong> of my series on building a <a href="http://mightyohm.com/wifiradio">wireless router-based DIY streaming internet radio</a>, I couldn&#8217;t resist sharing a few photos of the finished project.</p>
<p>If you want to see the radio in person, stop by <a href="http://makerfaire.com/pub/e/2315">Expo Hall Booth 166</a> at the <a href="http://makerfaire.com">Maker Faire</a> in San Mateo, CA this weekend.  I&#8217;ll be there to demonstrate the radio and answer questions!</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Finished Wifi Radio" href="http://www.flickr.com/photos/mightyohm/3567609195/"><img class="alignnone" src="http://farm3.static.flickr.com/2455/3567609195_79760d88fe.jpg" alt="Finished Wifi Radio" width="500" height="375" /></a></p>
<p><a class="tt-flickr tt-flickr-Medium" title="Finished Wifi Radio" href="http://www.flickr.com/photos/mightyohm/3567599841/"><img class="alignnone" src="http://farm4.static.flickr.com/3593/3567599841_c6666d770c.jpg" alt="Finished Wifi Radio" width="500" height="375" /></a></p>
<p><a class="tt-flickr tt-flickr-Medium" title="Finished Wifi Radio" href="http://www.flickr.com/photos/mightyohm/3568413842/"><img class="alignnone" src="http://farm4.static.flickr.com/3351/3568413842_ca6a2bc59d.jpg" alt="Finished Wifi Radio" width="500" height="375" /></a></p>
<p><a class="tt-flickr tt-flickr-Medium" title="Finished Wifi Radio" href="http://www.flickr.com/photos/mightyohm/3568415386/"><img class="alignnone" src="http://farm4.static.flickr.com/3304/3568415386_c4b8b4506e.jpg" alt="Finished Wifi Radio" width="500" height="375" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://mightyohm.com/blog/2009/05/sneak-peak-at-my-finished-wifi-radio-project/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Building a Wifi Radio &#8211; Part 9, A Few Odds and Ends</title>
		<link>http://mightyohm.com/blog/2009/05/building-a-wifi-radio-part-9-a-few-odds-and-ends/</link>
		<comments>http://mightyohm.com/blog/2009/05/building-a-wifi-radio-part-9-a-few-odds-and-ends/#comments</comments>
		<pubDate>Wed, 27 May 2009 15:31:19 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[mpd]]></category>
		<category><![CDATA[OpenWRT]]></category>
		<category><![CDATA[shell script]]></category>
		<category><![CDATA[wifiradio]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://mightyohm.com/blog/?p=1872</guid>
		<description><![CDATA[This is the ninth part of an ongoing series about building a low cost, open source streaming internet radio based on the ASUS WL-520gU Wireless Router.  If you haven’t already, check out the previous parts (see the links at the end of this article) for some background about the project. In part eight, we added [...]]]></description>
			<content:encoded><![CDATA[<p><em>This is the ninth part of an ongoing series about building a low cost, open source streaming internet radio based on the <a onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.dpbolvw.net/click-3238164-10440897?url=http%3A%2F%2Fwww.newegg.com%2FProduct%2FProduct.aspx%3FItem%3DN82E16833320023%26nm_mc%3DAFC-C8Junction%26cm_mmc%3DAFC-C8Junction-_-Network%2B-%2BWireless%2BRouters-_-ASUS-_-33320023&amp;cjsku=N82E16833320023');" href="http://www.dpbolvw.net/click-3238164-10440897?url=http%3A%2F%2Fwww.newegg.com%2FProduct%2FProduct.aspx%3FItem%3DN82E16833320023%26nm_mc%3DAFC-C8Junction%26cm_mmc%3DAFC-C8Junction-_-Network%2B-%2BWireless%2BRouters-_-ASUS-_-33320023&amp;cjsku=N82E16833320023" target="_top">ASUS WL-520gU Wireless Router</a><img src="http://www.ftjcfx.com/image-3238164-10440897" border="0" alt="" width="1" height="1" />.  If you haven’t already, check out the previous parts (see the links at the end of this article) for some background about the project.</em></p>
<p>In <a href="http://mightyohm.com/blog/2009/02/building-a-wifi-radio-part-8-adding-a-tuning-control/">part eight</a>, we added a tuning control for the radio.  Now we can change to any of ten preset stations on the radio by adjusting the position of a potentiometer connected to our AVR microcontroller.   The LCD display we built in <a href="http://mightyohm.com/blog/2008/12/building-a-wifi-radio-part-7-building-an-lcd-display/">part seven</a> lets us know what stream we&#8217;re listening to and the artist and title of the current song.  This project is coming together very nicely!</p>
<p>Before we put the final touches on this project in part ten, there are a few miscellaneous chores to take care of:</p>
<h3>Fixing /etc/config/wireless:</h3>
<p><a href="http://mightyohm.com/blog/2009/02/building-a-wifi-radio-part-8-adding-a-tuning-control/">Last time</a>, we tweaked /etc/config/network to assign a static IP address to the LAN (ethernet) ports of the router.  This allowed us to directly connect a computer to the router via an ethernet cable and get a shell prompt, regardless of the state of the serial console or the wireless connection of the router.  Unfortunately, I made an omission in the setup instructions which may prevent this from working correctly.</p>
<p>To fix this, modify /etc/config/wireless as follows (changes are in bold, use your wireless network information in place of my example):</p>
<pre style="padding-left: 30px;">config wifi-device  wl0
    option type     broadcom
    option channel  3

    # REMOVE THIS LINE TO ENABLE WIFI:
    # option disabled 1

config wifi-iface
    option device   wl0
    option network  <strong>wan</strong>
    option mode     sta  # configures the router to connect to your network
    option ssid     MyNetwork # the SSID of your network
    option encryption wep  # the encryption mode of your network
    option key	XXXXXXXXXX  # add this line with your WEP key in place of X...X</pre>
<p>The only change is to set &#8220;option network&#8221; to &#8220;wan&#8221; instead of &#8220;lan&#8221;.  This minor change tells the router to separate the wireless interface of the router from the LAN/ethernet interface and allows the router to acquire two separate IP addresses, one for each interface.</p>
<h3>Launching mpd automatically at startup:</h3>
<p>Manually launching mpd every time the router boots is a drag.  You can automate this by creating a symbolic link to /etc/init.d/mpd from the /etc/rc.d directory, as follows:</p>
<pre style="padding-left: 30px;">root@OpenWrt:~# ln -s /etc/init.d/mpd /etc/rc.d/S93mpd</pre>
<p>Now every time the router boots, mpd will be started automatically as part of the boot process.  (That was easy!)</p>
<h3>Boot script for the user interface:</h3>
<p>Assuming we want a dedicated internet radio that doesn&#8217;t require user intervention to operate, the scripts for the LCD display and tuning control should also be launched at startup.  This will ensure that upon applying power, the radio will boot into a state where a stream is playing and the user interface is active.</p>
<p>First, we need to create a simple boot script.  Create the file /etc/init.d/AVR with the following contents:</p>
<pre style="padding-left: 30px;">#!/bin/sh /etc/rc.common
# Copyright (C) 2008 OpenWrt.org</pre>
<pre style="padding-left: 30px;">START=99
start() {
sleep 5    # make sure boot process is done, no more console messages
/root/interface.sh
}</pre>
<p>To launch the script at boot, create a symbolic link as follows:</p>
<pre style="padding-left: 30px;">root@OpenWrt:~# ln -s /etc/init.d/AVR /etc/rc.d/S99AVR</pre>
<p>Every time the router boots, the user interface will automatically start, mpd will start playing the selected stream based on the tuner position, and the AVR microcontroller (assuming it is still connected to the serial port) will update the LCD display and watch the potentiometer for any changes in position.</p>
<h3>Tweaking the firewall configuration:</h3>
<p>This is actually optional, but it can be pretty useful while hacking on the router.  As presently configured, the router blocks incoming requests on the WAN, which now includes the wireless interface.  This prevents us from using ssh or telnet to log into the router over our wireless network.  While we can still get a shell by connecting an ethernet cable to one of the LAN ports on the router, it is often more convenient to access the router across your wireless network.</p>
<p>The file /etc/config/firewall controls the firewall settings.  We&#8217;ll be modifying this file.</p>
<p>Open the file in vi and scroll down to this section:</p>
<pre style="padding-left: 30px;">config zone
    option name        wan
    option input    REJECT
    option output    ACCEPT
    option forward    REJECT
    option masq        1</pre>
<p>Edit the &#8220;option input&#8221; line so that it looks like this:</p>
<pre style="padding-left: 30px;">config zone
    option name        wan
   <strong> option input    ACCEPT</strong>
    option output    ACCEPT
    option forward    REJECT
    option masq        1</pre>
<p>Now restart the firewall (or just reboot the router):</p>
<pre style="padding-left: 30px;">root@OpenWrt:~# /etc/init.d/firewall restart</pre>
<p>You should now be able to ssh or telnet into the router over your wireless network.</p>
<h3>Enable SSH:</h3>
<p>By the way, if you want to access the router with <a href="http://en.wikipedia.org/wiki/Ssh">ssh</a> instead of <a href="http://en.wikipedia.org/wiki/Telnet">telnet</a>, just set a root password.  The telnet daemon will be disabled (for security reasons) and replaced with an <a href="http://matt.ucc.asn.au/dropbear/dropbear.html">SSH daemon</a> instead.  You can do this with the &#8220;passwd&#8221; command.</p>
<pre style="padding-left: 30px;">root@OpenWrt:~# passwd
Changing password for root
New password: *****
Retype password: *****
Password for root changed by root
root@OpenWrt:~#</pre>
<p>Log out of your telnet session and use ssh to log back in with your favorite ssh client (don&#8217;t forget to tell the client to use the username &#8220;root&#8221;).</p>
<h3>Stay tuned!</h3>
<p><a class="tt-flickr tt-flickr-Small" title="Wifi Radio Enclosure - Google Sketchup Model" href="http://www.flickr.com/photos/mightyohm/3306019406/"><img class="alignnone" src="http://farm4.static.flickr.com/3623/3306019406_7879de7ace_m.jpg" alt="Wifi Radio Enclosure - Google Sketchup Model" width="240" height="161" /></a></p>
<p>That&#8217;s it for now.  Stay tuned for the final part in this series, part ten, in which I&#8217;ll talk about what it took to turn this Sketchup model into a real wooden case for the radio!</p>
<p><strong>Update: </strong>Part ten (the final part in the series) <a href="http://mightyohm.com/blog/2009/05/building-a-wifi-radio-part-10-building-the-box/">is now online.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mightyohm.com/blog/2009/05/building-a-wifi-radio-part-9-a-few-odds-and-ends/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ESC Beagle Board Class Wrapup</title>
		<link>http://mightyohm.com/blog/2009/04/esc-beagle-board-class-wrapup/</link>
		<comments>http://mightyohm.com/blog/2009/04/esc-beagle-board-class-wrapup/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 18:28:41 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[beagleboard]]></category>
		<category><![CDATA[embedded systems]]></category>
		<category><![CDATA[ESC]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://mightyohm.com/blog/?p=1639</guid>
		<description><![CDATA[This week I attended the Build Your Own Embedded System (BYOES) classes at ESC 2009. The BYOES classes were primarily focused on the Beagle Board, an ARM Cortex-A8 based single board computer developed by engineers at Texas Instruments. When I picked up my conference registration on-site, I also received a Beagle Board dev kit which [...]]]></description>
			<content:encoded><![CDATA[<p>This week I attended the <a href="http://esc-sv09.techinsightsevents.com/byoes">Build Your Own Embedded System (BYOES)</a> classes at <a href="http://esc-sv09.techinsightsevents.com/">ESC 2009</a>.</p>
<p>The BYOES <a href="http://esc-sv09.techinsightsevents.com/byoes">classes</a> were primarily focused on the <a href="http://beagleboard.org">Beagle Board</a>, an ARM Cortex-A8 based <a href="http://en.wikipedia.org/wiki/Single_board_computer">single board computer</a> developed by engineers at Texas Instruments.</p>
<p>When I picked up my conference registration on-site, I also received a Beagle Board dev kit which included a 2GB SD card, a Class 1 Bluetooth USB adapter, and a tiny box containing a brand new Rev C2 Beagle Board.  This was pretty exciting, given that the C2 boards haven&#8217;t even hit Digikey yet, making me one of a select group to have a C2 board!</p>
<p>Here&#8217;s a photo of the kit as provided by ESC.</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Rev C2 Beagle Board" href="http://www.flickr.com/photos/mightyohm/3403824732/"><img class="alignnone" src="http://farm4.static.flickr.com/3568/3403824732_a60042ed71.jpg" alt="Rev C2 Beagle Board" width="500" height="375" /></a></p>
<p>The classroom was full of LCD monitors, keyboards, mice, and USB hubs &#8211; but no computers.  This is where the Beagle Board comes in.</p>
<p><a class="tt-flickr tt-flickr-Medium" title="ESC Beagle Board Class" href="http://www.flickr.com/photos/mightyohm/3403825088/"><img class="alignnone" src="http://farm4.static.flickr.com/3587/3403825088_41cbc7b826.jpg" alt="ESC Beagle Board Class" width="500" height="375" /></a></p>
<p>The first step was to plug the peripherals into the board, as shown below.  The HDMI interface for the LCD is at the upper right of the board, while the SD card and USB host port is on the left.  The bottom of the board has a DC power jack and the USB OTG port which we used later.  The whole board is actually powered via USB &#8211; the other end of the cable with the DC plug goes into the USB hub, and the hub powers everything.  Pretty cool.</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Rev C2 Beagle Board running Android" href="http://www.flickr.com/photos/mightyohm/3403818748/"><img class="alignnone" src="http://farm4.static.flickr.com/3586/3403818748_c391320969.jpg" alt="Rev C2 Beagle Board running Android" width="375" height="500" /></a></p>
<p>The <a href="https://www.cmpevents.com/ESCw09/a.asp?option=C&amp;V=1&amp;SB=3">classes</a> were fantastic.  I saw lots of really impressive demos, including some really neat 3D graphics using the onboard OMAP35x SGX 2D/3D graphics accelerator.</p>
<p>I particularly enjoyed the Monday morning class, led by Beagle Board designers Jason Kridner and Gerald Coley.  Jason gave an overview of both the impressive feature list of the board and the large development community behind <a href="http://beagleboard.org">beagleboard.org</a>.  Gerald talked about the hardware development process, including some of the difficulties with the OMAP3 processor, which uses <a href="http://en.wikipedia.org/wiki/Package_on_package">PoP</a> technology.  The system memory chip is soldered to pads on top of the CPU, which is then soldered to the PCB.  Not surprisingly, this process took some optimization to get right.</p>
<p>Some observations:</p>
<ul>
<li>While the Beagle Board was developed by engineers at Texas Instruments, TI does not officially support the board, which is more of a technology demonstration.  Instead, people using the board can go to the <a href="http://beagleboard.org">beagleboard.org</a> community for support, where there is a vibrant community of volunteer developers.</li>
<li>The philosophy behind the hardware is &#8220;Bring your own&#8221;.  The board contains a minimum set of peripherals and you attach what you want.  Apparently most eval boards contain a lot of features people never use (cameras, wireless interfaces, etc.) and tend to force desigers into using only the &#8220;supported devices&#8221;.</li>
<li>The hardware is open source.  You can download gerbers, Allegro files, schematics, etc from their site.  (Sadly, no Eagle files, although the 6 layer PCB wouldn&#8217;t be supported by the cheap/free versions of the Eagle anyway.)    You can develop products based on the Eagle board and just stick copies of the design into your own PCB, or develop your own design.</li>
<li>The Beagle Board is not recommended/supported for use in production hardware.  It&#8217;s for evaluation only.  If you develop a product, you&#8217;re supposed to handle your own PCB builds, etc.  The good news is, you can call up their contract manufacturer (<a href="http://www.circuitco.com/">CircuitCo</a>) directly and get a batch of Beagle Boards made if you want to use the hardware as-is.</li>
<li>The communiy is very good about having mutliple avenues for <a href="http://jefro.wordpress.com/2009/03/29/where-is-the-beagle-board-community/">discussion and collaboration</a>.  They are leveraging lots of old and new technologies: IRC, a wiki, a mailing list, delicio.us social bookmarking, RSS, etc etc etc.  All of these are accessible from <a href="http://beagleboard.org">beagleboard.org</a>.</li>
</ul>
<p>You can download the class slides and an SD card image at <a href="http://beagleboard.org/esc">http://beagleboard.org/esc</a></p>
<p>Lastly, the Beagle Board runs <a href="http://www.android.com/">Android</a>.  It also runs Linux distros like <a href="http://www.angstrom-distribution.org/">Angstrom</a> and <a href="http://www.mvista.com/">MontaVista</a>, among others!</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Rev C2 Beagle Board running Android" href="http://www.flickr.com/photos/mightyohm/3403818402/"><img class="alignnone" src="http://farm4.static.flickr.com/3419/3403818402_9164e6a60d.jpg" alt="Rev C2 Beagle Board running Android" width="500" height="375" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://mightyohm.com/blog/2009/04/esc-beagle-board-class-wrapup/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

