<?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>Awooga!!! &#187; dell</title>
	<atom:link href="http://awooga.nl/tag/dell/feed" rel="self" type="application/rss+xml" />
	<link>http://awooga.nl</link>
	<description>how hard can it be?</description>
	<lastBuildDate>Tue, 05 Apr 2011 12:46:28 +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>Won&#8217;t someone think of the children?</title>
		<link>http://awooga.nl/wont-someone-think-of-the-children</link>
		<comments>http://awooga.nl/wont-someone-think-of-the-children#comments</comments>
		<pubDate>Wed, 04 Nov 2009 15:36:15 +0000</pubDate>
		<dc:creator>Q</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[blacklist]]></category>
		<category><![CDATA[c521]]></category>
		<category><![CDATA[children]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[domain]]></category>
		<category><![CDATA[filtering]]></category>
		<category><![CDATA[host]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[kids]]></category>
		<category><![CDATA[laptop]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[macbook]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[opendns]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[safe surfing]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[tinyproxy]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[whitelist]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://awooga.nl/?p=443</guid>
		<description><![CDATA[Let&#8217;s do a quick show of hands of parents who think that the internet is a safe place for children to spend their time on? If you&#8217;ve got your hands up you haven&#8217;t been on the internet for very long. To be completely honest, the internet scares me. Or better, the amount of scary stuff [...]]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s do a quick show of hands of parents who think that the internet is a safe place for children to spend their time on?  If you&#8217;ve got your hands up you haven&#8217;t been on the internet for very long.</p>
<p><img class="alignright size-medium wp-image-454" title="kid-in-shock" src="/wp-content/uploads/2009/11/kid-in-shock-300x199.jpg" alt="kid-in-shock" width="300" height="199" />To be completely honest, the internet scares me.  Or better, the amount of scary stuff that is on it, scares me.  So now that my son is old enough to have his own PC in his bedroom, I looked around to see what was available to make sure that he doesn&#8217;t get exposed to material that is well above his age.  They grow up quick enough anyway.</p>
<p>Now as someone who runs <a href="http://www.ubuntu.com/" target="_blank" class="liexternal">Ubuntu</a> on his <a href="/tag/c521" class="liinternal">server</a>, and <a href="http://www.apple.com/macosx/" target="_blank" class="liexternal">OS X</a> on his <a href="/an-apple-a-day" class="liinternal">MacBook</a>, I am already one step ahead of most parents, who have to deal with a <a href="http://www.microsoft.com/windows/" target="_blank" class="liexternal">Microsoft Windows</a> environment of some sort.  Good luck to you.  This blog post depends on a Linux server of some sort, and although the client can be any operating system, I strongly advice you to stick to a <a href="http://en.wikipedia.org/wiki/Unix-like" target="_blank" class="liexternal">*nix</a> based desktop.</p>
<p>After dismissing most options available (things like <a href="http://www.opendns.com/" target="_blank" class="liexternal">OpenDNS</a>, and a variety of dedicated applications to block any harmful content), I decided that however I was going to implement it, it would have to be by using a <a href="http://en.wikipedia.org/wiki/Whitelist" target="_blank" class="liexternal">whitelist</a>, rather than the normal practice of a <a href="http://en.wikipedia.org/wiki/Blacklist" target="_blank" class="liexternal">blacklist</a>.  The reasoning behind this is that the amount of harmful content changes every minute, and no amount of blacklisting will catch 100% of it.  With a whitelist, everything has to be vetted by me, but it ensures total control over their web experience.  I also wanted to be able to approve/deny new websites as my son requests them, with little effort required on my side.</p>
<p>Something that sits between the client and the internet would be the perfect solution, and I quickly stumbled upon <a href="https://www.banu.com/tinyproxy/" target="_blank" class="liexternal">TinyProxy</a>.  As the name implies, the application is small, efficient, easy to manage and it supports blacklisting and whitelisting.  Perfect.<br />
<br /><br /><center><script type="text/javascript"><!--
google_ad_client = "pub-3248212177098373";
google_ad_slot = "3039514391";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</center><br /><br />
<strong>Requirements</strong></p>
<ul>
<li>A server running your favourite Linux distribution.  I personally use Ubuntu, but for the purpose of this guide, it doesn&#8217;t matter.</li>
<li>TinyProxy as installed by your favourite package manager.  For Ubuntu that&#8217;s as easy as <code>apt-get install tinyproxy</code>, but obviously that will be different if you run something else.  Make a note of the version number of TinyProxy though, as we&#8217;ll need version <a href="https://www.banu.com/tinyproxy/download/" target="_blank" class="liexternal">1.6.5 or later</a>.</li>
<li>A webserver running on your server.  <a href="http://httpd.apache.org/" target="_blank" class="liexternal">Apache2</a> is what I use, but as long as it supports <a href="http://php.net/" target="_blank" class="liexternal">PHP</a>, then it doesn&#8217;t matter.  What does matter though, is that the webserver should be able to access your TinyProxy <code>whitelist</code> file, which if you have both TinyProxy and the webserver running on the same server will be the case.</li>
<li>A client configured to use TinyProxy.  This can be <a href="http://www.mozilla.com/firefox/" target="_blank" class="liexternal">Firefox</a>, <a href="http://www.microsoft.com/windows/Internet-explorer/" target="_blank" class="liexternal">Internet Explorer</a>, <a href="http://www.google.co.uk/chrome" target="_blank" class="liexternal">Chrome</a>, <a href="http://www.opera.com/" target="_blank" class="liexternal">Opera</a>, or any other browser you like to use.  Be aware though that as soon as your child learns what a <a href="http://en.wikipedia.org/wiki/Proxy_server" target="_blank" class="liexternal">proxy</a> is and how to remove it from his PC/laptop, the whole plan falls apart.</li>
</ul>
<p>Before you continue with the next section, make sure that your webserver is able to serve some pages, and that you have confirmed that TinyProxy is working correctly for you.</p>
<p><strong>Installation</strong></p>
<p>Grab the <a href="/stuff/tinyproxy-admin.tar.gz" class="lizip">tinyproxy-admin.tar.gz</a> package and unpack it somewhere on your server.  There are a number of files in there, each of them I will describe below.</p>
<p><code>tinyproxy.32</code><br />
<code>tinyproxy.64</code> &#8211; These two binaries are the 1.6.5 binary patched with a small change to allow TinyProxy&#8217;s child processes to refresh their filter list when the parent receives a <a href="http://en.wikipedia.org/wiki/SIGHUP" target="_blank" class="liexternal">SIGHUP</a> signal and when the <code>whitelist</code> file is changed.  These changes have also been submitted to the development version of TinyProxy, but because <code>apt-get</code> on my Ubuntu system installs 1.6.5, I have used that code base.  Eventually these patches will appear in the Ubuntu package manager, but until then, these will do.  The extension indicates whether the binary is for 32-bit, or 64-bit *nix.</p>
<p><code>tinyproxy</code> &#8211; This is the TinyProxy start file (usually found in <code>/etc/init.d</code>), which contains a couple of changed lines.  The permission on the <code>tinyproxy.log</code> files is by default set to restrictive.  It needs to be read by the webserver&#8217;s user, which means that setting it to 644 everytime we start TinyProxy is required.</p>
<p>The files below need to be put in your TinyProxy configuration directory, usually <code>/etc/tinyproxy</code>.</p>
<p><code>tinyproxy.conf</code> &#8211; This contains only the required changes to your distribution&#8217;s version.  The <em>ErrorFile</em>, <em>PidFile</em> and <em>Filter</em> locations need to match your installation, and to switch from blacklisting to whitelisting, the <em>FilterDefaultDeny</em> parameter needs to be set to Yes.</p>
<p><code>whitelist</code> &#8211; This contains just a single line; <code>localhost</code>.  You need to whitelist the domain that your webserver runs on, otherwise it won&#8217;t work.  If your local webserver can be reached through a proper domain name, then change <code>localhost</code> to that instead.</p>
<p><code>403.html</code> &#8211; This is the file referred to by the <em>ErrorFile</em> directive in the <code>tinyproxy.conf</code> file.  It contains two variables which need to be changed to match your system.</p>
<p>The following files are part of the administration interface and will need to be put in a directory that can be served by your local webserver.  For instance, if your webserver uses <code>/var/www</code> as the root directory, put these in a new directory called <code>/var/www/tinyproxy</code>.  The pages should then be able to be accessible by navigating to the <a href="#" class="liinternal">http://your.webserver.domain/tinyproxy</a> url.</p>
<p><code>config.php</code> &#8211; This is the configuration for the administration interface.  Make sure that the variables match your configuration, and if you want it to notify you by <a href="http://twitter.com/" target="_blank" class="liexternal">Twitter</a> each time a new domain approval request is made, enter your details in there too.</p>
<p><code>style.css</code><br />
<code>filter.html</code><br />
<code>admin.html</code><br />
<code>filter.php</code><br />
<code>img</code> (dir) &#8211; These are the remaining files which do not require any modification.</p>
<p><strong>How it all works</strong></p>
<p>Whenever a client is requesting a webpage from a domain, the request is done through TinyProxy.  If it finds a line in the <code>whitelist</code> file for the domain, it lets the request pass through, but if it doesn&#8217;t, an <a href="http://en.wikipedia.org/wiki/HTTP_403" target="_blank" class="liexternal">error 403</a> occurs (Forbidden) and the <code>403.html</code> page is served to the client.  The included <code>403.html</code> file calls the <code>filter.html</code> file internally and passes it the website that the client is trying to access.</p>
<p><img class="aligncenter size-full wp-image-461" title="tinyproxy-filter" src="/wp-content/uploads/2009/11/tinyproxy-filter.png" alt="tinyproxy-filter" width="527" height="348" /></p>
<p>When the request is made, the domain gets added to the <code>whitelist</code> file, but with a prefix of <strong>M|</strong>, therefore still not matching a proper whitelisted domain name.  And it is this mechanism which allows me to approve or deny domains whilst keeping the whitelists all in one place.  The admin interface simply drops the <strong>M|</strong> prefix if the domain gets approved, or changes it to <strong>D|</strong> if it remains denied.  Easy peasy :o)<br />
<br /><br /><center><script type="text/javascript"><!--
google_ad_client = "pub-3248212177098373";
google_ad_slot = "3039514391";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</center><br /><br />
I appreciate that the above is all a bit long and winded, so I&#8217;ll do a small summary/checklist below for those who are keen to get going.</p>
<blockquote><ul>
<li>Install TinyProxy using package manager</li>
<li>Install webserver</li>
<li>Confirm the above are working</li>
<li>Download tinyproxy-admin.tar.gz</li>
<li>Amend config.php</li>
<li>Move config.php, style.css, filter.html, admin.html, filter.php and the img directory to a subdirectory beneath your webserver</li>
<li>Amend TinyProxy startup script: tinyproxy</li>
<li>Amend TinyProxy configuration file: tinyproxy.conf</li>
<li>Amend whitelist and move it to the TinyProxy configuration directory</li>
<li>Amend 403.html and move it to the TinyProxy configuration directory</li>
<li>Replace tinyproxy binary with patched version</li>
<li>Restart TinyProxy</li>
<li>Breath out ;o)</li>
</ul>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://awooga.nl/wont-someone-think-of-the-children/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Eee PC Digital Picture Frame</title>
		<link>http://awooga.nl/the-eee-pc-digital-picture-frame</link>
		<comments>http://awooga.nl/the-eee-pc-digital-picture-frame#comments</comments>
		<pubDate>Mon, 13 Apr 2009 19:53:59 +0000</pubDate>
		<dc:creator>Q</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[asus]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[eee pc]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[ibex]]></category>
		<category><![CDATA[intrepid]]></category>
		<category><![CDATA[laptop]]></category>
		<category><![CDATA[lcd]]></category>
		<category><![CDATA[led]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[maplin]]></category>
		<category><![CDATA[mini 9]]></category>
		<category><![CDATA[modding]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[netbook]]></category>
		<category><![CDATA[photo frame]]></category>
		<category><![CDATA[picture frame]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://awooga.nl/?p=342</guid>
		<description><![CDATA[I just can&#8217;t help myself. It all started way back in 2002 with The Swedish Chef, followed in 2005 by the (still) popular Project Bling: the desire to create the ultimate digital picture frame. So here it is, the third (and hopefully last) instalment: The Eee PC Digital Picture Frame aka The Eee PF. I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>I just can&#8217;t help myself.  It all started way back in 2002 with <a href="/gallery/modding/chef/" class="liinternal"><em>The Swedish Chef</em></a>, followed in 2005 by the (still) popular <a href="/project-bling" class="liinternal"><em>Project Bling</em></a>: the desire to create the ultimate digital picture frame.</p>
<p>So here it is, the third (and hopefully last) instalment: <strong>The Eee PC Digital Picture Frame</strong> aka <strong>The Eee PF</strong>.</p>
<p>I&#8217;ve divided it up in four sections, for easy digesting ;)  All pictures can be enlarged, and the complete set of pictures can be found in <a href="/gallery/modding/eeepc" class="liinternal">the gallery</a>.</p>
<p><a href="#eeepf-part1" class="liinternal">Part 1: Disassembling the Eee PC</a><br />
<a href="#eeepf-part2" class="liinternal">Part 2: Mounting the LCD</a><br />
<a href="#eeepf-part3" class="liinternal">Part 3: Building the frame</a><br />
<a href="#eeepf-part4" class="liinternal">Part 4: Finishing touches</a><br />
<br /><br /><center><script type="text/javascript"><!--
google_ad_client = "pub-3248212177098373";
google_ad_slot = "3039514391";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</center><br /><br />
<strong><a name="eeepf-part1">Part 1</a>: Disassembling the Eee PC</strong></p>
<p>It starts off with an <a href="http://eeepc.asus.com/uk/product700.html" target="_blank" class="liexternal">Asus Eee PC 701 2G</a>, which is perfectly small, yet cheap enough to destroy in the name of science.</p>
<p><a href="/gallery/modding/eeepc/DSC01747.JPG.html" class="liimagelink"><img src="/g/image/35363-5/DSC01747.JPG" alt="Asus Eee PC 701 2G" class="aligncenter" /></a></p>
<p>Push the three tabs at the top of the keyboard in and lift the keyboard up to reveal the keyboard connector at the bottom of the keyboard. Using a small flat screwdriver, push the two locks open and remove the keyboard completely.  Next to the keyboard connector is the touchpad connector which should be disconnected as well.</p>
<p><a href="/gallery/modding/eeepc/DSC01748.JPG.html" class="liimagelink"><img src="/g/image/35369-3/DSC01748.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01749.JPG.html" class="liimagelink"><img src="/g/image/35373-3/DSC01749.JPG" alt="" /></a></p>
<p>With the keyboard removed, the bottom half of the case is next. Remove the nine screws as indicated in the pictures. Turn the Eee PC over and remove the six remaining screws.  For good measure, also remove the battery by sliding the two latches outwards, and slide the battery out.  Flip the Mini over again and open the lid again.  Using a plastic wedge (or your finger nails if you have them), pry the case open using some gentle force along the sides. Be patient at this point as the plastic latches inside the case, are fragile and will snap if you exercise too much force.</p>
<p><a href="/gallery/modding/eeepc/DSC01750.JPG.html" class="liimagelink"><img src="/g/image/35377-3/DSC01750.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01751.JPG.html" class="liimagelink"><img src="/g/image/35381-3/DSC01751.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01752.JPG.html" class="liimagelink"><img src="/g/image/35385-3/DSC01752.JPG" alt="" /></a></p>
<p>Now we just need to remove the motherboard.  Disconnect the speaker and display connectors.  There are two latches holding it in place, located at the bottom edge of the PCB.  Lift the motherboard up at the right hand side and then pull it out up and sideways.</p>
<p><a href="/gallery/modding/eeepc/DSC01753.JPG.html" class="liimagelink"><img src="/g/image/35389-3/DSC01753.JPG" alt="" /></a></p>
<p>Time to separate the LCD from the bezel.  Six screws are hidden underneath the plastic covers which are stickied in place.  Use a plastic wedge along the side of the bezel but be very careful, it is very fragile.  Take your time and be gentle.  Just four screws and four sticky metal tape strips to remove before you can lift the LCD clean out.</p>
<p><a href="/gallery/modding/eeepc/DSC01754.JPG.html" class="liimagelink"><img src="/g/image/35393-3/DSC01754.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01755.JPG.html" class="liimagelink"><img src="/g/image/35397-3/DSC01755.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01756.JPG.html" class="liimagelink"><img src="/g/image/35401-3/DSC01756.JPG" alt="" /></a></p>
<p>Voilà, the Eee PC naked!  Now we are ready for some serious modding ;)</p>
<p><a href="/gallery/modding/eeepc/DSC01757.JPG.html" class="liimagelink"><img src="/g/image/35404-5/DSC01757.JPG" alt="The Eee PC dissected" class="aligncenter" /></a><br />
&nbsp;</p>
<p><strong><a name="eeepf-part2">Part 2</a>: Mounting the LCD</strong></p>
<p>Whatever you do, make sure you buy a frame and mount which have a high <a href="http://en.wikipedia.org/wiki/Woman_acceptance_factor" target="_blank" class="liexternal">WAF</a> since it needs to live in the living room.  You don&#8217;t want to find yourself building something like this and then <a href="http://en.wikipedia.org/wiki/SWMBO" target="_blank" class="liexternal">SWMBO</a> tossing it in the bin because is clashes with the design ;)  Take the mount and measure the dimensions of the LCD and frame and carefully cut it to size.  As usual; measure twice, cut once :)</p>
<p><a href="/gallery/modding/eeepc/DSC01758.JPG.html" class="liimagelink"><img src="/g/image/35409-3/DSC01758.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01759.JPG.html" class="liimagelink"><img src="/g/image/35413-3/DSC01759.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01760.JPG.html" class="liimagelink"><img src="/g/image/35417-3/DSC01760.JPG" alt="" /></a></p>
<p>The LCD driver board sits neatly underneath the LCD, but when you mount the display into the frame, it doesn&#8217;t fit.  Cutting away a bit of the frame allows it to be sunken into it and sit flush with the frame.  Some double sided tape holds the mount in place.</p>
<p><a href="/gallery/modding/eeepc/DSC01761.JPG.html" class="liimagelink"><img src="/g/image/35421-3/DSC01761.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01762.JPG.html" class="liimagelink"><img src="/g/image/35425-3/DSC01762.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01763.JPG.html" class="liimagelink"><img src="/g/image/35429-3/DSC01763.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01764.JPG.html" class="liimagelink"><img src="/g/image/35433-3/DSC01764.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01765.JPG.html" class="liimagelink"><img src="/g/image/35437-3/DSC01765.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01769.JPG.html" class="liimagelink"><img src="/g/image/35441-3/DSC01769.JPG" alt="" /></a></p>
<p>On to the motherboard.  This needs to be mounted with enough clearance above the LCD so that heat can escape and to do this I made my own spacers using normal <a href="http://cpc.farnell.com/_/sticky-feet-small/pcb-spacers-small-self-adhesive/dp/SR00039" target="_blank" class="liexternal">motherboard spacers</a> which I had plenty of from my PC building days.  The screw holes on the Eee PC are tiny, so cut away at the top of the spacers to make them small enough to fit.  Looks rather neat, eh?</p>
<p><a href="/gallery/modding/eeepc/DSC01775.JPG.html" class="liimagelink"><img src="/g/image/35445-3/DSC01775.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01776.JPG.html" class="liimagelink"><img src="/g/image/35449-3/DSC01776.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01777.JPG.html" class="liimagelink"><img src="/g/image/35453-3/DSC01777.JPG" alt="" /></a></p>
<p><a href="/gallery/modding/eeepc/DSC01778.JPG.html" class="liimagelink"><img src="/g/image/35456-5/DSC01778.JPG" alt="The Eee PC mounted" class="aligncenter" /></a><br />
&nbsp;</p>
<p><strong><a name="eeepf-part3">Part 3</a>: Building the frame</strong></p>
<p>Before we create the frame, we need to think about an alternative heat sink.  Normally, the bottom of the keyboard would dissipate the heat, so after doing some testing, I settled on an <a href="http://www.akasa.co.uk/akasa_english/spec_page/system_coolers/spec_ak_vcx_01.htm" target="_blank" class="liexternal">Akasa Southbridge cooler</a> and some tiny <a href="http://www.maplin.co.uk/Module.aspx?ModuleNo=30377" target="_blank" class="liexternal">Maplin heat sinks</a>.  Tests showed that the temps remained nicely around the 50ºC mark, which will rise to about 65ºC once the back cover will be on.  Well within the limits :)</p>
<p><a href="/gallery/modding/eeepc/DSC01781.JPG.html" class="liimagelink"><img src="/g/image/35469-3/DSC01781.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01782.JPG.html" class="liimagelink"><img src="/g/image/35500-3/DSC01782.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01784.JPG.html" class="liimagelink"><img src="/g/image/35508-3/DSC01784.JPG" alt="" /></a></p>
<p>Using some <a href="http://www.wickes.co.uk/Stripwood/Pine-Stripwood/invt/128537" target="_blank" class="liexternal">4mm Pine Stripwood</a> cut to length, mark out all the ports and crevices that need to be carefully removed from the frame to allow access once everything is closed up again.</p>
<p><a href="/gallery/modding/eeepc/DSC01779.JPG.html" class="liimagelink"><img src="/g/image/35461-3/DSC01779.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01780.JPG.html" class="liimagelink"><img src="/g/image/35465-3/DSC01780.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01785.JPG.html" class="liimagelink"><img src="/g/image/35512-3/DSC01785.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01801.JPG.html" class="liimagelink"><img src="/g/image/35524-3/DSC01801.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01783.JPG.html" class="liimagelink"><img src="/g/image/35504-3/DSC01783.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01802.JPG.html" class="liimagelink"><img src="/g/image/35528-3/DSC01802.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01800.JPG.html" class="liimagelink"><img src="/g/image/35520-3/DSC01800.JPG" alt="" /></a></p>
<p>Here&#8217;s a quick mock up of how it all will fit together once we&#8217;ve painted the frame and glued it to the photo frame&#8217;s back.</p>
<p><a href="/gallery/modding/eeepc/DSC01799.JPG.html" class="liimagelink"><img src="/g/image/35515-5/DSC01799.JPG" alt="The Eee PC framed" class="aligncenter" /></a></p>
<p>Because the power switch would be covered up when the back is glued on, we need to move the switch&#8217;s function to somewhere more convenient.  Reading <a href="http://infsq.co.uk/2008/04/19/taking-apart-an-asus-eee-pc-remote-onoff/" target="_blank" class="liexternal">this blog post</a> over at Infinity Squared on an external power switch, I decided to go for <a href="http://www.maplin.co.uk/Module.aspx?ModuleNo=2492" target="_blank" class="liexternal">the smallest</a> I could find at Maplin.  My soldering is definitely not the best, so a bit of heat shrink camouflages most of it ;)</p>
<p><a href="/gallery/modding/eeepc/DSC01803.JPG.html" class="liimagelink"><img src="/g/image/35532-3/DSC01803.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01804.JPG.html" class="liimagelink"><img src="/g/image/35536-3/DSC01804.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01805.JPG.html" class="liimagelink"><img src="/g/image/35540-3/DSC01805.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01903.JPG.html" class="liimagelink"><img src="/g/image/35580-3/DSC01903.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01904.JPG.html" class="liimagelink"><img src="/g/image/35584-3/DSC01904.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01905.JPG.html" class="liimagelink"><img src="/g/image/35588-3/DSC01905.JPG" alt="" /></a></p>
<p>I also wanted to have some sort of visual indication that the frame is on or off (other than the tell-tale display ;)).  But how to get the minuscule surface mounted LEDs displayed through the frame?  I had seen something previously, where light was transported using a small transparent acrylic tube.  And when I was killing some time wandering around my local Tesco, I found my 48p answer&#8230;  translucent golf markers!  Remove the heads, drill a few holes and <a href="http://en.wikipedia.org/wiki/Bob%27s_your_uncle" target="_blank" class="liexternal">Bob is a relative</a>.</p>
<p><a href="/gallery/modding/eeepc/DSC01806.JPG.html" class="liimagelink"><img src="/g/image/35544-3/DSC01806.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01807.JPG.html" class="liimagelink"><img src="/g/image/35548-3/DSC01807.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01808.JPG.html" class="liimagelink"><img src="/g/image/35552-3/DSC01808.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01809.JPG.html" class="liimagelink"><img src="/g/image/35556-3/DSC01809.JPG" alt="" /></a></p>
<p>Almost there.  Using some left over black paint, paint all the sides and make sure that once assembled, all the small blemishes are hidden.  Well, most of them ;)</p>
<p><a href="/gallery/modding/eeepc/DSC01810.JPG.html" class="liimagelink"><img src="/g/image/35560-3/DSC01810.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01908.JPG.html" class="liimagelink"><img src="/g/image/35599-3/DSC01908.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01907.JPG.html" class="liimagelink"><img src="/g/image/35595-3/DSC01907.JPG" alt="" /></a></p>
<p>Ready for assembly!  Some glue, some patience and some skilful balancing of weighty items on top of the corners and all that is left to do is add the back cover.</p>
<p><a href="/gallery/modding/eeepc/DSC01909.JPG.html" class="liimagelink"><img src="/g/image/35602-5/DSC01909.JPG" alt="The Eee PF framed and painted" class="aligncenter" /></a><br />
&nbsp;</p>
<p><strong><a name="eeepf-part4">Part 4</a>: Finishing touches</strong></p>
<p>A sheet of hardboard has been cut to be the approximate size and then using patience and lots of sanding made to fit exactly.  The space at the bottom of the frame is perfect for the speakers, so using a small drill, create lots of small holes where the sound can penetrate through.  It won&#8217;t be high fidelity, but it&#8217;s good enough for announcements.  At the top of the frame, the microphone has been mounted, so we may be able to support voice commands in the future!  A quick lick of paint finishes it off.</p>
<p><a href="/gallery/modding/eeepc/DSC01921.JPG.html" class="liimagelink"><img src="/g/image/35609-3/DSC01921.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01922.JPG.html" class="liimagelink"><img src="/g/image/35613-3/DSC01922.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01923.JPG.html" class="liimagelink"><img src="/g/image/35617-3/DSC01923.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01924.JPG.html" class="liimagelink"><img src="/g/image/35621-3/DSC01924.JPG" alt="" /></a><a href="/gallery/modding/eeepc/DSC01925.JPG.html" class="liimagelink"><img src="/g/image/35625-3/DSC01925.JPG" alt="" /></a></p>
<p>We&#8217;re re-using the stand from the picture frame, but instead of hammering it in the backboard, we have to glue it.  I&#8217;ve used <a href="http://en.wikipedia.org/wiki/Araldite" target="_blank" class="liexternal">Araldite</a>, which should create a long lasting strong bond.</p>
<p><a href="/gallery/modding/eeepc/DSC01926.JPG.html" class="liimagelink"><img src="/g/image/35629-3/DSC01926.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01927.JPG.html" class="liimagelink"><img src="/g/image/35633-3/DSC01927.JPG" alt="" /></a></p>
<p>And that is it!  I&#8217;m quite pleased with the result, and even SWMBO commented on how nicely it looks in the living room&#8230;  result!</p>
<p><a href="/gallery/modding/eeepc/DSC01930.JPG.html" class="liimagelink"><img src="/g/image/35646-5/DSC01930.JPG" alt="The Eee PF finished" class="aligncenter" /></a></p>
<p><a href="/gallery/modding/eeepc/DSC01928.JPG.html" class="liimagelink"><img src="/g/image/35637-3/DSC01928.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01931.JPG.html" class="liimagelink"><img src="/g/image/35649-3/DSC01931.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01932.JPG.html" class="liimagelink"><img src="/g/image/35653-3/DSC01932.JPG" alt="" /></a> <a href="/gallery/modding/eeepc/DSC01934.JPG.html" class="liimagelink"><img src="/g/image/35657-3/DSC01934.JPG" alt="" /></a></p>
<p>As a final note, I haven&#8217;t mentioned at all what software the frame is running, so before you bombard me with questions, I better list them here ;)<br />
<br /><br /><center><script type="text/javascript"><!--
google_ad_client = "pub-3248212177098373";
google_ad_slot = "3039514391";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</center><br /><br />
The OS is a standard <a href="http://www.ubuntu.com/" target="_blank" class="liexternal">Ubuntu 8.10 Desktop</a>, with <a href="http://po-ru.com/diary/linux-liposuction-or-xubuntu-in-under-a-gig-on-the-eee-pc/" target="_blank" class="liexternal">/usr compressed with squashfs/unionfs</a> so it can fit on the 2GB SSD.  After booting, it starts <a href="http://www.mozilla-europe.org/en/firefox/" target="_blank" class="liexternal">Firefox</a> on my homepage, a PHP/Ajax/MySQL slideshow script which displays the pictures, weather and clock.  The mousepointer is hidden using a small utility called <a href="http://ubuntu-tutorials.com/2008/07/07/auto-hide-your-mouse-pointer-when-idle-with-unclutter/" target="_blank" class="liexternal">Unclutter</a> and the display is automatically switched off at night using <code>sudo vbetool dpms off</code> and switched on again in the morning using <code>sudo vbetool dpms on</code>.  It&#8217;s still all a bit rough round the edges, but for now it works :)</p>
]]></content:encoded>
			<wfw:commentRss>http://awooga.nl/the-eee-pc-digital-picture-frame/feed</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>Current Cost Classic vs CC128</title>
		<link>http://awooga.nl/current-cost-classic-vs-cc128</link>
		<comments>http://awooga.nl/current-cost-classic-vs-cc128#comments</comments>
		<pubDate>Fri, 13 Feb 2009 00:04:12 +0000</pubDate>
		<dc:creator>Q</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[cacti]]></category>
		<category><![CDATA[currentcost]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[electricity]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[graphs]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[modding]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[serial]]></category>
		<category><![CDATA[statistics]]></category>
		<category><![CDATA[temperatures]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://awooga.nl/?p=330</guid>
		<description><![CDATA[Back in November I bought (well, actually I signed up to a new deal with E.ON which included one) a Current Cost electricity monitor, and hooked it up to my server so I could gather the stats for Cacti. I do this by running a small perl script which looks as follows: #!/usr/bin/perl # /usr/local/bin/cc-classic.pl [...]]]></description>
			<content:encoded><![CDATA[<p>Back in November I bought (well, actually I signed up to a new deal with <a href="http://www.eonenergy.com/" target="_blank" class="liexternal">E.ON</a> which included one) a <a href="http://www.currentcost.co.uk/" target="_blank" class="liexternal">Current Cost</a> <a href="http://www.currentcost.com/product-theclassic.html" target="_blank" class="liexternal">electricity monitor</a>, and hooked it up to my server so I could gather the stats for <a href="http://www.cacti.net/" target="_blank" class="liexternal">Cacti</a>.  I do this by running a small perl script which looks as follows:</p>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/perl</span>
<span style="color: #666666; font-style: italic;"># /usr/local/bin/cc-classic.pl</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">use</span> Device<span style="color: #339933;">::</span><span style="color: #006600;">SerialPort</span> <span style="color: #000066;">qw</span><span style="color: #009900;">&#40;</span> <span style="color: #339933;">:</span>PARAM <span style="color: #339933;">:</span>STAT <span style="color: #cc66cc;">0.07</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #0000ff;">$port</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;/dev/currentcost&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #0000ff;">$ob</span> <span style="color: #339933;">=</span> Device<span style="color: #339933;">::</span><span style="color: #006600;">SerialPort</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">new</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$port</span><span style="color: #009900;">&#41;</span>
      <span style="color: #b1b100;">or</span> <span style="color: #000066;">die</span> <span style="color: #ff0000;">&quot;Can not open port $port<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$ob</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">baudrate</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">9600</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$ob</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">write_settings</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$ob</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">close</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span>SERIAL<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;+&gt;$port&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$line</span> <span style="color: #339933;">=</span> <span style="color: #009999;">&lt;SERIAL&gt;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$line</span> <span style="color: #339933;">=~</span> <span style="color: #000066;">m</span><span style="color: #339933;">!</span><span style="color: #009999;">&lt;ch1&gt;</span><span style="color: #009999;">&lt;watts&gt;</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">\d</span><span style="color: #339933;">+</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;/</span>watts<span style="color: #339933;">&gt;&lt;/</span>ch1<span style="color: #339933;">&gt;.*</span><span style="color: #009999;">&lt;tmpr&gt;</span>\<span style="color: #000066;">s</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-*</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">\d</span><span style="color: #339933;">.</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;/</span>tmpr<span style="color: #339933;">&gt;!</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
     <span style="color: #0000ff;">$watts</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$1</span><span style="color: #339933;">;</span>
     <span style="color: #0000ff;">$temperature</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$2</span><span style="color: #339933;">;</span>
     <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;watts:$watts temp:$temperature&quot;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">last</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066;">close</span><span style="color: #009900;">&#40;</span>SERIAL<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>This would give me the two values I am interested in; watts and temperature (since it sits in <del datetime="2009-02-12T23:22:12+00:00">the garage</del> <a href="/node-zero-33-13-the-final-install" class="liinternal">node 0</a> ;)) in Cacti&#8217;s format:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>cc-classic.pl
watts:<span style="color: #000000;">761</span> temp:<span style="color: #000000;">11.3</span></pre></div></div>

<p>But today, I received my new unit, a Current Cost <a href="http://www.currentcost.com/product-cc128.html" target="_blank" class="liexternal">CC128</a>.  It&#8217;s main benefit is that it supports individual appliance monitors, which makes the output even more useful.  So, armed with a draft copy of the <a href="http://www.currentcost.com/cc128/xml.htm" target="_blank" class="liexternal">CC128 XML</a> output document, I prepared my script to read as follows:</p>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/perl</span>
<span style="color: #666666; font-style: italic;"># /usr/local/bin/cc-cc128.pl</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">use</span> Device<span style="color: #339933;">::</span><span style="color: #006600;">SerialPort</span> <span style="color: #000066;">qw</span><span style="color: #009900;">&#40;</span> <span style="color: #339933;">:</span>PARAM <span style="color: #339933;">:</span>STAT <span style="color: #cc66cc;">0.07</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #0000ff;">$port</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;/dev/currentcost&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #0000ff;">$ob</span> <span style="color: #339933;">=</span> Device<span style="color: #339933;">::</span><span style="color: #006600;">SerialPort</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">new</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$port</span><span style="color: #009900;">&#41;</span>
      <span style="color: #b1b100;">or</span> <span style="color: #000066;">die</span> <span style="color: #ff0000;">&quot;Can not open port $port<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$ob</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">baudrate</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">57600</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$ob</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">write_settings</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$ob</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">close</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span>SERIAL<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;+&gt;$port&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$line</span> <span style="color: #339933;">=</span> <span style="color: #009999;">&lt;SERIAL&gt;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$line</span> <span style="color: #339933;">=~</span> <span style="color: #000066;">m</span><span style="color: #339933;">!</span><span style="color: #009999;">&lt;tmpr&gt;</span>\<span style="color: #000066;">s</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-*</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">\d</span><span style="color: #339933;">.</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;/</span>tmpr<span style="color: #339933;">&gt;.*</span><span style="color: #009999;">&lt;ch1&gt;</span><span style="color: #009999;">&lt;watts&gt;</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">\d</span><span style="color: #339933;">+</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;/</span>watts<span style="color: #339933;">&gt;&lt;/</span>ch1<span style="color: #339933;">&gt;!</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
     <span style="color: #0000ff;">$watts</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$2</span><span style="color: #339933;">;</span>
     <span style="color: #0000ff;">$temperature</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$1</span><span style="color: #339933;">;</span>
     <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;watts:$watts temp:$temperature&quot;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">last</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066;">close</span><span style="color: #009900;">&#40;</span>SERIAL<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>And guess what&#8230;  that works just fine ;)</p>
<p>For those who read diff:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">diff</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>cc-classic.pl <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>cc-cc128.pl 
2c2
<span style="color: #000000; font-weight: bold;">&lt;</span> <span style="color: #666666; font-style: italic;"># /usr/local/bin/cc-classic.pl</span>
<span style="color: #660033;">---</span>
<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #666666; font-style: italic;"># /usr/local/bin/cc-cc128.pl</span>
10c10
<span style="color: #000000; font-weight: bold;">&lt;</span> <span style="color: #007800;">$ob</span>-<span style="color: #000000; font-weight: bold;">&gt;</span>baudrate<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">9600</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;
<span style="color: #660033;">---</span>
<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">$ob</span>-<span style="color: #000000; font-weight: bold;">&gt;</span>baudrate<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">57600</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;
17c17
<span style="color: #000000; font-weight: bold;">&lt;</span>   <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">$line</span> =~ m<span style="color: #000000; font-weight: bold;">!&lt;</span>ch1<span style="color: #000000; font-weight: bold;">&gt;&lt;</span>watts<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000;">0</span><span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>\d+<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #000000; font-weight: bold;">&lt;/</span>watts<span style="color: #000000; font-weight: bold;">&gt;&lt;/</span>ch1<span style="color: #000000; font-weight: bold;">&gt;</span>.<span style="color: #000000; font-weight: bold;">*&lt;</span>tmpr<span style="color: #000000; font-weight: bold;">&gt;</span>\s<span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>-<span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>\d.<span style="color: #7a0874; font-weight: bold;">&#93;</span>+<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #000000; font-weight: bold;">&lt;/</span>tmpr<span style="color: #000000; font-weight: bold;">&gt;!</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #660033;">---</span>
<span style="color: #000000; font-weight: bold;">&gt;</span>   <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">$line</span> =~ m<span style="color: #000000; font-weight: bold;">!&lt;</span>tmpr<span style="color: #000000; font-weight: bold;">&gt;</span>\s<span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>-<span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>\d.<span style="color: #7a0874; font-weight: bold;">&#93;</span>+<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #000000; font-weight: bold;">&lt;/</span>tmpr<span style="color: #000000; font-weight: bold;">&gt;</span>.<span style="color: #000000; font-weight: bold;">*&lt;</span>ch1<span style="color: #000000; font-weight: bold;">&gt;&lt;</span>watts<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000;">0</span><span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>\d+<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #000000; font-weight: bold;">&lt;/</span>watts<span style="color: #000000; font-weight: bold;">&gt;&lt;/</span>ch1<span style="color: #000000; font-weight: bold;">&gt;!</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000;">19</span>,20c19,<span style="color: #000000;">20</span>
<span style="color: #000000; font-weight: bold;">&lt;</span>      <span style="color: #007800;">$watts</span> = <span style="color: #007800;">$1</span>;
<span style="color: #000000; font-weight: bold;">&lt;</span>      <span style="color: #007800;">$temperature</span> = <span style="color: #007800;">$2</span>;
<span style="color: #660033;">---</span>
<span style="color: #000000; font-weight: bold;">&gt;</span>      <span style="color: #007800;">$watts</span> = <span style="color: #007800;">$2</span>;
<span style="color: #000000; font-weight: bold;">&gt;</span>      <span style="color: #007800;">$temperature</span> = <span style="color: #007800;">$1</span>;</pre></div></div>

<p>Please note, the above only works with 1 sensor (the main transmitter), so it is likely to change in the future.  For now it suits my need.</p>
]]></content:encoded>
			<wfw:commentRss>http://awooga.nl/current-cost-classic-vs-cc128/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Modding the Dell Mini 9 &#8211; Part 2</title>
		<link>http://awooga.nl/modding-the-dell-mini-9-part-2</link>
		<comments>http://awooga.nl/modding-the-dell-mini-9-part-2#comments</comments>
		<pubDate>Sat, 07 Feb 2009 20:18:11 +0000</pubDate>
		<dc:creator>Q</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[hackintosh]]></category>
		<category><![CDATA[inspiron 910]]></category>
		<category><![CDATA[led]]></category>
		<category><![CDATA[mini 9]]></category>
		<category><![CDATA[modding]]></category>
		<category><![CDATA[netbook]]></category>
		<category><![CDATA[osx86]]></category>
		<category><![CDATA[runcore]]></category>
		<category><![CDATA[ssd]]></category>
		<category><![CDATA[stec]]></category>

		<guid isPermaLink="false">http://awooga.nl/?p=315</guid>
		<description><![CDATA[I wasn&#8217;t planning on revisiting my Mini mods yet, but when someone offered (and I happened to be looking) an upgrade to a 32GB RunCore SSD, I could not pass on the occasion. The only problem was that it rendered my SSD activity light useless as the RunCore does not carry the same signal on [...]]]></description>
			<content:encoded><![CDATA[<p>I wasn&#8217;t planning on revisiting <a href="/modding-the-dell-mini-9" class="liinternal">my Mini mods</a> yet, but when someone offered (and I happened to be looking) an upgrade to a <a href="http://www.runcore.com/prodshow.asp?ID=161" target="_blank" class="liexternal">32GB RunCore SSD</a>, I could not pass on the occasion.  The only problem was that it rendered my SSD activity light useless as the RunCore does not carry the same signal on the pin that the STEC drive uses.</p>
<p><img src="/g/image/35241-5/DSC01687.JPG" alt="" class="aligncenter" /></p>
<p>Thankfully all the hard work figuring out where the negative side of the SSD light had to connect to was done once more by <a href="http://mydellmini.com/forum/memberlist.php?mode=viewprofile&#038;u=116" target="_blank" class="liexternal">UnaClocker</a> on the <a href="http://mydellmini.com/forum/index.php" target="_blank" class="liexternal">MyDellMini forums</a>, so all I had to do was find a quiet Saturday and warm up the soldering iron.</p>
<p>We begin by undoing the work we did on the STEC.  Heat up the pin on the SSD and remove the black wire.  We will need to connect that to the RunCore drive.</p>
<p><a href="/gallery/modding/mini9/DSC01488.JPG.html" class="liimagelink"><img src="/g/image/35078-5/DSC01488.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01695.JPG.html" class="liimagelink"><img src="/g/image/35252-3/DSC01695.JPG" alt="" /></a></p>
<p>As said, UnaClocker found out that the signal we need is present on a small resistor, which although tiny, isn&#8217;t the worst place in the world to solder on.  Just fold back the sticker to reveal it.  If you enlarge the 2nd picture, you will see which one it is.  Use the tiniest amount of solder and attach the black wire to the resistor.</p>
<p><a href="/gallery/modding/mini9/DSC01689.JPG.html" class="liimagelink"><img src="/g/image/35244-3/DSC01689.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01690.jpg.html" class="liimagelink"><img src="/g/image/35280-3/DSC01690.jpg" alt="" /></a> <a href="/gallery/modding/mini9/DSC01698.JPG.html" class="liimagelink"><img src="/g/image/35260-3/DSC01698.JPG" alt="" /></a></p>
<p>Fold back the sticker, put the SSD back into it&#8217;s slot and boot it up.  Blue LED goodness once again!</p>
<p><a href="/gallery/modding/mini9/DSC01700.JPG.html" class="liimagelink"><img src="/g/image/35264-3/DSC01700.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01701.JPG.html" class="liimagelink"><img src="/g/image/35268-3/DSC01701.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01702.JPG.html" class="liimagelink"><img src="/g/image/35272-3/DSC01702.JPG" alt="" /></a><br />
<br /><br /><center><script type="text/javascript"><!--
google_ad_client = "pub-3248212177098373";
google_ad_slot = "3039514391";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</center><br /></p>
]]></content:encoded>
			<wfw:commentRss>http://awooga.nl/modding-the-dell-mini-9-part-2/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Serial killers?</title>
		<link>http://awooga.nl/serial-killers</link>
		<comments>http://awooga.nl/serial-killers#comments</comments>
		<pubDate>Mon, 26 Jan 2009 19:25:11 +0000</pubDate>
		<dc:creator>Q</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[apc]]></category>
		<category><![CDATA[currentcost]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[pl2303]]></category>
		<category><![CDATA[prolific]]></category>
		<category><![CDATA[serial]]></category>
		<category><![CDATA[smartups]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[udev]]></category>
		<category><![CDATA[ups]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://awooga.nl/?p=194</guid>
		<description><![CDATA[Ever since I added the Current Cost to my Ubuntu server, I was running into the problem that upon booting up, the order of my two (one for the Current Cost unit, and one for an APC SmartUPS) Prolific PL2303 serial ports changed. Each boot, the actual device hanging of the /dev/ttyUSB* nodes would be [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since I added the <a href="http://awooga.nl/lies-damned-lies-and-statistics" class="liinternal">Current Cost</a> to my <a href="http://www.ubuntu.com/products/whatisubuntu/serveredition" target="_blank" class="liexternal">Ubuntu server</a>, I was running into the problem that upon booting up, the order of my two (one for the Current Cost unit, and one for an <a href="http://www.apcc.com/products/family/index.cfm?id=165" target="_blank" class="liexternal">APC SmartUPS</a>) <a href="http://www.prolific.com.tw/eng/Products.asp?ID=59" target="_blank" class="liexternal">Prolific PL2303</a> serial ports changed.  Each boot, the actual device hanging of the /dev/ttyUSB* nodes would be a complete random choice.  And that is not good :(</p>
<p>So I investigated writing some udev rules for them, but unfortunately, the PL2303&#8242;s are completely identical to the server, except that their position on the USB host would change.  And although I tried to find out a consistent way of determining the correct udev rule, I miserably failed.  The only way I was able to find out which device was which, was to issue a</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>ttyUSB0</pre></div></div>

<p>and waiting if some output would appear on the terminal.  The Current Cost unit spits out its data every 6 seconds, so if something showed up, that would be the right one to pick for the cacti data source.  The UPS would not show anything at all using the above command.</p>
<p>Reading a bit further on <a href="http://www.reactivated.net/writing_udev_rules.html" target="_blank" class="liexternal">udev rules</a> I noticed that you can also use external programs to name devices.  This got me thinking.  I would need a small program that would listen on the /dev/ttyUSB* node and timeout if nothing was received within a reasonable time.</p>
<p>Let&#8217;s start off with the udev rule that invokes the script:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># /etc/udev/rules.d/60-local.rules</span>
<span style="color: #666666; font-style: italic;"># Determine APC UPS and Current Cost USB ports</span>
<span style="color: #007800;">KERNEL</span>==<span style="color: #ff0000;">&quot;ttyUSB*&quot;</span>, \
    ATTRS<span style="color: #7a0874; font-weight: bold;">&#123;</span>idVendor<span style="color: #7a0874; font-weight: bold;">&#125;</span>==<span style="color: #ff0000;">&quot;067b&quot;</span>, ATTRS<span style="color: #7a0874; font-weight: bold;">&#123;</span>idProduct<span style="color: #7a0874; font-weight: bold;">&#125;</span>==<span style="color: #ff0000;">&quot;2303&quot;</span>, \
    <span style="color: #007800;">PROGRAM</span>=<span style="color: #ff0000;">&quot;/usr/local/bin/usb-dev-test.pl %k&quot;</span>, \
    SYMLINK+=<span style="color: #ff0000;">&quot;%c&quot;</span></pre></div></div>

<p>The %k parameter will be ttyUSB0, ttyUSB1, etc, and the script usb-dev-test.pl should output a single word, which will be substituted by udev in the %c parameter.  With the help of <a href="http://search.cpan.org/dist/Device-SerialPort/" target="_blank" class="liexternal">Device::SerialPort</a> it becomes trivial ;)</p>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/perl</span>
<span style="color: #666666; font-style: italic;"># /usr/local/bin/usb-dev-test.pl</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">use</span> Device<span style="color: #339933;">::</span><span style="color: #006600;">SerialPort</span> <span style="color: #000066;">qw</span><span style="color: #009900;">&#40;</span> <span style="color: #339933;">:</span>PARAM <span style="color: #339933;">:</span>STAT <span style="color: #cc66cc;">0.07</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$argument</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$ARGV</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">$0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$port</span><span style="color: #339933;">=</span>Device<span style="color: #339933;">::</span><span style="color: #006600;">SerialPort</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">new</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;/dev/$argument&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$STALL_DEFAULT</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">8</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;"># how many seconds to wait for new input</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$timeout</span><span style="color: #339933;">=</span><span style="color: #0000ff;">$STALL_DEFAULT</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #0000ff;">$port</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">read_char_time</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>     <span style="color: #666666; font-style: italic;"># don't wait for each character</span>
<span style="color: #0000ff;">$port</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">read_const_time</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;"># 1 second per unfulfilled &quot;read&quot; call</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$chars</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$buffer</span><span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$timeout</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">my</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$count</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$saw</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">=</span><span style="color: #0000ff;">$port</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">read</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;"># will read _up to_ 255 chars</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$count</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$chars</span><span style="color: #339933;">+=</span><span style="color: #0000ff;">$count</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$buffer</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">$saw</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Check here to see if what we want is in the $buffer</span>
    <span style="color: #666666; font-style: italic;"># say &quot;last&quot; if we find it</span>
    <span style="color: #b1b100;">last</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$timeout</span><span style="color: #339933;">--;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$timeout</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;apcups&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;currentcost&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>And look at the result&#8230;  Magic!</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #660033;">-la</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>ttyUSB<span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>currentcost <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>apcups
lrwxrwxrwx <span style="color: #000000;">1</span> root root         <span style="color: #000000;">7</span> Jan <span style="color: #000000;">26</span> <span style="color: #000000;">13</span>:<span style="color: #000000;">10</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>apcups -<span style="color: #000000; font-weight: bold;">&gt;</span> ttyUSB0
lrwxrwxrwx <span style="color: #000000;">1</span> root root         <span style="color: #000000;">7</span> Jan <span style="color: #000000;">26</span> <span style="color: #000000;">13</span>:<span style="color: #000000;">10</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>currentcost -<span style="color: #000000; font-weight: bold;">&gt;</span> ttyUSB1
crw-rw-rw- <span style="color: #000000;">1</span> root dialout <span style="color: #000000;">188</span>, <span style="color: #000000;">0</span> Jan <span style="color: #000000;">26</span> <span style="color: #000000;">14</span>:09 <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>ttyUSB0
crw-rw-rw- <span style="color: #000000;">1</span> root dialout <span style="color: #000000;">188</span>, <span style="color: #000000;">1</span> Jan <span style="color: #000000;">26</span> <span style="color: #000000;">11</span>:<span style="color: #000000;">54</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>ttyUSB1</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://awooga.nl/serial-killers/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Modding the Dell Mini 9</title>
		<link>http://awooga.nl/modding-the-dell-mini-9</link>
		<comments>http://awooga.nl/modding-the-dell-mini-9#comments</comments>
		<pubDate>Tue, 30 Dec 2008 19:39:02 +0000</pubDate>
		<dc:creator>Q</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[brodit]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[hackintosh]]></category>
		<category><![CDATA[hub]]></category>
		<category><![CDATA[inspiron 910]]></category>
		<category><![CDATA[led]]></category>
		<category><![CDATA[mini 9]]></category>
		<category><![CDATA[modding]]></category>
		<category><![CDATA[netbook]]></category>
		<category><![CDATA[osx86]]></category>
		<category><![CDATA[sodimm]]></category>
		<category><![CDATA[ssd]]></category>
		<category><![CDATA[stec]]></category>
		<category><![CDATA[usb]]></category>
		<category><![CDATA[wlan]]></category>
		<category><![CDATA[wwan]]></category>

		<guid isPermaLink="false">http://awooga.nl/?p=173</guid>
		<description><![CDATA[For Christmas this year I received a Dell Mini 9, which is one of the most flexible netbooks around. Searching around on the internet quickly revealed an incredible source of information posted on the forums over at My Dell Mini. As I was looking for a new modding project, the Mini 9 seemed perfect. First [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/g/image/34765-9/DSC01397.JPG" alt="Dell Mini 9" class="aligncenter" /></p>
<p>For Christmas this year I received a <a href="http://www.dell.com/content/products/productdetails.aspx/laptop-inspiron-9?c=uk&#038;l=en&#038;s=dhs" target="_blank" class="liexternal">Dell Mini 9</a>, which is one of the most flexible netbooks around.  Searching around on the internet quickly revealed an incredible source of information posted on the <a href="http://mydellmini.com/forum/index.php" target="_blank" class="liexternal">forums</a> over at <a href="http://mydellmini.com/" target="_blank" class="liexternal">My Dell Mini</a>.  As I was looking for a new modding project, the Mini 9 seemed perfect.<br />
<br /><br /><center><script type="text/javascript"><!--
google_ad_client = "pub-3248212177098373";
google_ad_slot = "3039514391";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</center><br /></p>
<blockquote><p><strong>First an important message</strong></p>
<p>The information below has all been taken from the My Dell Mini forums, especially the SSD activity LED mod by <a href="http://mydellmini.com/forum/memberlist.php?mode=viewprofile&#038;u=116" target="_blank" class="liexternal">UnaClocker</a>.  I have merely adapted it to suit my own needs.  As with all things involving voiding your warranty, I will not (and can not) take any responsibility for any problems that you have trying to do the same.  You break it, you pay for it (and if you read on, so do I :))</p></blockquote>
<p>&nbsp;</p>
<p>Right, that&#8217;s out of the way, let&#8217;s get to it!  Here&#8217;s a quick overview of the things that I have done to my Mini.</p>
<p><a href="#mini9-part1" class="liinternal">Part 1: Disassembling the Mini 9</a><br />
<a href="#mini9-part2" class="liinternal">Part 2: Disassembling an USB hub</a><br />
<a href="#mini9-part3" class="liinternal">Part 3: Disassembling an USB flash drive</a><br />
<a href="#mini9-part4" class="liinternal">Part 4: Putting it all together</a><br />
&nbsp;</p>
<p><strong><a name="mini9-part1">Part 1</a>: Disassembling the Mini 9</strong></p>
<p>Dell publishes a great <a href="http://support.dell.com/support/edocs/systems/ins910/en/sm/index.htm" target="_blank" class="liexternal">online manual</a> which details how to disassemble your precious Mini 9.  I used their guide and documented it all on one page.  All pictures can be enlarged by clicking on them for additional detail.</p>
<p>I used a selection of tools, but one that I would specifically like to recommend is the plastic wedge.  This allows you to pry open the case without damaging it.  I got mine when I bought a <a href="http://www.brodit.com/?lang=E" target="_blank" class="liexternal">Brodit</a> phone mount, but I&#8217;m sure <a href="http://www.ebay.co.uk" target="_blank" class="liexternal">Ebay</a> will have a selection of these too.</p>
<p><a href="/gallery/modding/mini9/DSC01399.JPG.html" class="liimagelink"><img src="/g/image/34773-3/DSC01399.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01400.JPG.html" class="liimagelink"><img src="/g/image/34777-3/DSC01400.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01449.JPG.html" class="liimagelink"><img src="/g/image/34996-3/DSC01449.JPG" alt="" /></a></p>
<p>Switch the Mini off if you haven&#8217;t already, and turn it over.  I placed an old tea towel underneath it to prevent scratches to the mirror finish lid.  First we need to remove the battery.  On either side of the battery is a latch, which when pushed outwards, allows for the battery to be slide out.</p>
<p><a href="/gallery/modding/mini9/DSC01398.JPG.html" class="liimagelink"><img src="/g/image/34769-3/DSC01398.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01401.JPG.html" class="liimagelink"><img src="/g/image/34781-3/DSC01401.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01402.JPG.html" class="liimagelink"><img src="/g/image/34785-3/DSC01402.JPG" alt="" /></a></p>
<p>The module cover is next.  Two <a href="http://en.wikipedia.org/wiki/Henry_F._Phillips" target="_blank" class="liexternal">Phillips</a> screws hold it in place and then using your nails, or the wedge tool, lift it up.  It may require some force as it is held further into place by small plastic tabs.</p>
<p><a href="/gallery/modding/mini9/DSC01403.JPG.html" class="liimagelink"><img src="/g/image/34789-3/DSC01403.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01404.JPG.html" class="liimagelink"><img src="/g/image/34793-3/DSC01404.JPG" alt="" /></a></p>
<p>With the module cover removed, you have access to the memory, SSD, WLAN card, and if you are lucky/ticked the WWAN option, a WWAN card.  As you can see, I have already upgraded my memory to a 2GB <a href="http://en.wikipedia.org/wiki/Sodimm" target="_blank" class="liexternal">SODIMM</a>.  To remove the memory, gently push away the latches on either side of the memory, until the module is tilted up.  Then just pull it out.</p>
<p><a href="/gallery/modding/mini9/DSC01406.JPG.html" class="liimagelink"><img src="/g/image/34801-3/DSC01406.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01409.JPG.html" class="liimagelink"><img src="/g/image/34813-3/DSC01409.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01410.JPG.html" class="liimagelink"><img src="/g/image/34817-3/DSC01410.JPG" alt="" /></a></p>
<p>The <a href="http://en.wikipedia.org/wiki/Solid-state_drive" target="_blank" class="liexternal">SSD</a> is held down by two screws.  Just unscrew them, and slide the SSD out of its socket.</p>
<p><a href="/gallery/modding/mini9/DSC01405.JPG.html" class="liimagelink"><img src="/g/image/34797-3/DSC01405.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01411.JPG.html" class="liimagelink"><img src="/g/image/34835-3/DSC01411.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01413.JPG.html" class="liimagelink"><img src="/g/image/34843-3/DSC01413.JPG" alt="" /></a></p>
<p>Remove the two antenna wires from the <a href="http://en.wikipedia.org/wiki/Wireless_LAN" target="_blank" class="liexternal">WLAN</a> card by gently (really gently) pulling them out from the sockets and undo the two screws.  Just pull the card out and place it to one side.</p>
<p><a href="/gallery/modding/mini9/DSC01407.JPG.html" class="liimagelink"><img src="/g/image/34805-3/DSC01407.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01412.JPG.html" class="liimagelink"><img src="/g/image/34839-3/DSC01412.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01414.JPG.html" class="liimagelink"><img src="/g/image/34847-3/DSC01414.JPG" alt="" /></a></p>
<p>My Mini doesn&#8217;t come with a <a href="http://en.wikipedia.org/wiki/WWAN" target="_blank" class="liexternal">WWAN</a> card, so that leaves a nice empty space where we will stuff the USB hub and flash drive.  More on that in the last <a href="#part4" class="liinternal">part</a>.</p>
<p><a href="/gallery/modding/mini9/DSC01408.JPG.html" class="liimagelink"><img src="/g/image/34809-6/DSC01408.JPG" alt="" /></a></p>
<p>To make life as easy as possible, we need to have access to both sides of the mainboard, so the next item that need to be removed is the keyboard.  Locate the two screws marked with a <strong>K</strong> and undo them.  Turn the Mini over again (right side up), open the lid, and lift it up slightly to reveal the keyboard connector at the bottom of the keyboard.  Using a small flat screwdriver, push the two locks open and remove the keyboard completely.</p>
<p><a href="/gallery/modding/mini9/DSC01415.JPG.html" class="liimagelink"><img src="/g/image/34851-3/DSC01415.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01416.JPG.html" class="liimagelink"><img src="/g/image/34855-3/DSC01416.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01417.JPG.html" class="liimagelink"><img src="/g/image/34859-3/DSC01417.JPG" alt="" /></a></p>
<p>With the keyboard removed, the palmrest is next.  Place the Mini again on it&#8217;s lid and remove the nine screws as indicated in the pictures.  Two of them are below some rubber studs, which can be lifted out using a flat screwdriver.  They have a sticky bit underneath, so they require a bit of an push to get over the initial resistance.</p>
<p><a href="/gallery/modding/mini9/DSC01419.JPG.html" class="liimagelink"><img src="/g/image/34863-3/DSC01419.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01420.JPG.html" class="liimagelink"><img src="/g/image/34867-3/DSC01420.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01421.JPG.html" class="liimagelink"><img src="/g/image/34880-3/DSC01421.JPG" alt="" /></a></p>
<p>Flip the Mini over and open the lid again.  Remove the seven screws.  Disconnect the bluetooth, touchpad and power button connectors and then, using the plastic wedge, pry the case open using some gentle force along the sides.  Be patient at this point as the plastic latches inside the case, are fragile and will snap if you exercise too much force.</p>
<p><a href="/gallery/modding/mini9/DSC01422.JPG.html" class="liimagelink"><img src="/g/image/34884-3/DSC01422.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01423.JPG.html" class="liimagelink"><img src="/g/image/34888-3/DSC01423.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01424.JPG.html" class="liimagelink"><img src="/g/image/34892-3/DSC01424.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01425.JPG.html" class="liimagelink"><img src="/g/image/34896-3/DSC01425.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01426.JPG.html" class="liimagelink"><img src="/g/image/34900-3/DSC01426.JPG" alt="" /></a></p>
<p>Now we just need to remove the mainboard.  There are two screws to undo, followed by a number of connectors.  First route the WLAN antenna wires through the hole in the mainboard and disconnect the speaker connector just below it.  Then disconnect the microphone, the two power connectors and the display connector.</p>
<p><a href="/gallery/modding/mini9/DSC01428.JPG.html" class="liimagelink"><img src="/g/image/34908-3/DSC01428.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01433.JPG.html" class="liimagelink"><img src="/g/image/34938-3/DSC01433.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01434.JPG.html" class="liimagelink"><img src="/g/image/34942-3/DSC01434.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01435.JPG.html" class="liimagelink"><img src="/g/image/34946-3/DSC01435.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01436.JPG.html" class="liimagelink"><img src="/g/image/34950-3/DSC01436.JPG" alt="" /></a></p>
<p>Lift the mainboard up at the left side and then pull it out sideways.</p>
<p><a href="/gallery/modding/mini9/DSC01437.JPG.html" class="liimagelink"><img src="/g/image/34954-3/DSC01437.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01438.JPG.html" class="liimagelink"><img src="/g/image/34958-3/DSC01438.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01439.JPG.html" class="liimagelink"><img src="/g/image/34962-3/DSC01439.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01440.JPG.html" class="liimagelink"><img src="/g/image/34966-3/DSC01440.JPG" alt="" /></a></p>
<p>That&#8217;s it!  You&#8217;ve successfully made your first step on to the <em>void your warranty</em> ladder :D<br />
&nbsp;</p>
<p><strong><a name="mini9-part2">Part 2</a>: Disassembling an USB hub</strong></p>
<p>Following a recommendation on the My Dell Mini forums for a small USB hub, I found the so called &#8220;Octopus&#8221; hub to be small enough to fit inside the WWAN space, leaving enough space for additional USB devices.  I bought one on <a href="http://cgi.ebay.co.uk/ws/eBayISAPI.dll?ViewItem&#038;item=180312516764" target="_blank" class="liexternal">Ebay</a> from a seller called <a href="http://myworld.ebay.co.uk/2008_topseller/" target="_blank" class="liexternal">2008_topseller</a> for £3.60 and had to wait about 2 weeks before it arrived.  Plan your mods in advance ;)</p>
<p><a href="/gallery/modding/mini9/DSC01462.JPG.html" class="liimagelink"><img src="/g/image/35004-3/DSC01462.JPG" alt="" /></a></p>
<p>Remove the plastic cover and it reveals the tiny <a href="http://en.wikipedia.org/wiki/Printed_circuit_board" target="_blank" class="liexternal">PCB</a> that will fit neatly in the WWAN slot later.  Using a soldering iron remove all the existing wiring and (although not shown in these pictures), move the ceramic resonator from the bottom to the top (take note in which direction it needs to be on).  Also make a note what wiring is which pin on the PCB.  Fortunately the wiring follows the <a href="http://pinouts.ru/Slots/USB_pinout.shtml" target="_blank" class="liexternal">USB standard</a>, which is Red/White/Green/Black.</p>
<p><a href="/gallery/modding/mini9/DSC01464.JPG.html" class="liimagelink"><img src="/g/image/35008-3/DSC01464.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01465.JPG.html" class="liimagelink"><img src="/g/image/35012-3/DSC01465.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01466.JPG.html" class="liimagelink"><img src="/g/image/35016-3/DSC01466.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01467.JPG.html" class="liimagelink"><img src="/g/image/35020-3/DSC01467.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01468.JPG.html" class="liimagelink"><img src="/g/image/35024-3/DSC01468.JPG" alt="" /></a></p>
<p>Once done, put some electrical tape underneath the PCB to make sure that at no point that side is able to short on the mainboard.  I also put a piece of <a href="http://www.maplin.co.uk/Module.aspx?ModuleNo=33766&#038;U=33766&#038;T=Module" target="_blank" class="liexternal">double sided foam tape</a> on it so it will remain in place once put inside the Mini.<br />
&nbsp;</p>
<p><strong><a name="mini9-part3">Part 3</a>: Disassembling an USB flashdrive</strong></p>
<p>I bought a 16GB PNY Attache Premium USB Flash drive from <a href="http://www.play.com/PC/PCs/4-/6167052/PNY-Attache-Premium-16GB-USB-2-0-Flash-Drive/Product.html" target="_blank" class="liexternal">Play.com</a>, as it looked in the pictures small enough once all the plastics were removed and at £16.99 it was cheap enough.</p>
<p><a href="/gallery/modding/mini9/DSC01469.JPG.html" class="liimagelink"><img src="/g/image/35028-3/DSC01469.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01461.JPG.html" class="liimagelink"><img src="/g/image/35000-3/DSC01461.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01470.JPG.html" class="liimagelink"><img src="/g/image/35032-3/DSC01470.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01471.JPG.html" class="liimagelink"><img src="/g/image/35050-3/DSC01471.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01472.JPG.html" class="liimagelink"><img src="/g/image/35054-3/DSC01472.JPG" alt="" /></a></p>
<p>But then things started to go wrong for me.  Applying a bit too much force on the USB connector whilst trying to heat up the connector legs up, caused the copper pads to be removed completely from the PCB.  Doh!</p>
<p><a href="/gallery/modding/mini9/DSC01475.JPG.html" class="liimagelink"><img src="/g/image/35058-3/DSC01475.JPG" alt="" /></a></p>
<p>If anyone has an idea what I can do with it now (other than to bin it), use the <a href="/contact" class="liinternal">contact form</a> :)<br />
&nbsp;</p>
<p><strong><a name="mini9-part4">Part 4</a>: Putting it all together</strong></p>
<p>Fire up the soldering iron, the time to kiss that warranty goodbye has come!</p>
<p>In order to add the SSD activity light, we need to tap into pin 52 on the standard STEC SSD.  This is where having a <a href="http://www.stec-inc.com/downloads/flash_datasheets/SLMPCIxGM4U_M_61000_05494.pdf" class="lipdf">spec sheet from the manufacturer</a> comes in handy.  Please note that this mod only works on the STEC SSD&#8217;s (as supplied standard by Dell), not any other brand.  Pin 52 is marked as &#8220;-DSAP&#8221; with description &#8220;In the True IDE Mode, this input/output is the Disk Active/Slave Present signal in the Master/Slave handshake protocol&#8221;.  To you and me that translates as disk activity :)</p>
<p>The SSD LED will then be located next to the battery surface mounted LED as shown in the picture.</p>
<p><a href="/gallery/modding/mini9/DSC01441.JPG.html" class="liimagelink"><img src="/g/image/34980-3/DSC01441.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01444.JPG.html" class="liimagelink"><img src="/g/image/34992-3/DSC01444.JPG" alt="" /></a></p>
<p>The LED will also require a +3.3V source, which you can find on pad 52 of the WWAN connector.</p>
<p>In order to add the USB hub, we need to use the WWAN connector which carries the required Data+ (pad 38) and Data- (pad 36) signals.  For completeness I also added +5V (found in the copper track that runs through the &#8220;L&#8221;) and ground (using a screw hole) from underneath the WLAN card.</p>
<p><a href="/gallery/modding/mini9/DSC01443.JPG.html" class="liimagelink"><img src="/g/image/34988-3/DSC01443.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01442.JPG.html" class="liimagelink"><img src="/g/image/34984-3/DSC01442.JPG" alt="" /></a></p>
<p>Now comes the scary bit.  Scrape, using a tip of a knife, a small area of the PCB coating (that Blue/Green layer you see) to reveal the copper track underneath.  Then using a small dab of solder, attach the Red and Black wires.  Protect the wires from stress by sticking some electrical insulated tape on top of it.  Using an even smaller amount of solder, attach the White and Green wires to the WWAN pads, making sure the pads do not touch each other.  If you can&#8217;t manage first time around, heat the pads up and remove the wiring again.  Then retry it.</p>
<p><a href="/gallery/modding/mini9/DSC01478.JPG.html" class="liimagelink"><img src="/g/image/35062-3/DSC01478.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01479.JPG.html" class="liimagelink"><img src="/g/image/35066-3/DSC01479.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01480.JPG.html" class="liimagelink"><img src="/g/image/35070-3/DSC01480.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01484.JPG.html" class="liimagelink"><img src="/g/image/35074-3/DSC01484.JPG" alt="" /></a></p>
<p>Just two more wires to go.  As pin 52 on the SSD connector is miniscule, it is better to solder the Black wire onto the SSD directly.  Make sure the wire is as flat and small as possible, and then use the tiniest amount of solder to attach it.  Double check that you haven&#8217;t connected two pins together.  The Red wire needs to be attached to the WWAN connector again on pad 52.  By now, this should be easy ;)</p>
<p><a href="/gallery/modding/mini9/DSC01488.JPG.html" class="liimagelink"><img src="/g/image/35078-3/DSC01488.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01489.JPG.html" class="liimagelink"><img src="/g/image/35082-3/DSC01489.JPG" alt="" /></a></p>
<p>Before we continue putting the hub and LED in place, fire up the mini (assembling just enough to get it to boot) to make sure it is still working.  If it doesn&#8217;t, revisit your soldering and double check they are done properly.</p>
<p>Put the USB hub in it&#8217;s place and cut the USB wires to measure.  Maintain a small amount of extra length, in case you need to move it around later.  Solder the wires back to the USB hub in the correct order, and test the Mini again.  It works!</p>
<p><a href="/gallery/modding/mini9/DSC01492.JPG.html" class="liimagelink"><img src="/g/image/35099-3/DSC01492.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01496.JPG.html" class="liimagelink"><img src="/g/image/35103-3/DSC01496.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01491.JPG.html" class="liimagelink"><img src="/g/image/35095-3/DSC01491.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01497.JPG.html" class="liimagelink"><img src="/g/image/35107-3/DSC01497.JPG" alt="" /></a></p>
<p>Almost there now.  Route the remaining Red and Black wires towards the battery LED and cut them to length.  Solder a new LED and a resistor to the wires and test it is working.  If it isn&#8217;t, then swap the legs of the LED around and try again as LEDs only work one way.  You have to use a resistor suitable for the LED too.  I used a <a href="http://cgi.ebay.co.uk/ws/eBayISAPI.dll?ViewItem&#038;item=120344291604" target="_blank" class="liexternal">3000mcd &#8220;Tru-Colour&#8221; Blue LED</a> with a forward voltage of 3-3.2V and a 100 ohm resistor.  It doesn&#8217;t matter on which side of the LED the resistor goes, as long as it is there.</p>
<p><a href="/gallery/modding/mini9/DSC01498.JPG.html" class="liimagelink"><img src="/g/image/35111-3/DSC01498.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01500.JPG.html" class="liimagelink"><img src="/g/image/35115-3/DSC01500.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01502.JPG.html" class="liimagelink"><img src="/g/image/35119-3/DSC01502.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01503.JPG.html" class="liimagelink"><img src="/g/image/35123-3/DSC01503.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01504.JPG.html" class="liimagelink"><img src="/g/image/35127-3/DSC01504.JPG" alt="" /></a></p>
<p>Unfortunately, when it came to assembling everything, I discovered that the way I have mounted the LED did not allow the case to be closed properly.  I mounted it therefore slightly different, but I forgot to take pictures of it.  I&#8217;m sure I will open up the case in the future and then I&#8217;ll update this page with the new pictures.  In the pictures below it shows the LED in action when the SSD is being accessed, when the battery runs low, and when they both light up.  Neat! </p>
<p><a href="/gallery/modding/mini9/DSC01505.JPG.html" class="liimagelink"><img src="/g/image/35131-3/DSC01505.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01513.JPG.html" class="liimagelink"><img src="/g/image/35149-3/DSC01513.JPG" alt="" /></a> <a href="/gallery/modding/mini9/DSC01523.JPG.html" class="liimagelink"><img src="/g/image/35153-3/DSC01523.JPG" alt="" /></a><br />
<br /><br /><center><script type="text/javascript"><!--
google_ad_client = "pub-3248212177098373";
google_ad_slot = "3039514391";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</center><br /><br />
Finally, take a last look at the mods, before we close the module cover and call it a day ;)</p>
<p><img src="/g/image/35136-8/DSC01506.JPG" alt="" class="aligncenter" /></p>
<blockquote><p><strong>Update 7.2.2009</strong></p>
<p>I&#8217;ve upgraded to a 32GB RunCore SSD, so I have done the LED mod again.  Have a look at <a href="http://awooga.nl/modding-the-dell-mini-9-part-2" class="liinternal">this post</a> for details</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://awooga.nl/modding-the-dell-mini-9/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Dell Ighted!</title>
		<link>http://awooga.nl/dell-ighted</link>
		<comments>http://awooga.nl/dell-ighted#comments</comments>
		<pubDate>Fri, 27 Jul 2007 07:26:02 +0000</pubDate>
		<dc:creator>Q</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[c521]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[refund]]></category>
		<category><![CDATA[vista]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.awooga.nl/dell-ighted/</guid>
		<description><![CDATA[Just checked my card balance today, and I&#8217;ve just received a credit for £11.75 from Dell UK (in case you&#8217;re wondering why they would issue this, see this post for the reason). Will they add the 2nd refund later, or have they conveniently forgotten it? To be continued&#8230; ;) Update 23.8.2007 Still no sign of [...]]]></description>
			<content:encoded><![CDATA[<p>Just checked my card balance today, and I&#8217;ve just received a credit for £11.75 from <a href="http://www.dell.co.uk/" target="_blank" class="liexternal">Dell UK</a> (in case you&#8217;re wondering why they would issue this, see <a href="/dell-icious/" class="liinternal">this post</a> for the reason).  Will they add the 2nd refund later, or have they conveniently forgotten it?  To be continued&#8230; ;)<br />
<br /><br /><center><script type="text/javascript"><!--
google_ad_client = "pub-3248212177098373";
google_ad_slot = "3039514391";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</center><br /></p>
<blockquote><p><strong>Update 23.8.2007</strong></p>
<p>Still no sign of that promised 2nd refund&#8230;  A polite email is already heading their way :)</p></blockquote>
<blockquote><p><strong>Update 4.9.2007</strong></p>
<p>Finally!  This morning (after chasing this for the past month) the 2nd £11.75 arrived on my credit card.  About time too!</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://awooga.nl/dell-ighted/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dell Icious!</title>
		<link>http://awooga.nl/dell-icious</link>
		<comments>http://awooga.nl/dell-icious#comments</comments>
		<pubDate>Tue, 24 Jul 2007 14:32:28 +0000</pubDate>
		<dc:creator>Q</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[c521]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[eula]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[license]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[refund]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[virtualisation]]></category>
		<category><![CDATA[vista]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.awooga.nl/dell-icious/</guid>
		<description><![CDATA[A few weeks back I bought a nice new Dell Dimension C521 baseunit (AMD X2 3600+, etc, etc) to replace my homebrew server with the intention of running several VM&#8217;s on it using Ubuntu as the operating system of choice. I&#8217;ve been using Ubuntu for quite a while now (deflecting from Gentoo as that proved [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/g/image/24570-7/dell-dimension-c521.jpg" alt="Dell Dimension C521" class="alignleft" />A few weeks back I bought a nice new <a href="http://www.dell.co.uk" target="_blank" class="liexternal">Dell Dimension C521</a> baseunit (AMD X2 3600+, etc, etc) to replace my homebrew server with the intention of running several <a href="http://en.wikipedia.org/wiki/Virtual_machine" target="_blank" class="liexternal">VM&#8217;s</a> on it using <a href="http://www.ubuntu.com/" target="_blank" class="liexternal">Ubuntu</a> as the operating system of choice.  I&#8217;ve been using Ubuntu for quite a while now (deflecting from <a href="http://www.gentoo.org/" target="_blank" class="liexternal">Gentoo</a> as that proved a little more maintenance heavy than I was looking for) and so I had no intention what-so-ever to use the included <a href="http://www.microsoft.com/windows/products/windowsvista/editions/homebasic/default.mspx" target="_blank" class="liexternal">Microsoft Windows Vista Home Basic</a> installation that came with the PC.  As there have been <a href="http://www.google.co.uk/search?q=dell+refund+license&#038;ie=utf-8&#038;oe=utf-8&#038;aq=t&#038;rls=org.mozilla:en-US:official&#038;client=firefox-a" target="_blank" class="liexternal">several successful reports</a> in the media of people getting a refund for the forced Microsoft inclusion, I though it was worth a punt over here too.<br />
<br /><br /><center><script type="text/javascript"><!--
google_ad_client = "pub-3248212177098373";
google_ad_slot = "3039514391";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</center><br /><br />
I contacted Dell UK using the <a href="http://support.euro.dell.com/support/emailcustomercare/emea/index.aspx?c=uk&#038;l=en&#038;s=gen" target="_blank" class="liexternal">contact form</a> on the website and wrote to them the following:</p>
<blockquote><p>Hi,</p>
<p>I&#8217;ve just taken delivery of my Dimension C521 which came with a copy of the Microsoft Vista Basic operating system.  As I will be using the Ubuntu linux operating system, I have not agreed to the Microsoft EULA and installed Ubuntu linux on the PC.  Could you please forward me an address where I can send the Microsoft Vista Basic operating system CD to for a refund?  Please note, I am not looking to return my PC, just the accompanying Microsoft operating system.</p></blockquote>
<p>I hit the Submit button and the website told me to expect a reply within 24 hours&#8230;</p>
<p>So imagine my surprise that I received a reply within 4 hours from Dell:</p>
<blockquote><p>Thank you for contacting Dell on-line customer care.</p>
<p>Please be informed that you need not return the CD and I will arrange for the refund of £10, which is the cost of the CD.</p>
<p>I will call you on 27th July with an update regarding the same. If you have any further queries do not hesitate in responding directly to this mail and I will be glad to assist you further.</p></blockquote>
<p>Woohoo!  Result!</p>
<p>Of course, by now I had realised that I had forgotten to mention the Microsoft Works 8.5 CD that came with the order, so I replied with:</p>
<blockquote><p>Thank you very much for the quick reply.  Is it also possible to receive a refund for the Microsoft Works 8.5 CD that came with my PC?  Again, I am quite happy to return the CD unopened to you if you forward me an address to send it to.</p></blockquote>
<p>Nothing ventured, nothing gained ;)</p>
<p>Sure enough, within 30 minutes another reply arrived:</p>
<blockquote><p>Further to your email, Iam also arranging for the refund of £10 for the works CD. I will call you on 27th with an update regarding the refund.</p>
<p>Please be informed that you need not return the CD. If you have any further queries do not hesitate in responding directly to this mail and I will be glad to assist you further.</p></blockquote>
<p><br /><br /><center><script type="text/javascript"><!--
google_ad_client = "pub-3248212177098373";
google_ad_slot = "3039514391";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</center><br /><br />
How easy was that?  It is comforting to know that true customer care still exists, although it would have been a whole lot easier if Dell UK just provided a tick box on their website to decline the operating system when ordering.</p>
]]></content:encoded>
			<wfw:commentRss>http://awooga.nl/dell-icious/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

