{"id":516,"date":"2008-11-03T11:08:43","date_gmt":"2008-11-03T18:08:43","guid":{"rendered":"http:\/\/mightyohm.com\/blog\/?p=516"},"modified":"2022-12-28T12:01:52","modified_gmt":"2022-12-28T20:01:52","slug":"building-a-wifi-radio-part-4-installing-openwrt","status":"publish","type":"post","link":"https:\/\/mightyohm.com\/blog\/2008\/11\/building-a-wifi-radio-part-4-installing-openwrt\/","title":{"rendered":"Building a Wifi Radio &#8211; Part 4, Installing OpenWrt"},"content":{"rendered":"<p><em>This is the fourth part of an ongoing series about building a low cost, open source streaming internet radio.\u00a0 If you haven\u2019t already, check out parts <a href=\"http:\/\/mightyohm.com\/blog\/2008\/10\/building-a-wifi-radio-part-1-introduction\/\">one<\/a>, <a href=\"http:\/\/mightyohm.com\/blog\/2008\/10\/building-a-wifi-radio-part-2-choosing-an-embedded-platform\/\">two<\/a>, and <a href=\"http:\/\/mightyohm.com\/blog\/2008\/10\/building-a-wifi-radio-part-3-hacking-the-asus-wl-520gu\/\">three<\/a> for some background about the project.<\/em><\/p>\n<p>At this point you should have an <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 with a serial port header installed and some way of communicating with the serial port from your PC.\u00a0 If not, go back to <a href=\"http:\/\/mightyohm.com\/blog\/2008\/10\/building-a-wifi-radio-part-3-hacking-the-asus-wl-520gu\/\">part three<\/a>.<\/p>\n<h3><strong>What is OpenWrt?<\/strong><\/h3>\n<p>According to <a href=\"http:\/\/openwrt.org\">openwrt.org<\/a>:<\/p>\n<blockquote><p>OpenWrt is described as a Linux distribution for embedded devices.<\/p><\/blockquote>\n<p><a href=\"http:\/\/openwrt.org\/\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"2989\" data-permalink=\"https:\/\/mightyohm.com\/blog\/2008\/11\/building-a-wifi-radio-part-4-installing-openwrt\/openwrt_logo\/\" data-orig-file=\"https:\/\/mightyohm.com\/blog\/wp-content\/uploads\/2008\/11\/openwrt_logo.png\" data-orig-size=\"320,81\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"OpenWrt\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/mightyohm.com\/blog\/wp-content\/uploads\/2008\/11\/openwrt_logo.png\" class=\"alignnone size-full wp-image-2989\" title=\"OpenWrt\" src=\"http:\/\/mightyohm.com\/blog\/wp-content\/uploads\/2008\/11\/openwrt_logo.png\" alt=\"\" width=\"320\" height=\"81\" \/><\/a><\/p>\n<p>OpenWrt replaces the stock firmware on the WL-520GU with an open source <a href=\"http:\/\/www.kernel.org\/\">Linux<\/a> distribution that aims to be extremely powerful and flexible.\u00a0 This is important for us because in turning a wireless router into a Wifi radio, we using the device in a way that the manufacturer never intended for it to be used.\u00a0 In addition to including a stripped down version of the Linux operating system, drivers for wireless networking and all the basic functionality of a residential network gateway, a package manager called <a href=\"http:\/\/wiki.openmoko.org\/wiki\/Opkg\">opkg<\/a> allows you to install a wide variety of add-on modules to extend the functionality even further.<\/p>\n<h3><strong>Setup:<\/strong><\/h3>\n<p>To install OpenWrt on the WL-520GU you will need a few things:<\/p>\n<ul>\n<li>Your Asus WL-520GU wireless router, modified to allow access to the internal serial port<\/li>\n<li>A 3.3V USB-serial cable like the <a href=\"http:\/\/www.ftdichip.com\/Products\/EvaluationKits\/TTL-232R-3V3.htm\">FTDI-232-3V3<\/a><\/li>\n<li>A short ethernet cable (a crossover cable is not required)<\/li>\n<li>A desktop or laptop computer with an open USB and ethernet port<\/li>\n<li>A terminal program such as <a href=\"http:\/\/homepage.mac.com\/dalverson\/zterm\/\">ZTerm<\/a> or Hyperterminal<\/li>\n<li>A <a href=\"http:\/\/en.wikipedia.org\/wiki\/Trivial_File_Transfer_Protocol\">TFTP client<\/a>, (surprisingly) included with most operating systems.\u00a0 I&#8217;ll be using the one included with OS X.<\/li>\n<li>A WiFi network with a reasonably simple encryption scheme (ie. none, WEP, WPA)<\/li>\n<\/ul>\n<p>If you want to compile your own OpenWrt image and optional packages, you&#8217;ll also need<\/p>\n<ul>\n<li>A machine running <a href=\"http:\/\/www.debian.org\/\">Debian<\/a> or similar Linux operating system, or if you are really ambitious, a Mac running OS X.\u00a0 I won&#8217;t cover compiling OpenWrt using OS X here, but there are several issues that prevent it from being straightfoward, the first of which is that <a href=\"http:\/\/developer.apple.com\/technotes\/tn\/tn1150.html\">OS X does not use a case-sensitive filesystem by default<\/a>.<\/li>\n<\/ul>\n<p><strong>Note:<\/strong> If for any reason you need to go back to the stock firmware, you can download it from Asus <a href=\"http:\/\/support.asus.com\/download\/download.aspx?SLanguage=en-us\">here<\/a> (enter WL-520GU into the search field on the left).<\/p>\n<h3>Getting OpenWrt:<\/h3>\n<p>There are two ways to do this:<\/p>\n<h4>The hard way:<\/h4>\n<p>Visit the <a href=\"http:\/\/wiki.openwrt.org\/\">OpenWrt Wiki<\/a> and read the instructions on <a href=\"http:\/\/wiki.openwrt.org\/OpenWrtDocs\/Installation\">Installation<\/a>.\u00a0 Follow <a href=\"http:\/\/wiki.openwrt.org\/OpenWrtDocs\/BuildingKamikazeHowTo\">these instructions<\/a> to build Kamikaze (<a href=\"http:\/\/downloads.openwrt.org\/kamikaze\/release.txt\">Kamikaze<\/a> is the current OpenWrt distribution).\u00a0 Download the source with subversion (<a href=\"http:\/\/subversion.tigris.org\/\">svn<\/a>), and compile it yourself.\u00a0 This method requires a moderate level of skill with Linux, but if you can compile your own kernel you should be able to compile OpenWrt.\u00a0 You will need to link to the feeds for madplay, mpc, and mpd (as well as any other 3rd party packages you want) before executing <em>make menuconfig<\/em>, by using the <em>scripts\/feeds<\/em> command.\u00a0 Here is the sequence of commands I used, yours may differ slightly:<\/p>\n<blockquote>\n<pre>svn co https:\/\/svn.openwrt.org\/openwrt\/trunk\/ ~\/kamikaze\r\ncd ~\/kamikaze\r\n.\/scripts\/feeds update -a\r\n.\/scripts\/feeds install madplay mpc mpd\r\nmake prereq<\/pre>\n<\/blockquote>\n<p>If make fails, you may need to install some optional Linux tools, such as gawk, bison, or gcc.\u00a0 On Debian I used the apt-get command to do this<\/p>\n<blockquote>\n<pre>apt-get install gawk bison gcc<\/pre>\n<\/blockquote>\n<p>Once you have all necessary prerequisites installed, you can configure the build with<\/p>\n<blockquote>\n<pre>make menuconfig<\/pre>\n<\/blockquote>\n<p>You&#8217;ll need to set the following options:<\/p>\n<ul>\n<blockquote>\n<li>Target System (Broadcom BCM947xx\/953xx [2.4])<\/li>\n<li>Target Profile (Generic, Broadcom WiFi (default))<\/li>\n<li>Select all packages by default<\/li>\n<li>Image configuration &#8212;&gt;\n<ul>\n<li>Base system<em><strong> (Added 12\/18\/08 to support <a href=\"http:\/\/mightyohm.com\/blog\/2008\/12\/building-a-wifi-radio-part-6-a-conversation-with-mpd\/\">part six<\/a>)<\/strong><\/em>\n<ul>\n<li>busybox (press enter to open hidden menu)\n<ul>\n<li>Configuration\n<ul>\n<li>Coreutils\n<ul>\n<li>stty<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Kernel modules\n<ul>\n<li>Sound support\n<ul>\n<li>kmod-sound-core<\/li>\n<\/ul>\n<\/li>\n<li>USB support\n<ul>\n<li>kmod-usb-core<\/li>\n<li>kmod-usb-ohci<\/li>\n<li>kmod-usb-audio<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Sound\n<ul>\n<li>mpd<\/li>\n<li>mpc<\/li>\n<li>madplay<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/blockquote>\n<\/ul>\n<p>Once you&#8217;re done, exit, saving the configuration.\u00a0 Then execute<\/p>\n<blockquote>\n<pre>make world<\/pre>\n<\/blockquote>\n<p>This will take quite a while.\u00a0 If the build fails, you will be prompted to run make again<\/p>\n<blockquote>\n<pre>make world V=99<\/pre>\n<\/blockquote>\n<p>and fix any problems that occur, based on the error messages.\u00a0 The <a href=\"http:\/\/forum.openwrt.org\/\">OpenWrt forums<\/a> are a good place to get help, but do a quick search before you post to avoid asking a question that has already been answered.<\/p>\n<p>If the build completes successfully, you should be left with a bunch of files in the kamikaze\/bin directory, including <em>openwrt-brcm-2.4-squashfs.trx<\/em>, the main image file, and a bunch of packages in the <em>bin\/packages\/mipsel<\/em> directory.<\/p>\n<h4>The easy way:<\/h4>\n<p>I&#8217;ve already done the hard work for you.<\/p>\n<p>Download my precompiled <a href=\"http:\/\/mightyohm.com\/files\/kamikaze-2.4\/openwrt-brcm-2.4-squashfs.trx\">openwrt-brcm-2.4-squashfs.trx <\/a>image.<\/p>\n<p>Addon packages (you&#8217;ll need a few of these when we configure the router later) are located <a href=\"http:\/\/mightyohm.com\/files\/kamikaze-2.4\/packages\/mipsel\/\">here<\/a>.<\/p>\n<h3>Installing OpenWrt:<\/h3>\n<p>Connect your FTDI cable to the serial port on the router that you added in <a href=\"http:\/\/mightyohm.com\/blog\/2008\/10\/building-a-wifi-radio-part-3-hacking-the-asus-wl-520gu\/\">part three<\/a>.\u00a0 Launch your favorite terminal program and connect to the router at 115200 baud, 8N1.<\/p>\n<p>Connect the LAN1 port of the router to your computer using a short ethernet cable.\u00a0 The router is hardcoded to be 192.168.1.1 on boot, and we need to configure our computer to talk to that address.\u00a0 I set my Macbook to use a static IP of 192.168.1.185.\u00a0 You may need to set a gateway to 192.168.1.1.\u00a0 If your home network is also on the 192.168.1.x subnet, you will need to disconnect\/disable it.\u00a0 On my Macbook, this meant disabling the internal wireless and losing internet access while the router was connected.\u00a0 (Eventually I got tired of this and moved my home network to 192.168.24.x, but that is outside the scope of this tutorial.)<\/p>\n<p>Press and hold the Restore button on the back of the router and plug in the power cable.\u00a0 The Restore button is shown just to the right of the red EZSetup button here:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"http:\/\/mightyohm.com\/files\/flickr\/2998014649_4fb634f372.jpg\" alt=\"WL-520GU Restore Button Closeup\" width=\"500\" height=\"399\" \/><\/p>\n<p>Continue holding the Restore button until the power LED starts flashing once a second.\u00a0 Release the restore button.\u00a0 In your terminal window, you should see some boot messages and then<\/p>\n<blockquote>\n<pre>Reading :: TFTP Server.\r\nFailed.: Timeout occured\r\nReading :: TFTP Server.\r\nFailed.: Timeout occured<\/pre>\n<\/blockquote>\n<p>and so on (the messages will repeat forever).<\/p>\n<p>Now it&#8217;s time to transfer our .trx file to the router.\u00a0 These instructions are for OS X.\u00a0 Instructions for other operating systems are <a href=\"http:\/\/wiki.openwrt.org\/OpenWrtDocs\/Installing\/TFTP\">here<\/a>.<\/p>\n<blockquote>\n<pre>cd ~\/kamikaze\/bin\r\ntftp\r\ntrace\r\ntimeout 1\r\nmode binary\r\nconnect 192.168.1.1\r\nput openwrt-brcm-2.4-squashfs.trx<\/pre>\n<\/blockquote>\n<p>On the serial console you should see (exact numbers may vary):<\/p>\n<blockquote>\n<pre>Reading :: TFTP Server.\r\nTFTP_BLKLEN!!\r\nbreak!! last block!!\r\nDone. 1918724 bytes read\r\nDownload of 0x1d4704 bytes completed\r\nWrite kernel and filesystem binary to FLASH (0xbfc20000)\r\nProgramming...\r\ncopysize=1918724, amtcopy=1918724<\/pre>\n<\/blockquote>\n<p>If you don&#8217;t see this, chances are your computer is not talking to the router.\u00a0 Most likely this is a configuration problem with your ethernet port or you don&#8217;t have the cable connected to a LAN port of the router.<\/p>\n<p>If it worked,<strong> wait a couple minutes<\/strong> (don&#8217;t touch anything, unplugging the router at this point could <a href=\"http:\/\/en.wikipedia.org\/wiki\/Brick_(electronics)\">brick the router<\/a>!)\u00a0 Eventually you should see the message<\/p>\n<blockquote>\n<pre>done. 1918724 bytes written<\/pre>\n<\/blockquote>\n<p>After this message appears (it typically takes 3-5 minutes for the whole process) unplug the router, wait a few seconds, and then plug it back in again.\u00a0 In your serial terminal window, you should see the Linux boot messages again, but the process will pause briefly while the jffs file system is created.\u00a0 Once the router has finished booting, you&#8217;ll see a couple messages like this<\/p>\n<blockquote>\n<pre>mini_fo: using base directory: \/\r\nmini_fo: using storage directory: \/jffs<\/pre>\n<\/blockquote>\n<p>Press enter and you should now see the OpenWrt banner and a shell prompt<\/p>\n<blockquote>\n<pre>BusyBox v1.11.2 (2008-10-02 20:59:06 PDT) built-in shell (ash)<\/pre>\n<pre>Enter 'help' for a list of built-in commands.<\/pre>\n<pre>\u00a0 _______\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ________\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 __<\/pre>\n<pre>\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |.-----.-----.-----.|\u00a0 |\u00a0 |\u00a0 |.----.|\u00a0 |_<\/pre>\n<pre>\u00a0|\u00a0\u00a0 -\u00a0\u00a0 ||\u00a0 _\u00a0 |\u00a0 -__|\u00a0\u00a0\u00a0\u00a0 ||\u00a0 |\u00a0 |\u00a0 ||\u00a0\u00a0 _||\u00a0\u00a0 _|<\/pre>\n<pre>\u00a0|_______||\u00a0\u00a0 __|_____|__|__||________||__|\u00a0 |____|<\/pre>\n<pre>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |__| W I R E L E S S\u00a0\u00a0 F R E E D O M<\/pre>\n<pre>\u00a0KAMIKAZE (bleeding edge, r12831) -------------------<\/pre>\n<pre>\u00a0 * 10 oz Vodka\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Shake well with ice and strain<\/pre>\n<pre>\u00a0 * 10 oz Triple sec\u00a0 mixture into 10 shot glasses.<\/pre>\n<pre>\u00a0 * 10 oz lime juice\u00a0 Salute!<\/pre>\n<pre>\u00a0---------------------------------------------------<\/pre>\n<pre>root@OpenWrt:\/#<\/pre>\n<\/blockquote>\n<p>Congratulations!\u00a0 You have successfully installed OpenWrt!<\/p>\n<p>A complete log of the first boot is available <a href=\"http:\/\/mightyohm.com\/blog\/wp-content\/uploads\/2008\/11\/wl-520gu_flash_log_stripped.txt\">here<\/a>.<\/p>\n<h3>Configuring OpenWRT:<\/h3>\n<p>There is a lot of information on the <a href=\"http:\/\/wiki.openwrt.org\/OpenWrtDocs\">OpenWRT Wiki <\/a>with regard to <a href=\"http:\/\/wiki.openwrt.org\/OpenWrtDocs\/KamikazeConfiguration\">Configuring Kamikaze<\/a>, but I will walk through the fairly basic configuration I am using here.\u00a0 To follow along, you will need to be comfortable using <a href=\"http:\/\/en.wikipedia.org\/wiki\/Vi\">vi<\/a> (if not, check out this <a href=\"http:\/\/tnerual.eriogerg.free.fr\/vim.html\">quick reference card<\/a>.)<\/p>\n<p>You should be able to use your serial terminal to execute the following commands.\u00a0 I had issues using the arrow keys to navigate in vi and had to use the basic movement keys instead (h=left, l=right, k=up, j=down).<\/p>\n<p>Before we can get the router on a WiFi network we need to modify a couple files.<\/p>\n<blockquote>\n<pre>root@OpenWrt:~# vi \/etc\/config\/wireless<\/pre>\n<\/blockquote>\n<p>You should edit this file to look like this (changes are in <strong>bold<\/strong>)<\/p>\n<blockquote>\n<pre>config wifi-device  wl0\r\n\toption type     broadcom\r\n\toption channel  <strong>2  # the channel your wireless network is on<\/strong>\r\n\r\n\t# REMOVE THIS LINE TO ENABLE WIFI:\r\n\t<strong># option disabled 1 (comment out or remove this line entirely)\r\n\r\n<\/strong>config wifi-iface\r\n\toption device   wl0\r\n\toption network\tlan\r\n\toption mode     <strong>sta<\/strong>  <strong># configures the router to connect to your network<\/strong>\r\n\toption ssid     <strong>MyNetwork<\/strong> <strong># the SSID of your network<\/strong>\r\n\toption encryption <strong>wep  # the encryption mode of your network<\/strong>\r\n\t<strong>option key\tXXXXXXXXXX  # add this line with your WEP key in place of X...X<\/strong><\/pre>\n<\/blockquote>\n<p>Now we need to modify the networking configuration to use DHCP (this should apply for most people):<\/p>\n<blockquote>\n<pre>root@OpenWrt:~# vi \/etc\/config\/network<\/pre>\n<\/blockquote>\n<p>Scroll down and look for the LAN configuration section, and edit it to look like this (note the dhcp option in bold, also comment out the last two lines as shown):<\/p>\n<blockquote>\n<pre>#### LAN configuration\r\nconfig interface lan\r\n      option type     bridge\r\n      option ifname   \"eth0.0\"\r\n      option proto    <strong>dhcp\r\n      #<\/strong>option ipaddr   192.168.1.1<strong>\r\n      #<\/strong>option netmask  255.255.255.0\r\n<strong><\/strong><strong><\/strong><\/pre>\n<\/blockquote>\n<p>Lastly, verify that resolv.conf is set correctly.<\/p>\n<blockquote>\n<pre>root@OpenWrt:~# vi \/etc\/resolv.conf<\/pre>\n<\/blockquote>\n<p>You should see the following line (this assumes the router will get a valid DNS server address via DHCP, if not, you can set it manually here):<\/p>\n<blockquote>\n<pre>nameserver 127.0.0.1<\/pre>\n<\/blockquote>\n<p>Then execute the following command:<\/p>\n<blockquote>\n<pre>root@OpenWrt:\/# \/etc\/init.d\/network restart<\/pre>\n<\/blockquote>\n<p>After a moment, if everything is working, the AIR light on the router should turn on and you should be able to ping some servers by name.<\/p>\n<blockquote>\n<pre>root@OpenWrt:\/# ping www.google.com\r\nPING www.google.com (74.125.19.104): 56 data bytes\r\n64 bytes from 74.125.19.104: seq=0 ttl=240 time=20.113 ms<\/pre>\n<\/blockquote>\n<p>If you made it this far, congratulations!\u00a0  You now have a working embedded Linux device on your WiFi network!<\/p>\n<p>That concludes part four of this series.\u00a0 In <a href=\"http:\/\/mightyohm.com\/blog\/2008\/11\/building-a-wifi-radio-part-5-lets-make-some-noise\/\">part five<\/a>, I&#8217;ll cover installing addon packages using opkg.\u00a0 If we&#8217;re lucky, we&#8217;ll get the router to play some tunes!<\/p>\n<p><strong>Update:<\/strong> <a href=\"http:\/\/mightyohm.com\/blog\/2008\/11\/building-a-wifi-radio-part-5-lets-make-some-noise\/\">Part five is now available.<\/a><\/p>\n<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!\u00a0 (<em>4\/12\/09)<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is the fourth part of an ongoing series about building a low cost, open source streaming internet radio.\u00a0 If you haven\u2019t already, check out parts one, two, and three for some background about the project. At this point you should have an Asus WL-520GU wireless router with a serial port header installed and some &hellip; <a href=\"https:\/\/mightyohm.com\/blog\/2008\/11\/building-a-wifi-radio-part-4-installing-openwrt\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Building a Wifi Radio &#8211; Part 4, Installing OpenWrt<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[443],"tags":[36,70,66,68,24,71,162],"class_list":["post-516","post","type-post","status-publish","format-standard","hentry","category-projects-2","tag-diy","tag-embedded-linux","tag-linux","tag-openwrt","tag-project","tag-streaming-radio","tag-wifiradio"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pioCd-8k","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":712,"url":"https:\/\/mightyohm.com\/blog\/2008\/12\/building-a-wifi-radio-part-6-a-conversation-with-mpd\/","url_meta":{"origin":516,"position":0},"title":"Building a Wifi Radio &#8211; Part 6, A Conversation with Mpd","author":"Jeff","date":"December 17, 2008","format":false,"excerpt":"This is the sixth part of an ongoing series about building a low cost, open source streaming internet radio.\u00a0 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. Let's review... It's been a few weeks\u2026","rel":"","context":"In &quot;Microcontrollers&quot;","block_context":{"text":"Microcontrollers","link":"https:\/\/mightyohm.com\/blog\/category\/microcontrollers\/"},"img":{"alt_text":"","src":"http:\/\/www.awltovhc.com\/image-3238164-10440897","width":350,"height":200},"classes":[]},{"id":598,"url":"https:\/\/mightyohm.com\/blog\/2008\/11\/building-a-wifi-radio-part-5-lets-make-some-noise\/","url_meta":{"origin":516,"position":1},"title":"Building a Wifi Radio &#8211; Part 5, Let&#8217;s Make Some Noise!","author":"Jeff","date":"November 8, 2008","format":false,"excerpt":"This is the fifth part of an ongoing series at mightyOhm about building a low cost, open source streaming internet radio.\u00a0 If you haven't already, check out the previous parts below for some background about the project. Building a Wifi Radio - Part 1, Introduction Building a Wifi Radio -\u2026","rel":"","context":"In &quot;Projects&quot;","block_context":{"text":"Projects","link":"https:\/\/mightyohm.com\/blog\/category\/projects-2\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1148,"url":"https:\/\/mightyohm.com\/blog\/2009\/02\/building-a-wifi-radio-part-8-adding-a-tuning-control\/","url_meta":{"origin":516,"position":2},"title":"Building a Wifi Radio &#8211; Part 8, Adding a Tuning Control","author":"Jeff","date":"February 3, 2009","format":false,"excerpt":"This is the eighth part of an ongoing series about building a low cost, open source streaming internet radio based on the ASUS WL-520gU Wireless Router.\u00a0 If you haven\u2019t already, check out the previous parts (see the links at the end of this article) for some background about the project.\u2026","rel":"","context":"In &quot;Electronics&quot;","block_context":{"text":"Electronics","link":"https:\/\/mightyohm.com\/blog\/category\/electronics\/"},"img":{"alt_text":"","src":"http:\/\/www.ftjcfx.com\/image-3238164-10440897","width":350,"height":200},"classes":[]},{"id":1872,"url":"https:\/\/mightyohm.com\/blog\/2009\/05\/building-a-wifi-radio-part-9-a-few-odds-and-ends\/","url_meta":{"origin":516,"position":3},"title":"Building a Wifi Radio &#8211; Part 9, A Few Odds and Ends","author":"Jeff","date":"May 27, 2009","format":false,"excerpt":"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.\u00a0 If you haven\u2019t already, check out the previous parts (see the links at the end of this article) for some background about the project.\u2026","rel":"","context":"In &quot;Electronics&quot;","block_context":{"text":"Electronics","link":"https:\/\/mightyohm.com\/blog\/category\/electronics\/"},"img":{"alt_text":"","src":"http:\/\/www.ftjcfx.com\/image-3238164-10440897","width":350,"height":200},"classes":[]},{"id":480,"url":"https:\/\/mightyohm.com\/blog\/2008\/10\/building-a-wifi-radio-part-3-hacking-the-asus-wl-520gu\/","url_meta":{"origin":516,"position":4},"title":"Building a Wifi Radio &#8211; Part 3, Hacking the Asus WL-520GU","author":"Jeff","date":"October 30, 2008","format":false,"excerpt":"This is the third part of an ongoing series about building a low cost, open source streaming internet radio.\u00a0 If you haven\u2019t 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\u2026","rel":"","context":"In &quot;Electronics&quot;","block_context":{"text":"Electronics","link":"https:\/\/mightyohm.com\/blog\/category\/electronics\/"},"img":{"alt_text":"","src":"http:\/\/www.awltovhc.com\/image-3238164-10440897","width":350,"height":200},"classes":[]},{"id":1902,"url":"https:\/\/mightyohm.com\/blog\/2009\/05\/sneak-peak-at-my-finished-wifi-radio-project\/","url_meta":{"origin":516,"position":5},"title":"Sneak peek at my finished Wifi Radio project!","author":"Jeff","date":"May 28, 2009","format":false,"excerpt":"While I'm busy working on part ten of my series on building a wireless router-based DIY streaming internet radio, I couldn'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\u2026","rel":"","context":"In &quot;Electronics&quot;","block_context":{"text":"Electronics","link":"https:\/\/mightyohm.com\/blog\/category\/electronics\/"},"img":{"alt_text":"Finished Wifi Radio","src":"https:\/\/i0.wp.com\/mightyohm.com\/files\/flickr\/3567609195_79760d88fe.jpg?resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/posts\/516","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/comments?post=516"}],"version-history":[{"count":45,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/posts\/516\/revisions"}],"predecessor-version":[{"id":15810,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/posts\/516\/revisions\/15810"}],"wp:attachment":[{"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/media?parent=516"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/categories?post=516"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/tags?post=516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}