<?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>Tue, 07 Feb 2012 00:07:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<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[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[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>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[DIY]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Embedded Linux]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Microcontrollers]]></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[DIY]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Embedded Linux]]></category>
		<category><![CDATA[Microcontrollers]]></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[Embedded Linux]]></category>
		<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>
		<item>
		<title>Looking for Asus WL-520gU Wireless Router Hacks</title>
		<link>http://mightyohm.com/blog/2009/03/looking-for-asus-wl-520gu-wireless-router-hacks/</link>
		<comments>http://mightyohm.com/blog/2009/03/looking-for-asus-wl-520gu-wireless-router-hacks/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 16:46:50 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[DIY]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Embedded Linux]]></category>
		<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[Asus]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[NOTACON]]></category>
		<category><![CDATA[OpenWRT]]></category>
		<category><![CDATA[WL-500gP]]></category>
		<category><![CDATA[WL-520GU]]></category>

		<guid isPermaLink="false">http://mightyohm.com/blog/?p=1389</guid>
		<description><![CDATA[Have you created a project or hack based on the Asus WL-520gU or WL-500gP Wireless Routers? It doesn&#8217;t matter if it was inspired by my project or developed independently &#8211; I&#8217;d love to hear from you! I&#8217;m putting together a talk for NOTACON and I&#8217;d like to feature as many projects as I can to [...]]]></description>
			<content:encoded><![CDATA[<p>Have you created a project or hack based on the Asus WL-520gU or WL-500gP Wireless Routers?</p>
<p>It doesn&#8217;t matter if it was inspired by <a href="http://mightyohm.com/wifiradio/">my project</a> or developed independently &#8211; I&#8217;d love to hear from you!</p>
<p>I&#8217;m putting together a talk for <a href="http://www.notacon.org">NOTACON</a> and I&#8217;d like to feature as many projects as I can to spread the word about how powerful, flexible, and affordable these routers are, especially when coupled with a Linux package (DD-WRT, Tomato, OpenWrt, etc.) and USB devices.</p>
<p>If you&#8217;d like to have your project included in the talk, leave a comment or <a href="http://mightyohm.com/blog/contact">contact me directly</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mightyohm.com/blog/2009/03/looking-for-asus-wl-520gu-wireless-router-hacks/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>New Flickr Pool: Asus Wireless Router Hacks</title>
		<link>http://mightyohm.com/blog/2009/03/new-flickr-pool-asus-wireless-router-hacks/</link>
		<comments>http://mightyohm.com/blog/2009/03/new-flickr-pool-asus-wireless-router-hacks/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 20:18:29 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Embedded Linux]]></category>
		<category><![CDATA[Asus]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Wireless]]></category>
		<category><![CDATA[WL-520GU]]></category>

		<guid isPermaLink="false">http://mightyohm.com/blog/?p=1366</guid>
		<description><![CDATA[New projects utilizing Asus wireless routers as tiny Linux computers are popping up with increasing frequency, so I started a Flickr pool for these creative individuals to post and share their cool hacks.  Have you hacked an Asus wireless router, such as the WL-520gU or the WL-500g Premium V2, into something more?  Take some pics [...]]]></description>
			<content:encoded><![CDATA[<p><!-- Start of Flickr Badge --><a href="http://www.flickr.com/photos/ladyada/3318289854/">New projects</a> utilizing <a href="http://www.anrdoezrs.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 wireless routers</a><img src="http://www.tqlkg.com/image-3238164-10440897" border="0" alt="" width="1" height="1" /> as <a href="http://mightyohm.com/blog/2008/10/detailed-specs-for-the-asus-wl-520gu-uber-hacking-platform/">tiny Linux computers</a> are popping up with increasing frequency, so I started a Flickr pool for these creative individuals to post and share their cool hacks.  Have you hacked an Asus wireless router, such as the WL-520gU or the WL-500g Premium V2, into something more?  Take some pics and <a href="http://www.flickr.com/groups/asushacks/">add them to the pool</a>!<br />
<!--<br />
#flickr_badge_source_txt {padding:0; font: 11px Arial, Helvetica, Sans serif; color:#666666;}<br />
#flickr_badge_icon {display:block !important; margin:0 !important; border: 1px solid rgb(0, 0, 0) !important;}<br />
#flickr_icon_td {padding:0 5px 0 0 !important;}<br />
.flickr_badge_image {text-align:center !important;}<br />
.flickr_badge_image img {border: 1px solid black !important;}<br />
#flickr_www {display:block; text-align:left; padding:0 10px 0 10px !important; font: 11px Arial, Helvetica, Sans serif !important; color:#3993ff !important;}<br />
#flickr_badge_uber_wrapper a:hover,<br />
#flickr_badge_uber_wrapper a:link,<br />
#flickr_badge_uber_wrapper a:active,<br />
#flickr_badge_uber_wrapper a:visited {text-decoration:none !important; background:inherit !important;color:#3993ff;}<br />
#flickr_badge_wrapper {background-color:#ffffff;border: solid 1px #000000}<br />
#flickr_badge_source {padding:0 !important; font: 11px Arial, Helvetica, Sans serif !important; color:#666666 !important;}<br />
--></p>
<table id="flickr_badge_uber_wrapper" border="0" cellspacing="10" cellpadding="0">
<tbody>
<tr>
<td><a id="flickr_www" href="http://www.flickr.com">www.<strong style="color:#3993ff">flick<span style="color:#ff1c92">r</span></strong>.com</a></p>
<table id="flickr_badge_wrapper" border="0" cellspacing="10" cellpadding="0">
<tbody>
<tr><script src="http://www.flickr.com/badge_code_v2.gne?show_name=1&amp;count=3&amp;display=random&amp;size=t&amp;layout=h&amp;context=in%2Fpool-asushacks%2F&amp;source=group&amp;group=995895%40N25" type="text/javascript"></script></p>
<td id="flickr_badge_source" align="center" valign="center">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td id="flickr_icon_td" width="10"><a href="http://www.flickr.com/groups/asushacks/pool/"><img id="flickr_badge_icon" src="http://farm4.static.flickr.com/3387/buddyicons/995895@N25.jpg?1235881613" alt="items in Asus Wireless Router Hacks" width="48" height="48" align="left" /></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>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p><!-- End of Flickr Badge --></p>
<p><a href="http://www.flickr.com/groups/asushacks/">Flickr: Asus Wireless Router Hacks</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mightyohm.com/blog/2009/03/new-flickr-pool-asus-wireless-router-hacks/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Building a Wifi Radio &#8211; Part 3, Hacking the Asus WL-520GU</title>
		<link>http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-3-hacking-the-asus-wl-520gu/</link>
		<comments>http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-3-hacking-the-asus-wl-520gu/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 17:06:55 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[DIY]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Embedded Linux]]></category>
		<category><![CDATA[Asus]]></category>
		<category><![CDATA[FTDI]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[serial]]></category>
		<category><![CDATA[Streaming Radio]]></category>
		<category><![CDATA[Wifi]]></category>
		<category><![CDATA[wifiradio]]></category>

		<guid isPermaLink="false">http://mightyohm.com/blog/?p=480</guid>
		<description><![CDATA[This is the third part of an ongoing series about building a low cost, open source streaming internet radio.  If you haven’t already, check out part one and part two for some background about the project. Hacking the Asus WL-520GU Wireless Router: In the last part of this series, I selected the Asus WL-520GU wireless [...]]]></description>
			<content:encoded><![CDATA[<p><em>This is the third part of an ongoing series about building a low cost, open source streaming internet radio.  If you haven’t already, check out <a href="http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-1-introduction/">part one</a> and <a href="http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-2-choosing-an-embedded-platform/">part two</a> for some background about the project.</em></p>
<h3><strong>Hacking the Asus WL-520GU Wireless Router:</strong></h3>
<p>In the <a href="http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-2-choosing-an-embedded-platform/">last part of this series</a>, I selected the <a href="http://www.asus.com/products.aspx?l1=12&amp;l2=43&amp;l3=0&amp;l4=0&amp;model=1671&amp;modelmenu=1">Asus WL-520GU</a> wireless router as a suitable embedded platform for my Wifi Radio project.  I have since posted <a href="http://mightyohm.com/blog/2008/10/detailed-specs-for-the-asus-wl-520gu-uber-hacking-platform/">some detailed specs</a> on this impressive low-cost router, revealing it&#8217;s powerful <a href="http://www.broadcom.com/collateral/pb/5354-PB01-R.pdf">Broadcom BCM5354 core</a>, 4MB flash, and 16MB SRAM.  Granted, there are many more powerful routers out there that have USB support, will run Linux in various forms, and have built-in WiFi.  However, the WL-520GU does almost everything we need to build a streaming internet radio and costs under $50 (I have seen them for <a href="http://www.tkqlhce.com/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">as little as $26 after rebate</a><img src="http://www.awltovhc.com/image-3238164-10440897" border="0" alt="" width="1" height="1" />), which is very impressive indeed.</p>
<p>To convert this router into a powerful <a href="http://en.wikipedia.org/wiki/Embedded_system">embedded system</a>, we need to make a couple modifications.  First, we need to throw out the stock <a href="http://en.wikipedia.org/wiki/Firmware">firmware</a>. It turns out that this router, like many others, <a href="http://mightyohm.com/blog/wp-content/uploads/2008/10/wl520gu-stock-firmware-boot.txt">runs Linux from the factory</a>.  However, because it was designed to be a wireless router and not much else, the stock firmware doesn&#8217;t include a very wide set of features (and certainly was not intended to be accessed by the customer).  Thankfully, there are several open source Linux distributions available that support this router, including my favorite, <a href="http://www.openwrt.org">OpenWrt</a>.  In addition, <a href="http://www.asus.com">Asus</a> has made it fairly straightforward replace the stock firmware with our own custom Linux build which can include all the programs, drivers, and utilities we can cram into 4MB of flash.</p>
<h3><strong>Warning:</strong></h3>
<p>Before we start hacking the router, there are a couple things I should mention:</p>
<ul>
<li><strong>From this point onward, your warranty is toast. </strong> Don&#8217;t even <strong>THINK </strong>about trying to send a modified router back to Asus for warranty service.  In the end it hurts people like us, because Asus will try to make it harder for people to perform the same modifications in future products.</li>
<li><strong>You may inadvertently destroy your router.</strong> If you are not comfortable with the fact that a misstep during the reflash or a stray solder bridge could ruin your hardware, stop now.  Sorry.  If you really take a wrong turn, you could damage your PC as well, but this is extremely unlikely.  <em>If you do somehow damage your router or PC doing these modifications, I assume no responsibility for any damages! </em></li>
</ul>
<p>This tutorial assumes that you have already established the router is basically working by assembling it, plugging it in and checking for it&#8217;s wireless signal and internal webserver.  The user manual does a good job of leading you through this process, but don&#8217;t use the supplied CD &#8211; follow the advanced/manual instructions instead.</p>
<h3><strong>Accessing the internal serial port:</strong></h3>
<p>The <a href="http://www.openwrt.org">OpenWrt</a> install will be easier if we can find a way to access the internal serial port of the router.  The built-in serial port gives us a way to view Linux boot and status messages and get <a href="http://en.wikipedia.org/wiki/Shell_access">shell access</a> as well.  The serial port will also come in handy later when we want to add a user interface to the radio.</p>
<h4><strong>You will need:</strong></h4>
<ul>
<li>A desktop or laptop computer with an open USB and Ethernet port. <em><br />
</em></li>
<li>Your shiny new ASUS WL-520GU wireless router (R1.02)</li>
<li>A strip of <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=116">breakaway 0.1&#8243; male header</a></li>
<li>A <a href="http://www.ftdichip.com/Products/EvaluationKits/TTL-232R-3V3.htm">FTDI-232-3V3</a> USB to serial adapter cable ($20 @ <a href="http://www.adafruit.com/index.php?main_page=product_info&amp;products_id=70&amp;sessid=6248f75fb3ff275fdfa9bacf419ca4e5">Adafruit</a>) or some other means of connecting a 3.3V level serial port to your PC</li>
<li>A small scrap of <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8814">perfboard</a> and a strip of <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=115">female 0.1&#8243; header</a> (not strictly necessary, see below)</li>
</ul>
<p style="padding-left: 30px;">-and-</p>
<ul>
<li>A basic electronics workbench with ample light, a temperature controlled soldering iron, a solder sucker, solderbraid, wirecutters, and pliers.  <a href="http://www.servomagazine.com/">Servo Magazine</a> recently held a contest to see who could build the best electronics workbench for under $100, <a href="http://forum.servomagazine.com/viewtopic.php?t=8370">the results</a> should be helpful for anyone just starting out.  If you&#8217;re uncomfortable soldering, find someone else to help you with this part at your local <a href="http://hackerspaces.org/wiki/Hacker_Spaces">hackerspace</a>.</li>
</ul>
<h4><strong>Step 1 &#8211; Open the router</strong></h4>
<p>Remove the power cord and antenna (the base unscrews).  Flip the router over and look at the bottom.  You should see something like this:</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Asus WL-520GU" href="http://www.flickr.com/photos/mightyohm/2980057258/"><img class="alignnone" src="http://farm4.static.flickr.com/3051/2980057258_b14b4fbd5b.jpg" alt="Asus WL-520GU" width="500" height="375" /></a></p>
<p>Note there are four screws that hold the router together, two are hidden underneath the rubber feet.  The feet are stuck on really well, but persistent prying with a fingernail will get them off eventually.  Remove the four screws and set them aside.  The top cover should come off without too much trouble.</p>
<p>Now that the router is open, you should see something like this:</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Asus WL-520GU Wireless Router" href="http://www.flickr.com/photos/mightyohm/2950280015/"><img class="alignnone" src="http://farm4.static.flickr.com/3203/2950280015_910ea93e73.jpg" alt="Asus WL-520GU Wireless Router" width="500" height="375" /></a></p>
<h4><strong>Step 2 &#8211; Add a serial port header</strong></h4>
<p>Remove the PCB from the plastic enclosure by gently pulling it up and towards you (ethernet ports facing away).</p>
<p>Just to the left of the ASUS logo in the photo below, you will see a 4-pin header that I have installed to access the internal serial port of the router, the router ships without this header.  Instead, you will see four solder filled vias in a row in the same spot.</p>
<p>You will need to use your soldering iron and a solder sucker to remove most of the solder so that the header can be installed.  A higher power soldering iron will help with removing solder from the first via on the left (mine is a 60W <a href="javascript:OnClick=self.openwindow('037103001146')">Weller WTCPT</a>).  This via connects to a <a href="http://en.wikipedia.org/wiki/Ground_plane#Printed_circuit_boards">ground plane</a> which sucks heat away from the iron and makes the job more difficult.  Be patient and persistent and you should be able to wick any remaining solder away with some soldering braid if necessary.</p>
<p>Break a 4-pin chunk of male header off the strip.  Pop the header into the board and carefully solder it into place.  If it doesn&#8217;t fit, chances are there is still some solder left in the vias.  You should end up with something like this:</p>
<p><a class="tt-flickr tt-flickr-Medium" title="WL-520GU serial port" href="http://www.flickr.com/photos/mightyohm/2980058214/"><img class="alignnone" src="http://farm4.static.flickr.com/3145/2980058214_09a5945b38.jpg" alt="WL-520GU serial port" width="500" height="375" /></a></p>
<p>The pin functions are, from left to right in the photo:</p>
<blockquote><p>GND   TX   RX   3.3V</p></blockquote>
<h4>Step 3 &#8211; Connect your PC</h4>
<p>The <a href="http://www.ftdichip.com/Products/EvaluationKits/TTL-232R-3V3.htm">FTDI-232-3V3</a> USB to serial adapter cable provides a handy way to add a 3.3V TTL level serial port to a PC or laptop.  The cable has a flat connector on the serial end that can plug directly onto 0.1&#8243; male headers like the one we are using on the router.  Unfortunately, the pinout of the FTDI cable (<a href="http://www.ftdichip.com/Documents/DataSheets/Modules/DS_TTL-232R_CABLES_V201.pdf">given in the datasheet</a>) does not match that of the router.  To resolve this, you have two options:</p>
<ul>
<li>Use a tiny screwdriver to pull out the pins from the housing at the cable and rearrange them.  Do not connect anything to the 3.3V pin on the router, and swap the TX/RX so that the TX on the router feeds RX on the cable, and vice-versa.  Don&#8217;t forget to connect the grounds!  The downside of this is that now you can&#8217;t use the FTDI cable for things like the <a href="http://www.ladyada.net/make/boarduino/">Boarduino</a> without swapping the pins back.</li>
</ul>
<p style="padding-left: 30px;">-or-</p>
<ul>
<li>Fabricate an adapter board using a small piece of perfboard and some headers, shown below (click for a larger version):</li>
</ul>
<p><a class="tt-flickr tt-flickr-Small" title="Asus wireless router serial port adapter" href="http://www.flickr.com/photos/mightyohm/2979200785/"><img class="alignnone" src="http://farm4.static.flickr.com/3284/2979200785_01c8d3c294_m.jpg" alt="Asus wireless router serial port adapter" width="240" height="180" /></a> <a class="tt-flickr tt-flickr-Small" title="Asus wireless router serial port adapter" href="http://www.flickr.com/photos/mightyohm/2980057458/"><img class="alignnone" src="http://farm4.static.flickr.com/3278/2980057458_e364b3857d_m.jpg" alt="Asus wireless router serial port adapter" width="240" height="180" /></a></p>
<p>Here is a schematic of the adapter board:</p>
<p><a href="http://mightyohm.com/blog/wp-content/uploads/2008/10/asus-serial-port-adapter.png"><img class="alignnone size-full wp-image-481" title="Asus Serial Port Adapter" src="http://mightyohm.com/blog/wp-content/uploads/2008/10/asus-serial-port-adapter.png" alt="" width="500" height="372" /></a></p>
<p>Shown here are the cable and adapter installed on the router.  Make sure the ground side of the cable is connected to the pin on the header that is <strong>opposite</strong> from the fat angled trace (the 3.3V line).  Ground is the black wire, on my adapter I marked this with a black dot so I won&#8217;t forget and plug it in backwards.</p>
<p><a class="tt-flickr tt-flickr-Medium" title="WL-520GU with serial cable installed" href="http://www.flickr.com/photos/mightyohm/2980057918/"><img class="alignnone" src="http://farm4.static.flickr.com/3241/2980057918_e1b12e577a.jpg" alt="WL-520GU with serial cable installed" width="500" height="375" /></a></p>
<h4>Step 4 &#8211; Test the connection</h4>
<p>Plug the cable into your PC (you may need some <a href="http://www.ftdichip.com/Drivers/VCP.htm">drivers</a>) and open your favorite terminal program.  (I like <a href="http://homepage.mac.com/dalverson/zterm/">Zterm</a> for the Mac or Hyperterminal on the PC.)   Using the terminal program, open the serial port corresponding to the FTDI cable (something like <em>usbserial-FTDQ23LB</em> on the Mac or <em>COM3</em> on the PC, but your setup may be different.)   Set the port options to 115200 baud, 8N1.</p>
<p>Connect the antenna and power supply to the router and plug it in.  You should see something like this appear in your terminal program:</p>
<blockquote>
<pre>Decompressing..........done</pre>
<pre>CFE version 1.0.37 for BCM947XX (32bit,SP,LE)</pre>
<pre>Build Date: Thu Mar  6 10:05:04 CST 2008 (root@localhost.localdomain)</pre>
<pre>Copyright (C) 2000,2001,2002,2003 Broadcom Corporation.</pre>
<pre>Initializing Arena</pre>
<pre>Initializing Devices.</pre>
<pre>Boot partition size = 131072(0x20000)</pre>
<pre>et0: Broadcom BCM47xx 10/100 Mbps Ethernet Controller 4.130.31.0</pre>
<pre>
<pre>Total memory: 16384 KBytes</pre>
</pre>
<pre>CPU type 0x29029: 240MHz
...</pre>
</blockquote>
<p>If you do, congratulations, your serial port is working!</p>
<p>The lines that scroll by are boot messages from the Linux <a href="http://en.wikipedia.org/wiki/Linux_kernel">kernel</a> of the stock firmware on the router.  These messages give you a lot of information about the hardware in addition to information about the operating system and software drivers.  Here is a <a href="http://mightyohm.com/blog/wp-content/uploads/2008/10/wl520gu-stock-firmware-boot.txt">complete transcript of the boot log</a> from my router.  If you wait a couple minutes for the router to finish booting and hit enter, you should see a command prompt.  From here you can explore and play around with the stock firmware, there is really not much to do here until we reflash the router with OpenWrt.</p>
<p>That&#8217;s it for part three.  In <a href="http://mightyohm.com/blog/2008/11/building-a-wifi-radio-part-4-installing-openwrt/">part four</a>, I&#8217;ll talk about installing OpenWrt and connecting the router to your wireless network.</p>
<p><strong>Update: </strong><a href="http://mightyohm.com/blog/2008/11/building-a-wifi-radio-part-4-installing-openwrt/">Part four is now available.</a></p>
<p><strong>Update 2:</strong> There is a new <a href="http://mightyohm.com/forum/viewforum.php?f=2">Wifi Radio Discussion Forum</a>, hop over there to ask questions about the project or see what other people are working on!  (<em>4/12/09)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-3-hacking-the-asus-wl-520gu/feed/</wfw:commentRss>
		<slash:comments>53</slash:comments>
		</item>
		<item>
		<title>Inside the SYBA SD-CM-UAUD USB Stereo Audio Adapter</title>
		<link>http://mightyohm.com/blog/2008/10/inside-the-syba-sd-cm-uaud-usb-stereo-audio-adapter/</link>
		<comments>http://mightyohm.com/blog/2008/10/inside-the-syba-sd-cm-uaud-usb-stereo-audio-adapter/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 15:21:36 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Embedded Linux]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[pcb]]></category>
		<category><![CDATA[Streaming Radio]]></category>
		<category><![CDATA[USB]]></category>
		<category><![CDATA[wifiradio]]></category>

		<guid isPermaLink="false">http://mightyohm.com/blog/?p=464</guid>
		<description><![CDATA[I am using this tiny USB-audio adapter as part of my Wifi Radio project.  It&#8217;s a ridiculously cheap $8 at Newegg.com and contains a C-Media CM119 chip targeted at VoIP applications.  I have no idea why they chose to use a VoIP chip for this application because it contains a lot of bells and whistles [...]]]></description>
			<content:encoded><![CDATA[<p><a class="tt-flickr tt-flickr-Medium" title="SYBA SD-CM-UAUD USB Stereo Audio Adapter" href="http://www.flickr.com/photos/mightyohm/2979795890/"><img class="alignnone" src="http://farm4.static.flickr.com/3286/2979795890_b29ce48e3e.jpg" alt="SYBA SD-CM-UAUD USB Stereo Audio Adapter" width="500" height="375" /></a></p>
<p>I am using this tiny USB-audio adapter as part of my <a href="http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-1-introduction/">Wifi Radio project</a>.  It&#8217;s a ridiculously cheap <a href="http://www.jdoqocy.com/click-3238164-10440897?url=http%3A%2F%2Fwww.newegg.com%2FProduct%2FProduct.aspx%3FItem%3DN82E16812186035%26nm_mc%3DAFC-C8Junction%26cm_mmc%3DAFC-C8Junction-_-Adapters%2Band%2Bgender%2Bchangers-_-Syba-_-12186035&#038;cjsku=N82E16812186035" target="_top">$8 at Newegg.com</a><img src="http://www.awltovhc.com/image-3238164-10440897" width="1" height="1" border="0"/> and contains a <a href="http://www.cmedia.com.tw/?q=en/USB/cm119">C-Media CM119 chip</a> targeted at <a href="http://en.wikipedia.org/wiki/Voip">VoIP</a> applications.  I have no idea why they chose to use a VoIP chip for this application because it contains a lot of bells and whistles that are not being used in this device, such as support for a matrix keypad!</p>
<p><a class="tt-flickr tt-flickr-Medium" title="SYBA SD-CM-UAUD USB Stereo Audio Adapter" href="http://www.flickr.com/photos/mightyohm/2979796540/"><img class="alignnone" src="http://farm4.static.flickr.com/3006/2979796540_a07d6c17aa.jpg" alt="SYBA SD-CM-UAUD USB Stereo Audio Adapter" width="500" height="375" /></a></p>
<p>Unfortunately, I have not been able to locate a datasheet for the CM119 so for now I will be using it only for it&#8217;s intended application &#8211; adding an audio output to a wireless router with USB.  Come to think of it, that is probably not it&#8217;s intended application, but it&#8217;s close enough.  Hooray for <a href="http://www.openwrt.org">embedded Linux</a>!</p>
<p><a class="tt-flickr tt-flickr-Medium" title="SYBA SD-CM-UAUD USB Stereo Audio Adapter" href="http://www.flickr.com/photos/mightyohm/2978939643/"><img class="alignnone" src="http://farm4.static.flickr.com/3277/2978939643_056d1d8d3f.jpg" alt="SYBA SD-CM-UAUD USB Stereo Audio Adapter" width="500" height="375" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://mightyohm.com/blog/2008/10/inside-the-syba-sd-cm-uaud-usb-stereo-audio-adapter/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Detailed specs for the Asus WL-520GU uber hacking platform</title>
		<link>http://mightyohm.com/blog/2008/10/detailed-specs-for-the-asus-wl-520gu-uber-hacking-platform/</link>
		<comments>http://mightyohm.com/blog/2008/10/detailed-specs-for-the-asus-wl-520gu-uber-hacking-platform/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 00:03:13 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Embedded Linux]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Asus]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Wifi]]></category>
		<category><![CDATA[wifiradio]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://mightyohm.com/blog/?p=470</guid>
		<description><![CDATA[In my previous post about the Wifi Radio project I&#8217;m working on, I concluded that the Asus WL-520GU wireless router was the perfect choice for an embedded wireless platform, thanks to its builtin 802.11g WiFi, Linux support, and extremely low cost. (In fact, the price after rebate has dropped since my last post &#8211; now [...]]]></description>
			<content:encoded><![CDATA[<p><a class="tt-flickr tt-flickr-Medium" title="Asus WL-520GU Wireless Router" href="http://www.flickr.com/photos/mightyohm/2950279643/"><img class="alignnone" src="http://farm4.static.flickr.com/3222/2950279643_374493fa81.jpg" alt="Asus WL-520GU Wireless Router" width="500" height="375" /></a></p>
<p>In my <a href="http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-2-choosing-an-embedded-platform/">previous post</a> about the <a href="http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-1-introduction/">Wifi Radio project</a> I&#8217;m working on, I concluded that the <a href="http://www.asus.com/products.aspx?l1=12&amp;l2=43&amp;l3=0&amp;l4=0&amp;model=1671&amp;modelmenu=1">Asus WL-520GU</a> wireless router was the perfect choice for an embedded wireless platform, thanks to its builtin 802.11g WiFi, Linux support, and <a href="http://www.jdoqocy.com/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&#038;cjsku=N82E16833320023" target="_top">extremely low cost</a><img src="http://www.tqlkg.com/image-3238164-10440897" width="1" height="1" border="0"/>.  (In fact, the price after rebate has dropped since my last post &#8211; now would probably be a good time to buy one if you&#8217;re thinking about hacking it into something eventually).</p>
<p>Here are the specs on this router, based on an inspection of the hardware and the stock firmware Linux kernel boot log (the complete log is <a href="http://mightyohm.com/blog/wp-content/uploads/2008/10/wl520gu-stock-firmware-boot.txt">here</a>).</p>
<ul>
<li>CPU: <a href="http://www.broadcom.com/products/Wireless-LAN/802.11-Wireless-LAN-Solutions/BCM5354">Broadcom BCM5354KFBG SoC</a> @ 200MHz (240MHz?)
<ul>
<li>Builtin 802.11g wireless transceiver</li>
<li>Builtin 10/100 ethernet switch</li>
<li>Core supports 2 serial ports, only 1 is available on the PCB (installed 4 pin header shown in photo above)</li>
</ul>
</li>
<li>RAM: 16MB Samsung K4S281632I SRAM</li>
<li>Flash: 4MB MX 29LV320CB</li>
<li>One USB 1.1 port (<a href="http://wiki.openwrt.org/OpenWrtDocs/Hardware/Asus/WL520GU">USB 2.0 support is broken</a> according to the folks at OpenWRT)</li>
<li><a href="http://www.sige.com/">SiGe Semiconductor</a> <a href="http://www.sige.com/uploads/briefs/DST-00074_SiGe_SE2528L_brief_Rev_Sep-10-2008.pdf">2528L</a> discrete RF Power Amplifier IC</li>
<li>One external TX/RX whip antenna (RPSMA), internal diversity RX antenna on PCB</li>
<li>Internal 3.3V DC-DC converter</li>
<li>PCB Dimensions: 4.0&#8243; x 5.6&#8243;</li>
<li>Supply: 5V @ &lt;2A</li>
</ul>
<p>Here are some images of the PCB, click for a larger version.</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Asus WL-520GU Wireless Router" href="http://www.flickr.com/photos/mightyohm/2950279305/"><img class="alignnone" src="http://farm4.static.flickr.com/3148/2950279305_9982c60573.jpg" alt="Asus WL-520GU Wireless Router" width="500" height="375" /></a> <a class="tt-flickr tt-flickr-Medium" title="Asus WL-520GU Wireless Router" href="http://www.flickr.com/photos/mightyohm/2950279477/"><img class="alignnone" src="http://farm4.static.flickr.com/3244/2950279477_6197e58763.jpg" alt="Asus WL-520GU Wireless Router" width="500" height="375" /></a></p>
<p>Here&#8217;s a closeup of the <a href="http://www.broadcom.com/products/Wireless-LAN/802.11-Wireless-LAN-Solutions/BCM5354">Broadcom BCM5354 SoC</a> &#8211; the brains of the router.  It is surrounded by a 4MB MX flash chip above and a Samsung 4MB SRAM chip on the right.</p>
<p><a class="tt-flickr tt-flickr-Medium" title="Asus WL-520GU Wireless Router" href="http://www.flickr.com/photos/mightyohm/2951132866/"><img class="alignnone" src="http://farm4.static.flickr.com/3275/2951132866_6d8d72ebc8.jpg" alt="Asus WL-520GU Wireless Router" width="500" height="375" /></a></p>
<p>Overall this is a great little router and an even better platform to build an embedded Linux system, provided you don&#8217;t need USB 2.0 support.  If you do, look at the <a href="http://www.asus.com/products.aspx?l1=12&amp;l2=43&amp;l3=0&amp;l4=0&amp;model=1712&amp;modelmenu=2">WL-500gP v2</a> instead, it has two working USB 2.0 ports (in addition to much more flash storage and RAM).</p>
]]></content:encoded>
			<wfw:commentRss>http://mightyohm.com/blog/2008/10/detailed-specs-for-the-asus-wl-520gu-uber-hacking-platform/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Building a Wifi Radio &#8211; Part 2, Choosing an Embedded Platform</title>
		<link>http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-2-choosing-an-embedded-platform/</link>
		<comments>http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-2-choosing-an-embedded-platform/#comments</comments>
		<pubDate>Sat, 18 Oct 2008 06:44:26 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[DIY]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Embedded Linux]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[Streaming Radio]]></category>
		<category><![CDATA[wifiradio]]></category>

		<guid isPermaLink="false">http://mightyohm.com/blog/?p=367</guid>
		<description><![CDATA[This is the second part of an ongoing series about building a low cost, open source streaming internet radio.  if you haven&#8217;t already, check out part one for some background about the project. Onward&#8230; In part one, I discussed the merits of streaming internet radio and the motivations for my Wifi Radio project.  Now it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><em> This is the second part of an ongoing series about building a low cost, open source streaming internet radio.  if you haven&#8217;t already, <a href="http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-1-introduction/">check out part one</a> for some background about the project.</em></p>
<h3><strong>Onward&#8230;</strong></h3>
<p>In <a href="http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-1-introduction/">part one</a>, I discussed the merits of streaming internet radio and the motivations for my Wifi Radio project.  Now it&#8217;s time to start looking at what hardware can make this project a reality.  Before we get started, let&#8217;s review the requirements list from last time.</p>
<p><em>Requirements:</em></p>
<ul>
<li>Wireless connectivity through existing Wifi network</li>
<li>Audio output (preferably 44kHz, 16 bit stereo)</li>
<li>An integrated amplifier and speaker(s)</li>
<li><a href="http://www.shoutcast.com">Shoutcast</a>/MP3 streaming audio decode</li>
<li>Several builtin station presets</li>
<li>A display to indicate the station and currently playing song</li>
<li>Simple user interface, using standard radio controls (volume, tune, etc)</li>
<li>110VAC operation</li>
</ul>
<p>There are two additional requirements that I implied in the first post but forgot to include explicitly:</p>
<ul>
<li>Cheap, priced below a commercial streaming radio &#8211; target &lt; $100.</li>
<li>Small size so it can be portable (no desktop PC&#8217;s allowed!)</li>
</ul>
<h3><strong>Selecting the hardware:</strong></h3>
<p>How do these requirements translate into hardware?  Let&#8217;s take a stab at what features we&#8217;d like in an embedded platform.</p>
<ul>
<li>A wireless interface</li>
<li>Audio output</li>
<li>Sufficient system resources (CPU, memory, etc.) to decode MP3s</li>
<li>Some extra IO for a control panel and display</li>
<li>Low cost</li>
<li>Small size</li>
<li>Ease of development</li>
</ul>
<p>The size and cost aspects pushed me towards an <a href="http://en.wikipedia.org/wiki/Embedded_system">embedded system</a> instead of a small form factor PC like any of <a href="http://us.shuttle.com/Home.aspx">Shuttle&#8217;s XPC</a> offerings or a <a href="http://en.wikipedia.org/wiki/Nano-ITX">nano-ITX </a>board.  To me, &#8220;Ease of development&#8221; equals <a href="http://en.wikipedia.org/wiki/Linux">Linux</a>, so I wanted something well supported by Linux and an active <a href="http://en.wikipedia.org/wiki/Open_source">open source</a> development community.</p>
<p>There are quite a few <a href="http://www.linuxdevices.com/">embedded Linux</a> platforms out there, with a wide variety of prices and features.  I looked at a few of them, including:</p>
<p><a href="http://mightyohm.com/blog/wp-content/uploads/2008/10/hammer_01-large.jpg"><img class="alignright" title="Image courtesy Tin Can Tools" src="http://mightyohm.com/blog/wp-content/uploads/2008/10/hammer_01-large-150x150.jpg" alt="" width="90" height="90" /></a></p>
<ul>
<li>The <a href="http://www.tincantools.com/">Tin Can Tools</a> <a href="http://www.tincantools.com/product.php?productid=16133&amp;cat=0&amp;page=1&amp;featured">Hammer</a> &#8211; very impressive <a href="http://www.arm.com/products/CPUs/families/ARM9Family.html">ARM9</a>-based board with USB, lots of RAM and flash, lots of IO, and best of all the footprint of a 40-pin DIP package (breadboard compatible!).  No wireless and relatively steep pricetag ($160).</li>
</ul>
<p><code><br />
</code></p>
<ul> <a href="http://mightyohm.com/blog/wp-content/uploads/2008/10/ti_beagle_board_top2.jpg"><img class="alignright" title="Image courtesy linuxdevices.com" src="http://mightyohm.com/blog/wp-content/uploads/2008/10/ti_beagle_board_top2-150x150.jpg" alt="" width="90" height="90" /></a></p>
<li><a href="http://www.ti.com/">TI</a>&#8216;s <a href="http://beagleboard.org/">Beagle Board</a> &#8211; Incredible featureset including DVI output and a 600MHz <a href="http://www.arm.com/products/CPUs/ARM_Cortex-A8.html">ARM Cortex</a> core.  No wireless and price is stunning for what you get, but overkill for this project ($150).  (Must keep in mind for future projects!)</li>
</ul>
<p><code><br />
</code></p>
<ul> <a href="http://www.jdoqocy.com/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"><img class="alignright" src="http://images10.newegg.com/ProductImageCompressAll200/33-320-023-01.jpg" border="0" alt="ASUS WL-520gU Wireless Router" width="100" height="100" /></a><br />
<img src="http://www.awltovhc.com/image-3238164-10440897" border="0" alt="" width="1" height="1" /></p>
<li>Consumer wireless routers like the <a href="http://www.asus.com/products.aspx?l1=12&amp;l2=43&amp;l3=0&amp;l4=0&amp;model=1712&amp;modelmenu=1">Asus WL-500gP v2</a> and <a href="http://www.asus.com/products.aspx?l1=12&amp;l2=43&amp;l3=0&amp;l4=0&amp;model=1671&amp;modelmenu=1">WL-520GU</a> &#8211; builtin wireless (yay!), USB, 240MHz <a href="http://www.broadcom.com/products/Wireless-LAN/802.11-Wireless-LAN-Solutions/BCM5354">Broadcom 5354</a> core, decent RAM and flash, cheap.  Newegg has the WL-520GU for an incredible <a href="http://www.tkqlhce.com/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">$26 after rebate</a><img src="http://www.ftjcfx.com/image-3238164-10440897" border="0" alt="" width="1" height="1" /> (normally $50).  The higher end WL-500g has more memory and flash and an integrated USB 2.0 hub (2 external ports).  Newegg has the <a href="http://www.kqzyfj.com/click-3238164-10440897?url=http%3A%2F%2Fwww.newegg.com%2FProduct%2FProduct.aspx%3FItem%3DN82E16833320030%26nm_mc%3DAFC-C8Junction%26cm_mmc%3DAFC-C8Junction-_-Network%2B-%2BWireless%2BRouters-_-ASUS-_-33320030&amp;cjsku=N82E16833320030" target="_top">WL-500g Premium V2</a><img src="http://www.ftjcfx.com/image-3238164-10440897" border="0" alt="" width="1" height="1" /> for $50 after rebate (normally $80).  Both versions are a steal for what you get.</li>
</ul>
<p>Tiny, under $50 and with built-in wireless, the <a href="http://www.asus.com/products.aspx?l1=12&amp;l2=43&amp;l3=0&amp;l4=0&amp;model=1671&amp;modelmenu=1">Asus WL-520GU</a> is the clear winner for this project.  The downside?  Since this router was never intended to do anything other than, well, route, we&#8217;re going to have to crack it open, modify it, and void the warranty.  In addition, there is no tech support and we&#8217;re going to have to spend some extra time hacking around to get it to do what we want.</p>
<p>Here it is in all it&#8217;s glory:</p>
<p><a class="tt-flickr tt-flickr-Small" title="Asus WL-520GU Wireless Router" href="http://www.flickr.com/photos/mightyohm/2951133344/"><img class="alignnone" src="http://farm4.static.flickr.com/3051/2951133344_9ecc66f9f0_m.jpg" alt="Asus WL-520GU Wireless Router" width="240" height="180" /></a> <a class="tt-flickr tt-flickr-Small" title="Asus WL-520GU Wireless Router" href="http://www.flickr.com/photos/mightyohm/2951133192/"><img class="alignnone" src="http://farm4.static.flickr.com/3036/2951133192_3405735333_m.jpg" alt="Asus WL-520GU Wireless Router" width="240" height="180" /></a></p>
<p>Here&#8217;s a sneak peak of the inside:</p>
<p><a class="tt-flickr tt-flickr-Small" title="Asus WL-520GU Wireless Router" href="http://www.flickr.com/photos/mightyohm/2950280015/"><img class="alignnone" src="http://farm4.static.flickr.com/3203/2950280015_910ea93e73_m.jpg" alt="Asus WL-520GU Wireless Router" width="240" height="180" /></a><a class="tt-flickr tt-flickr-Small" title="Asus WL-520GU Wireless Router" href="http://www.flickr.com/photos/mightyohm/2951132866/"><img class="alignnone" src="http://farm4.static.flickr.com/3275/2951132866_6d8d72ebc8_m.jpg" alt="Asus WL-520GU Wireless Router" width="240" height="180" /></a></p>
<p>This router is <a href="http://wiki.openwrt.org/Hardware/Asus">supported</a> by <a href="http://openwrt.org/">OpenWRT</a>, an open source Linux distribution for small embedded devices.  Ignore the work-in-progress designation, it works, trust me!</p>
<p>Although the router lacks builtin audio, that is easily solved with an $8 <a href="http://www.jdoqocy.com/click-3238164-10440897?url=http%3A%2F%2Fwww.newegg.com%2FProduct%2FProduct.aspx%3FItem%3DN82E16812186035%26nm_mc%3DAFC-C8Junction%26cm_mmc%3DAFC-C8Junction-_-Adapters%2Band%2Bgender%2Bchangers-_-Syba-_-12186035&amp;cjsku=N82E16812186035" target="_top"> SYBA SD-CM-UAUD USB Stereo Audio Adapter</a><img src="http://www.awltovhc.com/image-3238164-10440897" border="0" alt="" width="1" height="1" />.  There have been <a href="http://wiki.openwrt.org/OpenWrtDocs/Hardware/Asus/WL520GU">reports</a> that the WL-520GU only supports USB 1.1 reliably, but USB audio doesn&#8217;t require USB 2.0 so it&#8217;s not an issue for us.  For full USB 2.0 support, look at the WL-500gP v2 instead.</p>
<p>So far we have $58 into the project ($38 if you are lucky enough to get the rebate) and we have an embedded Linux computer, a wireless interface, and an audio output.  Not bad!</p>
<p>That&#8217;s it for part two!  In <a href="http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-3-hacking-the-asus-wl-520gu/">part three</a> I&#8217;ll install a serial port on the router and get ready to reflash the stock firmware with OpenWrt.  At that point we&#8217;ll be able to start listening to some tunes!</p>
<p><strong>Update:</strong> I posted <a href="http://mightyohm.com/blog/2008/10/detailed-specs-for-the-asus-wl-520gu-uber-hacking-platform/">detailed specs</a> for the WL-520GU and a couple more photos <a href="http://mightyohm.com/blog/2008/10/detailed-specs-for-the-asus-wl-520gu-uber-hacking-platform/">here</a>.</p>
<p><strong>Update 2:</strong> I posted some images of the <a href="http://mightyohm.com/blog/2008/10/inside-the-syba-sd-cm-uaud-usb-stereo-audio-adapter/">$8 USB-Audio Adapter</a> I am using as well.</p>
<p><strong>Update 3: </strong><a href="http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-3-hacking-the-asus-wl-520gu/">Part three</a> is now available.</p>
<p><strong>Update 4:</strong> There is a new <a href="http://mightyohm.com/forum/viewforum.php?f=2">Wifi Radio Discussion Forum</a>, hop over there to ask questions about the project or see what other people are working on!  (<em>4/12/09)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-2-choosing-an-embedded-platform/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Building a Wifi Radio &#8211; Part 1, Introduction</title>
		<link>http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-1-introduction/</link>
		<comments>http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-1-introduction/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 01:16:01 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[DIY]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Embedded Linux]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[Streaming Radio]]></category>
		<category><![CDATA[wifiradio]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://mightyohm.com/blog/?p=333</guid>
		<description><![CDATA[This article is the first of a series that will document the development of a low cost, open source wireless streaming internet radio receiver.  All construction details, including schematics, source code, and even the design process itself will be documented on this blog. Comments and (constructive) criticism are welcome. Click here to post a comment. [...]]]></description>
			<content:encoded><![CDATA[<p><em>This article is the first of a series that will document the development of a low cost, open source wireless streaming internet radio receiver.  All construction details, including schematics, source code, and even the design process itself will be documented on this blog.</em></p>
<p><em>Comments and (constructive) criticism are welcome. </em> <a href="http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-1-introduction/#respond"><em>Click here to post a comment.</em></a></p>
<h3>Table of Contents:</h3>
<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> (you are here)<a href="http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-1-introduction/"><br />
</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><a href="http://mightyohm.com/blog/2009/05/building-a-wifi-radio-part-10-building-the-box/">Building a Wifi Radio &#8211; Part 10, Building the Box</a></li>
</ol>
<h3>Some background:</h3>
<p><a href="http://en.wikipedia.org/wiki/Streaming_radio">According to Wikipedia</a>, in 1993 the first internet radio program began distribution.  At that time, radio programs were manually downloaded to be played later on the user&#8217;s home computer; the user experience was far from that of listening to a <a href="http://en.wikipedia.org/wiki/Radio">traditional</a> broadcast radio receiver.  It was not until several years later that <a href="http://en.wikipedia.org/wiki/Streaming_radio#Streaming">streaming radio</a> became common, giving birth to <a href="http://www.di.fm/">internet radio stations</a> that could be listened to much like traditional radio, but with several advantages.  Most notably, internet radio stations were (and still are for the most part) largely devoid of on-air advertising, and stations anywhere on the globe could be received by anyone with access to the internet.  Over time, improvements in audio compression (such as <a href="http://en.wikipedia.org/wiki/MP3">MP3</a>) and larger end user bandwidth improved the fidelity and reliability of internet radio.  The birth of common standards like <a href="http://www.shoutcast.com/">Shoutcast</a> made it possible to listen to many stations with a single player program, like <a href="http://www.winamp.com/">Winamp</a>.</p>
<p>Today, most music playback software supports streaming radio in some way.  <a href="http://www.apple.com/itunes/">iTunes</a> features thousands of streaming radio stations and <a href="http://en.wikipedia.org/wiki/ITunes#Internet_radio">even supports Shoutcast streams</a> so that users can easily add additional stations of their own.</p>
<p>The beautiful thing about streaming radio is the huge diversity in programming that is available.  Many college radio stations have a streaming server, like <a href="http://www.kdvs.org/listen/">KDVS</a>.  <a href="http://www.di.fm/">Digitally Imported</a> hosts many electronic and dance music streams that give the listener the choice to listen to specific genres like <a href="http://www.di.fm/mp3/ambient.pls">ambient</a> or <a href="http://www.di.fm/mp3/gabber.pls">gabber hardcore</a> <em>(whoa)</em>.  Broadcast radio usually lumps all electronic dance music into one category, much to the dismay of their listeners (who probably tuned out during the commercial break, anyway).  Gems like <a href="http://www.slayradio.org">Slay Radio</a> specialize in music you would never hear on broadcast FM, like <a href="http://en.wikipedia.org/wiki/C64">Commodore 64</a> <a href="http://remix.kwed.org/">remixes</a>.</p>
<p>In the past couple years, products have started to appear that mimic the form and function of a traditional radio, but play internet radio instead.  Good examples of these are the <a href="http://www.roku.com/products_soundbridgeradio.php">Roku SoundbridgeRadio</a> and the <a href="http://www.amazon.com/Asus-INTERNET-RADIO-AIR-WOOD/dp/B000Y9TRFQ/ref=sr_1_2?ie=UTF8&amp;s=electronics&amp;qid=1223601330&amp;sr=8-2">ASUS Internet Air</a>.  Remote speaker devices, such as the <a href="http://www.apple.com/airportexpress/">Apple Airport Express</a>, require a PC to receive and relay streaming radio but achieve a similar end result (but don&#8217;t really look much like a radio).</p>
<h3><strong>The Wifi Radio project:<br />
</strong></h3>
<p>I have been wanting to build a streaming radio for some time.  I frequently work in my garage, where I occasionally use my <a href="http://www.apple.com/macbook/">Macbook</a> to play music through a small amplifier and bookshelf speakers.  The problem is that my laptop is not always set up in the garage, and greasy fingers are not a good thing to have around a white laptop, period.  I could simply <a href="http://www.amazon.com/s?ie=UTF8&amp;tag=mozilla-20&amp;index=blended&amp;link_code=qs&amp;field-keywords=internet%20radio">buy</a> an internet radio, but I couldn&#8217;t stomach the $150-$300 price tag on most players for such a luxury.</p>
<p>So I decided to build one instead.</p>
<p>I started the design process by drafting an outline of desired features, and then breaking them down into wants and needs, while trying to keep the project scope under control.</p>
<p><em>Requirements:</em></p>
<ul>
<li>Wireless connectivity through existing Wifi network</li>
<li>Audio output (preferably 44kHz, 16 bit stereo)</li>
<li>An integrated amplifier and speaker(s)</li>
<li>Shoutcast/MP3 streaming audio decode</li>
<li>Several builtin station presets</li>
<li>A display to indicate the station and currently playing song</li>
<li>Simple user interface, using standard radio controls (volume, tune, etc)</li>
<li>110VAC operation</li>
</ul>
<p><em>Optional features:</em></p>
<ul>
<li>Line output (to connect to a receiver/amplifier)</li>
<li>Web server for configuration/management</li>
<li>Ability to play files off a USB stick or iTunes server</li>
</ul>
<p><em>Definitely<strong> won&#8217;t </strong>be a feature:</em></p>
<ul>
<li>Any kind of over-the-air radio tuner</li>
<li>Commercials</li>
<li>Pledge season</li>
<li>Morning DJ&#8217;s</li>
<li><em>&#8220;Blah, blah, blah.&#8221;</em></li>
</ul>
<p>Now that we&#8217;ve defined the project&#8230;  it&#8217;s time for a commercial break.  That&#8217;s it for part 1 of this series.  Stay tuned for <a href="http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-2-choosing-an-embedded-platform/">part 2</a>, where I&#8217;ll talk about choosing an embedded platform for the design and why Linux is so awesome!</p>
<p><strong>Update:</strong> <a href="http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-2-choosing-an-embedded-platform/">Part two is now available, click here to see it!</a></p>
<p><strong>Update 2:</strong> There is a new <a href="http://mightyohm.com/forum/viewforum.php?f=2">Wifi Radio Discussion Forum</a>, hop over there to ask questions about the project or see what other people are working on!  (<em>4/12/09)</em></p>
<p><strong>Update 3 (6/1/09):</strong> I finally added a table of contents to the top of this post to help everyone (including me) navigate the series!<em><br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-1-introduction/feed/</wfw:commentRss>
		<slash:comments>44</slash:comments>
<enclosure url="http://www.di.fm/mp3/ambient.pls" length="189" type="audio/x-scpls" />
<enclosure url="http://www.di.fm/mp3/gabber.pls" length="196" type="audio/x-scpls" />
		</item>
		<item>
		<title>Old Dell + Debian Etch = Instant Development Server</title>
		<link>http://mightyohm.com/blog/2008/10/old-dell-debian-etch-instant-development-server/</link>
		<comments>http://mightyohm.com/blog/2008/10/old-dell-debian-etch-instant-development-server/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 21:18:26 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[DIY]]></category>
		<category><![CDATA[Embedded Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenWRT]]></category>

		<guid isPermaLink="false">http://mightyohm.com/blog/?p=326</guid>
		<description><![CDATA[Earlier this year I replaced my desktop PC, a Dell Dimension 4700, with a Mac Mini as part of my effort go 100% Mac for my home computing.  OS X is a terrific platform for the desktop power user because it looks great, feels great, is well supported by open source projects.  It also runs [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.debian.org/logos/bouton.jpg" alt="" /></p>
<p>Earlier this year I replaced my desktop PC, a <a href="http://www.dell.com">Dell Dimension 4700</a>, with a <a href="http://www.apple.com/macmini/">Mac Mini</a> as part of my effort go 100% Mac for my home computing.  <a href="http://www.apple.com/macosx/">OS X</a> is a terrific platform for the desktop power user because it looks great, feels great, is well supported by open source projects.  It also runs on a <a href="http://en.wikipedia.org/wiki/Darwin_(operating_system)">variant of Unix</a> giving you full shell access and lots of other great stuff.</p>
<p>Since then, the Dell has been sitting by my desk, waiting for a good use.  I already have a <a href="http://www.buffalotech.com/products/network-storage/linkstation/linkstation-live/">Linkstation Live</a> that I use for a low power home server (print server, mt-daapd, subversion, samba, etc.) so I didn&#8217;t have an immediate need for another PC around the house.</p>
<p>Last week I started playing with <a href="http://www.openwrt.org">OpenWRT</a> as part of a neat new project that will be an upcoming feature on this blog.  I suddenly needed a Linux environment and some extra computing power to help build custom OpenWRT images.  <a href="http://www.debian.org">Debian</a> to the rescue!</p>
<p>Before anyone says anything, I don&#8217;t really have anything against the incredibly popular desktop Linux distro <a href="http://www.ubuntu.com/">Ubuntu</a>.  The real reason I choose Debian is that I know Debian, and Debian just works.  My new server runs <a href="http://en.wikipedia.org/wiki/Headless">headless</a> and I use <a href="http://en.wikipedia.org/wiki/Ssh">ssh</a> to login and compile from my Mac, so the <a href="http://www.youtube.com/watch?v=kYgV2GlsufI&amp;feature=related">advanced graphical features</a> of Ubuntu would be lost on me.</p>
<p>Installing Debian is a breeze.  Within 30 minutes of burning the <a href="http://www.debian.org/CD/netinst/">Debian quick start CD</a>, I was up and running.  After installing a few addon packages, I was compiling OpenWRT images.</p>
<p>Instant development server.  <em>Awesome.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://mightyohm.com/blog/2008/10/old-dell-debian-etch-instant-development-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

