<?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>Your Warranty Is Void.com &#187; Embedded devices</title>
	<atom:link href="http://www.yourwarrantyisvoid.com/category/embedded-devices/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yourwarrantyisvoid.com</link>
	<description>Linux, Hardware, Software and Chaos. What more is there?</description>
	<lastBuildDate>Wed, 18 Jan 2012 03:59:25 +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>Networking: Installing and configuring pfSense Embedded</title>
		<link>http://www.yourwarrantyisvoid.com/2011/11/11/networking-installing-and-configuring-pfsense-embedded/</link>
		<comments>http://www.yourwarrantyisvoid.com/2011/11/11/networking-installing-and-configuring-pfsense-embedded/#comments</comments>
		<pubDate>Sat, 12 Nov 2011 02:54:03 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Embedded devices]]></category>
		<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[pfSense]]></category>
		<category><![CDATA[router]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=969</guid>
		<description><![CDATA[After publishing the last post on networking and the security series, I felt it was necessary to go ahead and publish a piece on building a custom router.  I have been a fan of pfSense for the past four years and swear by it. It has the ease of use of a commercial GUI-driven router [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-970" title="pfSense Logo" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/pfsenselogo.png" alt="pfSense Logo" width="300" height="110" /></p>
<p>After publishing the last post on networking and the security series, I felt it was necessary to go ahead and publish a piece on building a custom router.  I have been a fan of pfSense for the past four years and swear by it. It has the ease of use of a commercial GUI-driven router and unrivaled flexibility limited only by the hardware it is installed on.  In this howto article, we will cover installing pfSense on an embedded platform and initial configuration for getting your router up and running.</p>
<p><span id="more-969"></span></p>
<h3>First, an introduction to pfSense</h3>
<p>PfSense is a lightweight FreeBSD based distribution geared towards router and firewall installations. It has been around since 2004 when it was forked from the m0n0wall project and has since turned into an excellent stand-alone distribution for routing and firewalling.  Although pfSense is generally intended towards full-PC installations, they offer an embedded image for use without skimping on the features.  pfSense is well known in the Linux/Unix/BSD community and is very highly regarded for both it&#8217;s feature set and it&#8217;s flexibility.</p>
<p>A question I get asked a lot is &#8220;Why pfSense? Why not just buy a Linksys?&#8221;  The answer is about hardware and software.  While I do own a couple of Linksys routers and do admire Linksys for bringing NAT devices to the common user, their hardware is restrictive and is only usable in the standard configuration (1 WAN and 4 LAN/WIFI) Even though it has been proven several times that the hardware they use for the LAN portion can support advanced features like VLAN support, bridging, multiple interfaces/IP&#8217;s, they will never release this functionality to those that want it and will instead force the advanced user to look elsewhere. In Linksys&#8217;s view, the router dictates the network.  With pfSense, I can build a custom configuration however I deem fit, with multiple NICs for WAN and LAN, with custom configurations and with VLAN support.  Not to mention that &#8220;stock&#8221; pfSense even supports DHCP, Captive Portal (like &#8220;free wifi&#8221;) , DNS, VPN support, Fail Over mode and many other options that Linksys wouldn&#8217;t ever make available.  Even if I never use VPN support or use the Failover mode, it&#8217;s nice to know those features are there should I ever need them.</p>
<h3>Hardware Requirements:</h3>
<p>In order to use pfSense Embedded, you will need a computer that adheres to the below spec.  Of course more is better, but these are the minimum specs as posted on the pfSense website.</p>
<ul>
<li>CPU: 100MHZ x86 Pentium or equivalent.</li>
<li>RAM: 128 MB RAM</li>
<li>Serial Port</li>
<li>512MB Flash storage or 1GB hard drive</li>
<li>Two Network Adapters (NICs)</li>
</ul>
<p>Please note that some of the advanced features like VPN support, Captive Portal and some high-bandwidth connections may require faster processors than what is outlined below.  If you want to make sure your embedded platform matches spec, take a look at <a href="http://www.pfsense.org/index.php?option=com_content&amp;task=view&amp;id=52&amp;Itemid=49">pfSense&#8217;s hardware sizing guid</a>e which covers some of the items more in depth.</p>
<h3>A note on storage:</h3>
<p>The pfSense distribution comes in two flavors.  You have the &#8220;desktop PC&#8221; version for full-size computers with a CD ROM and a hard drive, and you have an &#8220;embedded&#8221; version which is for devices without a CDROM or hard drive and use some method of flash storage.  While you may be able to install the desktop PC version on the embedded device, it is not recommended as the distribution will be tailored for running on a hard drive, not a solid state memory device.  If you intend to use a hard drive, install the PC version.</p>
<p>You can use any IDE device for storage as long as it is recognized by your computer&#8217;s BIOS and is supported by FreeBSD.  I have not had a problem with either of these two stipulations, so you should not have any problems with it. One thing to consider is the use of an IDE to CF adapter <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16822998003">like this one on Newegg</a>.  This particular device fits right into the IDE header on the motherboard and allows you to use a Compact Flash cartridge as an IDE hard drive which is perfect for installing and running pfSense.  The router in my home is a slightly different model, but is running on a Sandisk 4GB CF cartridge and has been doing so for the last two years without fail.</p>
<h3>My hardware:</h3>
<p>In this howto, I will be using a Transcend 1GB IDE solid-state device that I got on Ebay. This device plugs into the 40 pin IDE header and mimics a standard hard drive.  It is fast and will definitely get the job done.  The hardware I will be using is a set top box device I scavenged from a computer show a long time ago.  It has a 233MHz Cyrix processor , 512MB RAM, an onboard serial port, an IDE port, an onboard NIC and a single PCI riser slot where I will be installing a dual 10/100 Intel NIC.</p>
<h3>Getting Started:</h3>
<p>If you are using the CF to IDE adapter mentioned earlier, you can use a USB-CF reader and an application to burn the image to the CF cartridge.</p>
<p>In order to proceed, you will need the following items</p>
<ul>
<li>A Linux based computer with one free IDE port</li>
<li>An IDE-CF adapter with an appropriately sized CF card minimum 512MB, recommended 1GB, referred hereafter as flash cartridge.</li>
<li>The &#8220;target system&#8221; that will ultimately run pfSense with at least two NICs.</li>
<li>A third NIC (optional, for guest network, discussed in the &#8220;Advanced&#8221; section below).</li>
<li>A serial cable (Female to Female) and a Null Modem Adapter.</li>
<li>A pocket switch with a small patch cord.</li>
</ul>
<h3>Identify your Flash device</h3>
<p>First, attach your flash cartridge to your Linux PC and boot it.  Make sure that it boots your Linux distribution first and does not attempt to boot from the flash cartridge.  Once booted, login as root and run <strong>dmesg</strong>. Look for the /dev entry for your flash module.  You may be able to look for the manufacturer name as is the case in my output below:</p>
<div id="attachment_971" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/IDEhd.gif"><img class="size-medium wp-image-971 " title="IDE HDA dmesg output" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/IDEhd-300x128.gif" alt="My Transcend module is listed as hda" width="300" height="128" /></a><p class="wp-caption-text">My dmesg output.</p></div>
<p>In the output above, my Transcend module was recognized as hda (primary master HD), so my /dev entry is /dev/hda.  We will need this later on to burn the image.</p>
<h3>Download, validate, burn:</h3>
<p>Now that we know what device we need to burn to, it&#8217;s time to get the image.  Head on over to <a href="http://www.pfsense.org/mirror.php?section=downloads">the pfSense Mirror selection page</a> and pick a server that&#8217;s closest to you.</p>
<p>You should then be presented with a list of images named <strong>pfSense-1.2.3-RELEASE-XXXX-nanobsd.img.gz</strong> where XXXX is a choice of 512mb, 1g, 2g and 4g images.  In my particular case, I will be using pfSense-1.2.3-RELEASE-1g-nanobsd.img.gz as it is pre-built to a 1gig flash cartridge.</p>
<p>Use <strong>wget</strong> to download the image along with the accompanying .md5 file as shown in the sample output below. Note: URLs in the below image may differ depending on the mirror you are using, but the filenames will be the same.</p>
<div id="attachment_973" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wget.gif"><img class="size-medium wp-image-973 " title="wget download of files" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wget-300x153.gif" alt="wget download of files" width="300" height="153" /></a><p class="wp-caption-text">wget download of files</p></div>
<p>Once both files have downloaded, use <strong>md5sum -c </strong>to check the file for consistency against the provided md5 checksum as shown in the sample output below.</p>
<div id="attachment_974" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/md5sum.gif"><img class="size-medium wp-image-974 " title="md5sum validation" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/md5sum-300x153.gif" alt="md5sum validation" width="300" height="153" /></a><p class="wp-caption-text">md5sum validation</p></div>
<p>If the MD5 check returns <strong>OK</strong> then you are clear to proceed. If not, go back and re-download the file again. Make sure you downloaded the same file and md5 checksum.  In order to burn it, we will use <strong>zcat</strong> to cat the zipped image out to the /dev entry mentioned earlier.  My syntax will be <strong>zcat pfSense-1.2.3-RELEASE-1g-nanobsd.img.gz | dd of=/dev/hda bs=16k</strong>however, if your flash cartridge shows up at another location other than /dev/hda, be sure that you change the command above to point to the proper device.  Once the command completes, it should look like this:</p>
<div id="attachment_975" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/burncomplete.gif"><img class="size-medium wp-image-975 " title="Image Burn Completed" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/burncomplete-300x153.gif" alt="Image Burn Completed" width="300" height="153" /></a><p class="wp-caption-text">Image Burn Completed</p></div>
<p>Now that the image burn is done, shutdown the Linux box and pull your flash cartridge out and install it in the device that is going to run pfSense.  Go ahead and connect it up but do not attach any network cables to the interfaces just yet.  You will also need to connect the serial cable with a null modem adapter to the device to continue initial setup.</p>
<h3>Initial Configuration and Setup</h3>
<p>Now that we&#8217;ve burned the image, we are ready to do the initial setup.  This entails doing some NIC probing to find the network adapters in the system and to assign them to their respective duties (WAN, LAN, Optional Interface 1, etc).  You should only ever need to do this once as once the NICs are set up and the router is running, you can do everything including re-assign the interfaces from the web-based GUI.</p>
<p>Open up PuTTY, Hypertrm or your favorite terminal application and set the serial port parameters to 9600 baud, no parity 8 data bits, 1 stop bit.  Turn on the embedded device and after a moment, you should see some BSD boot stuff flash past.  Wait until it prompts you to set up VLAN information as shown below:</p>
<div id="attachment_976" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/vlaninfo.gif"><img class="size-medium wp-image-976 " title="Vlan Setup prompt" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/vlaninfo-300x167.gif" alt="Vlan Setup Prompt" width="300" height="167" /></a><p class="wp-caption-text">Vlan Setup Prompt</p></div>
<p>If you are lucky, you should see two interfaces, one for each NIC.  If you have three network cards in your system, you will see three different interfaces.  In the above screenshot, I have em0, em1 and fxp0.  Since we will not use VLANs for our basic or our advanced configurations, we will answer &#8220;N&#8221; here.</p>
<p>Now, we will do some network probing to figure out exactly which NIC  goes to which interface using the pocket switch and the patch cord.  Don&#8217;t plug anything in yet.</p>
<div id="attachment_977" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/probelan.gif"><img class="size-medium wp-image-977 " title="Probe for LAN interface" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/probelan-300x167.gif" alt="Probe for LAN interface" width="300" height="167" /></a><p class="wp-caption-text">Probe for LAN interface</p></div>
<p>With nothing plugged into the network interfaces, hit a and hit enter.  This will start the autodetection process. When prompted, attach the pocket switch to the interface you will use as the LAN interface and make sure that the LINK light on the switch and the NIC come on.  Hit Enter and you should see a message where it detected the LAN interface link come up.  It will then prompt you for the WAN interface.  Hit a then enter again and move the patch cord to the WAN interface and hit enter.  Repeat this process for the Optional interface (OPT1) or if your router only has two NICs, just hit enter.  Refer to the below output.</p>
<div id="attachment_978" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/assignednics.gif"><img class="size-medium wp-image-978 " title="Assigned NICs" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/assignednics-300x167.gif" alt="Assigned NICs" width="300" height="167" /></a><p class="wp-caption-text">Assigned NICs</p></div>
<p>Be sure that you only change the patch cord when it tells you to.  If you disconnect the cable at the &#8220;hit A for autodetect&#8221; prompt, it may not detect link when it should.  If you run into this issue, disconnect the patch cord and restart your router.  Allow it to boot up and start over.  Once you get done assigning interfaces, simply hit Enter to exit assignment.  It will print the current assignments of the interfaces and ask you to validate.  Answer Y if the displayed assignments are correct and hit Enter, otherwise hit N and start over or restart the device.</p>
<p>Assuming all went well, you will see it do a bunch of additional configuration.  Once you get to the menu as shown below, you can then disconnect the serial cable and proceed with the configuration of the pfSense router.</p>
<div id="attachment_979" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/configdone.gif"><img class="size-medium wp-image-979" title="Configuration completed" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/configdone-300x167.gif" alt="Configuration Completed." width="300" height="167" /></a><p class="wp-caption-text">Configuration Completed</p></div>
<p>&nbsp;</p>
<h3>Continuing the Configuration</h3>
<p>Connect the pocket switch up to the LAN port of the router and connect your router&#8217;s WAN port to your Internet connection.  Connect a computer to an unused port on the pocket switch and start it up. Once booted, you should have an IP address in the 192.168.1.x subnet and depending on whether or not your Internet connection is DHCP, you may already be able to surf.</p>
<p>Open a browser and go to http://192.168.1.1 and when prompted login with the username of <strong>admin</strong> and the password of <strong>pfsense</strong>.  If all goes well, you should see a screen that looks like the one below.</p>
<p>&nbsp;</p>
<div id="attachment_982" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard.gif"><img class="size-medium wp-image-982" title="pfSense Wizard" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard-300x181.gif" alt="pfSense Wizard" width="300" height="181" /></a><p class="wp-caption-text">pfSense Wizard</p></div>
<p>&nbsp;</p>
<p>Click &#8220;Next&#8221;</p>
<p>On this screen, you will set some basic network configuration parameters like the pfSense&#8217;s hostname, local domain and the two DNS servers.  Use the ISP provided DNS servers here and click Next.</p>
<p>&nbsp;</p>
<div id="attachment_983" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard2.gif"><img class="size-medium wp-image-983" title="pfSense Wizard, page 2" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard2-300x181.gif" alt="pfSense Wizard, page 2" width="300" height="181" /></a><p class="wp-caption-text">pfSense Wizard, page 2</p></div>
<p>&nbsp;</p>
<p>On this screen, we will set up the timeserver and the timezone of the firewall.  Set the timezone where appropriate and then either use the provided time server or set your own.  I left it default and have not noticed any issues with time reporting.</p>
<p>&nbsp;</p>
<div id="attachment_984" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard3.gif"><img class="size-medium wp-image-984" title="pfSense Wizard, page 3" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard3-300x181.gif" alt="pfSense Wizard, page 3" width="300" height="181" /></a><p class="wp-caption-text">pfSense Wizard, page 3</p></div>
<p>&nbsp;</p>
<p>The next screen is where we will set up the WAN parameters.  Start off with selecting which type of WAN link you have.  Choices are DHCP (default),  Static IP, PPPoE and PPTP.  For each selection, there is a relevant section that must be completed.  Since I use DHCP, I left it as default.</p>
<p>&nbsp;</p>
<div id="attachment_985" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard4.gif"><img class="size-medium wp-image-985" title="pfSense Wizard, page 4" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard4-300x181.gif" alt="pfSense Wizard, page 4" width="300" height="181" /></a><p class="wp-caption-text">pfSense Wizard, page 4</p></div>
<p>&nbsp;</p>
<p>Pay special attention to the bottom two options.  The first option &#8220;Block RFC1918 networks&#8221; prevents LAN IP addresses from the &#8220;private&#8221; networks from entering from the WAN interface. Private networks are 10.0.0.0/8, 172.16.0.0/12 and 192.168.0.0/16.  Unless you are using this router inside another NAT environment, this option is best left turned on.</p>
<p>The other option &#8220;Block Bogon Networks&#8221; should be left enabled. This prevents non-routed and not-assigned networks from being routed against from your WAN interface. Since these addresses are not routed and not assigned, they should never contact your router anyways.</p>
<p>&nbsp;</p>
<div id="attachment_986" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard5.gif"><img class="size-medium wp-image-986" title="pfSense Wizard, page 5" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard5-300x181.gif" alt="pfSense Wizard, page 5" width="300" height="181" /></a><p class="wp-caption-text">pfSense Wizard, page4, Bogon networks and RFC1918 options</p></div>
<p>&nbsp;</p>
<p>Now we are at the LAN configuration.  This is where we can change the router&#8217;s internal IP address and subnet mask.  Please note that most of pfSense uses CIDR notation, so you may want to get familiar with it or have a <a href="http://www.subnet-calculator.com/cidr.php" target="_blank">CIDR calculator</a> at the ready.<strong><em></em></strong> Tip: a /24 is the same as 255.255.255.0</p>
<p>&nbsp;</p>
<div id="attachment_987" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard6.gif"><img class="size-medium wp-image-987" title="pfSense Wizard, page 5" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard6-300x181.gif" alt="pfSense Wizard, page 5" width="300" height="181" /></a><p class="wp-caption-text">pfSense Wizard, page 5</p></div>
<p>&nbsp;</p>
<p>This screen allows us to change the default password of <strong>pfsense</strong>.  I highly recommend changing it to something memorable.  If you forget it, you can always reset it via a serial connection without resetting the router back to factory settings.</p>
<p>&nbsp;</p>
<div id="attachment_988" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard7.gif"><img class="size-medium wp-image-988" title="pfSense Wizard, page 6" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard7-300x181.gif" alt="pfSense Wizard, page 6" width="300" height="181" /></a><p class="wp-caption-text">pfSense Wizard, page 6</p></div>
<p>&nbsp;</p>
<p>Finally we have reached the end of the wizard.  Click &#8220;Reload&#8221; and wait a few minutes.  During this time, the router will reboot itself to get adjusted into the new environment.  Let the web page reload the router&#8217;s admin page and it should take you to a configuration page like the one below.</p>
<p>&nbsp;</p>
<div id="attachment_989" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/status.gif"><img class="size-medium wp-image-989" title="pfSense main status page" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/status-300x181.gif" alt="pfSense main status page" width="300" height="181" /></a><p class="wp-caption-text">pfSense main status page</p></div>
<p>&nbsp;</p>
<p>Once you are at this screen, you should be able to browse the Internet.</p>
<h3>Some basic tips:</h3>
<ul>
<li>Portforwarding can be set up under Firewall -&gt; NAT and works pretty much like you would expect a Linksys box to work.  Be sure to leave the &#8220;Auto Add a firewall rule to permit traffic through this NAT rule&#8221; at the bottom checked.  This will create a matching rule on the WAN side to allow traffic along with the rule to bring the traffic from the WAN to your destination computer.</li>
<li>You can see each interface&#8217;s status by going to Status -&gt; Interfaces.  If you are on a PPPoE or PPTP connection, you can disconnect and reconnect from this page.  If you are using DHCP, you can also release and renew your IP here.</li>
<li>If you run into trouble performing port forwarding, you can access the system firewall logs via Status -&gt; System Logs.  Be sure to turn on Logging on your rules so you can see new connections as they are being performed.</li>
<li>If you&#8217;re having problems with a specific host, you can access a packet capture utility via Diagnostics -&gt; Packet Capture</li>
<li>If you want to diagnose upstream Internet connectivity issues, you can access Traceroute via Diagnostics -&gt; Traceroute. and a ping utility via Diagnostics -&gt; Ping</li>
<li>Like numbers and graphs? Check out the system traffic graph (Status-&gt; Traffic Graph) and the system RRD graph (Status -&gt; RRD Graphs).  You may need to install the Adobe SVG viewer to view these graphs.</li>
<li>Unlike a Linksys box, it is recommended to halt the router before powering down and use the reboot function if a restart is needed.  Both options appear under Diagnostics with the labels &#8220;Halt system&#8221; and &#8220;Reboot system&#8221; respectively.</li>
</ul>
<h3>What&#8217;s next?</h3>
<p>Even in its basic configuration you already have a very powerful router on your hands.  The sky&#8217;s the limit. The pfSense installation can support a great many different configurations and options so don&#8217;t think that you&#8217;re locked into a single configuration.  Out of the box, pfSense has the software support for DHCP, DNS server, and other basic functionality as well as more things like CARP Failover, Open NTPD (Time server), OpenVPN, Remote Syslog, Traffic aggregation, and many other features that warrant exploration.</p>
<p>In a follow up article, I will explore setting up an advanced configuration, establishing a VLAN to isolate a wireless network from the wired network while still providing Internet access.  This is a useful configuration for you that like to share your Internet access but don&#8217;t want to make your home network vulnerable.</p>
<p>Happy Hacking!</p>
<p>FIRESTORM_v1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2011/11/11/networking-installing-and-configuring-pfsense-embedded/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CVS Netbook Revisited</title>
		<link>http://www.yourwarrantyisvoid.com/2011/07/25/cvs-netbook-revisited/</link>
		<comments>http://www.yourwarrantyisvoid.com/2011/07/25/cvs-netbook-revisited/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 16:42:40 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Embedded devices]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[netbook]]></category>
		<category><![CDATA[Sylvania]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=906</guid>
		<description><![CDATA[A few months ago, I posted a hardware teardown of the CVS Sylvania Netbook pictured above. After working with it and performing a lot of research on it, I promised a follow up article, and here it is.  To sum it all up, with a bit of modification to the software, a spare SD card [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-medium wp-image-751 aligncenter" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-06-17.11.07-300x225.jpg" alt="" width="300" height="225" /></p>
<p>A few months ago, I posted a hardware teardown of the CVS Sylvania Netbook pictured above. After working with it and performing a lot of research on it, I promised a follow up article, and here it is.  To sum it all up, with a bit of modification to the software, a spare SD card and a lot of patience, you can actually turn this thing into a somewhat useful Linux device.  There&#8217;s also some improvements and suggestions to be had for improving the Windows CE side of things should you decide to continue using it in its default state.</p>
<p><span id="more-906"></span></p>
<p>When I posted the original teardown, I was somewhat distressed at how little information there was for this device. There was a ton of &#8220;marketing&#8221; material online however very few real-world posts.  This appears to have changed and although most of the reviews lamblasted the device as a horrible design and underpowered, I have found that for the price I paid for it, it&#8217;s not bad at all.  In this article, we will be focusing on software because as much as I&#8217;d like to say I&#8217;ve done a lot of hardware mods to this thing, the truth of the matter is that I haven&#8217;t.  Time has continued to get away from me and I&#8217;ve had to put a lot of projects on hold.  But let&#8217;s not start this article off on a downbeat.</p>
<p>In the three months that I&#8217;ve been doing research on the Sylvania Netbook, I have uncovered a lot of information that can help turn this machine into a pretty useful piece of equipment.  The fact that it has a pretty decent battery in of itself should be of merit to justify the time invested in fine-tuning it.</p>
<h2>1: Windows CE</h2>
<p>In my research, there have been two key complaints against the Sylvania netbook in regards to a &#8220;stock&#8221; configuration.  The first complaint has been that it is running Windows CE (affectionately called &#8220;WinCE&#8221;) and the second being that the WinCE installation is really badly implemented.</p>
<ul>
<li>The key thing to remember with working with Windows CE is that <strong>Windows CE is NOT Windows like on your desktop or &#8220;normal&#8221; laptop!</strong> Windows CE was designed for small form factor devices and although it shares the same name as it&#8217;s bigger brother desktop OS, <strong>Windows CE can not run Native Windows applications.</strong> This appears to be the biggest hurdle in locating user software for the device as people will attempt to download software then when they get the software into the netbook, they are thrown off by an error message stating it&#8217;s not a &#8220;valid&#8221; application.  Consider it like taking a MacOS program designed for MacOS and attempting to get it running in Windows XP.  It ain&#8217;t gonna happen.  That being said, there <strong>is</strong> Windows CE applications out there, however the pickings are slim.</li>
</ul>
<ul>
<li>The other issue with working with the stock Windows CE installation is that the OS software is so badly implemented on the netbook that most things that should work, don&#8217;t.  Thankfully for us there is a patch available that will make things easier.  From research, the patch addresses several performance issues with the core OS, several updates to the builtin applications as well as an update to Internet Explorer.  Unfortunately, IE will still render mobile sites by default, but the rendering won&#8217;t take as long.  The patch also fixes the issue with the wireless card not being able to properly associate with WPA/WPA2 secured networks and DHCP release/DHCP renew works as expected.  I have uploaded the patch to here.  In order to install the patch, follow the below instructions. You will need a spare SD card at least 128MB in size.</li>
</ul>
<p>Here&#8217;s how to download and perform the OS update:</p>
<ol>
<li>Download the patch from here:  <a href="http://www.yourwarrantyisvoid.com/downloads/files/sylvania_smartbook_OS_update.zip" target="_blank">sylvania_laptop_OS_update.zip</a></li>
<li>Extract the executable to an SD card.</li>
<li>Insert the SD card into the Sylvania netbook.</li>
<li>Browse to the SD card slot (Computer -&gt; SD Card)</li>
<li>Launch the patch and follow the on screen prompts.</li>
</ol>
<h2>2:On the Linux side of things&#8230;</h2>
<p>When I did my original research, I was fortunate to have come by a site dedicated to a Linux distribution made solely for the WM8505 series devices like the Sylvania Netbook. The site and the distribution were called Bento Linux and much like the Japanese namesake, the distribution was very small and was designed to be able to run within the computer&#8217;s limited spec.  Unfortunately, the site www.bento-linux.org no longer exists but thankfully I still have the documentation and files needed to pull it off.  If you are the owner of bento-linux.org and are willing to give me the site files, I would be more than happy to host it here. Please contact me in the comments.</p>
<p>One of the added benefits of Bento-Linux is that unlike some replacement OS installations, this is a sidecar installation meaning that all work is done on the SD card.  If you want to boot to Windows CE, halt the Linux OS, pop out the SD card and power the Netbook back on and you&#8217;re up and running like nothing happened.  Although the Bento Linux site did have instructions for performing an installation to the device&#8217;s flash ram, it is not recommended as if you accidentally mess up the Linux distribution, there may be no recovery. In a sidecar installation, you can pop the SD card into another device, make your changes, and then put the SD card into the netbook and you&#8217;re up and running again.</p>
<p>Although the site claimed that the distro could run on a 512MB SD card, I will up the recommendation to at least a 2GB card.  Prices are low and SD cards are very commonplace so it&#8217;s worth it to get a larger chip.  I started out on a 2GB SD card, but later upgraded to a 4GB Microdrive and noticed a significant performance increase going from solid-state memory to a USB Microdrive. Your mileage will vary, but it is recommended to stick with an SD card first, then perform upgrades and additional installations as needed later on.  As far as USB devices are concerned, you can use any USB storage device/keydrive that is recognized by the usb mass-storage driver in Linux.</p>
<p>Please note that the version of Bento I was running is usable however it did not appear that the sound card was operational. Since I am intending to use this as an external serial console, this was not a deal breaker for me.</p>
<h3>Installation (SD Card Only)</h3>
<p>Bento-linux comes in two parts. One part is for a FAT16 partition placed at the beginning of the SD card and it contains the boot commands needed to tell u-boot (the Netbook&#8217;s bootloader) how to boot the linux kernel and the root filesystem.  The other part contains the linux kernel and the filesystem in an EXT3 filesystem and will contain all the files needed to run Linux.</p>
<ol>
<li>You will need to start with an SD card at least 1GB in size.  I used a 2GB which gave me some room to play around on and of course the bigger, the better.</li>
<li>Partition the SD card with a 20MB FAT16 partition at the beginning of the card and the rest of the disk space can be allocated for an EXT3 partition.  Do not create a swap partition.</li>
<li>Download the file <a title="FAT partition for Bento Linux" href="http://www.yourwarrantyisvoid.com/downloads/files/fatpart.tgz" target="_blank">fatpart.tgz</a> and extract it into the root of the FAT partition on the SD card.</li>
<li>Download the file <a title="EXT3 partition file for Bento Linux" href="http://www.yourwarrantyisvoid.com/downloads/files/extpart.tgz" target="_blank">extpart.tgz</a> and extract it into the root of the EXT3 partition of the SD card.</li>
<li>Unmount the card and insert into the Sylvania&#8217;s SD cardslot and power on the machine. It should boot the Bento Linux distribution</li>
</ol>
<h3>Installation (SD Card + USB stick)</h3>
<p>This setup does not require special partitioning, however it does require that the SD card be formatted FAT16.   You will also need a USB storage device formatted EXT3.</p>
<ol>
<li>Download the file <a href="http://www.yourwarrantyisvoid.com/downloads/files/fatpartusb.tgz" target="_blank">fatpartusb.tgz</a> and extract it to the root of the FAT formatted SD card.</li>
<li>Download the file extpart.tgz and extract it to the root of the EXT3 formatted USB stick (or hard drive).</li>
<li>Insert the SD card into the Sylvania&#8217;s SD slot and insert the USB stick into a free USB port on the Sylvania.</li>
</ol>
<p>In either instance, when you first boot the distro, it will simply bring you to a console prompt and you are good to go.  There are a couple of things you may want to do:</p>
<ul>
<li>(Pretty much required)  Set a root password.</li>
<li>Install fluxbox (light weight graphical interface) and wicd for wireless control.</li>
<li>Install aurora (lightweight firefox lookalike)</li>
<li>Install other applications though apt-get as desired.</li>
</ul>
<p>Although the bento-linux site is no longer in existence, it appears that all the repositories that come with the distribution point to the arm ports of the official Debian repositories.  Prior to them going offline, I saw a note about Bento-Linux had the sources for the WM8505 however it appears that VIA has recently released the sources for the WM8585/VT8505 chips that drive the netbook so if you have any custom drivers, it appears that now there is an easier method for getting the drivers compiled in.  I am not a kernel compiler expert so I can&#8217;t advise on this process, however some brief research does seem to indicate that there is some element of truth to this.</p>
<h3>Linux Impressions and final words</h3>
<p>After getting the Bento Linux distribution working comfortably in the netbook, I played around with it and made some tweaks here and there that did give some notable boost in performance.   If you are using a spinning platter form of storage, creation of a  swap file or swap partition is recommended as it will give you a performance boost.  Attempting to make a swap file on the SD card or on a solid-state USB drive are not recommended because of the performance hit when writing to these devices and also due to the issue of &#8220;burn-in&#8221; when a storage cell is written to frequently.  I found that the device works decently enough for quick tasks and light webpages however it will not handle flash at all, nor will it be able to render sites with large amounts of images.  In my testing, I was able to use this device to configure Cisco switches and other devices through a USB-Serial adapter and Linux&#8217;s &#8220;minicom&#8221; terminal emulator.</p>
<p>While I believe it was a valiant effort by Sylvania to enter into the netbook market, I do believe that they should have done more research.  The Sylvania netbook, even running Linux and with all the performance tweaks mentioned, still is easily beat by Asus&#8217; first offerings into the Netbook market. The two biggest things that seem to harm this device are the lack of RAM in the system (mine only has 128MB RAM) and the sub-par processor less than 1GHz.  If you have one, then you may be able to make it work for you, however if you are considering one, I&#8217;d stay clear.  It&#8217;s not worth the price they are asking for it at CVS.</p>
<p>A couple of comments left by Syed and Dave to the original CVS netbook post indicates that there are people out there that are able to get Android running on this device.  If you have information or an article written on how you did it, let me know in the comments.  I&#8217;m interested in trying it out and finding out what works on this machine.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2011/07/25/cvs-netbook-revisited/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Hardware Pr0n: Sylvania &#8220;netbook&#8221; from CVS</title>
		<link>http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/</link>
		<comments>http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/#comments</comments>
		<pubDate>Sat, 08 Jan 2011 07:06:29 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Embedded devices]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Hardware Pr0n]]></category>
		<category><![CDATA[Investigative Dissassembly]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[CVS]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[SD card]]></category>
		<category><![CDATA[Sylvania]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=740</guid>
		<description><![CDATA[Well, the annual gift-giving season has drawn to a close and now we are left with retailers trying to get rid of all that extra stuff that thy have left over in their inventories.  Of course as a hardware geek, I&#8217;m always on the look out for another great hack. While at my CVS I [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-746" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/cvspharmacy/"><img class="aligncenter size-full wp-image-746" title="cvslogo" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/cvspharmacy.png" alt="cvs logo" width="240" height="105" /></a></p>
<p>Well, the annual gift-giving season has drawn to a close and now we are left with retailers trying to get rid of all that extra stuff that thy have left over in their inventories.  Of course as a hardware geek, I&#8217;m always on the look out for another great hack. While at my CVS I came across a Sylvania netbook device for under $100. Even better, I got mine as an open box for only $30 making it an awesome find.  Read further to discover what this little beastie&#8217;s hiding under its hood.<span id="more-740"></span></p>
<p>The device touts itself as a &#8220;Wireless mobile internet device&#8221; and from the box, the stats are a little on the slim side. It runs Windows CE, has several USB ports, an SD card slot and a mic and headphone jack. The manager warned me to not expect a fast performing machine and that since it was an open box, CVS would not be able to take a return especially at the price I was being given. I told him that I plan on modding the device and would not need to return it.  He told me that although these devices were popular, many people were downright irate when they brought them back because of the device&#8217;s supposed horrible operability. I was still on the fence and told him that there&#8217;s a good chance I could do something with it and he sold it to me for $30 just to get rid of it and avoid having to ship it back to corporate.</p>
<div id="attachment_747" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-747" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/2011-01-06-17-08-15/"><img class="size-medium wp-image-747" title="Front of box" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-06-17.08.15-300x225.jpg" alt="Front of box" width="300" height="225" /></a><p class="wp-caption-text">Front of box</p></div>
<div id="attachment_748" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-748" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/2011-01-06-17-08-36/"><img class="size-medium wp-image-748" title="Back of Box" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-06-17.08.36-300x225.jpg" alt="Back of Box" width="300" height="225" /></a><p class="wp-caption-text">Back of Box</p></div>
<p>The box is small and light and shows the device as well as some specs on the back. I could see where the uninformed may be led to believe that this was a full blown laptop or netbook PC and purchase this instead thinking they got a bargain.  But, since I was out for hardware and not necessarily for a netbook, I knew immediately what I was getting into.  Let&#8217;s take a deeper look.</p>
<div id="attachment_749" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-749" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/2011-01-06-17-17-51/"><img class="size-medium wp-image-749" title="Closed Netbook" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-06-17.17.51-300x225.jpg" alt="Closed Netbook" width="300" height="225" /></a><p class="wp-caption-text">Closed Netbook</p></div>
<p>This image really doesn&#8217;t do much justice. This thing is SMALL.</p>
<div id="attachment_750" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-750" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/2011-01-06-17-11-37/"><img class="size-medium wp-image-750" title="Size against standard laptop" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-06-17.11.37-300x225.jpg" alt="Size against standard laptop" width="300" height="225" /></a><p class="wp-caption-text">Size against standard laptop</p></div>
<p>Here&#8217;s another pic of it sitting on my work computer. It&#8217;s roughly 1/3rd the weight, 1/3rd the height and 1/3rd the length of my lenovo T500.  Aside from the smallness of the device, I was impressed at how sturdy the device was. It&#8217;s plastic but the consruction itself was solid.</p>
<div id="attachment_751" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-751" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/2011-01-06-17-11-07/"><img class="size-medium wp-image-751" title="Netbook by itself" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-06-17.11.07-300x225.jpg" alt="Netbook by itself" width="300" height="225" /></a><p class="wp-caption-text">Netbook by itself</p></div>
<p>The keyboard is very small on this device however after typing on it for a while (this article was written on the netbook, minus image adds and minor editing) it quickly became comfortable, although don&#8217;t make any plans on speedtyping any time soon.</p>
<div id="attachment_752" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-752" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/2011-01-06-17-18-27/"><img class="size-medium wp-image-752" title="Neetbook left side" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-06-17.18.27-300x225.jpg" alt="Netbook left side" width="300" height="225" /></a><p class="wp-caption-text">Netbook left side</p></div>
<p>On the left side of the device, you will find the mic and speaker jacks as well as the SD card slot for expansion storage.  The audio is powered by a VIA VT1613 audio codec.</p>
<div id="attachment_753" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-753" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/2011-01-06-17-18-42/"><img class="size-medium wp-image-753" title="Rear of the netbook" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-06-17.18.42-300x225.jpg" alt="Rear of the netbook" width="300" height="225" /></a><p class="wp-caption-text">Rear of the netbook</p></div>
<p>The back of the device has a wired Ethernet jack, a USB port and the 9VDC power port. Nothing too special here although I would have preferred an Ethernet jack with status LEDs. (first mod, maybe?)</p>
<div id="attachment_754" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-754" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/2011-01-06-17-19-00/"><img class="size-medium wp-image-754" title="Right side of netbook" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-06-17.19.00-300x225.jpg" alt="Right side of netbook" width="300" height="225" /></a><p class="wp-caption-text">Right side of netbook</p></div>
<p>The right side has two more USB ports designated by icons as for a mouse and keyboard however my keydrive worked in all three ports without a hitch.</p>
<div id="attachment_755" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-755" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/2011-01-06-17-26-22/"><img class="size-medium wp-image-755" title="Stock desktop" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-06-17.26.22-300x225.jpg" alt="Stock desktop" width="300" height="225" /></a><p class="wp-caption-text">Stock desktop</p></div>
<p>Keeping in mind that the device runs Windows CE, I fired up the stock software. It booted quickly in under 5sec to this screen.  I was able to configure it to my network and it ran quickly however I did notice that it had a problem with getting a DHCP address. I statically set it up and everything worked out of the box via corded connectivity.  There is an update (will post an update soon) that fixes this and many other issues.  Since this article is primarily intended to focus on the hardware, I won&#8217;t go into the OS details here.</p>
<p>Now let&#8217;s crack the case open and take a look at what&#8217;s inside.</p>
<div id="attachment_756" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-756" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/2011-01-06-17-54-28/"><img class="size-medium wp-image-756" title="Bottom of netbook" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-06-17.54.28-300x225.jpg" alt="Bottom of netbook" width="300" height="225" /></a><p class="wp-caption-text">Bottom of netbook</p></div>
<p>On the bottom of the device, there are 11 visible screw holes. The 12th is hidden under the white &#8220;Windows CE&#8221; tag and will also need to be removed.</p>
<div id="attachment_757" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-757" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/2011-01-06-17-54-55/"><img class="size-medium wp-image-757" title="battery pack" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-06-17.54.55-300x225.jpg" alt="battery pack" width="300" height="225" /></a><p class="wp-caption-text">battery pack</p></div>
<p>Once you remove the two screws in front of the bulge (foreground of last photo), you can remove the battery cover exposing the small battery pack.  I have no idea if this is an LiIon pack or NiMH or just plain NiCD. Disconnect the two leads and remove the battery.  Remove all remaining screws.</p>
<p>At the top of the keyboard, there are four tabs that hold the keyboard down. Push them in gently and then gently disconnect the keyboard ribbon cable from the mainboard.</p>
<div id="attachment_758" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-758" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/2011-01-06-21-37-01/"><img class="size-medium wp-image-758" title="Keyboard removed" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-06-21.37.01-300x225.jpg" alt="Keyboard removed" width="300" height="225" /></a><p class="wp-caption-text">Keyboard removed</p></div>
<p>Once the keyboard is removed, you will see two smaller openings with ribbons. Disconnect the left one as it goes to the trackpad. Tilt the screen all the way back and you will feel it lock into position. (No, you didn&#8217;t break it.) At this point, you can carefully remove the silver bezel from the black base. Now that the bezel&#8217;s gone, disconnect the right ribbon cable from the front of the mainboard. This is the LEDs for power and keyboard indicators as well as the left and right buttons for the trackpad. Also next to the right ribbon cable, there is a single screw. Remove it as well as the four screws holding down the hinges to the monitor and this will free up the mainboard. Do not attept to disconnect the two ribbons going into the display housing. The right ribbon is the USB WiFi module which is hand soldered and the other is the ribbon which carries the video signal and is glued to the mainboard.</p>
<div id="attachment_759" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-759" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/2011-01-06-21-41-29/"><img class="size-medium wp-image-759" title="netbook mainboard" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-06-21.41.29-300x225.jpg" alt="netbook mainboard" width="300" height="225" /></a><p class="wp-caption-text">netbook mainboard</p></div>
<p>Now that the beastie&#8217;s guts are on display, let&#8217;s take a look.</p>
<div id="attachment_760" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-760" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/2011-01-06-21-43-42/"><img class="size-medium wp-image-760" title="Netbook SOC" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-06-21.43.42-300x225.jpg" alt="Netbook SOC" width="300" height="225" /></a><p class="wp-caption-text">Netbook SOC</p></div>
<p>The entire device is powered by a VIA WM8505 SOC with a 2GB flash chip and 128MB RAM. Those extra pins have got to be used for something fun&#8230;</p>
<div id="attachment_761" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-761" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/2011-01-06-21-44-59/"><img class="size-medium wp-image-761" title="VIA Audio" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-06-21.44.59-300x225.jpg" alt="VIA Audio" width="300" height="225" /></a><p class="wp-caption-text">VIA Audio</p></div>
<p>As mentioned earlier, a VT1613 Audio codec provides sound.</p>
<div id="attachment_762" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-762" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/2011-01-06-21-45-27/"><img class="size-medium wp-image-762" title="Netbook Network IC" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-06-21.45.27-300x225.jpg" alt="Netbook Network IC" width="300" height="225" /></a><p class="wp-caption-text">Netbook Network IC</p></div>
<p>An IC IP101A chip provides us the 10/100 networking.</p>
<div id="attachment_763" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-763" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/2011-01-06-21-45-48/"><img class="size-medium wp-image-763" title="Keyboard Controller" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-06-21.45.48-300x225.jpg" alt="Keyboard Controller" width="300" height="225" /></a><p class="wp-caption-text">Keyboard Controller</p></div>
<p>The feared epoxy blob, in this case appears to be the keyboard controller.</p>
<div id="attachment_764" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-764" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/2011-01-06-21-46-32/"><img class="size-medium wp-image-764" title="Unpopulated header" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-06-21.46.32-300x225.jpg" alt="Unpolulated header" width="300" height="225" /></a><p class="wp-caption-text">Unpopulated header</p></div>
<p>What do we have here? An unpopulated header with two wires that run straight from the SOC to the header. Perhaps this is a 3.3v serial port?</p>
<div id="attachment_765" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-765" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/2011-01-06-22-07-20/"><img class="size-medium wp-image-765" title="Trackpad" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-06-22.07.20-300x225.jpg" alt="Trackpad" width="300" height="225" /></a><p class="wp-caption-text">Trackpad</p></div>
<p>This is the touchpad from the bottom. It is a Cypress CY8C214 and ironically enough is also the controller Apple uses in their Ipods. Now that we&#8217;ve disassembled the base unit, it&#8217;s time to take a look at what&#8217;s under the display bezel.  You can get at the screws holding the display bezel together by removing the four black rubber stops at the corners and the screws that lie beneath them.  Once removed, the bezel is easily separated by the use of a spudger or small common screwdriver.   Once revealed, you can see the display, the display controller board and power switch, the two tiny speakers and the wifi card in the top right hand corner.</p>
<div id="attachment_766" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-766" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/2011-01-07-23-03-42/"><img class="size-medium wp-image-766" title="Display Module" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-07-23.03.42-300x225.jpg" alt="Display Module" width="300" height="225" /></a><p class="wp-caption-text">Display Module</p></div>
<p>Now, I&#8217;ve seen all kinds of weirdness when it comes to the internals of laptops however this one had me floored.  The wifi card was not a &#8220;card&#8221; but more like a USB dongle that had the connector ripped off and replaced by a long cable to the mainboard.  The downside is that this is a very cheap move on the part of the manufacturer but the upside is that you can pretty much replace this USB dongle with one of your liking later on.  It appears that the stock card is a Ralink RT2070L chip and should be well supported in Linux.</p>
<div id="attachment_767" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-767" href="http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/2011-01-07-23-04-10/"><img class="size-medium wp-image-767" title="USB wifi" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-07-23.04.10-300x225.jpg" alt="USB Wifi" width="300" height="225" /></a><p class="wp-caption-text">USB Wifi</p></div>
<h2>In Summary&#8230;</h2>
<p>So after spending a couple of days working on it, I was able to locate a firmware update for the Windows CE device.  This update fixes the DHCP issue that previously required me to set a static IP for wifi and for ethernet connectivity.  There were some noticeable speed improvements to the device.  I have been able to get Debian Linux to boot off an SD card on the device and also have managed to get the onboard Ethernet to work.  I have also been able to get the device to start a blackbox X session and installed Iceweasel however the speed for page loads and views is very slow so performance will need to be tuned. Once I have it tuned properly and performance is decent, I&#8217;ll post the updated image to the site so you can download and enjoy.</p>
<p>All in all, I think this is an excellent find at the $30 I paid for it. It is  comprable to the Dockstars I have but even at $100 retail it&#8217;s got a lot of potential to make it worth the cash. Just be sure to download and install the Windows CE update as soon as you get it. This will help you avoid a lot of headache later on trying to get the thing to talk to your LAN. As soon as I have more resources, I&#8217;ll post a followup article with links for downloading the updates as well as the linux images.</p>
<p>Just in case you missed it, let&#8217;s go over the details:</p>
<ul>
<li>Display: HL 070 TN92 &#8211; Unknown Manufacturer -  800&#215;480 May be TFT?</li>
<li>Battery: Unknown Metal, 1800mAh 8.4v</li>
<li>Charger: 9VDC, 1500mA positive tip.</li>
<li>System Processor: WonderMedia WM8505+ (linux identifies as an ARM936EJ-S rev 5), unknown speed.  Research points anywhere from 200MHz to 600MHz.</li>
<li>System RAM:  128MB SDRAM, unknown manufacturer. Chip number: NY64X161043</li>
<li>System Flash: 2GB cumulative (WinCE partitions 500MB for system and 1.5G for storage) &#8211; Samsung K9GAG08U0</li>
<li>SD expansion port</li>
<li>Audio: VIA1613 codec</li>
<li>Ethernet: 10/100 provided by ICIP101A</li>
<li>Stock OS: Windows CE 6.0</li>
</ul>
<p>If you&#8217;ve done any mods to your netbook, post a comment! There&#8217;s a lot of &#8220;reviews&#8221; but no real modifications yet to speak of. Hopefully this cheap starter will open up some good ideas.</p>
<p>Happy Hacking!</p>
<p>FIRESTORM_v1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2011/01/08/hardware-pr0n-sylvania-netbook-from-cvs/feed/</wfw:commentRss>
		<slash:comments>55</slash:comments>
		</item>
		<item>
		<title>GUIDemo &#8211; A full VGA Library for the Propeller</title>
		<link>http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/</link>
		<comments>http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/#comments</comments>
		<pubDate>Fri, 19 Nov 2010 06:12:04 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Embedded devices]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[Parallax]]></category>
		<category><![CDATA[propeller]]></category>
		<category><![CDATA[PS/2]]></category>
		<category><![CDATA[VGA]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=686</guid>
		<description><![CDATA[The Parallax VGA GUI Demo is great for adding a pre-built GUI for your projects. The bonus is that the drivers for using a PS/2 keyboard and mouse and a VGA display are pre-built and ready to run.  With a little bit of configuration, you can add a well built UI to your application and [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-79" href="http://www.yourwarrantyisvoid.com/2009/08/31/parts-parallax-vgadual-ps2-breadboard-adapter/parallax_logo/"><img class="aligncenter size-medium wp-image-79" title="parallax_logo" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2009/08/parallax_logo-300x97.jpg" alt="" width="300" height="97" /></a></p>
<p>The Parallax VGA GUI Demo is great for adding a pre-built GUI for your projects. The bonus is that the drivers for using a PS/2 keyboard and mouse and a VGA display are pre-built and ready to run.  With a little bit of configuration, you can add a well built UI to your application and make it easier to display output and receive input from the user.</p>
<p>In this article, I will demonstrate some of the basic options that are needed in order to get the GUI up and running.  While our application is going to be turning on a few LEDs, once you have these basics down you should be able to use this article and build whatever user elements are required for your application.<span id="more-686"></span></p>
<h1>Prerequisites:</h1>
<p>If you haven&#8217;t already, I would recommend the Parallax PS/2 and VGA Adapter board. This board provides two PS/2 ports (mouse and keyboard) and a 15 pin VGA port in an easy to use modular design that is breadboard compatible.  Here is a <a href="http://www.parallax.com/Store/Accessories/CablesConverters/tabid/166/CategoryID/40/List/0/SortField/0/catpageindex/2/Level/a/ProductID/583/Default.aspx" target="_blank">link to the VGA board on Parallax&#8217;s site</a> and here is the link to <a href="http://www.yourwarrantyisvoid.com/2009/08/31/parts-parallax-vgadual-ps2-breadboard-adapter/" target="_blank">my earlier article</a>.</p>
<p>In addition to the Adapter Board, you will need<br />
- A PS/2 mouse (Not a USB mouse with a PS/2 adapter)<br />
- A PS/2 keyboard (Not a USB keyboard with a PS/2 adapter)<br />
- A 15 pin VGA monitor<br />
- six LEDs, any color<br />
- six 100 ohm resistors (Brown-Black-Brown)<br />
- Jumper Wires for the Adapter board<br />
- A PC with USB port for the PropPlug USB programmer.<br />
- 9V Battery or other 9VDC power source</p>
<h1>Understanding the concept of a UI</h1>
<p>Before we get started, let&#8217;s discuss the basic differences between a Prompt and a UI.</p>
<p>A Prompt:</p>
<ul>
<li> &#8211; asks for something direct like &#8220;Your Name&#8221;</li>
<li> &#8211; Reads the response, Input halts until requirement satisfied, e.g. (Press any key to continue)</li>
<li> &#8211; Treats the response as programmed, e.g. $YourName</li>
<li> &#8211; is programmed in a linear fashion. e.g. You prompt for your name, then you prompt for your address, then you prompt for your date of birth, etc&#8230;</li>
</ul>
<p>A GUI:</p>
<ul>
<li>Shows multiple items to interact with</li>
<li> Reads a response when triggered with an event and does not wait.</li>
<li>Performs actions based on event triggers.</li>
<li>Can perform actions in a non-linear fashion. e.g. Clicking Button 1, Button 3, Button 2, Button 6, Button 1 again.</li>
</ul>
<p>Remember, although a GUI can contain prompts (&#8220;Click OK to Continue&#8221;), it&#8217;s not often that a prompt becomes a GUI. Also remember that a GUI is Event driven, not prompted.</p>
<h2>Events</h2>
<p>It&#8217;s important to understand that performing any action with the mouse and keyboard triggers an event. It&#8217;s when the event (in most cases, a mouse click) occurs on a GUI element (a checkbox for example), we get something to happen.  By programming the Parallax GUI Demo, you will build GUI Elements (things to click on or type into) using Mouse and Keyboard Events in order to generate some kind of output (Lighting LEDs).</p>
<p>Keep this in mind, as generating events and how to deal with them are the cornerstone of any GUI programming (not just Parallax!).</p>
<h2>Elements</h2>
<p>Mouse events are nothing without something to interact with, so that brings us to the point where we have to talk about the GUI. Each object in a GUI, checkboxes, menu items, windows, submit buttons, etc. are all considered elements of the GUI. We build the GUI using elements to satisfy our program&#8217;s needs.  For the &#8220;What is your name?&#8221; prompt, we would need a window element (with a Window Title element), a text element saying &#8220;What is your name?&#8221;, a text field element (so we can get the name back to the program) and a submit button element.  That&#8217;s Five elements! Thankfully, only two of them are interactive.  The text field needs to be clicked on (to tell the GUI that keyboard input goes here), and the Submit button needs to be clicked on to tell the program to continue.</p>
<p>Even though we started out with five elements, thankfully we only have to code for two events.</p>
<p>Below is a screenshot of various elements that the Parallax UI is able to generate.</p>
<div id="attachment_688" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-688" href="http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/dscf2001/"><img class="size-medium wp-image-688" title="Parallax VGA Demo Screenshot" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/DSCF2001-300x225.jpg" alt="Parallax VGA Demo Screenshot" width="300" height="225" /></a><p class="wp-caption-text">Parallax VGA Demo Screenshot</p></div>
<p>In this screenshot, we can see the following interactive elements:<br />
- Spin Boxes &#8211; A single element with up and down arrows that allow you to select from a list of predefined options. (like a Page Count field on a Print window)<br />
- Checkboxes &#8211; A listed series of predefined options that allow for multiple options to be selected.<br />
- Radio Buttons &#8211; A listed series of predefined options that allow only a single option be selected.<br />
- Pushbuttons &#8211; A single element that is clickable (like a submit button).<br />
- Menu Bar &#8211; A horizontal element containing multiple pushbuttons.<br />
- A Text Input field &#8211; Another horizontal element that takes input from the keyboard.</p>
<p>We also see the following non-interactive but still needed elements:<br />
- Windows &#8211; We need windows to keep these elements organized, otherwise it doesn&#8217;t work too well.<br />
- Status Lamps &#8211; Think of these as the GUI equivalent to an LED and resistor. They can be toggled on or off.</p>
<p>Now that we know what all the elements are, let&#8217;s do something.</p>
<h2>Getting the hardware ready</h2>
<p>Connect the 15 pin VGA/PS2 breakout kit to the lower right hand corner of the breadboard as shown in the image below. The breadboard should be oriented as shown with the PropPlug mounted on the top, usb cable pointing right. You can then connect the 12 pins straight across (watch out for the crystal) to the 12 pins on the right hand side of the Propeller (P16-P27).  Attach the Vss lead to any of the Vss busses (black lines) on your breadboard.</p>
<div id="attachment_689" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-689" href="http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/dscf2003/"><img class="size-medium wp-image-689" title="VGA adapter hooked up" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/DSCF2003-300x225.jpg" alt="VGA adapter hooked up" width="300" height="225" /></a><p class="wp-caption-text">VGA adapter hooked up</p></div>
<p>In order to get the required +5V for the PS/2 mouse and keyboard, look closely at the two voltage regulators at the top of the board. There is an LM2940 (back regulator on the picture below) that provides the 5V and a LM2937 (front regulator) which provides a 3.3V source for the Propeller. Be sure to attach to the OUTPUT of the LM2940 as shown in the picture below.  As a hint, my wire is in the third horizontal row from the top of the LM2940 which is its output lead.</p>
<div id="attachment_690" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-690" href="http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/dscf2004/"><img class="size-medium wp-image-690" title="+5V location" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/DSCF2004-300x225.jpg" alt="+5V location" width="300" height="225" /></a><p class="wp-caption-text">+5V location</p></div>
<p>DO NOT CONNECT YOUR +5V LEAD TO THE +9V BATTERY OTHERWISE DAMAGE TO THE PROPELLER, MOUSE AND KEYBOARD MAY RESULT.</p>
<p>After you have the VGA adapter connected, hook up the LEDs so that the cathodes go to ground and the anodes run through the 100ohm resistors to P0-6 as shown below.</p>
<div id="attachment_691" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-691" href="http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/dscf2005/"><img class="size-medium wp-image-691" title="LED connection" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/DSCF2005-300x225.jpg" alt="LED connection" width="300" height="225" /></a><p class="wp-caption-text">LED connection</p></div>
<h2>Get the software</h2>
<p>If you haven&#8217;t already done so, download the VGA Text GUI Demo from here:  <a href="http://obex.parallax.com/objects/413/" target="_blank">http://obex.parallax.com/objects/413/</a></p>
<p>Unzip the archive, load it up in your Propeller Tool application and load it into RAM to save write cycles on your EEPROM.  If everything works properly, you should be able to move the mouse, click on things and be able to type text in to the &#8220;COMMAND&#8221; field at the bottom. Play around with it for a bit and get used to how the elements interact with each other.  If you want to ensure that your wiring is correct, read the GUIDEMO and GUIBASE section below.</p>
<p>Before proceeding, it&#8217;s recommended to make a backup of the unzipped Propeller VGA demo so that you will have something to refer to in case you accidentally delete part of the demo application. Load the copy of the code for the next step and leave the original copy untouched.</p>
<h1>Hacking up the Code</h1>
<p>Now that you&#8217;re up and running with the test code, let&#8217;s take a look at the existing code and start modifying it.  We&#8217;ll cover important aspects of the existing code along the way. In our application, we will be using the UI to draw a simple window containing six checkboxes that correspond to the six LEDs we have installed.  Once finished, when we check a box, it will light the corresponding LED. If we clear that checkbox, it will extinguish the LED.</p>
<p>So let&#8217;s get started.</p>
<h2>GUIDEMO.spin</h2>
<p>The GUIDemo.spin file is considered the &#8220;Top Level&#8221; or &#8220;root&#8221; (if you&#8217;re a Linux admin like I am) of the entire  application. This file references sub-codebases through  an OBJ (Object) declaration. Although Parallax called it Top Level, I have always referred to it as the &#8220;root&#8221; as in the root of the project much like the root of a filesystem.</p>
<p>Without getting into the syntax of Spin (the Propeller coding language, a topic that Parallax is much better suited for than I am) just know that this is the trunk of the tree as far as all other pieces of code in the VGA Demo are concerned.</p>
<div id="attachment_692" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-692" href="http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/codeheirachy/"><img class="size-medium wp-image-692" title="Code Heirachy" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/CodeHeirachy-300x286.jpg" alt="Code Heirachy" width="300" height="286" /></a><p class="wp-caption-text">Code Heirachy</p></div>
<p>Starting at the top of the GUIDemo.spin file, you see a secion labeled CON. This is for the constants that GUIBase uses to initialize the PS/2 mouse and keyboard and the 15pin VGA port.</p>
<p>The vga_base should point to the I/O pin that is connected to the &#8220;V&#8221; pin of the PS/2 VGA adapter. The GUIBase will assume that the rest are mapped accordingly.  If you are using something other than the Parallax adapter, you will want to ensure that your adapter is wired up as shown below:</p>
<p>I/O Pin        Function<br />
P16        V &#8211; Vertical Scan<br />
P17        H &#8211; Horizontal Scan<br />
P18        B0 &#8211; Blue Positive?<br />
P19        B1 &#8211; Blue Neutral?<br />
P20        G0 &#8211; Green Positive?<br />
P21        G1 &#8211; Green Neutral?<br />
P22        R0 &#8211; Red Positive?<br />
P23        R1 &#8211; Red Neutral?</p>
<p>* Please note, the ?&#8217;s mean I&#8217;m not certain on polarity, but I am sure on the grouping. The reason is that I only have the Parallax VGA adapter so I haven&#8217;t tried to fabricate my own adapter.</p>
<p>The mouse and keyboard each require two pins, &#8220;dat&#8221; and &#8220;clk&#8221;.  The Parallax Adapter has each pin&#8217;s function silkscreened onto the adapter&#8217;s PCB for easy connection and are mapped as shown below:</p>
<p>I/O Pin        Function<br />
P24        Mouse Data<br />
P25        Mouse Clock<br />
P26        Keyboard Data<br />
P27        Keyboard Clock</p>
<p>If you&#8217;re using Parallax&#8217;s VGA adapter, then make sure that your values match what is shown above.  If you are using another adapter, make sure that the values match your respective device&#8217;s pins.</p>
<p>The OBJ section is where we declare any additional code that needs to be included. In the original code, you can see there are three objects declared (GUI, TMRS and NUMS) however for our program, we only need the first one (GUI).  Delete the two lines starting with TMRS and NUMS highlighted in the green square in the image below.</p>
<div id="attachment_693" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-693" href="http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/externalobjects/"><img class="size-medium wp-image-693" title="External Objects" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/ExternalObjects-300x198.jpg" alt="External Objects" width="300" height="198" /></a><p class="wp-caption-text">External Objects</p></div>
<p>When it comes time for you to add your own routines, you can include them here by defining them as objects. For now, just scroll down to the next section.</p>
<p>The VAR section is important because the code shows that all of the interactive elements in the GUI require a byte be assigned to them. This is important as this is how the GUI keeps track of what element is called when an event is triggered. It is critical to remember when you are designing your own GUI, that each interactive element has it&#8217;s own unique ID. This will be important later when we tie the elements into events. For now, remove all the declared bytes and add the below in it&#8217;s place:</p>
<div id="attachment_694" class="wp-caption aligncenter" style="width: 265px"><a rel="attachment wp-att-694" href="http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/varbytes/"><img class="size-medium wp-image-694" title="Variable Bytes" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/VARbytes-255x300.jpg" alt="Variable Bytes" width="255" height="300" /></a><p class="wp-caption-text">Variable Bytes</p></div>
<p>In the above image, we are declaring six CHKB elements numbers 1 through 6.  The naming convention is important as there is code later on where these get defined.</p>
<p>Scroll down to the PUB statement below. This section is the actual code of the program and where we will be doing most of the editing.  First off, make sure that you can see between the CreateUI statement and the PUB statement (top of the blue section of code as pictured below. We will be removing the code there as it was used with the timers code object (that we removed) was initialized at start.  Just like before, delete all the code within the green box. It&#8217;s not needed and will generate errors if you attempt to compile it.</p>
<div id="attachment_695" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-695" href="http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/pubdelete/"><img class="size-medium wp-image-695" title="PUBlic function to delete" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/PUBdelete-300x194.jpg" alt="PUBlic function to delete" width="300" height="194" /></a><p class="wp-caption-text">PUBlic function to delete</p></div>
<p>We will replace the deleted code with our own code. This  is the initialization code for our application and occurs prior to the GUI being set up. All our code does is ensure that the first six I/O pins (P0-P5) are set as outputs and are set low so that the LEDs are off.</p>
<p>When you are developing your own program, be sure that the initialization code occurs before the CreateUI statement for best results.</p>
<div id="attachment_697" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-697" href="http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/pubadd/"><img class="size-medium wp-image-697" title="PUBlic INIT code to add" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/PUBadd-300x159.jpg" alt="PUBlic INIT code to add" width="300" height="159" /></a><p class="wp-caption-text">PUBlic INIT code to add</p></div>
<p>At this point, we have removed excess objects from our code and declared six variables for our checkbox elements and we have initialized the LEDs. Now we will tell the application what to do when an event has been triggered in order to get the LEDs to light up.</p>
<p>If you look at the code, you will notice that it is a very large repeat loop that contains a case loop inside it. The way it works is that the Propeller will constantly evaluate GUI.ProcessUI. When evaluated, it will check gx against the list of elements and if gx matches a defined element ID, it will then perform the appropriate action.</p>
<p>For now, start at the line that reads &#8220;case gx&#8221; and highlight the text down until you get to the &#8220;START OF UI HELPER FUNCTIONS&#8221;. Since we are not using the demo code in our application, we can safely remove it.</p>
<p>Once removed, add the code in the below image to tie in the events with our custom function. (We&#8217;ll write it next).</p>
<div id="attachment_696" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-696" href="http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/pubevents/"><img class="size-medium wp-image-696" title="Public Events to add" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/PubEvents-300x162.jpg" alt="Public Events to add" width="300" height="162" /></a><p class="wp-caption-text">Public Events to add</p></div>
<p>In the above code, we are calling LEDFunction with a different parameter corresponding to each of the six LEDs. Now we need to write the function LEDFunction so it actually does something.</p>
<p>In your application, you may end up writing all of your code in another .spin file and then using an OBJ to declare it.  If you do that, then you can reference your OBJ functions instead of using a basic function here.</p>
<p>Start off by copying that CON statement and inserting it into the empty space. This will create a line we can use when reading the code to make it easier.  Change it from &#8220;UI HELPER FUNCTIONS&#8221; to &#8220;UI APPLICATION FUNCTIONS&#8221; and add the below code as shown.</p>
<div id="attachment_698" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-698" href="http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/prifunction/"><img class="size-medium wp-image-698" title="PRIvate Function to add" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/PRIFunction-300x115.jpg" alt="PRIvate Function to add" width="300" height="115" /></a><p class="wp-caption-text">PRIvate Function to add</p></div>
<p>In this section of code, we will write our function for the events.  All we are doing is taking the function&#8217;s parameter and inverting it&#8217;s existing value. If it&#8217;s 1 (on) it is then set 0 (off) and vice versa.  Although we return the value of the I/O pin, it is not used elsewhere and will get overwritten elsewhere.</p>
<p>Scroll further down and we finally get to the CreateUI function.  This is where the UI gets built and the bytes for the elements earlier get defined.</p>
<p>We can see that there are a lot of commands listed here. Don&#8217;t let that intimidate you as we are going to remove most of them. Find the line that starts off with &#8220;vga_cols&#8221; and highlight all the way down to the MIT License.  Remove the code and add the code in the picture.</p>
<div id="attachment_699" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-699" href="http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/guicode/"><img class="size-medium wp-image-699" title="GUI Code to add" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/GUICode-300x141.jpg" alt="GUI Code to add" width="300" height="141" /></a><p class="wp-caption-text">GUI Code to add</p></div>
<p>This code draws out the Text box for our project and gives it a text label. Don&#8217;t worry about the syntax, we&#8217;ll cover that in the GUI CODE section later.</p>
<p>Basically what happens here is that a Simple Box (SBOX) gets drawn with the title of &#8220;LEDs&#8221;.  Inside that box, six checkboxes are drawn, each with their own text description. Pretty straightforward on the UI, right?</p>
<p>We&#8217;re almost done and ready to test our new GUI.</p>
<h2>GUIBASE</h2>
<p>Now, there&#8217;s one more thing we need to do before we go loading this project into RAM and seeing if it works. We need to make an edit to GUIBase.<br />
At the very top of GUIBase, in the CON section, you can see that there is a note describing the GUI Element Inventory that must be present.  We need to edit the code and tell GUIBase that we&#8217;re only using six checkboxes.  However, as the note describes, we can&#8217;t just go set GZ_CHKB to 6 and all others to 0, as this would throw a compiler error.</p>
<p>Go ahead and set all of the GZ_ variables to 1 except for GZ_CHKB which will get a value of 6 since we have six LEDs as shown below.</p>
<div id="attachment_700" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-700" href="http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/guibase/"><img class="size-medium wp-image-700" title="GUIBase changes" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/GUIBase-300x145.jpg" alt="GUIBase changes" width="300" height="145" /></a><p class="wp-caption-text">GUIBase changes</p></div>
<p>Once modified, be sure to save your work and then go to &#8220;Run&#8221;, Compile Top, Load RAM.  You should get something like the below image on your display.</p>
<div id="attachment_701" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-701" href="http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/dscf2006/"><img class="size-medium wp-image-701" title="Our GUI LED demo" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/DSCF2006-300x225.jpg" alt="Our GUI LED demo" width="300" height="225" /></a><p class="wp-caption-text">Our GUI LED demo</p></div>
<p>If all went well and you didn&#8217;t get a compiler error, you should get this GUI.  The little green square is the mouse cursor.  Go ahead and try it out. Make sure that checking each checkbox lights up an LED and that clearing the checkbox turns it off.</p>
<p>Now that we&#8217;ve got a working GUI up and running, let&#8217;s review what all we did aside from removing a lot of extra stuff.</p>
<ul>
<li>We declared a byte for each GUI element.</li>
<li>We added initialization code.</li>
<li>We added a declaration in the main loop to handle events from the UI to point to our function</li>
<li>We wrote a function that did something based on the events we had given it.</li>
<li>We updated GUIBase with the element count so that the GUI code knew how much it had to work with.</li>
</ul>
<p>These are the fundamental steps for creating a UI with the propeller using the GUIBase code. Now that you understand the basics as far as what is required, let&#8217;s take a look at some other stuff you can do too.</p>
<h1>Looking further into the GUI Code</h1>
<p>In the GUIBase.spin file, you can find the code required to draw the various elements of your GUI.  Reading through the code,  most of the options required are in terms of position.  For example, the code for the simple box (window) shown earlier, required an X and Y coordinates (in rows/cols) to place the upper left hand corner of the UI, then the width and length of the box and a title.  The Checkboxes each required an X and Y coordinate, then a text length and finally a label.</p>
<p>If we were to use a Radio Button group, we would need to provide an X and Y coordinates, a text length, a text label and a Group ID.  The Group ID is used to associate the radio buttons together.  Below is a screenshot of my implementation along with an Apply button:</p>
<div id="attachment_702" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-702" href="http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/pushbuttoncode/"><img class="size-medium wp-image-702" title="Radio Buttons and Pushbutton code" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/PushbuttonCode-300x81.jpg" alt="Radio Buttons and Pushbutton code" width="300" height="81" /></a><p class="wp-caption-text">Radio Buttons and Pushbutton code</p></div>
<p>In the above code, you can see that I have established five radio buttons (RADIO1 to RADIO5) in addition to PUSHBTN1 pushbutton. These are set up in the main loop below:</p>
<div id="attachment_703" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-703" href="http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/pushbuttoncodeandfunctions/"><img class="size-medium wp-image-703" title="Push Button UI Code and Functions" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/PushButtonCodeandFunctions-300x252.jpg" alt="Push Button UI Code and Functions" width="300" height="252" /></a><p class="wp-caption-text">Push Button UI Code and Functions</p></div>
<p>In the above code, you can see that the SetLEDStorage passes a number which gets stored in LEDState. When the Apply button is pressed, CommitLEDs takes LEDState and sets the six LEDs to the binary value of whatever was in it.  Below is what the UI looks like:</p>
<div id="attachment_704" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-704" href="http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/dscf2011/"><img class="size-medium wp-image-704" title="Radio Button GUI" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/DSCF2011-300x225.jpg" alt="Radio Button GUI" width="300" height="225" /></a><p class="wp-caption-text">Radio Button GUI</p></div>
<p>Just like adding the checkboxes, I followed those same steps here:</p>
<ul>
<li> &#8211; I declared my additional UI elements&#8217; GUID bytes (RADIO1 to RADIO5), my Radio Button group (RBGID1), my  pushbutton (PUSHBTN1) and my LEDState variable.</li>
<li> &#8211; I added my init code (setting LEDState to 0, not pictured)</li>
<li> &#8211; I added routines for my elements to call user functions. (SetLEDStorage and CommitLEDs)</li>
<li> &#8211; I declared the routines so that they did something (stored the LED value, applied the value to the first six I/O pins)</li>
<li> &#8211; I updated GUIBase.spin with the new list of items ( added five radiobuttons and one pushbutton.)</li>
</ul>
<p>Give the code a try and you will see that while the checkboxes set the LED state instantly, the radio buttons do nothing until they are applied with clicking on the Apply button. This is important because as you design your GUI, you will need to decide if something must happen when the mouse is clicked right then (immediate action) or if the action will get applied later on via an &#8220;Apply&#8221; button. This is entirely up to you and there is no need to do things only one way.  Either method works but whether or not it works properly for your application will be your choosing.</p>
<h1>Tips and Tricks, and things to watch out for</h1>
<p>While developing this article, there were a couple of things I came across that you may want to watch out for. Don&#8217;t worry, you won&#8217;t blow up your Prop if you make a mistake in coding, however there are a few things you may want to keep an eye on:</p>
<ul>
<li>- Load to RAM, load to RAM, load to RAM and check your battery.<br />
In my writing this article, I found out real quick that driving a display, mouse and full size keyboard will drain a 9V transistor battery very quick.  A symptom of this drain is the Green LED that is present on the Propeller Education Kit. If it starts to pulse and your monitor loses sync, it&#8217;s time for a new 9V or consider a 5V USB power cord. Also, to save write cycles on the EEPROM, load to RAM whenever possible. Your computer&#8217;s hard  drive is more suited to incremental saves, EEPROMs are not.  Only save to EEPROM when you are ready to test your application in real life.</li>
<li>- There is no boundary checking.  If you overlap your windows, then there is no going back. When in doubt, you can use the Mouse code to print the mouse coordinates on your project to help you identify and troubleshoot positioning.  Remember that all GUI elements start by defining the upper left hand corner of the element. You will need to include the NUMS object (SimpleNumbers.spin) and the code from the original GUIDEMO.spin (lines 314 to 316) in order to have it show up.  You can see an example of the boundary overlap in the below image.</li>
</ul>
<div id="attachment_705" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-705" href="http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/dscf2012/"><img class="size-medium wp-image-705" title="Button overlaps window" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/DSCF2012-300x225.jpg" alt="Button overlaps window" width="300" height="225" /></a><p class="wp-caption-text">Button overlaps window</p></div>
<ul>
<li>- There is no off-edge boundary checking either.  If you are setting a text field too far right of the video display or too far down, it will get cut off and your entire GUI will not work right.  In this case, I set the Predefines window to X40,Y75 and 25 columns wide which was out of the limits of the current VGA resolution.  The below image was the result and my UI only partially worked.  Resetting and reloading RAM fixed it.</li>
</ul>
<div id="attachment_706" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-706" href="http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/dscf2013/"><img class="size-medium wp-image-706" title="Window moved out of range" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/DSCF2013-300x225.jpg" alt="Window moved out of range" width="300" height="225" /></a><p class="wp-caption-text">Window moved out of range  </p></div>
<ul>
<li>- Also as demonstrated in the image above, UI elements are not bound to the window you create them under. Assuming that both windows were same size and I mis-typed the coordinates, the Apply button could very easily show up under the checkboxes instead of the radio buttons leading to a confusing display.  You will want to make sure that your UI elements do not overlap at all as this could affect how the UI interprets your mouse actions.</li>
</ul>
<h1>Last Thoughts</h1>
<p>There is so much you can do with the Propeller UI to make your applications more interactive.  With little work, you could build something like a serial terminal and embed your project in an LCD monitor or you could make a basic home automation system with a touchscreen LCD and a wireless transceiver. The possibilities are endless and with the Propeller, you can now use full GUI capability with keyboard and mouse support.</p>
<p>As always, Happy Hacking!</p>
<p>FIRESTORM_v1</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 3785px; width: 1px; height: 1px;">http://www.yourwarrantyisvoid.com/2009/08/31/parts-parallax-vgadual-ps2-breadboard-adapter/</div>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2010/11/19/guidemo-a-full-vga-library-for-the-propeller/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Dead Dockstar Resurrected with JTAG!</title>
		<link>http://www.yourwarrantyisvoid.com/2010/09/08/dead-dockstar-resurrected-with-jtag/</link>
		<comments>http://www.yourwarrantyisvoid.com/2010/09/08/dead-dockstar-resurrected-with-jtag/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 17:08:38 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Embedded devices]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Dockstar]]></category>
		<category><![CDATA[JTAG]]></category>
		<category><![CDATA[seagate]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=595</guid>
		<description><![CDATA[The reason I haven&#8217;t written any more about my fun with the Dockstar was that due to an unfortunate set of circumstances I was left with a bricked dockstar. (read: I did something stupid.)  After performing a lot of research and thanks to a bunch of people over at the PlugApps.com Forum site who helped [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/Dead-Dockstar-plus-JTAG-equals-WIN.jpg"><img class="aligncenter size-full wp-image-594" title="Dead Dockstar plus JTAG equals WIN" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/Dead-Dockstar-plus-JTAG-equals-WIN.jpg" alt="Hey, I never said I was a graphics designer.  This was created in MS Paint after 15 minutes searching for a zombie icon and a JTAG icon or an angel I could slap JTAG over. " width="473" height="76" /></a></p>
<p>The reason I haven&#8217;t written any more about my fun with the Dockstar was that due to an unfortunate set of circumstances I was left with a bricked dockstar. (read: I did something stupid.)  After performing a lot of research and thanks to a bunch of people over at the <a href="http://plugapps.com/forum" target="_blank">PlugApps.com Forum site</a> who helped me, I was able to get it running.  Read more for a complete list of what you will need including how to build an adapter and where to get the needed JTAG kit.<span id="more-595"></span></p>
<h2>Before we begin</h2>
<p>This document demonstrates how to recover your Dockstar and upload a custom bootloader to it using a JTAG cable.  JTAG is used for low-level in-circuit debugging of embedded applications and is very hardware specific. If you are familiar with working with Linksys routers and uploading custom firmware to them, you have heard of the term bricking and you have more than likely heard of something called JTAG that is used to recover it.</p>
<p>Because of the nature of JTAG and the fact that manufacturers don&#8217;t typically like us having access to the JTAG port, these ports are often hidden in many different locations, usually unmarked or unpopulated headers, or other odd locations and is the way that the manufacturer loads the firmware for the very first time on to a new device.</p>
<p>By using JTAG, we can place the hardware into a &#8220;debug&#8221; mode where we can manipulate the microprocessor&#8217;s core functionality.  We can also send instructions to it, monitor responses from it, or even pause the chip, leaving it in a state of suspended animation until we issue the command to start it up again or reset the device.</p>
<p>In this particular howto, we will cover how to use the debug mode of the Marvell chip in the Dockstar to upload a new boot loader in order to rewrite the bootloader to the onboard Flash which will result in a working, new Dockstar.  Please note that if you have NOT bricked your dockstar, there is no need to perform the steps in this howto.  This is only for bricked dockstars that have been verified with a serial adapter to be dead. (A dead dockstar will produce NO serial output and the front panel LED will not light up when power is applied.)</p>
<h2>Legal Disclaimer</h2>
<p>By performing the steps outlined in this document, you agree not to hold firestorm_v1, YourWarrantyIsVoid.com or any other linked sites, forums, companies, liable if you really screw something up.  You can also not hold any of these entities responsible for data loss, physical damage, emotional trauma, spousal abuse or any other act of whatever god(s) that you may have happen to you.  In short, Read twice, type once, hit enter and don&#8217;t screw up.  If you&#8217;re at this point, then you&#8217;ve already come to terms that your dockstar may be unrecoverable already so deal with it.</p>
<h2>Parts List</h2>
<p>In order to perform this recovery, you will need the following items:</p>
<ol>
<li>The dead seagate dockstar and power supply.</li>
<li>A handful of 2.0mm female connectors or one 2.0mm female connector with at least 10 pins (5 pins in 2 rows)</li>
<li>A 10 pin header that matches your PCB 2.5mm spacing  (again, 5 pin, 2 row)</li>
<li>A bit of holed PCB board 2.5mm pin spacing. (Radio Shack is good for this kind of stuff)</li>
<li>A CA-42 cable with the appropriate pins as <a href="http://www.yourwarrantyisvoid.com/2010/07/21/seagate-dockstar-add-an-accessible-serial-port/" target="_blank">outlined in my previous Dockstar post</a>.</li>
<li>A handful of extra breadboard jumpers.</li>
<li>Superglue</li>
<li>A Windows PC (2k or XP, untested on vista/7 although plugapps forums says it should work.) with a Parallel Port</li>
<li>Whatever provisions needed for the CA-42 cable to work properly.  (I have to use a linux box to SSH to, you can do the same or if your Windows computer works with the CA42 cable, you can use that as well.  You don&#8217;t need two PCs for this operation.)</li>
<li>A TAIO Buffered/Unbuffered &#8220;Universal&#8221; Parallel Port JTAG module kit (<a href="http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&amp;item=270528612875" target="_blank">Here&#8217;s the eBay seller where I got mine, ~$21.00 out the door</a>) and a Parallel cable extension (Male to Female) so that you can reach it without having to get behind your PC. For my setup, I used an old iomega Parallel/SCSI Zip drive cable. I also recommend the ebay link as this is the seller that I purchased mine from and it comes with a lot of extra jumpers that are very useful for this project.</li>
<li>A USB A to USB mini B cable (for powering up the JTAG adapter).</li>
<li>Glue gun with extra gluesticks</li>
<li>Heatshrink tubing and lighter/heat source</li>
<li>In lieu of building/reinforcing your JTAG cable, you can use a laptop hard drive adapter (3.5 IDE to 2.5IDE) if you&#8217;re in a pinch and just need to get it running.</li>
</ol>
<p>In addition to the above items, you will need the following software applications:</p>
<ol>
<li><a href="http://www.plugapps.com/forum/download/file.php?id=20" target="_blank">Kragorn&#8217;s copy of dockstar.cfg</a> &#8211; <a href="http://www.yourwarrantyisvoid.com/downloads/files/dockstar.zip" target="_blank">Mirrored Here</a></li>
<li><a href="http://www.freddiechopin.info/index.php/en/download/category/4-openocd" target="_blank">A copy of OpenOCD</a> &#8211; <a href="http://www.yourwarrantyisvoid.com/downloads/files/openocd-0.4.0.zip" target="_blank">Mirrored Here</a></li>
<li>A copy of the <a href="http://jeff.doozan.com/debian/uboot/uboot-original-mtd0.kwb" target="_blank">Jeff Doozan&#8217;s custom USB-boot capable u-boot</a> (Recommended!) (<a href="http://www.yourwarrantyisvoid.com/downloads/files/uboot-original-mtd0.kwb" target="_blank">Mirrored Here</a>) or a copy of another factory or custom uBoot.  If you want to compile your own, there&#8217;s a great write-up here: <a href="http://jeff.doozan.com/debian/uboot/" target="_blank">http://jeff.doozan.com/debian/uboot/</a></li>
<li>A copy of PuTTY for Serial/Telnet communication.  You can <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" target="_blank">download it here</a>.</li>
</ol>
<h2>Getting Started</h2>
<p>This howto will be divided up into several sections:</p>
<p><strong>Section I:</strong>Building an adapter cable &#8211; This section will cover how to build the required cable from spare 2MM connectors or if you already have the proper cable, this will describe how to reinforce it for repeated use using heatshrink tubing. I call it a smokestack cable because it resembles a small smokestack sticking out of the Dockstar&#8217;s mainboard.</p>
<p><strong>Section II:</strong> Wiring it all up &#8211; This will cover the Dockstar&#8217;s pinout, the TAIO parallel port pinout, the serial port pinout and how to wire it up together.</p>
<p><strong>Section III:</strong> Performing the JTAG recovery &#8211; This is where the actual recovery process takes place now that we have everything wired up.</p>
<p><strong>Section IV:</strong> Notes and credits &#8211; As much as I&#8217;d like to say this was all my doing, truth is it&#8217;s not.  I couldn&#8217;t have done it without some great people from the PlugApps forums.</p>
<p>Each section will have lots of pictures that you can use as a guide to make sure you&#8217;re making the right connections.</p>
<h2><span style="color: #ff0000;"><em><span style="text-decoration: underline;"><strong>BIG FAT OBNOXIOUS WARNING!!!</strong></span></em></span></h2>
<p>Although there are as many JTAG adapters on the market as there fish in the sea, I can not cover each and every device&#8217;s unique configuration options. Generally the JTAG port is a universal standard but many vendors implement their own standard, have other standards that they choose to leave out and their pin configurations may not match what is given here.  This article is based on my experience performing the JTAG restoration of a dockstar I broke using the equipment and the software outlined above.  If you are new to JTAG, I recommend using the versions and adapter board listed as other devices/software may not work in the same way.  When in doubt, go with what you know!</p>
<h2>Section I: Building out the JTAG adapter cable.</h2>
<p>The dockstar&#8217;s JTAG port uses a 2.0 mm spacing and while it&#8217;s good for tight spaces, isn&#8217;t exactly ideal when dealing with breadboard jumpers as most breadboards have a 2.5mm spacing and the jumpers have connectors to match.  In this instance I felt that since I was going to be working on actually developing code for the Dockstar, the inevitable would happen and I would end up bricking it through a random error (namely user failure) and would need a quick and reliable connector that I could use to quickly connect and disconnect the JTAG port as needed during restore and development.</p>
<p>I checked out EPO and managed to find several 2.0mm spaced connectors however these were in groups of three and while they would work, would require significant effort to harden the connectors to something that could stand the test of repeated connections and disconnections. So let&#8217;s get started.</p>
<div id="attachment_611" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/conntest.jpg"><img class="size-medium wp-image-611" title="Connector Test" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/conntest-300x225.jpg" alt="Connector Test" width="300" height="225" /></a><p class="wp-caption-text">Checking the connectors to make sure they would work</p></div>
<p>This is a shot of the connectors standing out of the Dockstar.  Since I had four connectors with 3 pins each, this means that I had two pins that hung over the connector block on the Dockstar.  Since these two wires were not needed, I cut them and removed the metal connector from inside the plastic, leaving 10 wires for 10 pins of the dockstar&#8217;s JTAG port.  We&#8217;ll deal with the two vacant holes later.</p>
<p><strong>Little known fact:</strong> The pin spacing on the Dockstar&#8217;s JTAG port is identical to that of a laptop hard drive (which is why this part of the process is optional.)  In a pinch, you can use a laptop IDE adapter similar to <a href="http://www.geeks.com/details.asp?invtid=HD-108&amp;cat=CBL" target="_blank">this one</a> (in fact I own several exactly like this).  If you decide to use a laptop IDE adapter, use the part of the adapter <strong>opposite the power connector</strong>.</p>
<p>Since the goal is to harden the four little connectors to one single connector, I used a dead laptop hard drive and superglued the four connectors together. <strong>USE THE SUPERGLUE SPARINGLY!!</strong> You do not want to superglue your connectors to a hard drive so only put a tiny amount. It also helps to put a dab of glue on one connector, then put the connectors together as you&#8217;re pushing them onto the laptop HD pins.  Make sure they are completely seated so they will be even as possible.  If you see the pins of the laptop HD, you&#8217;re not down far enough.</p>
<div id="attachment_612" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/connglue.jpg"><img class="size-medium wp-image-612" title="Glued 2.0MM connectors" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/connglue-300x225.jpg" alt="Glued 2.0MM connectors curing on a laptop HD." width="300" height="225" /></a><p class="wp-caption-text">Glued 2.0MM connectors curing on a laptop HD.</p></div>
<p>Once you get all four connectors onto the laptop HD and properly aligned, let it cure for at least an hour.  This will ensure that the superglue bonds correctly and the connector doesn&#8217;t fall apart later.</p>
<div id="attachment_613" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/glueset.jpg"><img class="size-medium wp-image-613" title="Glued connectors after setting." src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/glueset-300x225.jpg" alt="Glued connectors after the superglue set." width="300" height="225" /></a><p class="wp-caption-text">Glued connectors after the superglue set.</p></div>
<p>Now that the superglue has set, check that it still fits in the Dockstar. On the connectors used here, my wires were quite long. To alleviate yet another mass of cable snakes on my desk, I cut them down to about three inches, which should be big enough to handle, but small enough to not get in the way. You can cut your wires to any length desired.</p>
<p>In order to solder to the 10 pin header and ensure that the wires would not seperate from use, I chose to use a small piece of PCB as shown below.</p>
<div id="attachment_614" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/hdrbb.jpg"><img class="size-medium wp-image-614" title="Header and Breadboard" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/hdrbb-300x225.jpg" alt="Header and Breadboard" width="300" height="225" /></a><p class="wp-caption-text">Header and Breadboard</p></div>
<p>Keep in mind that if you cut your own, you&#8217;re soldering 10 wires into a 10 pin header, so you will need a 20 hole piece of PCB (5 holes by 4 holes).  The idea here is that the wires will come in on the component side of the PCB and wrap around it then go further down to the 2.0mm connector we just glued together.   Go ahead and solder the header into the center two rows of the PCB as shown below(Leave one row of 5 on each side of the header).</p>
<div id="attachment_615" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/hdrinst.jpg"><img class="size-medium wp-image-615" title="Header and PCB soldered together" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/hdrinst-300x225.jpg" alt="Header and PCB soldered together" width="300" height="225" /></a><p class="wp-caption-text">Header and PCB soldered together</p></div>
<p>Strip off a 1/8 inch off of each wire on one side of the glued connector and solder to the PCB. Keep your pinout the same and do not cross the wires.   Below, you can see that the first half of the PCB and the wires has been soldered.</p>
<div id="attachment_616" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/hdrsolder.jpg"><img class="size-medium wp-image-616" title="Header with one side soldered" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/hdrsolder-300x225.jpg" alt="Header with one side soldered" width="300" height="225" /></a><p class="wp-caption-text">Header with one side soldered.</p></div>
<p>Now comes the fun part.  Trying to solder the other side of the PCB without burning yourself or the other wires and without creating unnecessary solder bridges to other pins.  Below is a shot of my connector, partially soldered.</p>
<div id="attachment_617" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/hdrsolder2.jpg"><img class="size-medium wp-image-617" title="Second set of wires to solder" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/hdrsolder2-300x225.jpg" alt="Second set of wires to solder" width="300" height="225" /></a><p class="wp-caption-text">Second set of wires to solder</p></div>
<p><strong>Protip:</strong> If you don&#8217;t already have a pair, I highly recommend you get a pair of Helping Hands for soldering like this. <a href="http://www.radioshack.com/product/index.jsp?productId=3928375&amp;CAWELAID=437363031" target="_blank">Available at Radio Shack</a> and many other electronics outlets.  Below is a picture of the completely soldered PCB.</p>
<div id="attachment_618" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/hdrdone.jpg"><img class="size-medium wp-image-618" title="Completed PCB soldering" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/hdrdone-300x225.jpg" alt="Completed PCB soldering" width="300" height="225" /></a><p class="wp-caption-text">Completed PCB soldering</p></div>
<p>Now that the PCB is soldered, go ahead and check your wiring!  Don&#8217;t do any pin swaps, make sure that pin 1 on the 2.0mm connector is pin 1 on the header, pin2 on the 2.0mm connector is pin 2 on the header and so on. Also make sure that you didn&#8217;t bridge between pins on the PCB. Before you slip on the shrinkwrap, we&#8217;re going to reinforce the body of the adapter.  Get your hot glue gun ready and shoot a large bead of glue down the length of the wire. Once that is done, shoot some more hotglue around the connector to reinforce the wires coming out of the connector. Below is a picture of the hotglue process.</p>
<div id="attachment_620" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/hdrhg.jpg"><img class="size-medium wp-image-620" title="Header hotglued" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/hdrhg-300x225.jpg" alt="Wires hotglued together and header is wrapped in hotglue." width="300" height="225" /></a><p class="wp-caption-text">Wires hotglued together and header is wrapped in hotglue.</p></div>
<p>The hotglue on the wire-side of the plug will make sure that the wires don&#8217;t wiggle around inside the heatshrink tube and fail later on.  After you&#8217;ve properly applied the hot glue, put the tip of the hotglue gun over the two holes that we vacated earlier.  Keep consistent pressure on the hotglue gun and press the trigger.  This will inject hot glue into the holes left behind when the excess pins were extracted and ensure that the connector is &#8220;keyed&#8221; and will prevent a one-off connection (and prevent further headache).  This is what the hotglue injected connector looks like.</p>
<div id="attachment_621" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/hdrkey.jpg"><img class="size-medium wp-image-621" title="Key-glued header" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/hdrkey-300x225.jpg" alt="Key glued header." width="300" height="225" /></a><p class="wp-caption-text">Key-glued header.</p></div>
<p>Take one moment and check your cable one last time.  Make sure that the pins are wired one to one.  Once you&#8217;re ready, get the heatshrink tube and cut it to a little bit less than the length of your adapter.  Below, you can see the heatshrink and adapter lengths I used. (This image was taken before the hot glue was applied.)</p>
<div id="attachment_622" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/hdrswrap.jpg"><img class="size-medium wp-image-622" title="Header adapter and shrinkwrap." src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/hdrswrap-300x225.jpg" alt="Header adapter and shrinkwrap." width="300" height="225" /></a><p class="wp-caption-text">Header adapter and shrinkwrap.</p></div>
<p>Slip over the heatshrink wrap over the connector (it may not fit over the PCB) and leave just a little bit so that it overlaps the 2MM connector end.  Apply even heat to the 2MM connector end first so that it will shrink and hold the heatshrink wrap in place as you apply even heat to the rest of the connector. When completed, you should have a connector resembling the below image.</p>
<div id="attachment_623" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/hdrtop.jpg"><img class="size-medium wp-image-623" title="Heatshrink wrapped adapter." src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/hdrtop-300x225.jpg" alt="Heatshrink wrapped adapter." width="300" height="225" /></a><p class="wp-caption-text">Heatshrink wrapped adapter.</p></div>
<p>Now take the hotglue gun and fill in the gap between the heatshrink wrap and the bottom of the PCB. If your gluegun has a fine tip, also shoot some hot glue into the open end of the shrinkwrap.  This will further harden the connector and ensure that it doesn&#8217;t flex and damage the connections.  You may have something looking like the below image.</p>
<div id="attachment_624" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/hdrtopgl.jpg"><img class="size-medium wp-image-624" title="Header Top glue bead" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/hdrtopgl-300x225.jpg" alt="Header Top with glue bead." width="300" height="225" /></a><p class="wp-caption-text">Header Top with glue bead.</p></div>
<p>For a final touch, wrap and distribute hot glue around the wiring from a little bit over the heatshrink wrap all the way to the black part of the header wiring.  It&#8217;s ok to use a large amount of glue as this will make sure that the connector is properly protected.  As a last step, connect it to the Dockstar and make sure it fits.  Once finished, you should have something resembling the below image.</p>
<div id="attachment_625" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/smokestack.jpg"><img class="size-medium wp-image-625" title="Completed Smokestack adapter on Dockstar." src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/smokestack-300x225.jpg" alt="Completed Smokestack adapter on Dockstar." width="300" height="225" /></a><p class="wp-caption-text">Completed Smokestack adapter on Dockstar.</p></div>
<p>Now, you have a completed Smokestack adapter.  You can use this for any device that has 2.0MM connector pitch and for any purpose.  Since the header on top is a 1 to 1 representation of the connector on bottom, you can use this anywhere where you need to use breadboard connectors for a temporary connection to these headers.</p>
<h2>Section 2: Wiring it all up.</h2>
<p>With a completed smokestack adapter, now you can wire it all up together  but before we begin, it is highly recommended to solder in a ground pin.  This ground pin will be used to ensure that the ground used by the JTAG adapter&#8217;s reference ground will be the same as the ground used by the Dockstar.  While it may not be required, it is recommended as a difference in ground may end up corrupting data being sent and received as part of the update.  To do that, we can use any of the ground planes, shields or open spots on the PCB.  I preferred to use one of the three USB shields as the shield&#8217;s purpose is the same as the GND connection that we are trying to establish.  For this, we&#8217;ll use a jumper pin with no plastic on it.  Start off by applying a small bead of solder to the USB shield as shown below.</p>
<div id="attachment_627" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/dsgnd.jpg"><img class="size-medium wp-image-627" title="Dockstar USB shield prep for pin" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/dsgnd-300x225.jpg" alt="Dockstar USB shield pin prepped for header pin." width="300" height="225" /></a><p class="wp-caption-text">Dockstar USB shield pin prepped for header pin.</p></div>
<p>Apply the heat from the soldering iron to the bead again and drop in the jumper pin.  Remove heat and do not touch the jumper pin until the connector has cooled.  Do not apply heat for a long period of time otherwise you may damage the USB port itself.  Below is the completed ground pin installation:</p>
<div id="attachment_628" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/dsgndpin.jpg"><img class="size-medium wp-image-628" title="Dockstar Ground pin installed." src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/dsgndpin-300x225.jpg" alt="Dockstar Ground pin installed." width="300" height="225" /></a><p class="wp-caption-text">Dockstar Ground pin installed.</p></div>
<p>Now, we have a properly installed Ground pin that is easy to connect and remove and we also have our smokestack JTAG adapter.  At this point, we can start wiring up the JTAG connector up and prepare for recovery of our dead dockstar.  If you went with my suggestion and ordered the TIAO Parallel JTAG adapter, you should have received the following items.  JTAG board (blue with DB25 connector), Short jumpers (left of  JTAG board) and Long Jumpers (above board) as shown in the picture below.</p>
<div id="attachment_626" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/JTAGkit.jpg"><img class="size-medium wp-image-626" title="JTAG kit" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/JTAGkit-300x225.jpg" alt="TIAO Parallel JTAG kit." width="300" height="225" /></a><p class="wp-caption-text">TIAO Parallel JTAG kit.</p></div>
<p>The below image is the entire wiring diagram for the Dockstar JTAG adapter.  As long as you keep pin 1 on the dockstar as pin 1 on the smokestack adapter, you should have no problems with the connection.  As mrbill and Klingon and several others pointed out in the PlugApps forums, the nSRST line (orange) and the DINT(purple) leads are both not connected.  Pin 1 on the Dockstar/Smokestack are also left unconnected as we will use the Dockstar&#8217;s power supply to power the board while it is connected to the JTAG adapter.  Additionally, it is crucial to plug the USB cable into the JTAG adapter and into a PC to power the onboard buffer chip.  Without the USB cable connected, the adapter will not function.  There is also an LED on the JTAG adapter that will light when the device has sufficient power. Click on the below image to get a much larger image.</p>
<div id="attachment_629" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/dockstarjtag.jpg"><img class="size-medium wp-image-629" title="Dockstar/TAIO JTAG connection table." src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/dockstarjtag-300x185.jpg" alt="Dockstar/TAIO JTAG connection table." width="300" height="185" /></a><p class="wp-caption-text">Dockstar/TAIO JTAG connection table.</p></div>
<p>The Dockstar layout diagram on the right hand side of the image is bundled together to provide a reference.  Pin 1 of the JTAG port is on the LED side of the jumper and is towards the center of the board and is designated by a black dot in the image and a white triangle on the dockstar board itself as shown below.  The picture of the Dockstar is rotated 90 degrees clockwise to the layout diagram in the image above.</p>
<div id="attachment_630" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/DSJTAGport.jpg"><img class="size-medium wp-image-630" title="Dockstar JTAG port showing pin 1" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/DSJTAGport-300x225.jpg" alt="Dockstar JTAG port showing pin 1" width="300" height="225" /></a><p class="wp-caption-text">Dockstar JTAG port showing pin 1</p></div>
<p>You can use the following images as a reference that your dockstar is connected properly.  The below image is a picture of my CA-42 adapter&#8217;s serial header as discussed in the <a href="http://www.yourwarrantyisvoid.com/2010/07/21/seagate-dockstar-add-an-accessible-serial-port/" target="_blank">serial port post</a>. Also, since the serial port post discussed soldering to the header, if you haven&#8217;t done so already, remove the existing serial port wires so that your smokestack adapter will fit.  In the image below, the three jumpers coming off of the pins are colored as they would be if you had just cut and stripped back the CA-42&#8242;s cable. Remember that your CA-42 cable may be different!</p>
<div id="attachment_636" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/DSCF0705.jpg"><img class="size-medium wp-image-636" title="Serial Port jumpers from CA42 USB cable." src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/DSCF0705-300x225.jpg" alt="Serial Port jumpers from CA42 USB cable." width="300" height="225" /></a><p class="wp-caption-text">Serial Port jumpers from CA42 USB cable.</p></div>
<p>The below image shows the top of the smokestack adapter and the respective colors.  You can see that the black wire for GND is attached to the USB shield pin we installed earlier. Remember, pin 1 and pin 7 on the smokestack are left not connected!</p>
<div id="attachment_637" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/DSCF0700.jpg"><img class="size-medium wp-image-637" title="Top of smokestack adapter with jumpers." src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/DSCF0700-300x225.jpg" alt="Top of smokestack adapter with jumpers." width="300" height="225" /></a><p class="wp-caption-text">Top of smokestack adapter with jumpers.</p></div>
<p>The below image shows the JTAG adapter, properly wired and ready to go.  You can see the device is powered by the USB connector and that the orange and purple wires have been spared off.   Although the flash from my camera drowned out the red power LED, you will need to make sure that your LED is lit.  Please note, the JTAG adapter does require power however it will not show up as anything in Windows as we are using the USB port strictly for the power lines for the JTAG buffer.</p>
<div id="attachment_638" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/DSCF0701.jpg"><img class="size-medium wp-image-638" title="TIAO JTAG wired up and ready." src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/DSCF0701-300x225.jpg" alt="TIAO JTAG wired up and ready." width="300" height="225" /></a><p class="wp-caption-text">TIAO JTAG wired up and ready.</p></div>
<p>An aerial view of the whole mess. <img src='http://www.yourwarrantyisvoid.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />     Yes, I know my desk is still messy.</p>
<div id="attachment_639" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/DSCF0708.jpg">C:\Program Files\OpenOCD\0.4.0<img class="size-medium wp-image-639" title="Wow, what a rats nest!" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/DSCF0708-300x225.jpg" alt="Wow, what a rats nest." width="300" height="225" /></a><p class="wp-caption-text">Wow, what a rats nest.</p></div>
<p>Now that all of the required connections have been made, it&#8217;s time to get busy with the software. Plug in the power cable to your dockstar and proceed to the next section.</p>
<h2>Step III: Software</h2>
<p>If you haven&#8217;t already, go back up to the Parts list and download Kragorn&#8217;s dockstar.cfg, OpenOCD and the uBoot image.</p>
<p>Install the OpenOCD software and accept the defaults.  Once completed, unzip the dockstar.zip and copy dockstar.cfg to C:\Program Files\OpenOCD\0.4.0\board and then copy your uboot image to C:\Program Files\OpenOCD\0.4.0  It would be recommended to rename it to just &#8220;uboot.bin&#8221; so that way you won&#8217;t have to retype that complicated line later on.</p>
<p>Now that we have all the proper software in place let&#8217;s discuss what all is going to happen.  When you start OpenOCD in a DOS window, it will in turn start a telnet server on localhost, port 4444.  You will use PuTTY to connect to the telnet server process and issue commands to OpenOCD.   In conjunction with that, you will need a second PuTTY session established to COM1 (if your windows machine has the CA-42 cable plugged into it) or to SSH to the machine you have the cable connected to. The reason is that once you enter specific commands on the telnet window, you need visibility to the other window (serial or SSH) to see if your dockstar is booting. <span style="text-decoration: underline;"><em><strong>Timing is critical!</strong></em></span> From here on out, commands and things to look for in output are in <strong>bold</strong> with other important text in bold, italics and underline.</p>
<p>In my configuration, my windows computer is what will run OpenOCD and the telnet session, and a nearby Linux box will have the SSH session with an application called minicom.</p>
<p>Start off by opening a DOS window (Start -&gt; Run -&gt; &#8220;cmd&#8221; )</p>
<p>Type the following command in exactly as shown:  <strong> </strong></p>
<pre><strong>openocd -f board/dockstar.cfg</strong></pre>
<p>You should get output similar to the below image.  If you get what I have, then you can proceed to the next step.  If you get any errors, check your wiring. Make sure only those pins shown in the above images are what you have hooked up. Also, you may get a  Windows Firewall exception error.  If you do, just hit &#8220;Allow&#8221; otherwise you won&#8217;t be able to talk to OpenOCD.</p>
<div id="attachment_640" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/OpenOCD-1.jpg"><img class="size-medium wp-image-640" title="OpenOCD successful startup" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/OpenOCD-1-300x148.jpg" alt="OpenOCD successful startup." width="300" height="148" /></a><p class="wp-caption-text">OpenOCD successful startup</p></div>
<p>If OpenOCD is running without errors, minimize the DOS box and start PuTTY. Use the below configuration to establish a connection to the telnet process that OpenOCD started.</p>
<div id="attachment_644" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/puttytelnet.jpg"><img class="size-medium wp-image-644" title="PuTTY Telnet settings" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/puttytelnet-300x286.jpg" alt="PuTTY Telnet settings" width="300" height="286" /></a><p class="wp-caption-text">PuTTY Telnet settings</p></div>
<p>When you connect, you should get a window that says &#8220;<strong>Open On-Chip Debugger</strong>&#8221; with a caret &#8220;&gt;&#8221; prompt.  Before we continue, if you haven&#8217;t already pulled up your serial session to the dockstar, you will need to do that now.  The issue is that from here on out, we will either be communicating with OpenOCD via Telnet, or communicating with the Dockstar via serial.</p>
<p>Now that you&#8217;ve established your connection to OpenOCD, perform the next two steps.</p>
<ul>
<li>Type the command <strong>&#8220;init&#8221;</strong> into the telnet session and hit enter.</li>
<li>Type the command <strong>&#8220;sheevaplug_init</strong>&#8221; into the telnet session and hit enter.</li>
</ul>
<p>Now, here is the hard part. The routine sheevaplug_init from above will attempt to halt the processor.  The Marvell chip has two types of halt, one of which labelled &#8220;ARM&#8221; and one labelled &#8220;Thumb&#8221;.  If your output resembles the below output (processor halted in <strong>Thumb</strong> state), you will need to perform the next steps otherwise skip down to the next section. When in doubt,  continue with the instructions below.</p>
<div id="attachment_645" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/Thumbstatehalt.jpg"><img class="size-medium wp-image-645" title="Thumb State Halt is no good!" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/Thumbstatehalt-300x186.jpg" alt="Thumb State Halt is no good!" width="300" height="186" /></a><p class="wp-caption-text">Thumb State Halt is no good!</p></div>
<p><strong>If you got <em>&#8220;Target halted in Thumb State&#8221;</em></strong>: There is some additional trickery that must be performed.   The issue is that the processor must be halted in ARM state as this allows OpenOCD to communicate with the processor properly.</p>
<ul>
<li>Hit Ctrl-C in your OpenOCD session. Your PuTTY session will break and generate an error. Dismiss the error and restart OpenOCD.</li>
<li>Hold down the reset button <span style="text-decoration: underline;"><strong>and keep it held down</strong></span> with one hand and with the other, type &#8220;<strong>sheevaplug_init</strong>&#8221; and hit enter.  Ignore the error messages.</li>
<li> Type in the command &#8220;<strong>halt</strong>&#8221; . <em><strong>DO NOT HIT ENTER YET!</strong></em></li>
<li><em><span style="color: #ff0000;"><strong>Release the RESET switch and simultaneously hit Enter.</strong></span></em></li>
<li>You should see that the processor was halted in ARM state.
</li>
<li>Type in &#8220;<strong>sheevaplug_init</strong>&#8221; and hit enter. No output should be generated from this command.
</li>
</ul>
<p>Check your telnet session output with my output in the screenshot below.  Make sure your output matches the screenshot before proceeding.</p>
<div id="attachment_647" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/properhalt1.jpg"><img class="size-medium wp-image-647" title="Properly halted dockstar" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/properhalt1-300x186.jpg" alt="Properly halted dockstar" width="300" height="186" /></a><p class="wp-caption-text">Properly halted dockstar</p></div>
<p>Now for the ultimate test.  We need to probe the NAND flash to make sure that the processor can communicate with it. Type in &#8220;<strong>nand probe 0</strong>&#8221; (zero) and hit enter.  If everything is correct, you should get text returned similar to &#8220;<strong>NAND flash device &#8216;NAND 256MiB 3,3V 8-bit&#8217; found</strong>&#8220;.  If you get any other message <strong>ESPECIALLY</strong> anything about Unknown Manufacturer, restart OpenOCD and try again.  Here is my output so far:</p>
<div id="attachment_648" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/nandprobe0.jpg"><img class="size-medium wp-image-648" title="Nand Probe successful!" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/nandprobe0-300x186.jpg" alt="Nand Probe Successful!" width="300" height="186" /></a><p class="wp-caption-text">Nand Probe Successful!</p></div>
<p>Now that the processor has been correctly identified by OpenOCD and the processor has properly identified the flash memory, we can now load the image into the Dockstar&#8217;s RAM and tell the processor to execute it. Type in <strong>load_image uboot.bin 0&#215;800000</strong> (zero, letter x, 8 and five zeros). If you renamed your uboot file something other than &#8220;uboot.bin&#8221; then substitute as needed.  This will take a couple of minutes as the image is transferred. Here is the output of what I have after the image loaded into RAM:</p>
<div id="attachment_649" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/loadimage.jpg"><img class="size-medium wp-image-649" title="Load_Image successful!" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/loadimage-300x186.jpg" alt="Load_Image successful!" width="300" height="186" /></a><p class="wp-caption-text">Load_Image successful!</p></div>
<p>When you get the caret prompt back &#8220;&gt;&#8221;, type in the command &#8220;<strong>resume 0&#215;800200</strong>&#8221; and check your serial connection for activity.  At this point, you can minimize the telnet session.  Now we will be dealing expressly with the serial connection.  Depending on your connection method, you may have a different window, but the text is the same.  As soon as you hit enter on the resume command, you should notice that the LED on your once dead dockstar is now blinking. Immediately switch over to the serial connection and hit a key to disrupt the boot process. If you did it right, you should see that the command prompt now shows <strong>Marvell&gt;&gt;</strong> as shown in the screenshot below:</p>
<div id="attachment_650" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/intboot.jpg"><img class="size-medium wp-image-650" title="Interrupted boot sequence." src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/intboot-300x186.jpg" alt="Interrupted boot sequence." width="300" height="186" /></a><p class="wp-caption-text">Interrupted boot sequence</p></div>
<p><strong>DO NOT DISCONNECT POWER FROM THE DOCKSTAR YET! WE ARE NOT DONE.</strong> The Dockstar has successfully loaded and ran the uboot commands in RAM however if we hit the reset switch or powercycle the dockstar, the device will return to it&#8217;s zombie state, and we will have to do it all over again. The only thing left to do is to prepare and write the image to flash.</p>
<p>If you were like me and you accidentally typed in &#8216;nand erase&#8221; and bricked your dockstar, you will need to re-erase the flash to reload it.  If you bricked your dockstar by another method, skip this step and go on to the next paragraph. To do this, type in &#8220;<strong>nand erase</strong>&#8220;.  This will erase the entire flash chip.  Now to write the working uboot to flash, use the command &#8220;<strong>nand write.e 0&#215;800000 0&#215;0 0&#215;80000</strong>&#8220;  (zero x eight then 5 zeroes, zero x zero, then zero x eight then four zeros). You should get a message that the nand write was successful similar to the below screenshot.</p>
<div id="attachment_651" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/writeflash.jpg"><img class="size-medium wp-image-651" title="Successful flash write." src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/09/writeflash-300x186.jpg" alt="Successful flash write." width="300" height="186" /></a><p class="wp-caption-text">Successful flash write.</p></div>
<p>If you did not brick your dockstar by an errant nand erase command, you will want to use &#8220;<strong>nand erase 0 0&#215;0 0xa0000</strong>&#8221; (zero, zero x zero, zero x a then four zeros).  The reason for this difference is that if you didn&#8217;t erase your flash, this command will preserve the u-boot environment variables, otherwise you would have to recreate them later on.</p>
<p>Now, it&#8217;s time for the moment of truth.  Don&#8217;t start disconnecting wires just yet, simply tap the reset switch to load the uboot from the flash and test your recovery.   You will notice two key things:  Your uboot will be stuck in a permanent loop (assuming you didn&#8217;t interrupt autoboot) and the LED on the dockstar will alternate between flashing green and flashing orange as uboot cycles through.  This is because the dockstar can&#8217;t find a valid kernel or filesystem to boot from.  If you used the same version of the uBoot I listed above then you will notice that this uboot will attempt to boot off of USB key drives unlike the original factory image which opens up a LOT of opportunity. <img src='http://www.yourwarrantyisvoid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>To clean up, simply exit the various windows you have open, and exit OpenOCD by hitting Ctrl-C.  Remove power from the Dockstar, then remove the smokestack adapter and the ground wire on the USB shield.  If you want to make sure (because you&#8217;re as paranoid as I am, reapply power after all the jumpers have been removed and make sure that the Dockstar&#8217;s LED continues to blink orange then blinks green and repeats.  This means that your dockstar is confirmed as running off it&#8217;s own flash.</p>
<p>Now get to hacking!</p>
<h2>Section IV: Notes and Credits</h2>
<p>This article was assembled using information and help from various sources.  I want to thank everyone listed below for your assistance in helping me with getting the Dockstar JTAG figured out.  It was definitely not easy for someone new to JTAG however it was an enjoyable learning experience once I got the bugs worked out,  even if I did scratch my head a lot.</p>
<p>From the PlugApps forums, I&#8217;d like to thank Admin, Kragorn, bzboi, klingon, ygator, mrbill, and jtagfun.</p>
<p>A special thanks to bzboi for the initial howto that most of the OpenOCD instructions were used from and to Admin for the starting post with the Dockstar&#8217;s JTAG diagram.</p>
<p>I&#8217;d also like to thank mrbill for getting me involved with these things. It&#8217;s all his fault that I even have a dockstar to break. <img src='http://www.yourwarrantyisvoid.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Thanks goes to Kragorn for finding out the proper settings in his dockstar.cfg so that all of us could unbrick after the inevitable &#8220;Oops&#8230;&#8221; moment.</p>
<p>Last, but not least, thanks goes out to Jeff Doozan for his work with uBoot and compiling in needed features into the bootloader so that we can use USB sticks as boot devices.</p>
<h2>Where do we go from here?</h2>
<p>The answer is &#8220;Where do you want to go?&#8221;  In my relatively short time with the Dockstar, I was working on getting OpenWRT compiled and installed on it.  OpenWRT is the same OS that they use for the Linksys and other branded routers and is pretty much it&#8217;s own distribution.  There are also processes on how to install Debian onto the dockstar, using a laptop drive and USB sled to run the OS.  There is a lot of people doing research and finding out other warranty voiding things to do with their dockstars so take a look around.</p>
<p>As far as me personally?  I have three of them and while one of them is going to be a small NAS fileserver, one of the more esoteric things I was planning on doing with mine is making it into a roving USB camera with wifi.  The idea is that the Dockstar&#8217;s mainboard would be the brains of the rover and could send commands to a Parallax BOE-BOT via a usb to serial converter.  Since the entire thing would be wireless off of a USB dongle, I could use the IP based connection to deliver video and commands via a custom written application.</p>
<p>I sincerely hope that you are able to recover your dockstar using the above process.  It&#8217;s no fun when you accidentally destroy something you have put so much work into however now you should be able to work on the Dockstar without fear that you&#8217;re going to damage it and prevent it from booting.  Also, if you decide to try custom boot loaders, you can do so worry free.</p>
<p>Happy Hacking!</p>
<p>FIRESTORM_v1</p>
<p><em> </em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2010/09/08/dead-dockstar-resurrected-with-jtag/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Squirrelcage blower keeps small form factor PCs cool</title>
		<link>http://www.yourwarrantyisvoid.com/2010/08/14/squirrelcage-blower-keeps-small-form-factor-pcs-cool/</link>
		<comments>http://www.yourwarrantyisvoid.com/2010/08/14/squirrelcage-blower-keeps-small-form-factor-pcs-cool/#comments</comments>
		<pubDate>Sun, 15 Aug 2010 02:52:16 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Embedded devices]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[How-To's]]></category>
		<category><![CDATA[cooling]]></category>
		<category><![CDATA[Mods]]></category>
		<category><![CDATA[Small Form Factor]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=563</guid>
		<description><![CDATA[As long as there has been electronics, there has been the problem of how to keep them cool.  Unfortunately, the problem gets more complex the smaller that computers get and what works for one PC might not work for others.  This is clearly the obstacle to overcome when trying to cool down a settop box.  [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-566" title="Squirrelcage fan cooling" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/squirrel-fan-cooling.jpg" alt="Squirrel cage fan cooling. Not chuck squirrels through fans at nuclear reactors." width="535" height="176" /></p>
<p style="text-align: left;">As long as there has been electronics, there has been the problem of how to keep them cool.  Unfortunately, the problem gets more complex the smaller that computers get and what works for one PC might not work for others.  This is clearly the obstacle to overcome when trying to cool down a settop box.  Read more to find out how I was able to pull it off very well for a little over $10 in parts and still maintain all my hair.</p>
<p style="text-align: left;"><span id="more-563"></span></p>
<p style="text-align: left;">It&#8217;s pretty synonymous that computers == heat and with any mainstream processor, you have a pretty significantly sized heatsink and fan to keep the processor cool.  While processor fans and heatsinks are pretty easy to come by for standard desktop computers and servers, embedded devices are pretty much left to their own devices (no pun intended).  I was faced with the very same problem when I decided to start using two embedded computers to replace a NAT router and mini home server.   These machines are sold as a &#8220;set-top-box&#8221; and were initially intended for some kind of Video On Demand service that used broadband service to deliver content.  The computer hardware was figured out and working however left to the &#8220;stock&#8221; heatsink and heatspreader (there was no fan when I started) the box was very hot to the touch.  I decided to initially tack a case fan to the heatsink to help with the cooling, but that only served to band-aid the problem.</p>
<p style="text-align: left;">
<div id="attachment_567" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/settop.jpg"><img class="size-medium wp-image-567" title="settop" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/settop-300x225.jpg" alt="The settop box that is too hot to touch" width="300" height="225" /></a><p class="wp-caption-text">The settop box.  Those holes on top are supposed to keep this cool?</p></div>
<p style="text-align: left;">A view of the internals left very little room to work with.  There was no way I was going to be able to use a standard computer case fan without some massive case modding. Since I wasn&#8217;t really looking for a reason to spend the entire day with the dremel cutting sheet steel, I decided to take a look at what I had to work with.</p>
<p style="text-align: left;">
<div id="attachment_568" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/internals.jpg"><img class="size-medium wp-image-568" title="Settop internals" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/internals-300x225.jpg" alt="Settop internals.  It's quite cramped in there." width="300" height="225" /></a><p class="wp-caption-text">Settop internals.  It&#39;s quite cramped in there.</p></div>
<p>Since this thing was designed to be a set top box, there were all kinds of connections on the back, including a big SCART connector.  According to <a title="SCART - definition by Wikipedia" href="http://en.wikipedia.org/wiki/SCART" target="_blank">wikipedia</a>, SCART is primarily a European standard and is very commonplace for connecting AV equipment to TVs and etc.  Since this settop was sold in the US, the SCART connector was unpopulated and instead left a knockout.  This gave me a sizeable aperture for the hot exhaust, now to find some way to get the air moving.</p>
<div id="attachment_569" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/location.jpg"><img class="size-medium wp-image-569" title="location" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/location-300x225.jpg" alt="Exhaust Port location" width="300" height="225" /></a><p class="wp-caption-text">Exhaust Port Location</p></div>
<p style="text-align: left;">In the above shot, the SCART port is the large dull steel colored rectangular hole in the silver backing.  The hole is high enough that it does not interfere with the SDRAM sticks and far enough away from the power supply not to be a shock hazard.  Now knowing what I had and how big of a fan I needed, I went to Microcenter and took a look around. They had a lot of normal desktop fans and a few oddball fans and the one that would work best ended up being an old-style squirrelcage fan.  A squirrelcage fan is like the standard case fan that you&#8217;re used to however instead of normal blades, the squirrel cage fan uses an impeller that sucks in air from the front and exhausts it out of the side of the fan. The fan exhaust is perpendicular to the intake unlike a standard fan.  The advantage is that a squirrel cage fan offers the airflow of a standard fan in a smaller form factor due to the perpendicular exhaust.  The general idea is that the squirrel cage fan will suck in the warm air from inside the case and exhaust out of the now ex-SCART port.</p>
<p style="text-align: left;">
<div id="attachment_570" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/squirrelcage.jpg"><img class="size-medium wp-image-570" title="SquirrelCage blower" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/squirrelcage-300x225.jpg" alt="Squirrelcage blower, Now with extra squirrels" width="300" height="225" /></a><p class="wp-caption-text">Squirrel cage blower</p></div>
<p style="text-align: left;">This is the squirrelcage fan that I selected. Although I couldn&#8217;t find a link on Microcenter&#8217;s website, here is a <a title="Microcenter Squirrel cage fan" href="http://www.microcenter.com/single_product_results.phtml?product_id=0209741" target="_blank">link of a comparable fan</a>. It is a12V fan that is designed to screw into a removed expansion slot blank on a computer case.  The fan connects via a 12VDC Molex connector and is designed to connect between the power cable and a hard drive or CDROM.  Since there are no Molex connectors, I had to also get a three pin cable to connect to the motherboard. Thankfully Microcenter had a clearance on Intel OEM Processor fans and were selling just the connector for 25 cents.</p>
<p style="text-align: left;">
<div id="attachment_573" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/intelcable1.jpg"><img class="size-medium wp-image-573" title="Intel cable and Power header" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/intelcable1-300x225.jpg" alt="Intel cable and Power header" width="300" height="225" /></a><p class="wp-caption-text">Intel cable and Power header</p></div>
<p style="text-align: left;">The Intel cable snaps perfectly into a convenient header that I found on the motherboard.  This will be perfect as if I ever need to replace the squirrelcage fan, I can do so without having to cut up wires and desolder splices.</p>
<p style="text-align: left;">Now that I had the idea of generally where everything was to go, I had to make some modifications to the steel bracket on the blower. The blower was originally designed to fit in an empty expansion slot and the tab used for securing the blower to the chassis needed to be flattened.</p>
<p style="text-align: left;">
<div id="attachment_574" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/squirrelbracket.jpg"><img class="size-medium wp-image-574" title="Squirrelcage bracket" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/squirrelbracket-300x225.jpg" alt="Squirrelcage bracket" width="300" height="225" /></a><p class="wp-caption-text">Squirrelcage bracket</p></div>
<p>The bracket in question is so eloquently highlighted by none other than Duke Nukem.  In order to modify the bracket without destroying the fan in the process, I decided to remove the bracket.  In the above picture, you can see a notch that holds the fan in the bracket.  There are four notches in total, two on each side. I used a couple of flat bladed screwdrivers and gently pried the bracket off.</p>
<div id="attachment_575" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/bracketoff.jpg"><img class="size-medium wp-image-575" title="Bracket removed from fan" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/bracketoff-300x225.jpg" alt="Bracket removed from fan" width="300" height="225" /></a><p class="wp-caption-text">Bracket removed from fan</p></div>
<p>After a little bit of  the creative application of force, I finally had the bracket flat enough so that it would not interfere with mounting. (Translation:  I beat the crap out of it with a hammer.)</p>
<div id="attachment_576" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/bracketmod.jpg"><img class="size-medium wp-image-576" title="Flattened Bracket modification" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/bracketmod-300x225.jpg" alt="Flattened Bracket modification" width="300" height="225" /></a><p class="wp-caption-text">Flattened Bracket modification</p></div>
<p>Now that the bracket is flattened enough, it&#8217;s time to see about how to go about lining it up with the SCART exhaust port.</p>
<div id="attachment_577" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/holesalign.jpg"><img class="size-medium wp-image-577" title="SCART holes line up with the grill." src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/holesalign-300x225.jpg" alt="SCART holes line up with the grill." width="300" height="225" /></a><p class="wp-caption-text">SCART holes line up with the grill.</p></div>
<p>I lucked out on this one.  The two holes that were intended for the SCART interface hardware line up perfectly with two lines on the grill.  This made mounting the bracket as easy as a couple of small nuts and bolts.  Once mounted, it was time to start working on the power cable.  I decided to use the yellow and black wires for the fan&#8217;s power because black is considered &#8220;ground&#8221; and yellow is considered the &#8220;+12V&#8221; lead in computer power supplies.</p>
<div id="attachment_578" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/threewire.jpg"><img class="size-medium wp-image-578" title="Three wire connector" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/threewire-300x225.jpg" alt="Three wire connector" width="300" height="225" /></a><p class="wp-caption-text">Three wire connector</p></div>
<p>I cut off the green lead, and cut the cable about two inches long.  I then wired the wires from the fan to the Intel cable.  The red wire on the blower goes to the Yellow wire on the Intel cable and the two blacks go together. Not shown in this image is the small length of shrinkwrap used to secure and isolate the connection.</p>
<div id="attachment_579" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/solderprep.jpg"><img class="size-medium wp-image-579" title="Solder Preperation" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/solderprep-300x225.jpg" alt="Solder Preperation" width="300" height="225" /></a><p class="wp-caption-text">Solder Preperation</p></div>
<p>After soldering the first wire, I sealed it with the heatshrink and then soldered the other wire.</p>
<div id="attachment_580" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/solder1.jpg"><img class="size-medium wp-image-580" title="Soldered and shrinked" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/solder1-300x225.jpg" alt="Soldered and shrinked" width="300" height="225" /></a><p class="wp-caption-text">Soldered and Shrinked</p></div>
<p>Another piece of heatshrink later and I have a ready to install cable.</p>
<div id="attachment_581" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/complete.jpg"><img class="size-medium wp-image-581" title="Completed cable" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/complete-300x225.jpg" alt="Completed cable" width="300" height="225" /></a><p class="wp-caption-text">Completed cable</p></div>
<p>With the cable now complete, all that remained was to plug the power cable into the power header and snap the blower back into the bracket.</p>
<div id="attachment_582" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/blowermounted.jpg"><img class="size-medium wp-image-582" title="Blower mounted" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/blowermounted-300x225.jpg" alt="Blower mounted" width="300" height="225" /></a><p class="wp-caption-text">Blower Mounted</p></div>
<p>Here is a shot of the back of the case with the now operational blower.</p>
<div id="attachment_583" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/exhaustport.jpg"><img class="size-medium wp-image-583" title="SCART Exhaust port." src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/exhaustport-300x225.jpg" alt="SCART Exhaust port." width="300" height="225" /></a><p class="wp-caption-text">SCART Exhaust port.</p></div>
<p>And finally, here&#8217;s a side-by-side (or top and bottom) with an unmodified settop box.</p>
<div id="attachment_584" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/beforeandafter.jpg"><img class="size-medium wp-image-584" title="Modded and Unmodded settops" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/08/beforeandafter-300x225.jpg" alt="Modded and Unmodded settops" width="300" height="225" /></a><p class="wp-caption-text">Modded and Unmodded settops</p></div>
<h2>Final Results</h2>
<p>I&#8217;ve been running the settop now for the past couple of days and I can say that the blower is 100% effective.  The case is cool to the touch and my fears of cooking the processor have been abated.  The machine will do very nicely as a pfSense firewall as soon as I get around to finishing it up but for now, this is one less thing stopping me from using it.</p>
<p>If you ever find yourself in a similar situation where you have to get airflow but don&#8217;t have much space, I highly recommend these squirrelcage blowers.  They&#8217;re cheap, they&#8217;re effective and well worth the time to install.  Although I had to go a bit out of my way to install the blower, not having to worry about cooking the machine is well worth the effort.</p>
<p>I hope you enjoyed this article, it was definitely an interesting approach to cooling in a small form factor.  Do you have any insight or other experience with odd cooling in a similar situation?  Please leave a comment, I&#8217;m always interested in other people&#8217;s stories.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2010/08/14/squirrelcage-blower-keeps-small-form-factor-pcs-cool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seagate Dockstar: Add an accessible serial port</title>
		<link>http://www.yourwarrantyisvoid.com/2010/07/21/seagate-dockstar-add-an-accessible-serial-port/</link>
		<comments>http://www.yourwarrantyisvoid.com/2010/07/21/seagate-dockstar-add-an-accessible-serial-port/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 18:35:55 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Embedded devices]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Dockstar]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mods]]></category>
		<category><![CDATA[seagate]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=526</guid>
		<description><![CDATA[Ok, so not long after I published the article on  the hardware teardown of the Seagate Dockstar, I couldn&#8217;t help myself  so I started working on things to do with this device.  I did a lot of research in regards to the capabilities of the Dockstar, including being able to push a customized Linux OS [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-527" title="seagate serial logo" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/seagate-serial-logo.jpg" alt="" width="214" height="94" /></p>
<p>Ok, so not long after I published the article on  the <a href="http://www.yourwarrantyisvoid.com/2010/07/14/hardware-porn-seagate-dockstar-teardown/" target="_blank">hardware teardown of the Seagate Dockstar</a>, I couldn&#8217;t help myself  so I started working on things to do with this device.  I did a lot of research in regards to the capabilities of the Dockstar, including being able to push a customized Linux OS on the device.  Once I saw <a href="http://hackaday.com/2010/07/17/openwrt-on-a-seagate-freeagent-dockstar/" target="_blank">the article at Hackaday</a> that covers exactly how to replace the OS, I knew I had to do it for myself.  There are two ways to perform this upgrade however in order to capture syslog output and to be able to get to the bootloader, a serial port is required.  Just about all of the sites will describe the pins needed to make the connection, however none of them detail how to do it very clearly and none of them address the issue of aesthetics.  Read on for my method of adding a serial port to the Dockstar without affecting the look of the device.</p>
<p><span id="more-526"></span></p>
<h1>Before We Begin&#8230;.</h1>
<p>The Seagate Dockstar has a serial port available via three of the pins on the header at the front of the PCB.  The issue is that they&#8217;re not very easy to get to without having to disassemble the device each and every time you need to do a recovery on it.  This is hardly an ideal solution, and who knows what I&#8217;ll be doing with the device in the future.  If I decide to embed the  device and something goes wrong, I&#8217;ll have to have access to the serial port in order to debug it.</p>
<p>But, simply having access to the serial port is not enough.  The Dockstar&#8217;s aesthetic elegance is in the fact that it&#8217;s so simple.  No  massive amount of connectors aside from Power and Ethernet, and with little room to begin with, I don&#8217;t want to have a cable hanging out of the box just to have access to the serial port.  After much deliberation, I decided that a pin-row setup would be ideal instead of some other outward-facing connector.  The advantages to a pin-row set up is that there are only as many holes as are needed to establish connection and the connector size is significantly smaller than would be a standard DB-9 connector.  An additional advantage to the pin-row setup is that the  connection would be temporary and can be easily removed. The resulting connection port would still be cleanly presented and would not stick out like a sore thumb.</p>
<h2>Parts List:</h2>
<p>In order to pull this off, you will need the following items:</p>
<p>- a CA-42 USB cable. &#8211; This is most commonly sold as a <a href="http://www.amazon.com/Cable-Nokia-CA-42-Wireless-Accessory/dp/B000BI4HW8" target="_blank">Nokia cable through Amazon</a> and can usually be had for a few bucks. This is <strong>required</strong> as the dockstar&#8217;s serial port voltages are at a 3.3V TTL.  interfacing it to a standard +12V/-12V serial port <strong>will damage your Dockstar.</strong> The CA-42 cable has a PL-2303 USB to 3.3v TTL serial adapter in it which provides the required 3.3v TTL and gives an easy to use connector for plugging it into your host PC.</p>
<p>- a 4-pin header with long pins. &#8211; The pins have to be long enough that they will go through the Dockstar case and into the matched connector securely.</p>
<p>- a matched connector for the 4 pin header. &#8211; This will be mounted inside the Dockstar.</p>
<p>- Heat shrink tubing of various sizes. (Use the images as a guide)</p>
<p>- A couple of spares of the 4 pin header and the connector.  (We&#8217;ll use one spare for making the holes in the case, but it&#8217;s always good to have extras just in case.</p>
<h2>Tools List:</h2>
<p>- Soldering Iron</p>
<p>- Lighter (for heatshrink)</p>
<p>- small diameter drillbits</p>
<p>- Spudger (or Radio Shack soldering toolkit)</p>
<p>- A Linux machine with an available USB port. <strong>Note:</strong> It may be possible to use a windows computer for testing however my USB adapter only works in Linux.</p>
<p>Now that you have all the components, it&#8217;s important to stop here for a sec and cover the legal mess. It is critically important that you know what you&#8217;re doing.  You can not blame me or hold this site responsible (or the maintainers of this site) if you do something and blow up your Dockstar.  Be careful, do your research, check twice, solder once.</p>
<p>Please note that if you have never worked with shrinkwrap, the important thing is to watch the fire and keep it moving.  If you leave the lighter in the same place for too long, the shrinkwrap will stop shrinking and will catch fire.  When in doubt, apply the hat quickly and watch the shrinkwrap closely.   If it does something wrong, move the lighter away and start blowing on it to cool it down.</p>
<h1>Part 1:  The Cable</h1>
<p>It&#8217;s easier to do the modification on the cable first rather than do the Dockstar portion due to the fact that part of performing the Dockstar side of things will require testing to make sure it&#8217;s all working properly. So, let&#8217;s get started.</p>
<p style="text-align: left;">
<div id="attachment_528" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_serial.jpg"><img class="size-medium wp-image-528 " title="CA-42 cable, header and connector" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_serial-300x225.jpg" alt="CA-42 cable, header and connector" width="300" height="225" /></a><p class="wp-caption-text">CA-42 cable, header and connector</p></div>
<p style="text-align: left;">This is the cable that we will be hacking together. The pin-row connector shown above is a 4 pin wirewrap terminal and a push-on style PCB mount connector.</p>
<div id="attachment_531" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_header.jpg"><img class="size-medium wp-image-531" title="cable header and connector" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_header-300x225.jpg" alt="cable header and connector" width="300" height="225" /></a><p class="wp-caption-text">cable header and connector</p></div>
<p>In the above photo,you can see the long header pins and the matching connector and how they fit together.  Before we get started with modifying the cable, we first need to figure out how it&#8217;s wired up.  Because there is a very good chance that you have a generic cable, and generic cables are wired differently, we will start off with spudging the USB connector apart.</p>
<p style="text-align: left;">
<div id="attachment_529" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_spudger.jpg"><img class="size-medium wp-image-529" title="Spudger to cable case" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_spudger-300x225.jpg" alt="Spudger to cable case" width="300" height="225" /></a><p class="wp-caption-text">Spudger to cable case</p></div>
<p>Follow the plastic seam of the USB connector with the sharp blade of the spudger.  Gently work the two halves of the plastic apart until you are able to seperate them.  You should see a connector that looks like the one below.</p>
<div id="attachment_530" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_opened.jpg"><img class="size-medium wp-image-530" title="Opened cable" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_opened-300x225.jpg" alt="Opened cable" width="300" height="225" /></a><p class="wp-caption-text">Opened cable</p></div>
<p>A closer of the PCB will reveal that the  wires (white, blue and green) are labeled for our easy hacking <span style="text-decoration: line-through;">convenience</span> . The three wires in my cable are Blue(GND), Green (RxD), and White (TxD). Now that we know which wire does what, reassemble the USB cable as we will not need to do any work on this end of the cable.  Starting with the 4 pin connector, pick one of the two internal pins and remove it.</p>
<div id="attachment_532" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_pins.jpg"><img class="size-medium wp-image-532" title="Removed pin from connection block" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_pins-300x225.jpg" alt="Removed pin from connection block" width="300" height="225" /></a><p class="wp-caption-text">Removed pin from connection block</p></div>
<p>The reason for removing the offset pin is for two reasons.  1) There are only three wires required for connection and 2) The missing pin will allow us to key the connector so that it can&#8217;t be reversed.  Going back to the USB cable, cut off the fat Nokia phone end and strip the cable back about an inch.  To help with soldering, insert the long end of the header pins into a block of breadboard.  This will help hold the connection stable while you solder the cable.   You will also need to cut the small diameter shrinkwrap in three sizes as shown below.</p>
<div id="attachment_533" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_shrink.jpg"><img class="size-medium wp-image-533" title="Cable preparation" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_shrink-300x225.jpg" alt="Cable preparation" width="300" height="225" /></a><p class="wp-caption-text">Cable preparation</p></div>
<p>The reason for the three lengths of heatshrink tubing is that we will build up the edge of the cable to a large size so that we can use the larger heatshrink tube  (in the back of the picture) to bind the header pins into the wrap and the wrap to the end of the cable to strengthen the cable.  If you have never worked with heatshrink tubing, it&#8217;s very easy to work with.  Start with the longest piece of tubing, and slide it over the cable. Make sure that the cut end matches the end of the insulation and heat with the lighter.  <strong>KEEP THE FLAME MOVING ACROSS THE HEATSHRINK!!</strong> Once the heatshrink has stopped shrinking, allow it to cool and repeat for each piece.</p>
<div id="attachment_534" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_shrinkprep.jpg"><img class="size-medium wp-image-534" title="Shrinkwrapped cable" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_shrinkprep-300x225.jpg" alt="Shrinkrwrapped cable" width="300" height="225" /></a><p class="wp-caption-text">Shrinkrwrapped cable</p></div>
<p>This is the end result of the shrinkwrapping.  Now that the end is built up, slide a piece of the large shrink over the end of the cable but do not apply heat just yet. Strip back the individual wires so that you can attach them to the header pins.</p>
<div id="attachment_535" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_bigshrink.jpg"><img class="size-medium wp-image-535" title="Cable prepped for soldering" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_bigshrink-300x225.jpg" alt="Cable prepped for soldering" width="300" height="225" /></a><p class="wp-caption-text">Cable prepped for soldering</p></div>
<p>Now that we&#8217;re ready to solder the connector, it&#8217;s important to decide how to create the pinout.  In my setup, I elected to have the GND connection by itself, then the TX and RX pins.  For each wire, wrap the wire around the soldering post on the header pins and solder.  Be sure to use only enough solder as is required for the connection and do not  bridge the pins.</p>
<div id="attachment_536" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_soldered.jpg"><img class="size-medium wp-image-536" title="Soldered cable to header pins" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_soldered-300x225.jpg" alt="Soldered cable to header pins" width="300" height="225" /></a><p class="wp-caption-text">Soldered cable to header pins</p></div>
<p>Now with the cable soldered and the connections solid, it&#8217;s time to apply the heat to the large heatshrink.  Very carefully pull the end of the heatshrink over the black plastic header and gently apply heat.  Adjust if needed and let the tubing shrink without it pulling itself off of the header plastic.</p>
<div id="attachment_537" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_shrink1.jpg"><img class="size-medium wp-image-537" title="Shrinkwrap applied to header" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_shrink1-300x225.jpg" alt="Shrinkwrap applied to header" width="300" height="225" /></a><p class="wp-caption-text">Heatshrink applied to header</p></div>
<p>When you have it this far, go ahead and apply heat to the rest of the heatshrink tubing, making sure not to singe it.  When you are done, you should have a cable looking like the one below.</p>
<div id="attachment_538" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_completed.jpg"><img class="size-medium wp-image-538" title="Completed cable with socket" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/cable_completed-300x225.jpg" alt="Completed cable with socket" width="300" height="225" /></a><p class="wp-caption-text">Completed cable with socket</p></div>
<p>This was the easy part, Now it&#8217;s time for the dockstar.</p>
<h1>Part 2: The Dockstar</h1>
<p>We&#8217;ve got the cable, but without something to connect it to, it&#8217;s pretty useless (unless you want to use it on a breadboard).  Let&#8217;s take a look at what&#8217;s going on.</p>
<div id="attachment_539" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/DS_plan.jpg"><img class="size-medium wp-image-539" title="Dockstar connection planning" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/DS_plan-300x225.jpg" alt="Dockstar connection planning" width="300" height="225" /></a><p class="wp-caption-text">Dockstar connection planning</p></div>
<p>Since I&#8217;ve already determined that I want the connector for the serial to come out of the back of the device and I&#8217;ve already found a suitably small connector, it&#8217;s time to find a location where I can attach it without getting too involved or without interfering with the existing ports on the back of the dockstar.  I&#8217;ve elected to put the serial port just above the center USB connector.  In the photo above, you can see how much space we&#8217;re dealing with in comparison with the USB ports and the header socket.</p>
<div id="attachment_540" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_shield1.jpg"><img class="size-medium wp-image-540" title="Dockstar shielding" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_shield1-300x225.jpg" alt="Dockstar shielding" width="300" height="225" /></a><p class="wp-caption-text">Dockstar shielding</p></div>
<p>Some of the RF shielding will need to be removed, but thankfully the metal is pretty flimsy and easily cut.   Be sure that when you remove the little fins pictured that you do not distort the top of the metal shielding.  We need a surface as smooth as possible for the superglue to properly bind with the connector for the serial port.</p>
<div id="attachment_541" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_shield2.jpg"><img class="size-medium wp-image-541" title="Unneeded shielding removed" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_shield2-300x225.jpg" alt="Unneeded shielding removed" width="300" height="225" /></a><p class="wp-caption-text">Unneeded shielding removed</p></div>
<p>Here is the picture of the unneeded shielding removed.  Please only remove the shielding that you need.  Next, you will need to prep another three pin header just like you did for the cable.  Rather than trusting faulty measurements and guessing, we&#8217;re going to use the header&#8217;s pins themselves to point out where we need to place our holes.</p>
<div id="attachment_542" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_burn.jpg"><img class="size-medium wp-image-542" title="Burned through holes" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_burn-300x225.jpg" alt="Burned through holes" width="300" height="225" /></a><p class="wp-caption-text">Burned through holes</p></div>
<p>Using a pair of needlenose pliers and your soldering iron, heat the pins evenly and apply moderate pressure.  The pins may wiggle slightly but don&#8217;t let them move too far off otherwise your holes won&#8217;t be lined up. When all three pins have punched through, remove the pins with the needlenose pliers.  Use the small diameter drill bit to widen the holes and to furr out any residual plastic scraps.  Your finished holes should look something like below.</p>
<div id="attachment_543" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_holes.jpg"><img class="size-medium wp-image-543" title="Completed holes" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_holes-300x225.jpg" alt="Completed holes" width="300" height="225" /></a><p class="wp-caption-text">Completed holes</p></div>
<p>Just to make absolutely sure, go ahead and test with the connector and the cable to make sure everything fits properly.</p>
<div id="attachment_544" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_test.jpg"><img class="size-medium wp-image-544" title="Hole Alignment Test" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_test-300x225.jpg" alt="Hole Alignment Test" width="300" height="225" /></a><p class="wp-caption-text">Hole Alignment Test</p></div>
<p>If you&#8217;ve made it this far, you&#8217;re doing good.  Now it&#8217;s time to prep the connector for supergluing into the Dockstar&#8217;s case.  Since it&#8217;s a four pin connector and we&#8217;re only using three pins, make sure that the connector is properly oriented so that it fits properly and so that the serial cable can move freely in and out of the connector.  Back the cable off a bit so you can see which pin is missing and cut off the connector&#8217;s matching pin to eliminate a possible mis-wiring later on. Go ahead and attach and solder a wire to each of the three remaining pins.</p>
<div id="attachment_545" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_connwires.jpg"><img class="size-medium wp-image-545" title="Socket connection with wires" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_connwires-300x225.jpg" alt="Socket connection with wires" width="300" height="225" /></a><p class="wp-caption-text">Socket connection with wires</p></div>
<p>In order to glue the connector socket in, take the excess wire and coil it up for now. Apply a thin coat of superglue inside the Dockstar and when aligned, push the three pin header you used for burning the connector in through your drilled holes and into the connector.  This will hold the socket steady while the superglue cures.  Give it about 15 minutes to cure properly, then gently remove the pins from the socket.  At this point, you should have a fully mounted socket like in the picture below.</p>
<div id="attachment_546" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_glue.jpg"><img class="size-medium wp-image-546" title="Glued in header socket" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_glue-300x225.jpg" alt="Glued in header socket" width="300" height="225" /></a><p class="wp-caption-text">Glued in header socket</p></div>
<p>Now that the socket is taken care of, we need to attach it to the serial port on the Dockstar&#8217;s board.  Before we do anything permanent, we will test the serial port and then once we are satisfied that it&#8217;s all working, we&#8217;ll solder them in and close it up.   Start off with wrapping the ground wire to the lower right hand pin on the connection block.  This is the common GND connection and must be established first. If you are using my wiring plan, the GND wire is the single pin by itself on the three pin header we made earlier.</p>
<div id="attachment_547" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_wrap.jpg"><img class="size-medium wp-image-547" title="wirewrapped GND wire" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_wrap-300x225.jpg" alt="wirewrapped GND wire" width="300" height="225" /></a><p class="wp-caption-text">wirewrapped GND wire</p></div>
<p>The two pins to the left of the GND pin are the RX and TX pins respectively.  Attach the centermost pin to RX and the remaining pin to TX on the superglued connector.</p>
<div id="attachment_548" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_wrap2.jpg"><img class="size-medium wp-image-548" title="Connected wires" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_wrap2-300x225.jpg" alt="Connected wires" width="300" height="225" /></a><p class="wp-caption-text">Connected wires</p></div>
<p>Remember, we have NOT soldered the three wires yet.  Also, make sure that none of the wires are touching prior to connection.  In order to test the serial port and make sure we have it hooked up right, connect the three pin header on the serial cable to your socket on the back of the Dockstar and connect the USB connector to your computer. Do not apply power to the Dockstar yet.  Open up minicom and set the serial device to /dev/ttyUSB0, 115200, no parity, 8 bits, 1 stop bit.  When properly configured, apply power to the Dockstar and watch your console window.  If you got it right, you should get similar output like below.   If not, pull the power plug on the Dockstar and disconenct the serial cable out of the back of the dockstar.  Swap the left two pins (RX and TX) and try again.  You should get output like below.</p>
<div id="attachment_549" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_serial.jpg"><img class="size-medium wp-image-549" title="Serial terminal output" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_serial-300x186.jpg" alt="Serial terminal output" width="300" height="186" /></a><p class="wp-caption-text">Serial terminal output</p></div>
<p>Now that you&#8217;ve tested the wiring, disconnect the power and the serial cable from the Dockstar.  Solder the wires in place and reassemble the Dockstar. Be careful closing the cover as you want to make sure that the wires coming off the superglued socket do not touch the metal shielding. (Editor&#8217;s Note: I really need a hot glue gun)</p>
<div id="attachment_550" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_closeup.jpg"><img class="size-medium wp-image-550" title="Closeup of Dockstar prior to reassembly" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_closeup-300x225.jpg" alt="Closeup of Dockstar prior to reassembly" width="300" height="225" /></a><p class="wp-caption-text">Closeup of Dockstar prior to reassembly</p></div>
<p>Close it all up and test it one more time.  If everything works as should, you&#8217;re good to go.  Now you can access the serial port without having to take your Dockstar apart over and over again.</p>
<div id="attachment_551" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_comp_att.jpg"><img class="size-medium wp-image-551" title="Completed mod with serial cable attached" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_comp_att-300x225.jpg" alt="Completed mod with serial cable attached" width="300" height="225" /></a><p class="wp-caption-text">Completed mod with serial cable attached</p></div>
<p>Here is a picture of the completed serial cable mod. The serial cable is plugged in right above the keydrive in this photo.</p>
<div id="attachment_552" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_complete.jpg"><img class="size-medium wp-image-552" title="View of Serial Port" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/ds_complete-300x225.jpg" alt="View of Serial Port" width="300" height="225" /></a><p class="wp-caption-text">View of Serial Port</p></div>
<p>Same view as above, but with the serial cable removed.  Nothing but three holes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2010/07/21/seagate-dockstar-add-an-accessible-serial-port/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>Hardware Porn: Seagate Dockstar teardown</title>
		<link>http://www.yourwarrantyisvoid.com/2010/07/14/hardware-porn-seagate-dockstar-teardown/</link>
		<comments>http://www.yourwarrantyisvoid.com/2010/07/14/hardware-porn-seagate-dockstar-teardown/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 01:00:20 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Embedded devices]]></category>
		<category><![CDATA[Hardware Pr0n]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Dockstar]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[seagate]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=504</guid>
		<description><![CDATA[I was given a very interesting product by a friend of mine that happened to catch a good deal on woot.com a few days ago.  Apparently Seagate has made a network fileserver device for their Freeagent Go line of portable USB drives called the Freeagent DockStar. (I can only think that this is a play [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-505" title="Seagate Logo" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/seagatelogo.png" alt="Seagate Logo" width="136" height="79" />I was given a very interesting product by a friend of mine that happened to catch a good deal on woot.com a few days ago.  Apparently Seagate has made a network fileserver device for their Freeagent Go line of portable USB drives called the Freeagent DockStar. (I can only think that this is a play on Battlestar Galactica&#8217;s Baystar &#8211; a cylon &#8220;aircraft-carrier&#8221; of sorts.)  When I went to look for pictures online of the hardware, I was dismayed to find nothing about the inside of the little thing.  So here they are in all their exposed glory, the innards of the Seagate Dockstar.</p>
<p><span id="more-504"></span></p>
<div id="attachment_506" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/Dockstar-box.jpg"><img class="size-medium wp-image-506" title="Dockstar box" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/Dockstar-box-300x225.jpg" alt="Dockstar box" width="300" height="225" /></a><p class="wp-caption-text">Dockstar box</p></div>
<p>This is the box that the Dockstar came in.  Having not bought a non-OEM seagate drive in ages, I was pleasantly surprised that they used normal cardboard instead of some plastic case for this device.  Seagate is really pushing their &#8220;Go Green&#8221; incentive by changing the entire box (even the box inside) with easy to recycle cardboard instead of that translucent plastic &#8220;tray&#8221; that normally accompanies electronics.  While not necessarily an indication of product performance, it does show that they care about the environment.</p>
<div id="attachment_507" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/Dockstar-contents.jpg"><img class="size-medium wp-image-507" title="Dockstar contents" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/Dockstar-contents-300x225.jpg" alt="Dockstar contents" width="300" height="225" /></a><p class="wp-caption-text">Dockstar contents</p></div>
<p>Inside the box, aside from the little &#8220;Getting Started Manual&#8221; is the following items:  A Universal power brick pre-fitted with the US style prongs, a shielded ethernet cable and of course, the dockstar itself.</p>
<div id="attachment_509" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/universal-plug.jpg"><img class="size-medium wp-image-509" title="universal plug sticker" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/universal-plug-300x225.jpg" alt="universal plug sticker" width="300" height="225" /></a><p class="wp-caption-text">universal plug sticker</p></div>
<p>Here&#8217;s a closeup of the universal plug and all it&#8217;s various warnings and certifications.  I have seen a shift towards these universal plugs and away from the more proprietary plugs that manufacturers would normally use as a cost saving process. Since there is no one world-wide standard on power for every country that Seagate does business with, why spend that money building 20+ different power adapters when all you need is one with different prongs to fit whatever country&#8217;s plugs you&#8217;re going to be selling to.</p>
<div id="attachment_510" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/up-details.jpg"><img class="size-medium wp-image-510" title="Universal Plug details" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/up-details-300x225.jpg" alt="Universal Plug details" width="300" height="225" /></a><p class="wp-caption-text">Universal Plug details</p></div>
<p>And, just because I&#8217;m a sucker for details (and I keep losing the power bricks), here&#8217;s the voltage and amperage rating of the power brick.  Output is 12vDC 2Amps with a positive tip.</p>
<div id="attachment_508" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/dockstar-front.jpg"><img class="size-medium wp-image-508" title="dockstar front" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/dockstar-front-300x225.jpg" alt="Dockstar front" width="300" height="225" /></a><p class="wp-caption-text">Dockstar front</p></div>
<p>Finally, we get to the dockstar to find what secrets it holds.  The front panel has one LED for device status and the USB mini-B port for the Freeagent drive to sit in.  Unlike most older-style USB devices, the Seagate Freeagent is powered entirely through the USB port, eliminating the need for two cables to power one device.  Overall it&#8217;s a simple presentation of what looks to be a fairly complex device.</p>
<div id="attachment_511" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/dockstar-back.jpg"><img class="size-medium wp-image-511" title="Dockstar Back" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/dockstar-back-300x225.jpg" alt="Dockstar Back" width="300" height="225" /></a><p class="wp-caption-text">Dockstar Back</p></div>
<p>The back of the dockstar has two USB ports, the Gigabit Ethernet port and the power port on it.  I would like for there to have been a link and an activity LED for the Ethernet port, but unfortunately this was not implemented.  I guess I&#8217;m a sucker for LEDs.</p>
<div id="attachment_512" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/dockstar-side.jpg"><img class="size-medium wp-image-512" title="Right side of dockstar" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/dockstar-side-300x225.jpg" alt="Right side of dockstar" width="300" height="225" /></a><p class="wp-caption-text">Right side of dockstar</p></div>
<p>The right side of the dockstar features another USB port and the reset switch for the device.  The left side of the dockstar (not pictured) only has cooling vents on the side.</p>
<div id="attachment_513" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/dockstar-bottom.jpg"><img class="size-medium wp-image-513" title="dockstar bottom" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/dockstar-bottom-300x225.jpg" alt="Dockstar Bottom" width="300" height="225" /></a><p class="wp-caption-text">Dockstar Bottom</p></div>
<p>This is the bottom of the dockstar which has a large sticker that shows the serial numbers and MAC address of the device.  Of note, there was one number on this sticker which is formatted like some kind of product activation key and is formatted as follows:  six alphanumeric characters,  hyphen, six alphanumeric characters, hyphen, two alphanumeric characters, hyphen, six alphanumeric characters, hyphen, six alphanumeric characters.   At first glance, I thought these were hexadecimal numbers however the letters used were not between A-F and so it&#8217;s currently unclear what this number is for.  There is no mention of what this number is for in the documentation.</p>
<div id="attachment_514" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/spudger.jpg"><img class="size-medium wp-image-514" title="Gaining access to the insides" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/spudger-300x225.jpg" alt="Gaining access to the insides" width="300" height="225" /></a><p class="wp-caption-text">Gaining access to the insides</p></div>
<p>Typically on a device like this and most small consumer devices, there are four screws on the bottom (usually under the black slip-resistant dots) however the Dockstar doesn&#8217;t have any.  In order to gain access, I used a metal spudger to work the bottom away from the top half of the body.  There are two notches on each side of the square base, so you may need to use something flat like a spudger, small flathead screwdriver or a expansion slot blank to pry it open.</p>
<div id="attachment_515" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/just-opened.jpg"><img class="size-medium wp-image-515" title="Cracked the case" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/just-opened-300x225.jpg" alt="Cracked the case" width="300" height="225" /></a><p class="wp-caption-text">Cracked the case</p></div>
<p>Once you cracked the case open (hopefully without breaking it), you should see the small cable that connects the top USB port to the dockstar&#8217;s mainboard.  Carefully disconnect this cable and the two halves should now be seperated.</p>
<div id="attachment_516" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/mb-top.jpg"><img class="size-medium wp-image-516" title="Mainboard top view" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/mb-top-300x225.jpg" alt="Mainboard top view" width="300" height="225" /></a><p class="wp-caption-text">Mainboard top view</p></div>
<p>This is the dockstar in all it&#8217;s nude glory. The front of the device is to the right in this photograph. The small black square is Nanya 1Gb (comes out to ~128 megabytes)  DDR-2 RAM in a BGA package. <a href="http://www.nanya.com/NanyaAdmin/GetFiles.ashx?ID=502" target="_blank">Datasheet available here</a> and the large square is the device&#8217;s main processor.  From research I have performed, this appears to be a Marvell 1.2GHZ processor (just like the sheevaplug devices that Marvell is also selling. I tried to pull some more datasheets from plugcomputer.org, but their datasheet listing is quite lacking.  For now, just know that it&#8217;s an arm compliant processor and when I post an update article, I will have more juicy details on the capabilities of the processor.  Also of note, just below and to the right of the processor is a small ten pin header.  Presumably this can be used for a serial port however I do not have the cable for that.  Once I get it in and test it, I will update this article with a pinout diagram for you. Since this device is so low-level I would not recommend trying to connect a regular serial port to it directly as it more than likely requires a level shifter like a MAX232 to bring the -12/+12VDC down into something that won&#8217;t blast the components.</p>
<div id="attachment_517" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/mb-bottom.jpg"><img class="size-medium wp-image-517" title="Mainboard bottom" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/07/mb-bottom-300x225.jpg" alt="Mainboard bottom" width="300" height="225" /></a><p class="wp-caption-text">Mainboard bottom</p></div>
<p>This is the bottom of the dockstar&#8217;s mainboard.  Unfortunately, the board is now oriented that the front of the dockstar is now at the bottom of the picture. (Bad cameraman, no cookie.)  There&#8217;s not really much to note here as the board layout is jam packed with passive components.  The large black square on the lower right is the NAND storage for the device and while I couldn&#8217;t pull up the datasheet for it, the guys over at PlugPBX already had a <a href="http://forums.plugpbx.org/index.php?topic=97.0" target="_blank">forum post</a> that showed the Dockstar&#8217;s hardware specs for us.  According to their chart, the dockstar&#8217;s storage is 256MB. which should be more than adequate for general Linux fun.  The small chip just under the black tape in the upper right hand corner of the board is presumably the ethernet NIC however googling the chip numbers came up with nothing.</p>
<p>Just looking at the hardware overall, it would appear that the Seagate Dockstar is a very capable device that just needs to be altered to run whatever we choose to run with it.  While the software on the device (stock) comes with a filesharing service called Pogoplug, I do not intend on using that software and will be looking to get this device as far away from stock as possible.  Here is a list of some things I&#8217;ve been thinking of doing with it so far:</p>
<ul>
<li>Home NAS (without Internet file sharing)</li>
<li>multihomed router (I have a stack of pegasus USB modules)</li>
<li>semiportable network notification device (USB to parallel port, HD44780 LCD display)</li>
<li>realtime data acquisition device (USB logger and serial ports?)</li>
<li>Apple MT-DAAPd server for streaming music to iTunes installations on your local network</li>
</ul>
<p>Some sites I&#8217;ve seen while doing research have mentioned things from a in-home webserver with databases, to even a PBX server (take a look at <a href="http://www.plugpbx.org/" target="_blank">www.plugpbx.org</a>)</p>
<p>The big question is:  What would you do with it? Feel free to leave a comment as to what you&#8217;d do with this device, suggestions, information, etc.</p>
<p>FIRESTORM_v1</p>
<h1><span style="color: #ff0000;"><em><span style="text-decoration: underline;"><strong>BIG FAT OBNOXIOUS WARNING!:</strong></span></em></span><span style="color: #ff0000;"> </span></h1>
<p>Because of the Dockstar&#8217;s affinity to want to &#8220;phone home&#8221; thanks to the Pogoplug software,  I would not recommend plugging this into your live network just yet.  In all of the research I have done for this device, just about every site I have seen has posted some kind of warning about this.  The dockstar was originally designed to run with pogoplug which is an internet filesharing service that allows you to access your files from anywhere with Internet connectivity.  I don&#8217;t exactly trust an outside third party to have access to my files on a device that is only going to be used on a local network so I have not connected mine up to even test it.  If you are going to do any work with this device, I recommend that you use a dedicated mini-hub or switch and that it not be allowed to connect to the Internet until you have a complete understanding of what all it wants to do. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2010/07/14/hardware-porn-seagate-dockstar-teardown/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Parts: Parallax RFID scanner now $10!</title>
		<link>http://www.yourwarrantyisvoid.com/2010/06/14/parts-parallax-rfid-scanner-now-10/</link>
		<comments>http://www.yourwarrantyisvoid.com/2010/06/14/parts-parallax-rfid-scanner-now-10/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 01:21:09 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Embedded devices]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[microcontroller]]></category>
		<category><![CDATA[Parallax]]></category>
		<category><![CDATA[RFID]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=491</guid>
		<description><![CDATA[Hello Everyone!   If you&#8217;ve been in a Radio Shack sometime in the last year or so, you&#8217;ll know that Radio Shack and Parallax have teamed up to bring some variety to the parts drawers.  This once $50 serial RFID reader kit is now $10 at Radio shack although it only comes with two tags.  Read [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_492" class="wp-caption aligncenter" style="width: 260px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/06/32390-M.jpg"><img class="size-full wp-image-492" title="Parallax RFID" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/06/32390-M.jpg" alt="" width="250" height="250" /></a><p class="wp-caption-text">Image courtesy of Parallax.com</p></div>
<p style="text-align: left;">Hello Everyone!   If you&#8217;ve been in a Radio Shack sometime in the last year or so, you&#8217;ll know that Radio Shack and Parallax have teamed up to bring some variety to the parts drawers.  This once $50 serial RFID reader kit is now $10 at Radio shack although it only comes with two tags.  Read more for additional details about the Serial RFID reader now on sale!<span id="more-491"></span></p>
<p style="text-align: left;">The Parallax Serial RFID reader is 5 volt TTL compatible signalling and requires two I/O pins.  One is output for the &#8220;enable&#8221; pin which when brought low, turns on the RFID reader.  The tag data comes in on another pin to be read by your 5V TTL compatible microcontroller.   If you are using the 5V Basic Stamp or the 3.3V (5V tolerant) Propeller, then this is just a snap-in add on, no additional hardware is required.  Other controllers may require additional voltage converters to drop the TTL signal down to a voltage compatible for your controller.</p>
<p style="text-align: left;">Also take note that this is a 125kHz tag reader, so reading your company&#8217;s HID RFID tag will more than likely not work unless you have a 125kHz tag.</p>
<p style="text-align: left;">You can find the full datasheet, sample code and schematics from <a href="http://www.parallax.com/StoreSearchResults/tabid/768/txtSearch/rfid/List/0/SortField/4/ProductID/114/Default.aspx" target="_blank">Parallax&#8217;s product web page here</a>.</p>
<p style="text-align: left;">If two tags just aren&#8217;t going to cut it, you can take a look at all of <a href="http://www.parallax.com/tabid/768/txtSearch/rfid+tag/List/0/SortField/4/Default.aspx" target="_blank">Parallax&#8217;s tags here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2010/06/14/parts-parallax-rfid-scanner-now-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android:Sprint officially releases Android 2.1 for Samsung Moment!</title>
		<link>http://www.yourwarrantyisvoid.com/2010/05/15/androidsprint-officially-releases-android-2-1-for-samsung-moment/</link>
		<comments>http://www.yourwarrantyisvoid.com/2010/05/15/androidsprint-officially-releases-android-2-1-for-samsung-moment/#comments</comments>
		<pubDate>Sat, 15 May 2010 07:10:43 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Embedded devices]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Product Reviews]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Mods]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=447</guid>
		<description><![CDATA[While writing up the review for the Samsung Moment versus the Palm Pre, I happened to find out that Sprint has now released Android 2.1 (Eclair) for the Moment.  Guess now I have to start over again, but the up side is that this is a very significant update from Samsung&#8217;s initial release, Android 1.5. [...]]]></description>
			<content:encoded><![CDATA[<p>While writing up the review for the Samsung Moment versus the Palm Pre, I happened to find out that Sprint has now released Android 2.1 (Eclair) for the Moment.  Guess now I have to start over again, but the up side is that this is a very significant update from Samsung&#8217;s initial release, Android 1.5.</p>
<p>You can download the update from Sprint at <a title="Sprint's samsung moment update page" href="http://shop.sprint.com/en/software_downloads/pda_smartphone/samsung_moment.shtml" target="_blank">http://shop.sprint.com/en/software_downloads/pda_smartphone/samsung_moment.shtml</a></p>
<p>Please note: According to the instructions available at the link above, you will need to use a Windows PC to apply the update to your phone.  I will be posting a mirror shortly and it will show up in the &#8220;Download Files&#8221; page at the top of this page.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2010/05/15/androidsprint-officially-releases-android-2-1-for-samsung-moment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

