<?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; Hardware</title>
	<atom:link href="http://www.yourwarrantyisvoid.com/category/hardware/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>Reviews: Sparkfun Inventor&#8217;s Kit at Mircocenter</title>
		<link>http://www.yourwarrantyisvoid.com/2011/09/09/reviews-sparkfun-inventors-kit-at-mircocenter/</link>
		<comments>http://www.yourwarrantyisvoid.com/2011/09/09/reviews-sparkfun-inventors-kit-at-mircocenter/#comments</comments>
		<pubDate>Sat, 10 Sep 2011 00:07:25 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[microcontroller]]></category>
		<category><![CDATA[parts]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=1012</guid>
		<description><![CDATA[After reading this post on Hack-a-day, I went to the local MicroCenter to see what all they had to offer in a brick-and-mortar store.  I remember when Parallax and RadioShack had joined together and while the new availability had made it easier to get started with microcontrollers, the most common expression recalled is one of [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1013" class="wp-caption aligncenter" style="width: 198px"><img class="size-full wp-image-1013" title="Sparkfun logo" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/09/sparkfun.gif" alt="Sparkfun logo" width="188" height="105" /><p class="wp-caption-text">Sparkfun at Microcenter!</p></div>
<p>After reading <a href="http://hackaday.com/2011/09/07/need-something-in-a-pinch-sparkfun-products-now-at-micro-center/" target="_blank">this post on Hack-a-day</a>, I went to the local MicroCenter to see what all they had to offer in a brick-and-mortar store.  I remember when Parallax and RadioShack had joined together and while the new availability had made it easier to get started with microcontrollers, the most common expression recalled is one of sadness at the general disarray of the parts cabinets.  Thankfully Microcenter seems to have done Sparkfun right.  Read on for my initial impressions of Microcenter&#8217;s offerings and a full review of my first Arduino kit, the Sparkfun Inventor&#8217;s Kit.<span id="more-1012"></span></p>
<p>If you are interested solely in the review, scroll down to the &#8220;<strong>Finally, the review!</strong>&#8221; section below.</p>
<h3> Online Only stores and Brick and Mortar stores intersect, a bit of history.</h3>
<p>A lot of online-only stores have made offerings into brick and mortar retail stores  with varying amounts of success, unlike retail stores going into online offerings which anyone would say has been a huge success and convenience.  Unfortunately, the DIY/Hobbyist market hasn&#8217;t seen such a success and for the most part has remained largely an online-only affair.</p>
<p>Several years ago, Parallax announced that they would start offering some sensors and kits for sale at Radio Shack.  After hearing the news, I was tentatively excited however after seeing their initial offering, I don&#8217;t think Parallax was done right by Radioshack. They were given half of a disorganized &#8220;parts drawer&#8221;  and a couple of pegs to offer hanging merchandise.  Despite Parallax&#8217;s attempt, the move into retail ultimately floundered. It is my belief that if Radio Shack had given Parallax&#8217;s parts offering a bit more shelf space  and Parallax had made more of an initial offer in Parallax&#8217;s own packaging, they might have been able to make it more successful. Instead, Parallax&#8217;s limited offering (around 10 sensors and the &#8220;What&#8217;s A Microcontroller&#8221; kit) and Radio Shack&#8217;s shoddy mismanagement of the parts bins where the sensors were stored served to bury the Parallax name in the forgotten corners of the store.</p>
<p>Although there was a post several months ago with a shot of custom Parallax retail packaging, I can&#8217;t find the link now, nor did any searching reveal any information. Several other companies watched the Parallax and Radio Shack situation unfold and took notes, now it&#8217;s time to evaluate another initial transitional offering from online only to online/brick-and-mortar offerings.</p>
<h3>Now, to Sparkfun and Microcenter&#8230;</h3>
<p>Sparkfun Electronics has been well known in the Arduino community with their extensive offerings online. Chances are, if there&#8217;s a sensor out there, they have it either in kit form or as a complete pre-fab module.  When I heard that they are making an offering through Microcenter, I was thankful that I lived near Microcenter. Using Parallax and Radio Shack as an example of a failed attempt, I went to Microcenter to scope out their product  offerings.  I was very pleasantly surprised.  Sparkfun&#8217;s initial product offering outpaces Parallax&#8217;s offering by a significant margin as shown in the image below.  Not only do they offer a Getting Started kit (reviewed below), they also offer a wide variety of parts and shields for the Arduino platform.</p>
<div id="attachment_1014" class="wp-caption aligncenter" style="width: 235px"><img class="size-medium wp-image-1014" title="Sparkfun Offering at Microcenter." src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/09/IMG_20110909_105030-e1315601462879-225x300.jpg" alt="Sparkfun Offering at Microcenter." width="225" height="300" /><p class="wp-caption-text">Sparkfun Offering at Microcenter.</p></div>
<p>You can see in the above photo that they have a lot to offer. From my estimates, they had the Arduino platform as well as the Inventor&#8217;s kit and several other non-Arduino projects.  They also offered a wide array of sensors and components as well as several Arduino shields in kit form. Some of the shields they offer is the Arduino motor shield, Arduino Prototype Shield with microSD card reader and the Arduino Joystick Shield.  Their component offering is equally impressive with a multitude of sensors, both serial and parallel character LCD displays, breadboards and modules. Something I saw that I plan on getting later on is a dedicated 3.7V Lithium Polymer charging module with battery.  This module will charge off a USB port and will keep an Arduino running for 50 hours according to the box.  Having something like this is a big bonus when working on embedded hardware.</p>
<p>They also offer several kits like the X-Bee modules kit (which is probably my next purchase) which contain everything you need to get started.  You get a USB to Serial converter board, two X-Bee modules and an X-Bee to Arduino interface shield.  Their RFID kit also has the same level of thought put into it with the necessary adapter board, the RFID sensor and sample RFID cards to experiment with.</p>
<p>In addition to their parts and components, I found something I had been wanting personally. They had tool kits available in store. The kits were ranged according to skill level (easy, medium and complex) with the complex kit featuring a multimeter and soldering iron, while the medium kit only offered the soldering iron.  As the user&#8217;s skill level progresses, they can add to their kit as needed.</p>
<p>One thing that seemed to stand out about their Arduino offering is that they introduced three flavors of Arduino.  The Arduino Uno (which comes in the Inventor&#8217;s kit as well as individually), The Arduino Mini (and the related FTDI programming module) and the Breadboard Arduino (Arduino made on breadboard rather than the standard PCB board).</p>
<p>For those of you asking about cost, this was one of my concerns as well.  In my previous experience, anything in a brick-and-mortar store is usually more expensive.  I did a side-by-side comparison with my phone as I priced random components and kits and I found that the cost at the store was pretty much dead on, only varying by a few cents.</p>
<h3>Final thoughts</h3>
<p>I am thankful that Sparkfun and Microcenter teamed up and I am hoping that they continue to expand their product selection.  I have a feeling that there are a lot of people out there that are wanting to get into microcontrollers and embedded electronics however just aren&#8217;t convinced and need that one little push over from &#8220;Maybe&#8221; to &#8220;Definitely&#8221;.  I can&#8217;t wait to see what is &#8220;in store&#8221; next.  (That was a pun, laugh!)</p>
<p>And without more blathering about Sparkfun and Microcenter, finally we get to the review.</p>
<h2><strong>Finally, the Review!</strong></h2>
<p>The kit I picked up is the <a href="http://www.sparkfun.com/products/10339" target="_blank">Retail version of the SparkFun Inventor&#8217;s Kit (SIK)<strong></strong></a>which has everything one would need to get started with the Arduino and electronics. I won&#8217;t enumerate the full list of materials in the box, however I will present several pictures as shown below.</p>
<div id="attachment_1015" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-1015" title="SIK kit cover" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/09/DSCF2138-300x225.jpg" alt="SIK Kit cover" width="300" height="225" /><p class="wp-caption-text">SIK Kit cover</p></div>
<p>Most of the kits on the market have a hinge at one end however Sparkfun&#8217;s kit has a completely detached cover meant to be removed. This presents the bonus of not eating up twice the kit&#8217;s floor space on your desk.</p>
<div id="attachment_1016" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-1016" title="Kit Contents" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/09/DSCF2139-300x225.jpg" alt="Kit Contents" width="300" height="225" /><p class="wp-caption-text">Kit Contents</p></div>
<p>Inside the kit comes a nicely packaged assortment of parts in the right hand compartments and in the top compartment.  More on those in a bit.  The left hand compartment contains several pin jumpers for breadboarding and Arduino connections and the center large compartment holds the USB cable, the circuit flash cards, the Arduino in its own box and the mounting plate and breadboard.</p>
<div id="attachment_1017" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-1017" title="Arduino Box" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/09/DSCF2140-300x225.jpg" alt="Arduino Box" width="300" height="225" /><p class="wp-caption-text">Arduino Box</p></div>
<p>The Arduino Uno comes in its own little box, prepackaged and QC&#8217;ed from Italy where the Arduino was built and designed.</p>
<div id="attachment_1018" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-1018" title="Unboxed Arduino" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/09/DSCF2141-300x225.jpg" alt="Unboxed Arduino" width="300" height="225" /><p class="wp-caption-text">Unboxed Arduino</p></div>
<p>Along with the Arduino Uno comes a handful of stickers and a little pamphlet with more information about the Arduino.</p>
<div id="attachment_1019" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-1019" title="Mounted Arduino and Breadboard" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/09/DSCF2142-300x225.jpg" alt="Mounted Arduino and Breadboard" width="300" height="225" /><p class="wp-caption-text">Mounted Arduino and Breadboard</p></div>
<p>The mounted Arduino and breadboard on the included Sparkfun mounting plate.  This gives the user a good and stable place to work with the Arduino and the sample circuits in order to understand the Arduino&#8217;s capabilities.</p>
<div id="attachment_1020" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-1020" title="Parts Pictures" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/09/DSCF2143-300x225.jpg" alt="Parts Pictures" width="300" height="225" /><p class="wp-caption-text">Parts Pictures</p></div>
<p>The other parts of the SIK kit include:</p>
<ul>
<li> 74HC595 shift register (pictured)</li>
<li>Rotary Potentiometer</li>
<li>Photoresistor</li>
<li>Two pushbuttons</li>
<li>Piezo speaker</li>
<li>Several LEDs</li>
<li>Several Resistors in a few different values</li>
<li>two Diodes</li>
<li>Transistor (2N2222 variant)</li>
<li>Subminiature Hobby Servo</li>
<li>DC Motor</li>
<li>Flex sensor (top center)</li>
<li>Variable Flex resistor (under sensor)</li>
<li>Additional headers and pins</li>
</ul>
<p>The kit also includes a small booklet that has several circuits and sample code to get started.</p>
<div id="attachment_1021" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-1021" title="Manual, flashcards and USB cable" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/09/DSCF2144-300x225.jpg" alt="Manual, flashcards and USB cable" width="300" height="225" /><p class="wp-caption-text">Manual, flashcards and USB cable</p></div>
<p>The booklet (pictured) contains several circuits and is intended to be used with the flash cards together in order to guide the novice through building the circuits and becoming familiar with the Arduino.  The flash cards each contain a circuit diagram that correlates to how the components should be connected to the Arduino and the book contains sample code with a brief explanation of how the code works.</p>
<h3>Thoughts on the booklet itself</h3>
<p>The book is targeted at new users to the Arduino platform however I quickly came to the conclusion that this kit is not targeted at beginners to electronics.   Coming from the &#8220;What&#8217;s A Microcontroller&#8221; world that explained everything including the basic 101&#8242;s of electronics, this may be a bit off-putting for some however with an understanding of some of the basics, this may serve to bridge the gap between building basic passive electronics projects and more advanced digital electronics projects.</p>
<p>Unlike the &#8220;What&#8217;s A Microcontroller&#8221; kit, there is no complete guide to the command reference included in the kit however the Basic Stamp and the Arduino both have extensive community support.</p>
<h3>Final Thoughts on the Kit</h3>
<p>The Sparkfun Inventor&#8217;s Kit appears to be well stocked with a typical selection of components fit for a beginner&#8217;s kit and will make a good start in working with the Arduino, even if you have never had any microcontroller experience.  While I can&#8217;t recommend this kit as a complete beginner&#8217;s guide to electronics, any newbie should be able to perform additional research to locate the answers they seek.  This is not a completely offline course but I do not consider this to be enough of a deterrent to stop from recommending the kit.  I feel that this kit will be a great addition to any electronics bench and will help anyone with even the most basic electronics experience get started with the Arduino.</p>
<p><strong>Verdict:  Buy!</strong></p>
<p>Cost: $99</p>
<p>Found at: Microcenter and sparkfun.com (sku: <a href="http://www.sparkfun.com/products/10339" target="_blank">RTL-10339</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2011/09/09/reviews-sparkfun-inventors-kit-at-mircocenter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reviews: WD TV Live Plus</title>
		<link>http://www.yourwarrantyisvoid.com/2011/08/26/reviews-wd-tv-live-plus/</link>
		<comments>http://www.yourwarrantyisvoid.com/2011/08/26/reviews-wd-tv-live-plus/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 17:06:02 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Product Reviews]]></category>
		<category><![CDATA[media center]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Small Form Factor]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=992</guid>
		<description><![CDATA[In this post, I will review a recently acquired WD TV Live Plus purchased from Microcenter for around $100.  The quest was to find a media player solution that could read media from network shares and play them with minimal fuss.  Since this is going to be attached to the primary TV, it has to [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-medium wp-image-993 aligncenter" title="WD logo" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wdmonogramc-300x199.gif" alt="WD logo used with permission granted from wdc.com" width="300" height="199" /></p>
<p style="text-align: left;">In this post, I will review a recently acquired WD TV Live Plus purchased from Microcenter for around $100.  The quest was to find a media player solution that could read media from network shares and play them with minimal fuss.  Since this is going to be attached to the primary TV, it has to be &#8220;Girlfriend Approved&#8221; and easy to use.  I believe that the WD TV Live Plus fits this requirement adequately however the installation of the device could be easier.  Once done, the device is wonderful.  Read the full review after the break.</p>
<p style="text-align: left;"><span id="more-992"></span></p>
<h2 style="text-align: left;">Foreword</h2>
<p>One of the things that I&#8217;ve been keeping a close eye on is the development of the media center computer.  A non-PC PC that is used to play local network content and can provide other services through the TV and still maintain the ease of use of a standard DVD player.  I had previously experimented with XBMC and was pleased with it&#8217;s overall hardware support and the features it supported &#8220;out of the box&#8221; however the UI was a bit kludgy and having to predefine all media sources and items before it would show up.  It also didn&#8217;t help much that the only device that I had that would work properly was an old Averatec laptop which did work very well, even with the embedded Intel graphics.</p>
<p>I skipped the newer iterations of XBMC partially due to lack of time and due to the fact that I was still not looking forward to using the Averatec laptop as it required a mouse and I didn&#8217;t have the money to pony up for Windows Media remote (which would have been supported).  Time grew on and by then my needs for additional storage had exceeded a single drive.  I built a Windows based NAS server using a 3ware card donated by a friend and buit a 2Tb storage array.  Soon after that, I got to the point where looking at a media player began to become feasible again as now I had plenty of storage and lots of plans.  I ultimately wanted to rip and encode my DVDs so that I could play them without needing to swap disks endlessly.</p>
<p>I was already accustomed to using Netflix on the Xbox360, however I wanted the same convenience of couch-surfing with all my local media.  A bonus through work found me with extra cash to finally take a look at a media player.  My requirements were simple.</p>
<ul>
<li>It must support a variety of media in a variety of formats and codecs.</li>
<li>It must have a remote and be easily operated.</li>
<li>It must have a variety of outputs including HDMI and Component.</li>
<li>It must be able to read SMB shares easily and remember credentials.</li>
<li>It must be inexpensive.</li>
<li>The box, UI and remote have to not look fugly.</li>
</ul>
<h2>Research, research, research</h2>
<p>I started looking around at a lot of the common media players that are out there.  The Apple TV was too &#8220;hipster&#8221; and I really didn&#8217;t feel like dealing with iTunes after the fiasco that was my iPod.  The price was right and the Apple TV did have the right connectors, but dependence on the iTunes application really made it a deal killer.</p>
<p>Boxee was an attractive option and had high ratings however when I saw the <a href="http://www.boxee.tv/">final product and it&#8217;s cubelike design</a>, it was an instant turnoff. While the hardware was more than adequate, the box itself looked rather ugly. When I did some additional research, the price point (at almost $250 at initial research, now $199) it was still out of my price range. While Boxee did have the free software option like XBMC, I had no &#8220;decent&#8221; hardware on it to make it not suck. so unfortunately this option was nixed.</p>
<p>There were some other media devices that I had found however they were really proprietary and for various reasons, they don&#8217;t even merit mention.  That said, I reluctantly asked around work and several coworkers offered suggestions, most of which were either Apple TV, XBMC, Boxee.  A couple of guys mentioned the WDTV Live Plus so I started doing research.</p>
<p>The WD TV Live Plus appeared to support all of my requirements although several forum posts came up about difficulty with networking.  At $100 a unit, this appeared to be a viable option so I decided to gamble.</p>
<h2>Hardware</h2>
<p>Without further ado, let&#8217;s take a look at what we&#8217;re up against.</p>
<div id="attachment_994" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-994" title="WD TV Live Plus box" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/DSCF2121-300x225.jpg" alt="WD TV Live Plus box" width="300" height="225" /><p class="wp-caption-text">WD TV Live Plus box</p></div>
<p>This is the outside of the box.  Inside the box, you get a remote, two AAA batteries, the WDTV Live Plus, a 1/4in to AV (Video, L and R Audio) cable, a 1/4in to Component (Y,Pb,Pr) cable and power supply adapter.</p>
<div id="attachment_995" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-995" title="WDTV size comparison" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/DSCF2122-300x225.jpg" alt="WDTV size comparison" width="300" height="225" /><p class="wp-caption-text">WDTV size comparison</p></div>
<p>To put a size comparison on things, this thing is SMALL.  It&#8217;s about the size of a large pocket switch roughly 4inches deep, five inches wide and about an inch tall. The remote control is about three inches long  and an inch wide and roughly a half-inch deep. Although it is small, it does fit in either hand comfortably thanks in part to a finger wide notch cut into the bottom of the remote.</p>
<div id="attachment_996" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-996" title="Back ports" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/DSCF2116-300x225.jpg" alt="Back Ports" width="300" height="225" /><p class="wp-caption-text">Back Ports</p></div>
<p>The rear of the WDTV contains several ports as shown above.  The ports from left to right are Power, USB, HDMI, Optical Audio TOSLINK, Ethernet, Component, Composite+Audio.</p>
<div id="attachment_997" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-997" title="Top view" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/DSCF2117-300x225.jpg" alt="Top view" width="300" height="225" /><p class="wp-caption-text">Top view</p></div>
<p>The Top of the WDTV features an additional USB port and the always good-to-have reset pinhole.  In the event of a device failure, you can use the pinhole to factory reset the device and to perform software updates.</p>
<div id="attachment_998" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-998" title="My WDTV installed and running." src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/DSCF2120-300x225.jpg" alt="My WDTV installed and running." width="300" height="225" /><p class="wp-caption-text">My WDTV installed and running.</p></div>
<p>Here is a picture of my WDTV installed and running.  To put it in persepective, that is a Netgear 8 port switch it is sitting on top of and the salt rock to the right is about the size of a 2 liter bottle of soda.</p>
<h3>Other things worth mentioning:</h3>
<ul>
<li>The two USB ports can support a variety of USB Mass Storage devices including cameras, USB Hard drives, Thumb drives and Media Card readers.  It can also support a limited range of <a href="http://wdc.custhelp.com/app/answers/detail/a_id/3805/~/list-of-compatible-devices-for-the-wd-tv-live-hd-media-player-and-wd-tv-live" target="_blank">wireless adapters, USB keyboards and other options</a>. Although Wireless options are available, my network does not run Wireless N and as stated in the link, Wireless G may be too slow for streaming.  I did not get the ability to test Wireless connectivity as my network is primarily wired 10/100 network.</li>
<li>There is no HDMI cable included with this kit so you will need to buy one if you intend to use HDMI.</li>
</ul>
<p>&nbsp;</p>
<h2>Software</h2>
<p>As mentioned earlier, I required that the device be easy to use and able to pick up SMB shares While the UI appeared to be quite usable, there were difficulties in getting the network shares to show up.  Several posts to the WD Customer Support forum complained about this very same issue however I was able to overcome the issue once I found out what the root issue was. If you want a further review of the software, skip this section.</p>
<h3>Not all SMB networks are the same</h3>
<p>As stated on the box, this device should be able to read content from SMB (MS Network) shares and play it however there was a significant issue with the implementation of the SMB protocol in the WD TV Live Plus.  My network is largely Windows clients seeing as how my NAS is a Windows XP computer with a storage array and that most of my computers are Windows XP based (except for my core networking equipment and my laptop which uses Ubuntu.)  This ended up causing more hell than I was expecting and I&#8217;ll explain.</p>
<h3>Oh master, where art thou?</h3>
<p>In a Windows network where there is no domain controller, Windows computers will get into an election process to attempt to establish a browse master.  This browse master is a Windows computer that maintains a list of active computers on the network.  This behavior is part of NetBIOS and SMB sharing and allows the computers to &#8220;discover&#8221; each other.  Once the browse master is established, additional computers will communicate with the master to &#8220;register&#8221; themselves, and once registered can discover each other&#8217;s network shares.  This share list is populated each time someone tries to browse the network.</p>
<h3>I&#8217;m talking, but no one&#8217;s listening!</h3>
<p>The WDTV on boot, will perform a broadcast to the network on UDP port 137 (NetBIOS Name service) which is according to the NetBIOS protocol.  It waits for a browse master to return the broadcast so it can then download the browse list. The issue is that Microsoft has altered the way NetBIOS works and in doing so, has altered the way NetBIOS operates.  One of the alterations is that Windows computers (whether browse master or not) is that the computers will no longer respond to broadcasts to port 137.  The result is that the WDTV will never receive the response it&#8217;s looking for and it&#8217;s server list will never get updated.</p>
<h3>You are my slave now!</h3>
<p>The workaround is to install NetBIOS (part of the SAMBA package) on a Linux box and set &#8220;local master = yes&#8221; in samba.conf.  This will also give you the added benefit of sped up network browsing on your computers and the installation of NetBIOS is very simple, requiring only one modification to a configuration file and a service restart.  In my testing of the WDTV,  I was unable to get the WDTV to show any network shares prior to the installation of the NetBIOS service.  Once I installed the NetBIOS service, it was a matter of seconds that the network shares listed out all of the active computers on the network.</p>
<h2>Carrying on&#8230;.</h2>
<p>Testing the UI under component, composite and HDMI cables showed little difference in the display resolution aside from the appreciable differences in the three connection technologues themselves. In each test, the UI was sharp and clear with menu options easily highlighted. The UI is a dark-blue theme and reminds me a lot of the Playstation 3 interface.</p>
<div id="attachment_999" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-999" title="UI main image" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/DSCF2113-300x225.jpg" alt="UI main image" width="300" height="225" /><p class="wp-caption-text">UI main image</p></div>
<p>In the above image, I have highlighted the server &#8220;Zeus&#8221; from Videos -&gt; Network shares.   The icons scroll vertically to allow you to select options, while horizontal movement allows you to proceed or go back via the four way D-pad on the remote.  Hitting &#8220;OK&#8221; is only required on media titles, menu options (like Configuration Settings) and various sub-menus as needed.</p>
<div id="attachment_1000" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-1000" title="Media List" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/DSCF2115-300x225.jpg" alt="Media List" width="300" height="225" /><p class="wp-caption-text">Media List</p></div>
<p>The Media List view shows up once a server has been selected and allows you to drill down to find the content you want.  On the &#8220;Zeus&#8221; server, I have several shares dedicated to each type of media that the WDTV supports.  This is the list of the &#8220;Movies&#8221; fileshare.  Photos and Music are other fileshares available.  In this view, you can simply highlight a movie and without further action, it will start playing in the preview window on the right.  If you want to play it fullscreen, just select the preview window and hit OK.  The display will then go full size without missing a beat.</p>
<p>All in all, the UI is simple to use, easy to navigate and offers a lot of functionality without cluttering up the display.</p>
<h3>It also has apps</h3>
<p>I hesitate to mention this as I didn&#8217;t purchase the WDTV for applications, but it does bear mentioning.  This device supports games and apps including Youtube, Facebook and Netflix support. While I did briefly try out the Netflix and Youtube options and they appeared to work as expected, I did not try the Facebook app and felt that the inclusion of Facebook on a media client to be in excess.  I can&#8217;t contemplate using my media client to check my Facebook as I have phones, laptops and full-size computers for that.</p>
<h2>Final Verdict</h2>
<p>To summarize the total experience of the WD TV Live Plus, let&#8217;s break down the experience into the Good and the Bad. It may be cliche to do it, but it works well.</p>
<h3>The Good</h3>
<ul>
<li>Small Form Factor</li>
<li>Includes remote, component and composite cables and battery</li>
<li>Supports HDMI, DVI (via HDMI to DVI cable), Composite and Component connections.</li>
<li>Includes TOSLINK optical audio out for connectivity to a surround sound system.</li>
<li>Plays a wide variety of video formats: AVI(Xvid, AVC, MPEG 1,2 and 4, WMV9, VC-1, MPEG/MPG, VOB (DVD), MKV, TS/TP/M2T, MP4/MOV, M2TS and WMV9.  I have not tested DivX format as I don&#8217;t have any DivX formatted media.</li>
<li>Plays a wide variety of audio formats: MP3, WAV, PCM, LPCM, WMA, AAC, FLAC, MKA, AIF/AIFF, OGG, Dolby Digital.</li>
<li>Picture is clear regardless of connector type</li>
<li>Menu navigation is easy and intuitive without clutter.</li>
</ul>
<h3>The Bad</h3>
<ul>
<li>No HDMI cable included in kit.</li>
<li>Networking requires NetBIOS browse master and setup can be daunting for non-Linux networks or unexperienced users.</li>
<li>Will not play DRM protected content.</li>
<li>No Web-based interface or control application.</li>
</ul>
<h3>My Thoughts</h3>
<p>The WDTV Live Plus is a great addition to the network and will work very well for playing media. After getting the network issue resolved, this device has flawlessly performed without issue for the last week.  I have started a project to rip all my DVDs to the NAS so I can watch all my movies and TV shows without having to touch a single DVD disc.  This product gets a firm thumbs up from me.</p>
<h3>My Girlfriend&#8217;s Thoughts</h3>
<p>Of course, being a geek means I have a high tolerance for making stuff work, but since I live with my girlfriend, it doesn&#8217;t get a thumbs up if she can&#8217;t use it.  In this particular case, she liked the menu configuration and ease of navigation.  She was able to look at video content with very little prompting from me unlike the initial case of the failed XBMC attempt. The WDTV Live &#8220;just worked&#8221; and she was very pleased with it.  She says it&#8217;s definitely Girlfriend Approved and she can&#8217;t wait until I get the DVDs ripped.</p>
<p>In the next month or so, I will provide a follow up on how to establish a NetBIOS browse master, rip and encode DVDs and how to set up fileshares in Windows to allow you to use your WDTV effectively.  Minus the initial configuration issue, this device is cheap on cost without being cheap on features. It is a well designed product that will help integrate computer media into your existing entertainment system without significantly impacting your wallet or your sanity.</p>
<p>&nbsp;</p>
<h2><strong>Verdict:  Buy!</strong></h2>
<p>Cost: around $100, sometimes on sale for around $70-80</p>
<p>Availability: Most Online Retailers, and some brick-and-mortar stores like Best buy, Fry&#8217;s, etc..</p>
<p>&nbsp;</p>
<p>Have fun!</p>
<p>FIRESTORM_v1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2011/08/26/reviews-wd-tv-live-plus/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Networking: Duplicating Drops in structured wiring</title>
		<link>http://www.yourwarrantyisvoid.com/2011/07/29/networking-duplicating-drops-in-structured-wiring/</link>
		<comments>http://www.yourwarrantyisvoid.com/2011/07/29/networking-duplicating-drops-in-structured-wiring/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 18:13:04 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[patch cord]]></category>
		<category><![CDATA[router]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=952</guid>
		<description><![CDATA[Structured wiring in businesses and the enterprise are as expected as the sun shining and a regular paycheck, however in the home a structured wiring solution can be an unexpected gift from the Gods of Ethernet.  While structured wiring in an apartment complex is usually done central to a utility closet or shelf, sometimes the [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-medium wp-image-953" title="Networking" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2103-300x225.jpg" alt="Networking" width="300" height="225" /></p>
<p>Structured wiring in businesses and the enterprise are as expected as the sun shining and a regular paycheck, however in the home a structured wiring solution can be an unexpected gift from the Gods of Ethernet.  While structured wiring in an apartment complex is usually done central to a utility closet or shelf, sometimes the central point isn&#8217;t always convenient for your router or you find yourself needing to run multiple networks.  In this tutorial, I will show you how to turn one structured wiring drop into two drops for carrying two different network segments, something that can be of benefit should you ever need it.<span id="more-952"></span></p>
<h3>What these splitters do and what they don&#8217;t do.</h3>
<p>Before we begin slicing up cables, it&#8217;s important to understand what is going on here so you can decide if this will work for you.  Generally speaking, these splitters can be used if you want to carry two <strong>different</strong> networks over the same drop. If you are simply looking for more connections to your home network, and you are not doing anything special, you will more than likely want to save some time and get a mini-switch instead.  Here&#8217;s a good rundown of some scenarios of why you should and should not consider these splitters:<strong></strong></p>
<p>These splitters would be a good idea for the following scenarios:</p>
<ul>
<li>Moving your router from the default ingress point.  In my case, the central &#8220;panel&#8221; is in the utility closet, but I want my router on my desk.  I use the &#8220;1&#8243; portion of the splitter to transport the WAN segment to the WAN port of my router, then use the &#8220;2&#8243; portion of the splitter to transport the LAN segment to a mini-hub in the closet to activate the rest of the jacks in the house.</li>
<li>Moving a &#8220;hostile&#8221; segment or Guest network to another location.  An example would be having a router installed at the ingress point and using a splitter to transport a &#8220;Guest Network&#8221; and a &#8220;LAN&#8221; connection via the same drop.  In this case, the Guest Network feeds an open access point, while the LAN feeds a desktop computer. In this application, the Guest Network is kept physically separate from the LAN via the splitters but allows you to position the access point somewhere more convenient while maintaining the availability of the LAN.</li>
<li>Transporting two Ethernet drops to a managed switch located in a central closet.  An example for this would be to allow per-port monitoring and administration of both drops individually as opposed to using a mini-switch which would force you to  perform the change across all devices attached to the mini-switch.</li>
</ul>
<p>These splitters would not be a good idea for the following scenarios:</p>
<ul>
<li>Creating more Ethernet ports for the same network and you are not using a managed switch.   If you are plugging two devices into your LAN at the same location, just use a mini-switch and save yourself the trouble. There&#8217;s no benefit to using splitters in a non-managed switch environment. Additionally, you may incur additional costs with having to buy an additional mini-switch to split the connections off at the central panel anyways.</li>
<li>You are using Gigabit Ethernet and do not want to drop the line speed in the location you are looking at.</li>
<li>You are using Power over Ethernet at this location and do not want to move the power supply.</li>
</ul>
<h3>A little bit on structured wiring and Ethernet standards</h3>
<p>In a structured wiring environment, a &#8220;drop&#8221; is the term for a 4 pair (8 wire) cable run through ceilings, walls, etc from a faceplate with proper termination to a central wiring panel with proper termination (usually a patch panel of sorts).  It&#8217;s called structured wiring as the wiring is usually planned out first with attention to detail and locations of equipment like access points, computers, etc.  Generally speaking, if you are in a structured wiring location and you see an RJ-45 jack marked &#8220;Cat-5&#8243; this generally means that it&#8217;s an Ethernet jack and that the cabling and connectors comply with the Cat-5 standard.</p>
<p>Speaking of wiring standards, you may want to <a title="Network Wiring Standards" href="http://www.zytrax.com/tech/layer_1/cables/tech_lan.htm" target="_blank">take a look at this link</a> which provides more detail into the wiring convention commonly used in structured wiring for Ethernet networks.</p>
<p>In standard 10/100 Ethernet cabling that uses an RJ-45 jack, you have two wires(a pair) for transmit and two wires(a pair) for receive.  In most locations, the extra two pairs (four wires) are simply left idle and untouched. In rare situations (at least in residential equipment) these extra pairs are used for Power over Ethernet which use these spare pairs to deliver power to a network device where it is not convenient to use a standard &#8220;wall-wart&#8221; power supply. This requires special adapters (not unlike our splitters) to send power and network connectivity over the same drop, then split it again at the device end.   As mentioned before, if you are using PoE to feed a device using a drop that you need two connections for, you will either need to move the PoE power supply to another location or use our splitter elsewhere.</p>
<p>Unfortunately, Gigabit Ethernet requires all four pairs be used for sending and receiving at Gig-E speeds. If you are not willing to move the Gig-E device and are not willing to drop the speed to 10/100 , you will need to use the splitter elsewhere.</p>
<h3>Do the Splits!</h3>
<p>In order to pull this off, you will need the following:</p>
<ul>
<li>Two Cat-5 patch cords</li>
<li>A RJ45 crimper</li>
<li>Four RJ45 Crimp Ends suitable for the wire in your patch cords. (more if you are new at this, just in case)</li>
<li>Heatshrink that is big enough to accommodate twice the diameter of your patch cords.</li>
<li>Lighter</li>
<li>Diagonal cutters</li>
<li>Sharpie (not pictured)</li>
<li>Cat-5 tester (Optional, not pictured)</li>
<li>Cat-5 Female to Female junction adapter (optional, not pictured)</li>
</ul>
<div id="attachment_954" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2094.jpg"><img class="size-medium wp-image-954" title="Tools" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2094-300x225.jpg" alt="Tools" width="300" height="225" /></a><p class="wp-caption-text">Tools</p></div>
<p>To start off, cut one CAT-5 end off of your patch cord and determine how far back you want to strip the jacket off.  In my example, I wanted this splitter to go next to a managed switch where the ports are close together so I used about 8 inches which leaves about 4 inches for each &#8220;branch&#8221;.   If you are using a pocket switch and a computer, you may want to use one foot (12 inches) which leaves you with two 6 inch branches.</p>
<p>Start snipping the jacket of the patch cord, paying close attention to not damage any of the wires underneath. If you do snip a wire, cut the rest of them at the same length and repeat the process.   Once you have managed to snip the jacket clean, begin pulling the jacket off of the cable in one piece.  When completed, you should have eight wires similar to the below picture.</p>
<div id="attachment_955" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2098.jpg"><img class="size-medium wp-image-955" title="Stripped Wiring" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2098-300x225.jpg" alt="Stripped Wiring" width="300" height="225" /></a><p class="wp-caption-text">Stripped Wiring</p></div>
<p>Split the wires into two groups.  Separate the White/Blue and the White/Brown pairs from the White/Green and White/Orange pairs.  Slip the heatshrink tube over all four pairs down past the cut jacket.</p>
<p>Fold the stripped away jacket in half and cut at the half line.  Slip one piece of the jacket over the White/Blue and White/Brown pairs, and thread the White/Green and White/Orange pairs through the remaining piece of the jacket.  Use the image below as a guide.</p>
<div id="attachment_956" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2099.jpg"><img class="size-medium wp-image-956" title="Wires threaded through Jacket" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2099-300x225.jpg" alt="Wires threaded through Jacket" width="300" height="225" /></a><p class="wp-caption-text">Wires threaded through Jacket</p></div>
<p>Slide the two jacket pieces down as far as they will go, then push the heatshrink tube at least one inch past the split.  This will toughen the split to ensure it doesn&#8217;t fall apart with use.  Use the lighter to shrink the tubing around the three pieces of jacket.</p>
<p>Now for the fun part.  At the ends of the two pieces of jacket, you now have one piece with a White/Blue pair and a White/Brown pair and another piece with White/Orange and White/Green. We need to put ends on these wires so we can start using them.  Start off by spreading the wires out and untwisting them like in the image below.</p>
<div id="attachment_957" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2100.jpg"><img class="size-medium wp-image-957" title="Separated Wires" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2100-300x225.jpg" alt="Separated Wires" width="300" height="225" /></a><p class="wp-caption-text">Separated Wires</p></div>
<p>Trim the wires so that there is approximately one inch sticking out of the jacket and make sure that the wires are laid out like so:</p>
<ul>
<li>Solid Green (or green with white dots)</li>
<li>White/Green &#8211; white wire with green stripe</li>
<li>Solid Orange (or orange with white dots)</li>
<li>White/Orange &#8211; white wire with orange stripe</li>
</ul>
<p>The important part is when you insert them into the crimp end, the solid green wire must go into position 3, and the rest will go into positions 6, 7 and 8 as shown below.  Please take note that the orientation of the RJ-45 crimp end is that the spring clip is pointing towards you, and the wiring enters from the left.</p>
<ul>
<li>Position 1 &#8211; Blank</li>
<li>Position 2 &#8211; Blank</li>
<li>Position 3 &#8211; Solid Green</li>
<li>Position 4 &#8211; Blank</li>
<li>Position 5 &#8211; Blank</li>
<li>Position 6 &#8211; White/Green</li>
<li>Position 7 &#8211; Solid Orange</li>
<li>Position 8 &#8211; White/Orange</li>
</ul>
<p>Before you crimp the RJ45 onto the wires, hold the whole thing up to a bright light and ensure that the wires are long enough to hit the end of the connector.  Sometimes, a bad crimp can result if the wires are too short.  Use the below image as a reference and take some time to make sure your wiring is correct.  If all looks good, go ahead and crimp!</p>
<div id="attachment_958" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2101.jpg"><img class="size-medium wp-image-958" title="Visual Inspection" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2101-300x225.jpg" alt="Visual Inspection" width="300" height="225" /></a><p class="wp-caption-text">Visual Inspection</p></div>
<p>Now for the White/Blue and White/Brown pairs, you must perform the same process, except this time we will use White/Brown in place of the White/Orange pair and the White/Blue will substitute the White/Green.  Our wiring diagram will change to below:</p>
<ul>
<li>Position 1 &#8211; Blank</li>
<li>Position 2 &#8211; Blank</li>
<li>Position 3 &#8211; Solid Blue (or Blue wire with White dots)</li>
<li>Position 4 &#8211; Blank</li>
<li>Position 5 &#8211; Blank</li>
<li>Position 6 &#8211; White/Blue</li>
<li>Position 7 &#8211; Solid Brown (or Brown wire with White dots)</li>
<li>Position 8 &#8211; White/Brown</li>
</ul>
<p>Do the same inspection as you did for the first crimp and check, recheck and crimp your second connector.    Mark the crimp with the White/Orange and White/Green wires as &#8220;1&#8243; and the other crimp with the White/Blue and White/Brown wires as &#8220;2&#8243;.  This will be important later on when you implement your splitters.</p>
<h3>Do it again, Sam!</h3>
<p>Now that you have one splitter, go ahead and do it again with the other Cat-5 patch cord.  When you are complete, your patch cord should look like the following image.</p>
<div id="attachment_959" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2097.jpg"><img class="size-medium wp-image-959" title="Finished Splitter" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2097-300x225.jpg" alt="Finished Splitter" width="300" height="225" /></a><p class="wp-caption-text">Finished Splitter</p></div>
<h3>Final Thoughts</h3>
<p>Now that you have a pair of these splitters, you should be able to enjoy a bit more freedom when setting up your network in a structured wiring environment where additional cable runs are simply not feasible.  In my particular installation, I am using my splitters to feed the router&#8217;s output that carries VLAN tagged traffic into a managed switch.  The other leg of the splitter, goes back to the wiring closet to feed a mini-switch with network connectivity.  VLAN tagged traffic will not traverse a non-managed switch so for me this was the only way to be able to use my VLAN tagged network and my &#8220;primary&#8221; network without having to give up either.  Below is an image of my splitter feeding my 24 port switch. Yes the switch is on however it appears that the flash washed the lights out.</p>
<div id="attachment_960" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2102.jpg"><img class="size-medium wp-image-960" title="Installed Splitter" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2102-300x225.jpg" alt="Installed Splitter" width="300" height="225" /></a><p class="wp-caption-text">Installed Splitter</p></div>
<p>I hope you enjoyed this quick post as I did making the splitters.  Reply to this post and tell others how you intend to use your splitters.</p>
<p>&nbsp;</p>
<p>Happy Hacking!</p>
<p>&nbsp;</p>
<p>FIRESTORM_v1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2011/07/29/networking-duplicating-drops-in-structured-wiring/feed/</wfw:commentRss>
		<slash:comments>11</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>Building Snort and Nessus &#8211; Ubuntu IDS Part 3</title>
		<link>http://www.yourwarrantyisvoid.com/2011/05/20/building-snort-and-nessus-ubuntu-ids-part-3/</link>
		<comments>http://www.yourwarrantyisvoid.com/2011/05/20/building-snort-and-nessus-ubuntu-ids-part-3/#comments</comments>
		<pubDate>Fri, 20 May 2011 16:01:31 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=851</guid>
		<description><![CDATA[&#160; In this final article in the three part Ubuntu IDS series, we will go over installing, compiling and configuring Snort and Nessus on our new IDS device.  We will use Snort to analyze traffic as seen by the IDS and we will use Nessus to perform vulnerability testing on the network. The process for [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p><a rel="attachment wp-att-852" href="http://www.yourwarrantyisvoid.com/2011/05/20/building-snort-and-nessus-ubuntu-ids-part-3/watchtower/"><img class="aligncenter size-medium wp-image-852" title="Watchtower" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/Watchtower-300x199.jpg" alt="" width="300" height="199" /></a>In this final article in the three part Ubuntu IDS series, we will go over installing, compiling and configuring Snort and Nessus on our new IDS device.  We will use Snort to analyze traffic as seen by the IDS and we will use Nessus to perform vulnerability testing on the network. The process for installing Snort will also cover installing SnortReport provided by Symmetrix Technologies so we can translate Snort&#8217;s cryptic messages into a more readable format that we can take action on.  Read on as we wrap up the installation and finish our IDS device.</p>
<p><span id="more-851"></span>This article is divided into three sections. The first section will cover installing Snort, then we will move on to customizing Snort beyond the steps covered in the first section for our specific installation.  Finally we will end with installing Nessus.</p>
<h2>1:  Installing Snort</h2>
<p>Admittedly, this was the longest part in the series. I had tried manually to compile and install Snort from sources over and over again and wasn&#8217;t getting anywhere fast.  I had performed research over and over again on what options to use and was no further along than when I had unzipped the sources.  Luckily my research finally turned up a complete HOWTO article written by Symmetrix Technologies which provided instructions on how to compile and set up Snort.  You can download their HOWTO from this site:  <a href="http://www.symmetrixtech.com/download.html">http://www.symmetrixtech.com/articles/004-snortinstallguide286.pdf</a></p>
<p><strong>There are some discrepancies that you must take note of:</strong> If you are using the bonded interface as described in the prior articles, you will need to use the interface &#8220;bond0&#8243; instead of the document&#8217;s provided eth1 interface for monitoring.  If you monitor an ethX interface, you will only get half of the conversation, and since most of Snort&#8217;s ability to detect traffic relies on analyzing stimulus and the responses to that stimulus, you will be severely cutting down on Snort&#8217;s effectiveness.</p>
<h2>2: Snort Tuning</h2>
<p>If you&#8217;re this far in, then it&#8217;s safe to assume that you have already downloaded Snort, the associated ruleset and have SnortReport installed and running.  There are some things that the Snort installation howto did not entirely touch on and these are things that we will cover here.</p>
<p><strong>Adding BPF to /etc/init.d/rc.local</strong></p>
<p>One of the things missing from the Installation HOWTO was to add a BPF expression to the snort command line. BPF stands for &#8220;Berkeley Packet Filter&#8221; and is used by Snort and tcpdump to control what traffic is being analyzed by the respective tool.  In our configuration, we need to add an exception for the IDS&#8217;s management traffic otherwise when we install and run Nessus, we will end up triggering a ton of alerts.</p>
<p>Edit the /etc/rc.local file and locate the snort line.  Add &#8221; not host 192.168.0.253&#8243; to the end of the snort line. Replace 192.168.0.253 with that of the IP of the management interface of your IDS.  This is the BPF syntax that tells it to monitor your network but not the IP of your IDS device. By adding it to the end of the snort command, we are effectively telling Snort to not listen to the traffic generated by Nessus when we decide to fire it off.</p>
<p><strong>Password Protect SnortReport:</strong></p>
<p>Regardless of whether or not your IDS device can be reached from the Internet, there exists several vulnerabilities in SnortReport including one that allows potential code execution.  This could allow someone that knows you run SnortReport to execute code on your IDS and would be counterproductive to our efforts.  Until SnortReport has been fixed by SymmetrixTech, we will have to use a more basic method of securing it.  In order to provide minimal protection for SnortReport, we will add .htaccess protection to the directory that SnortReport was installed in so that way only authorized people will have access to SnortReport.</p>
<p>As root, we will use htpasswd to create the password file.  If you forget it later on, you can recreate the file easily using the below steps. Use the below command to make the password file and replace &#8220;joe&#8221; with that of your desired username.</p>
<p><strong># htpasswd -c /var/snortreportpasswd joe</strong></p>
<p>Now, we need to create a .htaccess file in /var/www/snortreport-1.3.1 to reference it.  Copy the below code and enter it into /var/www/snortreport-1.3.1/.htaccess and don&#8217;t forget the . in the filename.</p>
<pre>AuthName "SnortReport"
AuthType Basic
AuthUserFile /var/snortreportpasswd
Require valid-user
</pre>
<p>Finally, there is one more change we need to make to Apache2 to get the .htaccess protection working.  Edit /etc/apache2/sites-available/default and look for the clause that looks like the one below:</p>
<pre>&lt;Directory /var/www/&gt;
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
&lt;/Directory&gt;</pre>
<p>Change the &#8220;<strong>AllowOverride None</strong>&#8221; to &#8220;<strong>AllowOverride All&#8221;</strong> and then restart apache2 via <strong>/etc/init.d/apache2 restart</strong> . Now try it out by going to http://(your IDS IP address)/snortreport-1.3.1/alerts.php. You should  get a password prompt. Type in the password that you created using the htpasswd command earlier and you should see a green page that says SnortReport.</p>
<p>When you first load the page, you will see two dropdowns for Timeframe and Day.  If your IDS has received any incidents, you will see it show the incidents here.   Clicking on the incident summary will show more details including the source and destination IP addresses. Clicking on the IP will return correlated events that include the source or destination IP you clicked on and will show packet payloads and IP addressing information.</p>
<p>Now that you have a way to read the incidents that the IDS receives, it&#8217;s up to you to decide whether or not the incidents generated are something to take action against. However, installing an IDS is only one half of the solution.  In order to be aware of the effect an attack may have on your network, you first must know what vulnerabilities exist on your network.  For that, we turn to the free vulnerability scanner, Nessus.</p>
<h2>3: Installing Nessus</h2>
<p>Nessus is widely used as a professional commercial-grade vulnerability scanner. It can generate reports that indicate per host what vulnerabilities exist and can provide information on where to go to learn more about patching or mitigating the threat.  Keep in mind that while Nessus is often used on Linux, it is a commercial product.  It does have a home version which we will be using in our installation however the home version can not be used in a commercial environment.</p>
<p>The Nessus HomeFeed provides your Nessus installation with the most up-to-date vulnerability detection methods and signatures.  Access to the HomeFeed does come at a cost, however the benefits of having a vulnerability scanner outweigh the loss of a couple of features. Most notably, a feature that is only available to their commercial feed is that you can not set up recurring scans of you home network, e.g. you can&#8217;t tell the IDS to automatically scan your network and generate reports on a regular schedule.  The only other limitation that I have been able to find is that the scans are limited to 16 active hosts per report so if you have 32 hosts, you will need to run two scans. Despite the two limitations mentioned above, Nessus is still a great scanner, and will work quite well for identifying vulnerabilities on your network.</p>
<p>All that being said, let&#8217;s get started.</p>
<p>First off, head to Tenable Security&#8217;s website at <a title="Nessus Security" href="http://www.tenable.com/products/nessus/nessus-homefeed" target="_blank">http://www.tenable.com/products/nessus/nessus-homefeed</a> and register to receive your activation code. Keep your email handy, you will need it later.</p>
<p>Next, head to <a href="http://www.tenable.com/products/nessus/nessus-download-agreement" target="_blank">http://www.tenable.com/products/nessus/nessus-download-agreement</a> and agree to the license, then download the Ubuntu debian package that is appropriate for your distribution.  Since this tutorial is based on using Ubuntu 10.04, I downloaded the Ubuntu 10.04 32 bit version. Although the filename says &#8220;ubuntu910&#8243;, this version was recommended by Tenable as the version to use for 10.04.</p>
<p>Now, SCP the installation package to the IDS and then use <strong>dpkg -i Nessus-4.4.1-ubuntu910_i386.deb</strong> to install it into the server. <strong>Please note:</strong> If your Ubuntu Server is running a 64 bit kernel, please download the 64bit version of Nessus.</p>
<p>Once installed, you will need to add a Nessus user to the service so you can login.  Nessus users are seperate from OS users, so you can have multiple users without having to add multiple users to the system.  To start this process, run <strong>/sbin/nessus-adduser</strong> and follow the prompts.  For the first user that you add, you will want to add an administrative user. This user will be able to adjust Nessus&#8217;s scan policies, behaviors and other settings within Nessus.</p>
<p>Now that you&#8217;ve added a user, you will need to register your Nessus installation using the HomeFeed code in your email.  Run the command <strong>/opt/nessus/bin/nessus-fetch &#8211;register &lt;Activation Code&gt;</strong> and allow it to complete the installation. Substitute <strong>&lt;Activation Code&gt;</strong> with the HomeFeed code in the email.  <strong>Please note:</strong> This step may take a considerable amount of time due to the fact that Nessus will download and update itself according to the HomeFeed subscription.  This only took about an hour on my system, your mileage may vary depending on Internet connectivity speeds.</p>
<p>Now that the Nessus service is installed, registered and updated, it&#8217;s time to test the installation.  Open a web browser and go to <strong>https://your-ids-ip-address:8834</strong> .  If you are running Firefox and are using Noscript, AdblockPlus or Flashblock, you will need to add exceptions for Javascript and Flash for the IDS IP.  This is required as the Nessus UI relies entirely on Javascript and Flash.</p>
<p>Now that you have Nessus installed, it is <strong>highly</strong> recommended to take a read through the Nessus User&#8217;s Guide: <a href="http://cgi.tenable.com/nessus_4.4_user_guide.pdf" target="_blank">http://cgi.tenable.com/nessus_4.4_user_guide.pdf</a> While Nessus is a vulnerability scanner, some of the tests it performs can cause unpredictable results. It is recommended to set up a &#8220;safe&#8221; scan that performs basic testing and then set up a &#8220;full&#8221; scan for aggressive testing.</p>
<h3>How to read the scan results:</h3>
<p>Once you have made it through the User&#8217;s Guide and have performed your first scan, you can download or view the report.  The report is listed according to IP address, then service name, then vulnerability. Each vulnerability will include the service name, port, protocol, related CVE information (links to the CVE database for more information), as well as common fixes for the vulnerability.</p>
<p>I recommend taking a look at the vulnerability list in this order:</p>
<ol>
<li>Externally accessible services: A vulnerability in Apache that listens to the outside world threatens your internal network.  Address this first!</li>
<li>Internally accessible services on the same server as external services:  Should the external service be compromised, internal services could be used to further compromise the network.</li>
<li>Internally accessible services: A service listening internally may not pose much of a threat, but may be a possible point of compromise should another host get infected.  ( A common example is a weakness in older versions of Samba that would allow for remote code execution.)</li>
</ol>
<p>Generally speaking, it is a good idea to keep up to date with all service packs, updates and patches as this will prevent any known exploits from turning into full-blown worms.  Remember, it only takes one vulnerability to get compromised.</p>
<h2>Final thoughts:</h2>
<p>This has definitely been quite a project. I have learned a whole lot about network security in the course of my GCIA training and in building this project. I honestly think that building an IDS device from scratch is a great way to get acquainted with network security and how to perform vulnerability assessments.  Using Snort Report to analyze suspicious traffic and incoming threats and using Nessus to identify vulnerabilities in your system will help your home network stay secure against the ever evolving threats going around the Internet.</p>
<p>Always remember that security is no use  if the warnings go unheeded.  While you don&#8217;t have to turn into a complete security nut, make it a good habit to take a look at Snort Report once a week at least.  Personally, I record the number of events logged and if it changes, I then investigate further however I haven&#8217;t picked up any incidents in the last month so for me it&#8217;s a pretty easy check.  If you find yourself with tons of IRC events and you don&#8217;t use IRC, it&#8217;s very possible that you have an active trojan on your hands and may warrant further investigation.</p>
<p>I hope you had fun and learned a lot from this project. I had a lot of fun building it and working out the kinks to make it all work together.  If you have any comments or questions, please leave me a comment and I&#8217;ll do my best to answer.</p>
<p>FIRESTORM_v1</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2011/05/20/building-snort-and-nessus-ubuntu-ids-part-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Setting up bonding networking -Ubuntu IDS Part 2</title>
		<link>http://www.yourwarrantyisvoid.com/2011/05/04/building-an-ubuntu-ids-part-2/</link>
		<comments>http://www.yourwarrantyisvoid.com/2011/05/04/building-an-ubuntu-ids-part-2/#comments</comments>
		<pubDate>Wed, 04 May 2011 16:01:59 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=847</guid>
		<description><![CDATA[In an earlier article, I demonstrated how you can build a passive monitoring device for an Ethernet network as the first part to a three part project to build a home IDS device.  In this article, the second in the series, I will describe how to set up the networking for an IDS using the [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-848" href="http://www.yourwarrantyisvoid.com/2011/05/04/building-an-ubuntu-ids-part-2/cctvwall/"><img class="aligncenter size-medium wp-image-848" title="CCTV Wall" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/CCTVwall-300x199.jpg" alt="" width="300" height="199" /></a></p>
<p>In an earlier article, I demonstrated how you can build a passive monitoring device for an Ethernet network as the first part to a three part project to build a home IDS device.  In this article, the second in the series, I will describe how to set up the networking for an IDS using the passive tap that I built earlier.This setup will involve using a technique called bonding to take two physical interfaces and bond them together, creating a logical interface that we can use for Snort.  This article will also explain where is the best location to place the tap and what you can expect to see once the networking is set up using common Linux utilities like tcpdump.</p>
<p><span id="more-847"></span></p>
<h2>Requirements</h2>
<ul>
<li>A Passive Tap as mentioned in &#8220;<a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/" target="_blank">Build a Passive Ethernet Tap</a>&#8221; or similar device.</li>
<li>Three network cards or a single network card with  three interfaces.</li>
<li>A new installation of Ubuntu Server. (I am using Ubuntu Server 10.04LTS).</li>
<li>Beer. (Always)</li>
</ul>
<p>The requirements for this project aren&#8217;t that extensive and chances are you have most if not all the equipment you need in your parts bin. The most significant item in this list is the three network cards.  If you followed the steps in my first article in this series, you already have a machine with two or three network cards in it so you&#8217;re pretty much there. If not, then go ahead and get three network cards in your Ubuntu server and ensure that all three cards re properly recognized by the system even if there&#8217;s no IP address. for them.</p>
<p>The first two network cards will be combined together to form the monitoring interface while the third card will be for our management interface.  The management interface will be assigned an IP address and will be how we acccess the server&#8217;s commandline (via SSH), and the scanning and reporting tools we will install in Part 3.</p>
<h2>Getting things set up</h2>
<p>With the proper hardware in hand, we can now set about performing the configuration necessary to getting our interfaces configured properly. In the code below, you can see the interfaces (eth0, eth1 and eth2) and that eth0 has been configured with an IP address.  If you haven&#8217;t configured yours with an IP address, this will be covered while we perform the configuration.</p>
<pre>matt@ids-01:~$ ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:18:f3:18:1c:25 
 inet addr:192.168.0.222  Bcast:192.168.0.255  Mask:255.255.255.0
 inet6 addr: fe80::218:f3ff:fe18:1c25/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 RX packets:45458 errors:0 dropped:0 overruns:0 frame:0
 TX packets:23861 errors:0 dropped:0 overruns:0 carrier:2
 collisions:0 txqueuelen:1000
 RX bytes:55984695 (55.9 MB)  TX bytes:2326303 (2.3 MB)

eth1      Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06 
 UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 RX packets:11505094 errors:2 dropped:0 overruns:0 frame:2
 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:3057886364 (3.0 GB)  TX bytes:218 (218.0 B)

eth2      Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06 
 UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 RX packets:8061127 errors:1 dropped:0 overruns:0 frame:1
 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:1434430796 (1.4 GB)  TX bytes:250 (250.0 B)

lo        Link encap:Local Loopback 
 inet addr:127.0.0.1  Mask:255.0.0.0
 inet6 addr: ::1/128 Scope:Host
 UP LOOPBACK RUNNING  MTU:16436  Metric:1
 RX packets:48 errors:0 dropped:0 overruns:0 frame:0
 TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:3948 (3.9 KB)  TX bytes:3948 (3.9 KB)
</pre>
<p>In this output, you can see eth0 is my management interface as it has been assigned an IP, eth1 and eth2 are both going to become a new interface called bond0.  When we set up Snort, we will use bond0 as our monitoring interface so that way we can take advantage of Snort&#8217;s stateful analysis and because it will be critical for any network analysis to hear both sides of the conversation on the passive tap.</p>
<p>In order to set up bonding, we will need to install the <strong>ifenslave</strong> package.  As root, run the below command:</p>
<p># <strong>apt-get install ifenslave</strong></p>
<p>Once apt-get completes, let&#8217;s check a few things.  First, let&#8217;s take a look at <strong>/etc/modprobe.d/aliases.conf</strong>.  Make sure that the two lines below appear in the file:</p>
<p><strong>alias bond0 bonding</strong><br />
<strong>options mode=0 miimon=100 downdelay=200 updelay=200</strong></p>
<p>If you will be making more than one bonding interface, you will need to add another alias line to coincide with the bond interfaces you wish to add (bond1, bond2, etc..) and you will need to add <strong>max_bonds=X</strong> to the end of the options line. Set X to the maximum number of bonding interfaces you will be using.</p>
<p>Now this is where things get interesting.  In order to test this out, we will bond the interfaces using the command below:</p>
<p><strong># ifenslave bond0 eth1 eth2</strong></p>
<p>It does not matter which order the two eth interfaces appear, however bond0 must come first.  This command tells the Linux kernel to take eth1 and eth2 and pair them together into a single interface (bond0).  Now that we have done that, <strong>ifconfig -a</strong> will present a new interface:</p>
<pre>root@ids-01:~# ifconfig -a
bond0     Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06 
 inet6 addr: fe80::2e0:b6ff:fe00:a206/64 Scope:Link
 UP BROADCAST RUNNING PROMISC MASTER MULTICAST  MTU:1500  Metric:1
 RX packets:19568527 errors:3 dropped:0 overruns:0 frame:3
 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:198240524 (198.2 MB)  TX bytes:468 (468.0 B)

eth0      Link encap:Ethernet  HWaddr 00:18:f3:18:1c:25 
 inet addr:192.168.0.222  Bcast:192.168.0.255  Mask:255.255.255.0
 inet6 addr: fe80::218:f3ff:fe18:1c25/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 RX packets:45907 errors:0 dropped:0 overruns:0 frame:0
 TX packets:24117 errors:0 dropped:0 overruns:0 carrier:2
 collisions:0 txqueuelen:1000
 RX bytes:56024505 (56.0 MB)  TX bytes:2411029 (2.4 MB)

eth1      Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06 
 UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
 RX packets:11506043 errors:2 dropped:0 overruns:0 frame:2
 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:3058301702 (3.0 GB)  TX bytes:218 (218.0 B)

eth2      Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06 
 UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
 RX packets:8062484 errors:1 dropped:0 overruns:0 frame:1
 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:1434906118 (1.4 GB)  TX bytes:250 (250.0 B)

lo        Link encap:Local Loopback 
 inet addr:127.0.0.1  Mask:255.0.0.0
 inet6 addr: ::1/128 Scope:Host
 UP LOOPBACK RUNNING  MTU:16436  Metric:1
 RX packets:48 errors:0 dropped:0 overruns:0 frame:0
 TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:3948 (3.9 KB)  TX bytes:3948 (3.9 KB)
</pre>
<p>Now that we have the bonding interface up, we need to write the configuration in <strong>/etc/networking/interfaces</strong> so that they will be brought up at boot time.  After struggling with this for a few moments, I finally found out the proper rules needed in order to do this:</p>
<ol>
<li>You have to define your bonding interface first.</li>
<li>You must use an &#8220;<strong>up</strong>&#8221; statement to specify how to bring up the interfaces. We will be using the parameter <strong>promisc</strong> to ensure that the interfaces are ready for when we install Snort.</li>
<li>We must use bonding-specific statements to specify how the bonding interface will be created and for each interface&#8217;s role in the bonding configuration.</li>
</ol>
<p>Edit <strong>/etc/networking/interfaces</strong> and remove the existing information.  Add the below lines, but be sure to add the proper IP addressing information for your management interface.</p>
<pre># The primary network interface
auto eth0
iface eth0 inet static
 address 172.20.1.253
 netmask 255.255.255.0
 broadcast 172.20.1.255
 gateway 172.20.1.250

auto bond0
iface bond0 inet manual
 bond-slaves none
 bond-mode 0
 bond-miimon 100
 up ifconfig bond0 promisc up

auto eth1
iface eth1 inet manual
 up ifconfig eth1 promisc up
 bond-master bond0
 bond-primary eth1 eth2

auto eth2
iface eth2 inet manual
 up ifconfig eth2 promisc up
 bond-master bond0
 bond-primary eth1 eth2</pre>
<p>In the above configuration, the <strong>up</strong> parameter tells the network scripts to bring up the selected interface up with the promiscuous mode enabled so we can prepare the interfaces at boot time for  listening to network traffic. The <strong>bond-master</strong> and <strong>bond-primary</strong> parameters indicate which bonding interface the physical interface should be added to.  Granted for one bond interface it would appear faster to just single keywords however if you decide to set up multiple bonded interfaces, the keywords would lose meaning quickly.</p>
<p>When all is said and configured, reboot the computer.  When the computer comes back up, check <strong>ifconfig -a</strong> and see if you see something like the below.</p>
<pre>root@ids-01:~# ifconfig -a
bond0     Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06 
 inet6 addr: fe80::2e0:b6ff:fe00:a206/64 Scope:Link
 UP BROADCAST RUNNING PROMISC MASTER MULTICAST  MTU:1500  Metric:1
 RX packets:19570074 errors:3 dropped:0 overruns:0 frame:3
 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:198918392 (198.9 MB)  TX bytes:468 (468.0 B)

eth0      Link encap:Ethernet  HWaddr 00:18:f3:18:1c:25 
 inet addr:172.20.1.253  Bcast:192.168.0.255  Mask:255.255.255.0
 inet6 addr: fe80::218:f3ff:fe18:1c25/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 RX packets:46106 errors:0 dropped:0 overruns:0 frame:0
 TX packets:24224 errors:0 dropped:0 overruns:0 carrier:2
 collisions:0 txqueuelen:1000
 RX bytes:56042559 (56.0 MB)  TX bytes:2427777 (2.4 MB)

eth1      Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06 
 UP BROADCAST RUNNING PROMISC SLAVE MULTICAST  MTU:1500  Metric:1
 RX packets:11506719 errors:2 dropped:0 overruns:0 frame:2
 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:3058600599 (3.0 GB)  TX bytes:218 (218.0 B)

eth2      Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06 
 UP BROADCAST RUNNING PROMISC SLAVE MULTICAST  MTU:1500  Metric:1
 RX packets:8063355 errors:1 dropped:0 overruns:0 frame:1
 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:1435285089 (1.4 GB)  TX bytes:250 (250.0 B)

lo        Link encap:Local Loopback 
 inet addr:127.0.0.1  Mask:255.0.0.0
 inet6 addr: ::1/128 Scope:Host
 UP LOOPBACK RUNNING  MTU:16436  Metric:1
 RX packets:48 errors:0 dropped:0 overruns:0 frame:0
 TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:3948 (3.9 KB)  TX bytes:3948 (3.9 KB)
</pre>
<h2>Now to install it&#8230;</h2>
<p>In order to install this machine where it will be most effective in your network, there are some things to consider:</p>
<ul>
<li>What kind of Internet access do you have? (Cable, DSL, FiOS, etc&#8230;..)</li>
<li>Does your ISP require running a program on your router to connect? (like PPPoE clients, RASPPPoE, others..)</li>
<li>What is considered the &#8220;edge&#8221; of your network?</li>
<li>Where is the location where the IDS would have most visibility to the network traffic generated by your computers either wired or wireless?</li>
</ul>
<p>In most corporate networks, there is a single switch that handles all the traffic for a network. This makes things a loss less complex as the network traffic is in one place however in most homes, this is simply not the case.  At least in my network, there&#8217;s at least four switches between the router (my edge) and the innermost device (my Wireless Access Point). Since I wanted all the traffic monitored, I elected to connect the passive tap between my router and the first switch.  Any internet activity generated by any device on the network will be monitored by the IDS and if malicious will generate an alert.  If you have only a couple of PCs that are wireless but have several embedded devices like gaming consoles or media streaming boxes (not media center PCs, more like Boxee boxes and the like) you may want to move the passive tap between your wireless access point and the switch connecting the embedded devices as they are a lot less likely to generate malicious traffic.  Your configuration may be different, but when in doubt, installing the passive tap and your soon-to-be IDS between your edge router and the rest of your network is a safe bet.</p>
<h2>What&#8217;s Next?</h2>
<p>We&#8217;ve covered how to build a passive tap. We just covered how to configure bonding for the passive tap.  In the final article in the series, we will discuss how to install Snort and make this machine into a full blown IDS device.</p>
<p>Happy Hacking!</p>
<p>&nbsp;</p>
<p>FIRESTORM_v1</p>
<p>&nbsp;</p>
<div id="_mcePaste" class="mcePaste" style="position: absolute; left: -10000px; top: 3862px; width: 1px; height: 1px; overflow: hidden;">root@ids-01:~# ifconfig -a<br />
bond0     Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06<br />
inet6 addr: fe80::2e0:b6ff:fe00:a206/64 Scope:Link<br />
UP BROADCAST RUNNING PROMISC MASTER MULTICAST  MTU:1500  Metric:1<br />
RX packets:19570074 errors:3 dropped:0 overruns:0 frame:3<br />
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0<br />
RX bytes:198918392 (198.9 MB)  TX bytes:468 (468.0 B)&nbsp;</p>
<p>bond1     Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:04<br />
inet6 addr: fe80::2e0:b6ff:fe00:a204/64 Scope:Link<br />
UP BROADCAST RUNNING PROMISC MASTER MULTICAST  MTU:1500  Metric:1<br />
RX packets:24303821 errors:2 dropped:0 overruns:0 frame:2<br />
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0<br />
RX bytes:777005710 (777.0 MB)  TX bytes:468 (468.0 B)</p>
<p>eth0      Link encap:Ethernet  HWaddr 00:18:f3:18:1c:25<br />
inet addr:192.168.0.222  Bcast:192.168.0.255  Mask:255.255.255.0<br />
inet6 addr: fe80::218:f3ff:fe18:1c25/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1<br />
RX packets:46106 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:24224 errors:0 dropped:0 overruns:0 carrier:2<br />
collisions:0 txqueuelen:1000<br />
RX bytes:56042559 (56.0 MB)  TX bytes:2427777 (2.4 MB)</p>
<p>eth1      Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06<br />
UP BROADCAST RUNNING PROMISC SLAVE MULTICAST  MTU:1500  Metric:1<br />
RX packets:11506719 errors:2 dropped:0 overruns:0 frame:2<br />
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000<br />
RX bytes:3058600599 (3.0 GB)  TX bytes:218 (218.0 B)</p>
<p>eth2      Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06<br />
UP BROADCAST RUNNING PROMISC SLAVE MULTICAST  MTU:1500  Metric:1<br />
RX packets:8063355 errors:1 dropped:0 overruns:0 frame:1<br />
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000<br />
RX bytes:1435285089 (1.4 GB)  TX bytes:250 (250.0 B)</p>
<p>eth3      Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:04<br />
UP BROADCAST RUNNING PROMISC SLAVE MULTICAST  MTU:1500  Metric:1<br />
RX packets:16316361 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000<br />
RX bytes:3675415003 (3.6 GB)  TX bytes:238 (238.0 B)</p>
<p>eth4      Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:04<br />
UP BROADCAST RUNNING PROMISC SLAVE MULTICAST  MTU:1500  Metric:1<br />
RX packets:7987460 errors:2 dropped:0 overruns:0 frame:2<br />
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000<br />
RX bytes:1396558003 (1.3 GB)  TX bytes:230 (230.0 B)</p>
<p>lo        Link encap:Local Loopback<br />
inet addr:127.0.0.1  Mask:255.0.0.0<br />
inet6 addr: ::1/128 Scope:Host<br />
UP LOOPBACK RUNNING  MTU:16436  Metric:1<br />
RX packets:48 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:48 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0<br />
RX bytes:3948 (3.9 KB)  TX bytes:3948 (3.9 KB)</p>
<p>root@ids-01:~#</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2011/05/04/building-an-ubuntu-ids-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Build a Passive Ethernet Tap &#8211; Ubuntu IDS Part 1</title>
		<link>http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/</link>
		<comments>http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 16:34:40 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=802</guid>
		<description><![CDATA[One of the things that the GCIA study has taught me is that being able to monitor the network your computer is on is a critical necessity to maintaining a secure network. Corporate environments can set up IDS devices to monitor traffic however monitoring doesn&#8217;t work unless you have proper connectivity to what you want [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/acousticcoupler/" rel="attachment wp-att-803"><img class="aligncenter size-medium wp-image-803" title="acoustic coupler" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/acousticcoupler-300x199.jpg" alt="Image courtesy of forums.overclockers.co.uk" width="300" height="199" /></a></p>
<p>One of the things that the GCIA study has taught me is that being able to monitor the network your computer is on is a critical necessity to maintaining a secure network. Corporate environments can set up IDS devices to monitor traffic however monitoring doesn&#8217;t work unless you have proper connectivity to what you want to monitor. Unfortunately, most of us don&#8217;t have central wiring in our house and expensive managed switches that can set up span sessions with which to monitor traffic in transit.  In this HOWTO, I will cover how to build your own monitoring connection that you can use on your own network to monitor traffic without breaking the bank. This article is first in a three part series on how to build your own home IDS for monitoring your network traffic. Look for the other two sections soon!<br />
<span id="more-802"></span></p>
<h2>A little bit more info first&#8230;</h2>
<p>In the early days of affordable Ethernet networking, devices called hubs (or repeaters) were used to bring the signals together from each workstation in order to allow the workstations to communicate with each other. When a packet was sent to the hub, the hub repeated the packet across all ports on the device and all other workstations would receive it, even if it was not destined for that particular workstation.  The hubs gave way to switches as networking technology became cheaper and faster. Unfortunately, the switches also changed the old way of signal transmission. When a workstation sends a packet to a switch, it is sent from the sender&#8217;s switch port  and arrives at  the switch port of the workstation that the packet is destined to. It does not get sent to other workstations&#8217; switch ports unlike the hub&#8217;s transmission method.  Because of the need for network monitoring, more advanced switches started offering monitor ports (Cisco calls them span sessions) that are used to forward all traffic that goes through a switch out of this specifically configured port.  This port would then be connected to the monitoring device and would allow the monitoring device to &#8220;listen&#8221; to all packets that traversed the switch.</p>
<p>The good thing is that most if not all managed switches support a monitor port however the bad thing is that a managed switch is way outside the pocketbook of most home network users.</p>
<h2>But why not use a hub?</h2>
<p>A hub would allow us to listen in on network traffic however a hub would degrade your network&#8217;s performance thanks to it&#8217;s lack of proper high speed flow control and its susceptability to collisions.  In my testing, I used a 100baseT hub between my firewall and my network and found that my previously rock solid network connection had dropped well below speed and would barely support YouTube streaming, much less Netflix.  Instead of using a hub and risking continued degradation, I decided to research another solution.</p>
<h2>So, what&#8217;s the solution and how do I use it?</h2>
<p>The solution is the Passive Tap.  This device sits between a unmanaged switch and a computer or router and allows a monitor device to listen in on the network connection between a computer and switch.  The word passive in this instance means that there is no way to detect the device&#8217;s presence. It does not have a MAC address, it does not repeat. For all intensive purposes, the tap does not exist.</p>
<p><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/passivetapmonitorsetup/" rel="attachment wp-att-804"><img class="aligncenter size-full wp-image-804" title="Passive Tap Monitor Setup" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/PassiveTapMonitorSetup.jpg" alt="" width="438" height="174" /></a></p>
<p>In the image above, we have connected the Passive Tap between a network switch and a monitored host in order to monitor traffic between the host and other machines on the network (in this case the Server).  This would be an ideal setup for monitoring traffic generated by the monitored host and the rest of the network with the focus being on the monitored host. In this configuration, the monitor device would pick up all traffic destined to or originating from the host and any broadcast traffic generated by the network.</p>
<p style="text-align: center;"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/passivetapmonitorsetup2/" rel="attachment wp-att-873"><img class="size-full wp-image-873 aligncenter" title="Passive Tap Monitor Setup #2" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/PassiveTapMonitorSetup2.jpg" alt="Passive Tap Monitor Setup #2" width="438" height="174" /></a></p>
<p>This configuration is a bit different than the first image however the scope of the monitor device&#8217;s visibility has changed. Instead of just monitoring the Monitored Host, this configuration allows the monitor device to monitor any Internet traffic that passes between any host on the switch and the firewall. If there were additional devices connected to the switch (other desktops, an Xbox, a Wifi Access point, etc..) their communication with the Internet would also be monitored.  The only communication that would not get monitored would be communication between the devices plugged into the switch (for example the Monitored Host and a Wifi Accesspoint, etc.)</p>
<h2>Parts List</h2>
<p>In order to build a passive tap, you will need the following items.  The parts themselves cost me about $20 at a computer store which is a lot better than the $200 that some eBay sellers want.</p>
<ul>
<li>A cat-5 patch cord</li>
<li>A surface mount biscuit jack / modular mounting box. (See picture below)</li>
<li>Two CAT5 keystones (they don&#8217;t have to be green/red like mine)</li>
<li>Screwdriver</li>
<li>Wire cutters/blade</li>
<li><a href="http://en.wikipedia.org/wiki/Punch_down_tool" target="_blank">A M110 punch down tool</a> (If you have one, it makes the installation easier)</li>
<li>A monitoring computer with two network interfaces and Wireshark installed (windows) or tcpdump(linux)</li>
<li>A test computer (or device) with one network interface</li>
<li>A network switch.</li>
<li>Beer (optional)</li>
</ul>
<div id="attachment_805" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/parts/" rel="attachment wp-att-805"><img class="size-medium wp-image-805" title="Parts" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/Parts-300x225.jpg" alt="Parts" width="300" height="225" /></a><p class="wp-caption-text">Parts</p></div>
<p>Here&#8217;s an image of the parts. The biscuit jack on the left, the two keystones are in the center and the patch cord is on the right.</p>
<p>We&#8217;ll start off by first taking a look at the keystones up close.</p>
<div id="attachment_806" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/keystones/" rel="attachment wp-att-806"><img class="size-medium wp-image-806" title="Keystones" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/Keystones-300x225.jpg" alt="Keystones" width="300" height="225" /></a><p class="wp-caption-text">Keystones</p></div>
<p>These keystone jacks are wired up and marked in such a way that all you need to do to wire it up properly is to follow the color code. A closer inspection will reveal that there are small numbers in between the symbols for the wire positions. In <a href="http://www.infocellar.com/networks/cables/twisted-pair-cables.htm" target="_blank">this page on twisted pair wiring</a>, you can see that of the four pairs in a Cat-5 10/100 cable, only pairs 2 (white/orange) and 3(white/green) are used.  In order to properly receive both sides of the conversation on the wire, we will need to &#8220;tap&#8221; into both pairs and route them to the proper pins on the two keystones to each jack&#8217;s Pair 2 (receive pair) so that the data being sent can arrive at the NIC of our monitoring device.</p>
<p>If you scroll down to the section labeled &#8220;568A and 568 B Color Schemes&#8221;, you will see that the receive pair is on pins 3 and 6 of the diagram jacks.  Our keystones are similarly labelled and when we are done, we will have one pair of the Cat-5 patch cable going to pins 3 and 6 of one jack, and the other pair of the Cat-5 patch cable going to the other jack.</p>
<h2>Let&#8217;s get started.</h2>
<p>First off, it is important to understand that you must be able to do this WITHOUT NICKING OR CUTTING THE WIRES.  A cut or nick could result in either your tap not working properly or the tap getting all the data but your connected host doesn&#8217;t or any one of a whole handful of issues.  Thankfully, Cat-5 patch cords are not very expensive, but it still sucks to put a project on hold because a slip of the knife.</p>
<p>To start, lay out the patch cord and decide on where you want the tap.  Since the hosts are closer to my monitor machine, I&#8217;ve decided to create a short end and a long end with the tap being more towards one end.  You may want to have the tap in the middle or very close to one end of your patch.  It electrically does not matter.</p>
<p>Strip back about two to three inches of jacket so that you have something like below.</p>
<div id="attachment_807" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/strippedwires/" rel="attachment wp-att-807"><img class="size-medium wp-image-807" title="Stripped Wires" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/strippedwires-300x225.jpg" alt="Stripped Wires" width="300" height="225" /></a><p class="wp-caption-text">Stripped Wires</p></div>
<p>Mount the keystones in the surface mount box as shown below.</p>
<p>&nbsp;</p>
<div id="attachment_811" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/mounted-keystones/" rel="attachment wp-att-811"><img class="size-medium wp-image-811" title="mounted keystones" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/mounted-keystones-300x225.jpg" alt="mounted keystones" width="300" height="225" /></a><p class="wp-caption-text">mounted keystones</p></div>
<p>Now that they are mounted, we will then need to take a look at which pair of pins we need to match the wires up to. Below is a better side-view pic of the green jack in detail.  Please note, your jacks may appear different, but all CAT5 keystone jacks that I have seen have both a color designation and a numeric designation. Be sure to pay attention to which is which and where you are placing your wires otherwise it may not work.</p>
<div id="attachment_812" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/wiremarks/" rel="attachment wp-att-812"><img class="size-medium wp-image-812" title="Wire/Pin designations" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/wiremarks-300x225.jpg" alt="Wire/Pin designations" width="300" height="225" /></a><p class="wp-caption-text">Wire/Pin designations</p></div>
<p>You can click on the picture for a larger more detailed image.  In the above image (using the top set of colors as a guide) we see that the orange/white hash is pin 3 and the solid orange is pin 6. The same goes for the red jack (not shown).  That being said, untwist the orange and green wires, and place them into their respective slots. Make sure that the solid wire goes with the solid pin and the hashed wire goes with the hashed pin. A reversal here will cause the monitor port not to receive data and could affect your host/switch.</p>
<div id="attachment_815" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/readytocrimp/" rel="attachment wp-att-815"><img class="size-medium wp-image-815" title="Wires ready to crimp" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/readytocrimp-300x225.jpg" alt="Wires ready to crimp" width="300" height="225" /></a><p class="wp-caption-text">Wires ready to crimp</p></div>
<p>In the above photo, you can see that the white/orange pair are lightly inserted into the wire channels.  If you don&#8217;t have the M100 punch tool, you can get away with using the wire caps that came with your keystones.  These caps will push down the wire and crimp it into place over a metal pin that connects the wire to the pin in the jack.  When you are done, you will have something akin to the below:</p>
<div id="attachment_816" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/readytoclose/" rel="attachment wp-att-816"><img class="size-medium wp-image-816" title="Tap ready to close" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/readytoclose-300x225.jpg" alt="Tap ready to close" width="300" height="225" /></a><p class="wp-caption-text">Tap ready to close</p></div>
<p>Also of note: To act as a strain relief, I have added tiewraps on the cable. This will serve to protect the cable from getting yanked out and damaged.  In this picture, you can also see the two white caps that have punched the wires down in place. Reassemble the jack and make sure to install the screw in the lid if your jack has one.</p>
<div id="attachment_817" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/completedtap/" rel="attachment wp-att-817"><img class="size-medium wp-image-817" title="Completed Passive Ethernet Tap" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/completedtap-300x225.jpg" alt="Completed Passive Ethernet Tap" width="300" height="225" /></a><p class="wp-caption-text">Completed Passive Ethernet Tap</p></div>
<p>Here&#8217;s the completed tap in all it&#8217;s glory!</p>
<h2>Testing the Tap</h2>
<p>In order to test the tap, we need at least two computers, one of which must have two network adapters.  The computer with one network adapter will be our &#8220;test host&#8221; and the other computer will be our monitoring host.  On the test host, I have assigned the IP address 10.0.0.2 and on the monitoring computer, I have assigned one interface (eth0) with the IP of 10.0.0.1.  The monitoring interface (eth1) will have no IP address assigned to it and will be for testing the tap.  Remember that as far as the test host is concerned, the tap is just a CAT-5 patch cable.</p>
<p>Before proceeding, mark the passive tap where the Ethernet cables come out as A and B.  This will be important as this test will also help us label which side of the conversation we are listening to.  One side will be considered &#8220;Network to Host&#8221; and the other will be considered &#8220;Host to Network&#8221;.  It is imperative that we get both sides of the conversation, each side represented by one of the two keystone jacks. While it might not be important now, later on when you use this tap for something else (like an IDS project), you will need to know which side of the conversation you are listening to.</p>
<p>To get your test rig set up, connect the long side (side A in my case) of the tap cable to the switch.  Connect the short side (side B in my case) to the test host.  Connect the ethernet interface on the monitoring machine to the switch, but leave the  unmonitored interface disconnected.  Keep in mind that on my monitoring machine, eth0 was the interface with the IP address, and eth3 was the interface that will be used for monitoring. I&#8217;m using Linux on my system, you may need to make adjustments where needed.</p>
<ul>
<li>On the monitoring host, ensure that you can ping the test host before hooking up the monitoring interface to the tap.</li>
<li>On the monitoring host, open two terminal windows</li>
<li>In the first window, start tcpdump using this command:  <strong>sudo tcpdump -i eth3 -nvs0 -c 10 ip[9]=1</strong>This translates to start tcpdump on eth3, no host resolution (-n), verbose mode (v), no snapshot length (s0), for a count of 10 packets (-c 10) and only on ICMP protocol (ip[9]=1).</li>
<li>Attach the monitoring interface to one of the two keystones.  I picked the red jack.</li>
<li>In the second window, ping the test host using the -c 5 parameter:  <strong>ping testmachine -c 5</strong> The -c 5 tells ping to try 5 times.</li>
<li>You should see the below text in your ping window:</li>
</ul>
<p>&nbsp;</p>
<pre>$ ping  testmachine -c 5
PING testmachine (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=7.25 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.685 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=0.719 ms
64 bytes from 10.0.0.2: icmp_seq=4 ttl=64 time=0.746 ms
64 bytes from 10.0.0.2: icmp_seq=5 ttl=64 time=0.704 ms</pre>
<p>&nbsp;</p>
<ul>
<li>Your TCPDUMP window should show something like this:</li>
</ul>
<p>&nbsp;</p>
<pre>21:48:59.093624 IP (tos 0x0, ttl 64, id 27270, offset 0, flags [DF], proto ICMP (1), length 84)
 10.0.0.2 &gt; 10.0.0.1: ICMP echo reply, id 24899, seq 1, length 64
21:49:00.088502 IP (tos 0x0, ttl 64, id 49871, offset 0, flags [DF], proto ICMP (1), length 84)
 10.0.0.2 &gt; 10.0.0.1: ICMP echo reply, id 24899, seq 2, length 64
21:49:01.087486 IP (tos 0x0, ttl 64, id 36772, offset 0, flags [DF], proto ICMP (1), length 84)
 10.0.0.2 &gt; 10.0.0.1: ICMP echo reply, id 24899, seq 3, length 64
21:49:02.086630 IP (tos 0x0, ttl 64, id 27025, offset 0, flags [DF], proto ICMP (1), length 84)
 10.0.0.2 &gt; 10.0.0.1: ICMP echo reply, id 24899, seq 4, length 64
21:49:03.085505 IP (tos 0x0, ttl 64, id 28037, offset 0, flags [DF], proto ICMP (1), length 84)
 10.0.0.2 &gt; 10.0.0.1: ICMP echo reply, id 24899, seq 5, length 64</pre>
<p>&nbsp;</p>
<ul>
<li>Keep in mind that there are two packets associated with ping. One is an <strong>ICMP Echo Request</strong> and the other is an <strong>ICMP Echo Reply</strong> In this case I received the echo reply which means that the red jack is for &#8220;Host to Network&#8221; monitoring or B-&gt;A. If you got ICMP echo request, then your jack is A-&gt;B.</li>
<li>Mark the jack as B-&gt;A and continue testing. At this point, we know that our tap at least hears half the conversation.</li>
<li>Switch the monitor interface to the other jack (Mine is green) and rerun the ping.  Your ping should show the below just like before:</li>
</ul>
<p>&nbsp;</p>
<pre>$ ping 10.0.0.2 -c 5
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=9.69 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.705 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=0.663 ms
64 bytes from 10.0.0.2: icmp_seq=4 ttl=64 time=0.722 ms
64 bytes from 10.0.0.2: icmp_seq=5 ttl=64 time=0.714 ms</pre>
<p>&nbsp;</p>
<ul>
<li>This time, however, the TCPDUMP output should have changed:</li>
</ul>
<p>&nbsp;</p>
<pre>22:00:28.084339 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
 10.0.0.1 &gt; 10.0.0.2: ICMP echo request, id 40269, seq 1, length 64
22:00:29.077220 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
 10.0.0.1 &gt; 10.0.0.2: ICMP echo request, id 40269, seq 2, length 64
22:00:30.076215 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
 10.0.0.1 &gt; 10.0.0.2: ICMP echo request, id 40269, seq 3, length 64
22:00:31.075218 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
 10.0.0.1 &gt; 10.0.0.2: ICMP echo request, id 40269, seq 4, length 64
22:00:32.074214 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
 10.0.0.1 &gt; 10.0.0.2: ICMP echo request, id 40269, seq 5, length 64</pre>
<p>&nbsp;</p>
<ul>
<li>Just like before, I received 5 packets however last time I got the ICMP echo reply, this time I got the ICMP echo request.  This means that the green jack is the A-&gt;B connector, that is Network to Host. Mark it as appropriate.</li>
</ul>
<p>If you&#8217;re at this point, then you have demonstrated that the tap works.  It allows the test host to communicate with the network unimpeded, it also allows the monitoring of host to network and network to host data.  My passive tap looks like the one below:</p>
<div id="attachment_818" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/labelled/" rel="attachment wp-att-818"><img class="size-medium wp-image-818" title="Finished Passive Tap" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/labelled-300x225.jpg" alt="Finished Passive Tap" width="300" height="225" /></a><p class="wp-caption-text">Finished Passive Tap</p></div>
<h2>Now what to do?</h2>
<p>At this point, with a good passive tap in hand, you have a whole bunch of things you can do. You could:</p>
<ol>
<li>Establish an IDS for your network (my original plan)</li>
<li>Monitor a host&#8217;s traffic exchange with the network/Internet.</li>
<li>Perform traffic reconstruction for analysis.</li>
<li>Monitor network communication between your Wireless access point and the rest of your network</li>
</ol>
<h2>Troubleshooting</h2>
<p>Unfortunately, I can&#8217;t account for every situation however there may be some situations where the tcpdump test doesn&#8217;t exactly work as planned.  Here&#8217;s some common solutions if your tests don&#8217;t work quite right<strong>:</strong></p>
<p><strong>I can see the A-&gt;B traffic, but can&#8217;t see the B-&gt;A traffic. The ping window shows the host responds. (or)</strong></p>
<p><strong>I can see the B-&gt;A traffic but can&#8217;t see the A-&gt;B traffic. The ping window shows the host responds. (or)</strong></p>
<p><strong>I can not see any traffic, but the ping window shows the host responds.</strong></p>
<p><strong> </strong>Check your wires on the keystone and make sure the wire went down onto the metal pin. Sometimes when using the caps to crimp down the wires, one of the wires will shift at the last second<strong>.<br />
</strong></p>
<p><strong>I can see the ICMP Echo Request  on one port but I see nothing on the other. The ping window shows that the host does not respond.</strong></p>
<p>Check to see that the wires didn&#8217;t rip apart or that they were not nicked in the construction process.</p>
<h2>Last Thoughts</h2>
<p>Even if you don&#8217;t plan on building a home IDS, having a passive tap in your toolbox is a good idea.  You never know when you will need to intercept and analyze traffic between two devices on a network. This device will allow you to do so with minimal effort and cost all while allowing the host to chatter away unimpeded by the monitoring.</p>
<p>Happy Hacking!</p>
<p>FIRESTORM_v1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/feed/</wfw:commentRss>
		<slash:comments>0</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>TI Launchpad Dev Kit for under $5!</title>
		<link>http://www.yourwarrantyisvoid.com/2010/11/05/ti-launchpad-dev-kit-for-under-5/</link>
		<comments>http://www.yourwarrantyisvoid.com/2010/11/05/ti-launchpad-dev-kit-for-under-5/#comments</comments>
		<pubDate>Sat, 06 Nov 2010 04:50:08 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[Product Reviews]]></category>
		<category><![CDATA[microcontroller]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[schwag]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=664</guid>
		<description><![CDATA[So many months ago (in June), Hackaday and Make were all abuzz about the TI Launchpad which is a new development platform centered around the TI MSP430 microprocessor.  The most interesting thing aside from the processor spec itself was that the entire platform came under $5 for a professionally built development kit. I placed my [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-665" href="http://www.yourwarrantyisvoid.com/2010/11/05/ti-launchpad-dev-kit-for-under-5/launchpad/"><img class="aligncenter size-full wp-image-665" title="LaunchPad" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/LaunchPad.jpg" alt="" width="103" height="120" /></a>So many months ago (in June), Hackaday and Make were all abuzz about the TI Launchpad which is a new development platform centered around the TI MSP430 microprocessor.  The most interesting thing aside from the processor spec itself was that the entire platform came under $5 for a professionally built development kit. I placed my order and in a week, I got a backorder slip and eventually forgot about it.  (June is years ago for those of us with ADD.)  Well even though I had forgotten about it, TI had not.  A couple of days ago, I got a call from the apartment complex that it had arrived! Read on to find out what all&#8217;s in the box!</p>
<p><span id="more-664"></span></p>
<p>A little background on the TI MSP430 first.</p>
<p>This is TI&#8217;s approach to the microcontroller market that is not targeted at the industrial segment, but rather at us the hardware DIY crowd.  I have to admit that they did it right with the $4.30 price point and I can&#8217;t wait to get started.  The kit includes two of the MSP430 chips:</p>
<ul>
<li>﻿MSP430G2211IPN14  -2kB of on-die flash, 128 bytes of RAM, 10 GPIO pins, One 16-bit timer, a Watchdog timer, a BOR and a comparator.  You can download the datasheet <a href="http://bit.ly/cCLh3w" target="_blank">from here</a>.</li>
<li>MSP430G2231IPN14 &#8211; 2kB of on-die flash, 128 bytes of RAM, 10 GPIO pins, One 16-bit timer, a Watchdog timer, a BOR, a Serial Interface (for I2C or SPI), an internal temperature sensor and an 8 channel 10bit ADC.  This chip&#8217;s datasheet can be <a href="http://bit.ly/c4LFN4" target="_blank">found here</a>.</li>
</ul>
<p>The 2231 chip comes preinstalled and pre-programmed with a basic temperature demo which shows off the internal temperature sensor.  It&#8217;s definitely more than the blinking LED demo that comes with most sample programs.</p>
<p>So, let&#8217;s take a look at the thing.</p>
<div id="attachment_671" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-671" href="http://www.yourwarrantyisvoid.com/2010/11/05/ti-launchpad-dev-kit-for-under-5/dscf0764/"><img class="size-medium wp-image-671" title="Launchpad box" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/DSCF0764-300x225.jpg" alt="Launchpad Box" width="300" height="225" /></a><p class="wp-caption-text">Launchpad Box</p></div>
<p>The box comes in a very nice black cardboard box with TI&#8217;s launchpad Wiki printed on the front.  On the back of the box is TI&#8217;s other site URL straight to the chip specs, <a href="http://www.ti.com/430value" target="_blank">http://www.ti.com/430value</a>.</p>
<div id="attachment_672" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-672" href="http://www.yourwarrantyisvoid.com/2010/11/05/ti-launchpad-dev-kit-for-under-5/dscf0766/"><img class="size-medium wp-image-672" title="Devboard" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/DSCF0766-300x225.jpg" alt="The Development  board." width="300" height="225" /></a><p class="wp-caption-text">The Development board with an MSP430G2231 mounted and ready to fire up.</p></div>
<p>The board itself is in a small anti-static bag, and when you open it up, you get a red development board like above.  There is a chip pre-programmed and ready to go.  Just like the Arduino, this board is USB powered and USB programmed.  There is a socket in the middle that you can plug a chip into, program, and then remove for use in your own projects or breadboard.  For the Arduino crowd, there is even a couple of headers included to populate the left and right solder pads for an easy method of attaching jumpers to the board for prototyping.</p>
<div id="attachment_673" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-673" href="http://www.yourwarrantyisvoid.com/2010/11/05/ti-launchpad-dev-kit-for-under-5/dscf0770/"><img class="size-medium wp-image-673" title="Accessories" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/DSCF0770-300x225.jpg" alt="Accessories" width="300" height="225" /></a><p class="wp-caption-text">Accessories</p></div>
<p>In addition to the development board, you also get the above accessories.  Left is the two single row headers for the board (both female connector and male pins are included).  At the top is the second chip, (the chip without SPI/I2C and the Serial interface) and in the foreground is a 32.768kHz crystal that you can solder onto the development board for a more accurate clock.  The MSP430&#8242;s do include their own internal clock source however for those time sensitive projects, the external crystal is preferred and this board gives you you ready access to it should you find you need one.  Also included is a USB A to Mini-B cable.</p>
<div id="attachment_674" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-674" href="http://www.yourwarrantyisvoid.com/2010/11/05/ti-launchpad-dev-kit-for-under-5/dscf0772/">A<img class="size-medium wp-image-674" title="Plugged in" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/11/DSCF0772-300x225.jpg" alt="Plugged In" width="300" height="225" /></a><p class="wp-caption-text">Plugged in and ready for action!</p></div>
<p>Here is a picture of the board plugged in and ready to rock.  Although the LED&#8217;s brightness blurs the camera, there is a red LED and a green LED located next to the switch in the foreground.  When you first apply power to the board, the back LED (near the USB header) lights indicating power is applied, and the two LEDs near the left switch blink alternating, indicating that the chip is ready to be programmed.  In this image, I was using the chip that was already inserted, so all I had to do to run the simple test application was to hit the left pushbutton and start the program.</p>
<p>According to the wiki page, there are nine variants of the MSP430, some offering more flash (code) storage, some offering additional features however they are all pretty consistent at the 128-byte RAM.  Many people on the <a href="http://hackaday.com/2010/06/22/ti-makes-a-big-bid-for-the-hobby-market/#comments" target="_blank">Hack-a-day article</a> expressed concern at the windows only compiler however Hack-a-day released <a href="http://hackaday.com/2010/08/11/how-to-launchpad-programming-with-linux/" target="_blank">another article</a> later on about how to code it in our favorite OS.</p>
<p>Generally speaking, cost has been the #1 thing that has distracted me from getting started with the Arduino ($35 for a board) and the PIC microcontroller suffers the same fate.  While the chips for each are quite inexpensive, it&#8217;s the programmers that usually ends up costing you in the end.  TI definitely has my attention with a $5 price point and extra chips.  I look forward to playing around with it very soon!</p>
<p>If you&#8217;ve gotten ahold of one of these, please let me know what you&#8217;ve done in the comments.  I&#8217;ve read several articles on Hack-a-day which have been appealing to me, especially the <a href="http://hackaday.com/2010/09/30/launchpad-takes-ultra-low-power-to-the-extreme/" target="_blank">low power article here</a>.</p>
<p>Happy Hacking!</p>
<p>FIRESTORM_v1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2010/11/05/ti-launchpad-dev-kit-for-under-5/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

