<?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>Nicholas Skinner's Blog</title>
	<atom:link href="http://www.ns-tech.co.uk/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ns-tech.co.uk/blog</link>
	<description>Freelance website and web application developer</description>
	<lastBuildDate>Sun, 01 Jan 2012 12:05:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Failed attempts to get the Sony Ericsson DCU-11 USB cable working with Windows 7</title>
		<link>http://www.ns-tech.co.uk/blog/2012/01/failed-attempts-to-get-the-sony-ericsson-dcu-11-usb-cable-working-with-windows-7/</link>
		<comments>http://www.ns-tech.co.uk/blog/2012/01/failed-attempts-to-get-the-sony-ericsson-dcu-11-usb-cable-working-with-windows-7/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 12:05:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ns-tech.co.uk/blog/?p=1302</guid>
		<description><![CDATA[I have started to get some reliability issues lately with BlueSoleil (used with my SMS to Email Forwarder application), therefore I decided to take another look at using a cabled solution. Was initially planning on using a cable rather than Bluetooth however the cable does not support charging, and does not have Windows 7 drivers [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/12/dcu_11_pcb.jpg"><img src="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/12/dcu_11_pcb_small.jpg" alt="Sony DCU 11 Cable" width="300" height="228" class="alignright size-full wp-image-1315" /></a>I have started to get some reliability issues lately with <a href="http://www.bluesoleil.com/products/S0001201005190001.html">BlueSoleil</a> (used with my <a href="http://www.ns-tech.co.uk/blog/2011/11/sms-to-email-forwarder-via-bluetoothserial/">SMS to Email Forwarder</a> application), therefore I decided to take another look at using a cabled solution.  Was initially planning on using a cable rather than Bluetooth however the cable does not support charging, and does not have Windows 7 drivers available.</p>
<p>After opening up the cable I noticed it used a &#8220;PL-2303HX&#8221; USB to serial chip.  Searching Google appears it is made by <a href="http://www.prolific.com.tw/eng/Download-2.asp?ID=17">Prolific</a>.  Unfortunately however the standard Prolific drivers do not work because the cable has a custom USB PID &#8220;1234&#8243; instead of the standard Prolific PID of &#8220;2303&#8243;.  <a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/12/vid_pid.gif"><img src="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/12/vid_pid_small.gif" alt="Prolific VID / PID" title="Prolific VID / PID" width="200" height="218" class="alignleft size-full wp-image-1317" /></a>Two possible solutions came to mind, either changing the chip back to the default PID such that Windows would recognise it as a standard Prolific serial adapter, or modifying the Windows driver to recognise the non standard Prolific PID.</p>
<p>I first tried reprogramming the chip.  Appears it has been successful for someone using a <a href=" http://www.esato.com/archive/t.php/t-71954,1.html">T230 cable</a> (EEPROM Writer link on that post is nolonger working however there is a copy at <a href="http://www.megaupload.com/?d=HMG9JNB9">Megaupload</a> via <a href="http://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/#comment-151">Jonathan Thomson&#8217;s Web Journal</a>).  I was however unable to get it to recognise the cable and looking on <a href="http://www.edaboard.com/thread186961.html">EDA Board</a> appears a special &#8220;EEPROM programming cable&#8221; may be required.</p>
<p><a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/12/unable_to_start.gif"><img src="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/12/unable_to_start_small.gif" alt="Prolific - Unable to start" title="Prolific - Unable to start" width="200" height="218" class="alignright size-full wp-image-1319" /></a>I next tried <a href="http://www.divesoftware.org/libdc/seiko.html">modifying the Prolific driver</a>, and was then able to install it however started getting a Windows error &#8220;<a href="http://www.prolific.com.tw/eng/FAQs.asp?ID=50">This device cannot start</a>&#8221; (and after rebooting I was unable to login – unplugging the USB adapter and rebooting again fixed the issue). </p>
<p>Next option I may try is either rewiring the adapter with another USB to serial chip that does have Windows 7 drivers or putting the SIM in a GSM modem / another phone that can be easily connected to a PC.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ns-tech.co.uk/blog/2012/01/failed-attempts-to-get-the-sony-ericsson-dcu-11-usb-cable-working-with-windows-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Business PC Build Components</title>
		<link>http://www.ns-tech.co.uk/blog/2011/12/business-pc-build-components/</link>
		<comments>http://www.ns-tech.co.uk/blog/2011/12/business-pc-build-components/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 10:19:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ns-tech.co.uk/blog/?p=1289</guid>
		<description><![CDATA[I was recently asked to put together a reasonable spec&#8217; computer mainly for business use. Parts were all from CCL for convenience as I was not placing the order myself, and they are competitively priced, however I have had a bad experience trying to return a faulty part to them a few years back. I [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.ns-tech.co.uk/blog/wp-content/uploads/2009/11/pccase.jpg" alt="PC Case" title="PC Case" width="200" height="179" class="alignright size-full wp-image-348" />I was recently asked to put together a reasonable spec&#8217; computer mainly for business use.</p>
<p>Parts were all from CCL for convenience as I was not placing the order myself, and they are competitively priced, however I have had a bad experience trying to return a faulty part to them a few years back.</p>
<p>I went with the following components:</p>
<div class="clear"></div>
<table cellspacing="0" class="tblwithborder">
<tr>
<th>Component</th>
<th>Name</th>
<th>Cost (&pound;)</th>
</tr>
<tr>
<td>Case</td>
<td><a href="http://www.evercase.co.uk/GigaECE4252.htm">Evercase Giga ECE4252</a></td>
<td align="right">13.00</td>
</tr>
<tr>
<td>Hard Drive</td>
<td><a href="http://www.cclonline.com/product/53892/ST3750525AS/Hard-Drives/Seagate-Barracuda-SATA-6Gb/s-750GB-Hard-Drive/HDD1139/">750GB Seagate Barracuda</a></td>
<td align="right">96.97</td>
</tr>
<tr>
<td>Motherboard</td>
<td><a href="http://www.cclonline.com/product/63020/BOXDH61CRB3/Motherboards/Intel-Classic-Series-DH61CR-Desktop-Motherboard/MBD0193/">Intel Classic Series DH61CR</a></td>
<td align="right">58.37</td>
</tr>
<tr>
<td>Memory</td>
<td><a href="http://www.cclonline.com/product/43689/CT2KIT25664BA1339/Desktop-Memory/Crucial-4GB-2-x-2GB-PC3-10600-1333MHz-DDR3-240-pin-DIMM-CL9-Unbuffered-Non-ECC-Memory-Module-Kit/RAM2112/">Crucial 4GB PC3-10600 1333MHz Kit</a></td>
<td align="right">18.94</td>
</tr>
<tr>
<td>Processor</td>
<td><a href="http://www.cclonline.com/product/44979/BX80623I52400/CPUs/Intel-Core-i5-2400-3-1GHz-Quad-Core-Processor/CPU1111/">Intel Core i5-2400 3.1GHz Processor</a></td>
<td align="right">153.44</td>
</tr>
<tr>
<td>CD/DVD</td>
<td><a href="http://www.cclonline.com/product/63824/AD-7280S-0B/DVD-Drives/Sony-24x-Int-DVD-RAM-SATA-Black-Bare/CDR1127/">Sony 24x SATA DVD-RAM</a></td>
<td align="right">14.16</td>
</tr>
<tr>
<td>PSU</td>
<td><a href="http://www.cclonline.com/product/35698/PSUCIT450UB/Power-Supplies/CIT-450W-Black-PSU/PSU0171/">CIT 450W Black PSU</a></td>
<td align="right">18.64</td>
</tr>
<tr>
<td>Monitor</td>
<td><a href="http://www.cclonline.com/product/58799/9H-L5FLA-SBE/Monitors/BenQ-BL902TM-LED-backlight-Monitor-19-inch/MON0380/">BenQ BL902TM</a></td>
<td align="right">132.64</td>
</tr>
<tr>
<td>Software</td>
<td><a href="http://www.cclonline.com/product/55274/FQC-04649/Operating-Systems/Microsoft-Windows-7-Professional-64-bit-SP1-/SFT0068/">Windows 7 Professional 64-bit</a></td>
<td align="right">105.06</td>
</tr>
<tr>
<td>Software</td>
<td><a href="http://www.cclonline.com/product/40525/T5D-00295/Office-Software/Microsoft-Office-2010-Home-amp-Business-PKC-OEM-/SFT2157/">Microsoft Office 2010</a></td>
<td align="right">158.89</td>
</tr>
<tr>
<td>Rear Fan</td>
<td></td>
<td align="right"></td>
</tr>
<tr>
<td>Front Fan</td>
<td></td>
<td align="right"></td>
</tr>
<tr>
<td></td>
<td><strong>Total</strong></td>
<td align="right"><strong>770.11</strong></td>
</tr>
</table>
<p>Note: Cost excludes postage, I used some spare front and rear fans I already had.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ns-tech.co.uk/blog/2011/12/business-pc-build-components/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SMS to Email Forwarder (via Bluetooth/Serial)</title>
		<link>http://www.ns-tech.co.uk/blog/2011/11/sms-to-email-forwarder-via-bluetoothserial/</link>
		<comments>http://www.ns-tech.co.uk/blog/2011/11/sms-to-email-forwarder-via-bluetoothserial/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 11:24:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ns-tech.co.uk/blog/?p=1261</guid>
		<description><![CDATA[I currently have two mobile phones &#8211; one mainly for business, and the other personal calls. I do not however really want to carry two phones all the time and therefore started looking for solutions. In terms of calls it is possible to just call forward after a set number of rings (i.e. if I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/11/sms_forwarder.gif"><img src="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/11/sms_forwarder_small.gif" alt="SMS Forwarder Screenshot (Small)" title="SMS Forwarder Screenshot (Small)" width="300" height="228" class="alignright size-full wp-image-1263" /></a>I currently have two mobile phones &#8211; one mainly for business, and the other personal calls.  I do not however really want to carry two phones all the time and therefore started looking for solutions.  In terms of calls it is possible to just call forward after a set number of rings (i.e. if I have the phone I can answer it and not pay the forwarding charge, otherwise I can still get the call although I will be paying the forwarding charge).  The complication however comes with text messages, there does not really seem to be any straight forward / standard way to forward them.</p>
<p>I looked into various options such as services from <a href="http://aaisp.net.uk/telecoms-mobile.html">AAISP</a> who can deliver text messages to email, or a web form, which initially seemed perfect (they also have some good options for voice calls as well such as supporting multiple numbers on a single SIM both inbound and outbound, and VoIP termination) however then discovered that it is not possible to port a number to their service.  I also found another similar company <a href="http://www.aql.com/telecoms/developers/sms-relay/">AQL</a> who do support porting, but not for mobile numbers.</p>
<p>The option I came up with in the end to handle forwarding text messages was to write a C# application that can run on the PC desktop (in the task tray), connect to the phone over Bluetooth serial link (should also work with a regular serial / USB serial cable), poll it for unread text messages every few seconds, forward any found to a specified email address (which I can receive on my other phone), and delete them from the phone.  Bluetooth is an ideal solution since it means the forwarding just works automatically whenever the phone is left at home by the computer.</p>
<p>Download: <a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/11/sms_email_forwarder_source.zip">Source Code</a> | <a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/11/sms_email_forwarder.zip">Application</a></p>
<p>Notes:</p>
<ul>
<li>I was initially planning on using a Sony Ericsson DCU-11 sync cable however discovered it does not have any Windows 7 drivers available, and does not support charging.</li>
<li>I found that Windows 7 by default did not seem to support connecting to my Sony Ericsson T610 over Bluetooth, therefore download the <a href="http://www.bluesoleil.com/products/S0001201005190001.html">BlueSoleil Bluetooth stack</a> which did.</li>
<li>Application uses <a href="http://www.scampers.org/steve/sms/libraries.htm">Stefan Mayr&#8217;s</a> GSM library.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ns-tech.co.uk/blog/2011/11/sms-to-email-forwarder-via-bluetoothserial/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Debugging (Hard To Replicate Issues) With Embed Software Devices</title>
		<link>http://www.ns-tech.co.uk/blog/2011/10/debugging-hard-to-replicate-issues-with-embed-software-devices/</link>
		<comments>http://www.ns-tech.co.uk/blog/2011/10/debugging-hard-to-replicate-issues-with-embed-software-devices/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 18:03:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Electronics Projects]]></category>

		<guid isPermaLink="false">http://www.ns-tech.co.uk/blog/?p=1229</guid>
		<description><![CDATA[I write software for various hardware devices. Finding bugs, and resolving them is usually relatively easy if the issue can be replicated in a test environment with development hardware and full logging equipment setup. The problem however is when: It is equipment using GSM, making use of various different phone networks, and cell towers that [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/10/openlog.jpg"><img src="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/10/openlog_small.jpg" alt="OpenLog" width="300" height="300" class="alignright size-full wp-image-1242" /></a>I write software for various hardware devices.  Finding bugs, and resolving them is usually relatively easy if the issue can be replicated in a test environment with development hardware and full logging equipment setup.  The problem however is when:</p>
<ol>
<li>It is equipment using GSM, making use of various different phone networks, and cell towers that can not be easily replicated.</li>
<li>The issue only occurs on location in the field (i.e. live customers using the device).</li>
<li>It is an intermittent issue that can not be replicated on cue, ruling out simply going to the location for an hour setting up the relevant equipment and logging the issue.</li>
<li>Devices are in locations where it not particularly convenient / safe to setup and leave expensive testing equipment / laptops etc.</li>
<li>Testing equipment needs to run a Windows only application from a hardware manufacturer that needs “babysitting&#8221; (restarting if it stops logging).</li>
</ol>
<p>I recently faced this issue. I tried a few options including blindly guessing at what the issue could be and implementing fixes for various possible issues, next tried working with the network operator (which got nowhere).  Final solution I came up with was to build some custom / cheap (in comparison to the alternative) logging hardware to take the place of the hardware development board, Windows running laptop, hardware manufacturers software tool.</p>
<p>My first thoughts were that this could be done by using an <a href="http://www.arduino.cc/">Arduino</a> with an SD Card <a href="http://www.adafruit.com/products/243">data logging “shield&#8221;</a> however after some further research I discovered the <a href="http://www.sparkfun.com/products/9530">Spark Fun OpenLog</a>.  The OpenLog was a perfect fit since it:</p>
<ol>
<li>Can be powered from 3.3V &#8211; 12V (could just piggy back it on the existing devices power supply).</li>
<li>Serial levels compatible with 2.8V CMOS levels of device.</li>
<li>Already setup to automatically log serial data to files on an SD Card.</li>
<li>Open source firmware that is freely available, meaning I could customise it to emulate the manufacturers software tool (eliminating the need for the extra hardware, and meaning I could deal with the reliability issues).</li>
<li><a href="https://github.com/nseidle/OpenLog/wiki/Datasheet">Development environment</a> (see section “Compile Version 2&#8243;) that is simple / relatively straight forward to obtain / setup / use (<a href="http://arduino.cc/en/Main/Software">Ardino IDE</a> &#8211; even though it is not “Arduino&#8221; branded hardware as such).</li>
<li>Supports upto 16GB microSD cards (device outputs large logs).</li>
</ol>
<p>There were a few steps involved in the process including, connecting the OpenLog to the device, building a programming cable for the OpenLog, and customising the OpenLog software to emulate the initialisation string of the Windows software tool.</p>
<p>I have never coded AVR C before however found it relatively straight forward to make the modifications I required to emulate the initialisation string of the Windows tool (primarily logging the string with Eltima Software’s <a href="http://www.eltima.com/products/serial-port-monitor/">Serial Port Monitor</a> application, saving the data to a file on the SD Card and instructing OpenLog to read it back over the serial port, then drop back into logging mode.</p>
<p>A few issues I encountered along the way were:</p>
<ol>
<li>OpenLog stops reading files if it <a href="https://github.com/nseidle/OpenLog/issues/76">encounters a NULL byte</a>, however this should be fixed in the latest release.</li>
<li>Error trying to upload new software from the Arduino IDE to OpenLog due to the DTR pin needing to be connected to OpenLog to reset it just before programming.  I substituted DTR for RTS (which my FTDI cable did have broken out).</li>
<li>Device I was logging data to was outputting [CTRL]+[Z] 3 times – the OpenLog escape sequence – I therefore modified the escape sequence to be 9 times rather than just 3.</li>
</ol>
<h3>Parst List</h3>
<h4>One Off</h4>
<table cellspacing="0" class="tblwithborder">
<tr>
<td>TTL-232R-3V3 USB to serial FTDI cable</td>
<td><a href="http://proto-pic.co.uk/usb-to-serial-ttl-cable-ftdi-5v-vcc-3-3v-i-o/">PPDEV-09717</a></td>
</tr>
<tr>
<td>Kingston USB Card Reader (19 in 1)</td>
<td><a href="http://www.ebuyer.com/139230-kingston-usb-card-reader-19-in-1-fcr-hs219-1">139230</a></td>
</tr>
</table>
<h4>Per Logger</h4>
<table cellspacing="0" class="tblwithborder">
<tr>
<td>1GB microSD Card (or alternate 8GB)</td>
<td><a href="http://proto-pic.co.uk/flash-memory-microsd-1gb/">PPCOM-08163</a></td>
</tr>
<tr>
<td>Kingston 8gb Class 4 MicroSDHC Card</td>
<td><a href="http://www.ebuyer.com/147731-kingston-8gb-class-4-microsdhc-card-with-adapter-sdc4-8gb">147731</a></td>
</tr>
<tr>
<td>OpenLog</td>
<td><a href="http://proto-pic.co.uk/openlog/">PPDEV-09530</a></td>
</tr>
<tr>
<td>Crimp Pins</td>
<td><a href="http://proto-pic.co.uk/polarized-connectors-crimp-pins/">PPPRT-08100</a></td>
</tr>
<tr>
<td>4 pin header</td>
<td><a href="http://proto-pic.co.uk/polarized-connectors-header-4-pin/">PPPRT-08231</a></td>
</tr>
<tr>
<td>2 pin header</td>
<td><a href="http://proto-pic.co.uk/polarized-connectors-header-2-pin/">PPPRT-08233</a></td>
</tr>
<tr>
<td>4 pin housing</td>
<td><a href="http://proto-pic.co.uk/polarized-connectors-housing-4-pin/">PPPRT-08097</a></td>
</tr>
</table>
<h3>Build Instructions</h3>
<h4>Solder Headers</h4>
<ul>
<li>Solder a x4 way header connector onto the logger GND, VCC, TXO, RXI (i.e. miss out the first pin labelled BLK, it is not required).</li>
<li>Solder a x1 way header connector onto the logger for the GRN pin (I used a 2 way with the other pin overlapping off the end of the board as I could not easily obtain a 1 pin)</li>
<li>Solder a x4 way housing connector onto the wires from the device (match up GND/VCC/TXO/RXI to appropriate pins on the device).</li>
</ul>
<p>Note: A 5 or 6 way header soldered to all logger pins could just be used but I thought this approach best to avoid any mistakes (broken loggers) &#8211; that way there is a x4 way header to use when plugging into the printer and you are not left wondering which 4 pins should be connected.</p>
<h4>FTDI Programming Cable</h4>
<p>Modify the FTDI cable such that it has the following pinout (compatible with logger).  Use a flat screw driver to release the pins from the existing socket.</p>
<table cellspacing="0" class="tblwithborder">
<tr>
<td>GND</td>
<td>Black</td>
</tr>
<tr>
<td>VCC</td>
<td>Red</td>
</tr>
<tr>
<td>RXD</td>
<td>Yellow</td>
</tr>
<tr>
<td>TXD</td>
<td>Orange</td>
</tr>
<tr>
<td>RTS</td>
<td>Green</td>
</tr>
<tr>
<td>CTS</td>
<td>Brown &#8211; N/C</td>
</tr>
</table>
<h3>Notes</h3>
<ul>
<li>Arduino needs to be <a href="https://github.com/nseidle/OpenLog/wiki/Datasheet">modified</a> with a special version of HardwareSerial.cpp to work with OpenLog.</li>
<li>If your SD Card did not come pre formatted you may need to use the FAT32 microSD optimised <a href="https://www.sdcard.org/consumers/formatter_3/">formatting tool</a> from SD Association.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ns-tech.co.uk/blog/2011/10/debugging-hard-to-replicate-issues-with-embed-software-devices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>London Sky Ride 2011</title>
		<link>http://www.ns-tech.co.uk/blog/2011/09/london-sky-ride-2011/</link>
		<comments>http://www.ns-tech.co.uk/blog/2011/09/london-sky-ride-2011/#comments</comments>
		<pubDate>Sun, 25 Sep 2011 10:56:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ns-tech.co.uk/blog/?p=1204</guid>
		<description><![CDATA[On the 4th September I went on the London Sky Ride (organised cycling event where they shut down a few roads in central London to cars for the day). I went early morning and avoided the rain, was not too busy early on but became more crowded later on. GPS Route Log: View Larger Map]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/09/skyride_route.jpg"><img src="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/09/skyride_route-300x211.jpg" alt="Sky Ride Route" title="Sky Ride Route" width="300" height="211" class="alignright size-medium wp-image-1205" /></a>On the 4th September I went on the London Sky Ride (organised cycling event where they shut down a few roads in central London to cars for the day).</p>
<p>I went early morning and avoided the rain, was not too busy early on but became more crowded later on.</p>
<p><a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/09/skyride_not_busy.jpg"><img src="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/09/skyride_not_busy-224x300.jpg" alt="Sky Ride Not Busy" title="Sky Ride Not Busy" width="224" height="300" class="alignnone size-medium wp-image-1207" /></a> <a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/09/skyride_more_busy.jpg"><img src="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/09/skyride_more_busy-224x300.jpg" alt="Sky Ride Tunnel" title="Sky Ride Tunnel" width="224" height="300" class="alignnone size-medium wp-image-1206" /></a></p>
<p><strong>GPS Route Log:</strong></p>
<p><iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.co.uk/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=http:%2F%2Fwww.ns-tech.co.uk%2Fblog%2Fwp-content%2Fuploads%2F2011%2F09%2Fsky_ride.gpx&amp;aq=&amp;sll=51.505905,-0.108&amp;sspn=0.040388,0.077162&amp;vpsrc=6&amp;ie=UTF8&amp;t=m&amp;ll=51.506285,-0.10746&amp;spn=0.037396,0.072956&amp;z=13&amp;output=embed"></iframe><br /><small><a href="http://maps.google.co.uk/maps?f=q&amp;source=embed&amp;hl=en&amp;geocode=&amp;q=http:%2F%2Fwww.ns-tech.co.uk%2Fblog%2Fwp-content%2Fuploads%2F2011%2F09%2Fsky_ride.gpx&amp;aq=&amp;sll=51.505905,-0.108&amp;sspn=0.040388,0.077162&amp;vpsrc=6&amp;ie=UTF8&amp;t=m&amp;ll=51.506285,-0.10746&amp;spn=0.037396,0.072956&amp;z=13" style="color:#0000FF;text-align:left">View Larger Map</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ns-tech.co.uk/blog/2011/09/london-sky-ride-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EEWeb (Electrical Engineering Community) Site Of The Day</title>
		<link>http://www.ns-tech.co.uk/blog/2011/09/eeweb-electrical-engineering-community-site-of-the-day/</link>
		<comments>http://www.ns-tech.co.uk/blog/2011/09/eeweb-electrical-engineering-community-site-of-the-day/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 09:27:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ns-tech.co.uk/blog/?p=1192</guid>
		<description><![CDATA[Nicholas Skinner&#8217;s Blog was recently featured as the EEWeb site of the day.]]></description>
			<content:encoded><![CDATA[<p>Nicholas Skinner&#8217;s Blog was recently featured as the <a href="http://www.eeweb.com/websites/nicholas-skinner-blog-home-automation">EEWeb site of the day</a>.</p>
<p><a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/09/eeweb_screenshot.jpg"><img src="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/09/eeweb_screenshot_small.jpg" alt="EEWeb Screenshot" width="300" height="213" class="aligncenter size-full wp-image-1194" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ns-tech.co.uk/blog/2011/09/eeweb-electrical-engineering-community-site-of-the-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing PHP 5.3 on CentOS 5.6</title>
		<link>http://www.ns-tech.co.uk/blog/2011/08/installing-php-5-3-on-centos-5-6/</link>
		<comments>http://www.ns-tech.co.uk/blog/2011/08/installing-php-5-3-on-centos-5-6/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 17:52:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ns-tech.co.uk/blog/?p=1178</guid>
		<description><![CDATA[After WordPress recently dropped support for PHP versions]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/08/php53.gif" alt="yum PHP 5.3 Screenshot" width="243" height="243" class="alignright size-full wp-image-1184" />After <a href="http://wordpress.org/news/2010/07/eol-for-php4-and-mysql4/">WordPress recently dropped support</a> for PHP versions <5.2 I decided it was time to look into updating my install of PHP 5.1.6 to something more current.</p>
<p>I was somewhat hoping the update would just appear on yum and happen automatically however looking into it I realise this was unlikely to happen:</p>
<p><strong>Quote:</strong> &#8220;As with each other program in CentOS, the version numbers of released software will not change over the life time of a CentOS product.&#8221; &#8212; <a href="http://wiki.centos.org/FAQ/CentOS5#head-8b85501ca7f023bc0eeb0fef98143e10fb6adefc">http://wiki.centos.org/FAQ/CentOS5</a></p></blockquote>
<p>After Googling for a few options and not coming up with any I was particularly happy with (i.e. mostly using 3rd party repositories) I happened to run &#8220;yum list|grep php&#8221; and noticed a set of &#8220;php53*&#8221; packages.  Appears it was decided at some point to make both versions of PHP available such that the user can choose which to install, but old installs would not be updated automatically to (most likely) limit the possibility of issues caused by incompatibilities.</p>
<p>I therefore ran the below commands and was upgraded to PHP 5.3 much quicker and with a lot less complication than I was expecting:</p>
<p><code>service httpd stop</p>
<p>yum remove php php-*</p>
<p>yum install php53<br />
#yum install php53-cli #via dependency<br />
#yum install php53-common #via dependency<br />
yum install php53-gd<br />
yum install php53-imap<br />
yum install php53-mbstring<br />
yum install php53-mysql<br />
#yum install php53-pdo #via dependency<br />
yum install php53-soap<br />
yum install php53-xml</p>
<p>service httpd start</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ns-tech.co.uk/blog/2011/08/installing-php-5-3-on-centos-5-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Home Automation with a AXIS M1054 Network Camera / Mini Review</title>
		<link>http://www.ns-tech.co.uk/blog/2011/07/home-automation-with-a-axis-m1054-network-camera-mini-review/</link>
		<comments>http://www.ns-tech.co.uk/blog/2011/07/home-automation-with-a-axis-m1054-network-camera-mini-review/#comments</comments>
		<pubDate>Sun, 24 Jul 2011 11:30:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ns-tech.co.uk/blog/?p=1158</guid>
		<description><![CDATA[I recently purchased a network camera, primarily to be able to see who is at the door before answering. The slight complication was that there was no obvious / straight forward position to mount it with an ideal view of the front door, even externally (external waterproof cameras are also more expensive, and installing it [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/07/axis_m1054.jpg" alt="AXIS M1054" width="250" height="235" class="alignright size-full wp-image-1172" />I recently purchased a network camera, primarily to be able to see who is at the door before answering.   The slight complication was that there was no obvious / straight forward position to mount it with an ideal view of the front door, even externally (external waterproof cameras are also more expensive, and installing it would be more complicated involving drilling through brickwork).  For that reason I decided to mount it pointing out of a window onto the path leading upto the front door this however meant that the camera could only see people walking up to, and away from the house, not who is currently at the front door.  I therefore needed to find a camera that was easily interface-able with / flexible from a technical perspective.</p>
<p>The <a href="http://www.axis.com/products/cam_m1054/">AXIS M1054</a> (purchased from <a href="http://www.networkwebcams.co.uk/product_info.php?products_id=1111">Network Webcams</a>) fit my requirements.  It has a very fully featured web interface, with a number of potentially useful features such as:</p>
<ul>
<li>Uploading /sending files via HTTP/FTP/Email</li>
<li>Video based motion detection</li>
<li>PIR based motion detection</li>
<li>Triggering events via GPIO on camera</li>
<li>Event notification via custom TCP socket protocol</li>
<li>Pre/post event buffers (capture images from before/after the actual event is triggered)</li>
<li>Motion JPEG, H.264 support, single image frame capture (JPEG)</li>
</ul>
<p>I initially attempted to use the PIR to trigger an event (image upload to server) however the PIR has a limited range/does not work well through a glass window, I therefore switched to using the video motion detection.  At first I found the motion detection to be somewhat unreliable however after spending time tweaking it, and a firmware update the situation improved, however not to a level where it was usable as a primary trigger (I found it would falsely trigger if too much changed in the image, e.g. shadows from sunlight).  I therefore decided to setup the camera to upload images to a server on motion detection, and use a doorbell press event from my existing  <a href="http://www.ns-tech.co.uk/blog/2010/12/doorbell-control-home-automation-with-the-synapse-rf-engine/"> Synapse home automation mesh network</a> to trigger a PC popup with the latest camera image.  The combination of the camera motion detection, and doorbell event works well since it means I can obtain a single image of the caller (rather than relying on taking the last 5 images from the buffer – where depending on their walking speed any one / none of the images will have their image) and using the doorbell even eliminates the false positives of the cameras motion detection.</p>
<p>On the server end I had some difficulties receiving the images in PHP, however after some trial and error worked out that they could be read In the slightly non standard way of using &#8220;php://input&#8221; rather than &#8220;$_FILES&#8221;:</p>
<p><code>&lt;?php<br />
file_put_contents('camera_photo.jpg', file_get_contents('php://input'));<br />
?&gt;</code></p>
<p>In terms of the physical hardware, I was fairly impressed, it is a well constructed unit, supports POE, and supports a traditional wall based mount, or a clamp based mount (both or which are supplied in the box).  It has a swivel arm with a large range of movement for finer adjustment.  At 720p HD resolution the image quality is also quite reasonable, and with the motion JPEG support there are a number of apps that support the camera on the iPhone, such as the free <a href="http://itunes.apple.com/us/app/netcamviewer-mobile-for-axis/id369884874?mt=8">NetcamViewer</a>.</p>
<p>The camera comes with the <a href="http://www.axis.com/products/cam_station_software/index.htm">AXIS Camera Station</a> PC software.  As far as I can see the main benefit of using the software is the ability to manage video recordings play/record (manually or motion captured – since the web interface only allows JPEG images).  I had some problems with the server side component seemingly crashing/not responding to client connections, but not really needing this functionality it was not something I looked into any further (may have been a memory issue on the server).</p>
<p>In the future I may look into integrating it into with a <a href="http://www.sparkpad.com/">SparkPad</a> &#8220;open platform digital display&#8221; picture frame to popup the callers image in other rooms that do not have a PC.</p>
<p>Download: <a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/07/camera_viewer.zip">Camera Viewer Popup C#</a></p>
<p>Further Resources:</p>
<ul>
<li><a href="http://www.networkwebcams.com/ip-camera-learning-center/2011/04/14/axis-sony-panasonic-ip-compact-camera-group-test/">Product Comparison: Axis M1104 vs. Panasonic WV-SP105 vs. Sony SNC-CH110</a></li>
<li><a href="http://www.networkwebcams.com/ip-camera-learning-center/2011/01/04/axis-m1054-ip-security-surveillance-camera-review-evaluation/">Evaluation: Axis M1054 IP Camera</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ns-tech.co.uk/blog/2011/07/home-automation-with-a-axis-m1054-network-camera-mini-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building A Web Accessible Heating / Hot Water Programmer (Home Automation)</title>
		<link>http://www.ns-tech.co.uk/blog/2011/06/web-accessible-heating-hot-water-programmer/</link>
		<comments>http://www.ns-tech.co.uk/blog/2011/06/web-accessible-heating-hot-water-programmer/#comments</comments>
		<pubDate>Sun, 12 Jun 2011 14:47:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Electronics Projects]]></category>

		<guid isPermaLink="false">http://www.ns-tech.co.uk/blog/?p=1091</guid>
		<description><![CDATA[I recently got round to completing a central heating / hot water automation project I had been meaning to do for a few years but previously issues over cabling, heat (i.e. possible damage to electronics), hardware choice, and various other installation issues had caused me not to do it until now. Features: Two channel (heating [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/06/heating_cabinet.jpg"><img src="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/06/heating_cabinet_small.jpg" alt="Heating Cabinet" width="300" height="251" class="alignright size-full wp-image-1114" /></a>I recently got round to completing a central heating / hot water automation project I had been meaning to do for a few years but previously issues over cabling, heat (i.e. possible damage to electronics), hardware choice, and various other installation issues had caused me not to do it until now.</p>
<h3>Features:</h3>
<ul>
<li>Two channel (heating and hot water) support.</li>
<li>Temporary Override (ignore schedule for 30 min &#8211; 1 day), both overriding on, but also off.</li>
<li>Permanent Override (ignore schedule).</li>
<li>Web based interface for changing schedule / override settings.</li>
<li>Schedule support for any combination of weekdays.</li>
<li>Schedule support for one off custom schedules on specific dates only.</li>
<li>Setting date/time via NTP (with automatic support for time zones, and daylight savings &#8211; built into Linux server).</li>
<li>Support for override control via <a href="http://www.voip-info.org/wiki/view/Asterisk+Cisco+79XX+XML+Services">Cisco 7960 phones</a> (already located around house / managed by <a href="http://www.asterisk.org/">Asterisk</a>).</li>
<li>Wireless from control unit to programmer (linked to network).</li>
<li>Self contained system &#8211; does not require separate PC server running 24/7.</li>
</ul>
<h3>Hardware</h3>
<p><a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/06/honeywell_wiring.gif"><img src="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/06/honeywell_wiring_small.gif" alt="Honeywell In Parallel Wiring" width="150" height="228" class="alignright size-full wp-image-1142" /></a>In terms of hardware the system is comprised of:</p>
<ol>
<li>A relay box containing two opto-isolated 230V 3A relays with CMOS level control.</li>
<li>A control box with Synapse RF Engine installed in Synapse Evaluation board connected to several lights/switches allowing for local control over on/off, override settings, and visual indication of on/off status (evaluation board is connected directly to relay box).</li>
<li>An <a href="http://eshop.acmesystems.it/?id=FOXG20">ACME System Fox G20 Board</a> (Atmel ARM processor, running Debian Linux), linked to another Synapse RF Engine, the controller behind the whole system, connected to wired network.</li>
</ol>
<p>I chose to install the relay box it in parallel with the existing timer clock.  During normal use the existing timer will be turned to its ‘permanent override: off&#8217; setting, this means that if the custom system were to fail it&#8217;s a simple case of powering it down, and going back to using the regular programmer.</p>
<h4>Relay Box</h4>
<p><a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/06/relay_box.jpg"><img src="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/06/relay_box_small.jpg" alt="Relay Box" width="200" height="150" class="alignleft size-full wp-image-1121" /></a>In terms of mounting the relay PCB in the box I chose to use to use some nuts and bolts, hot gluing the bolt to the base.  I also put some small rubber feet on the board to keep it more secure.  This allows the relay board to still be removed from the box if required at a later stage.</p>
<p>I secured cables going into the boxes with cable ties (one on the outside and one on the inside), not the most professional solution but having used various cable grips before none of which seemed particularly secure (prone to popping out again), and being time consuming to fit therefore this time I opted for a simpler solution.</p>
<h4>Control Box</h4>
<p><a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/06/controller_pcb_view.jpg"><img src="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/06/controller_pcb_view_small.jpg" alt="Controller PCB View" width="200" height="169" class="alignright size-full wp-image-1117" /></a>The control box had limited space this meant things fit nicely without moving but I also used some stick on cable holders to hold the PCB steady, and placed a blank PCB in the box to separate the switches from the Synapse Evaluation board preventing the possibility of shorts.</p>
<p>I used a standard labeller with stick on labels for marking controls on the box, this did not lead to as professional a finish as I would have liked however I could not immediately think of a better options without paying out for a possibly costly custom enclosure.</p>
<p>In terms of wiring in the control box, it is fairly straight forward, a TS7809 [<a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/06/ts7809.gif">pinouts</a>] to regulate the 12V PSU to 9V, switches connected directly from ground to GPIO pins (for pinouts see Python file), LEDs each connected to GPIOs via transistors [<a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/06/transistors.gif">wiring diagram</a>].</p>
<h3>Software</h3>
<h4>Fox G20</h4>
<p><a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/06/web_interface_screenshot.gif"><img src="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/06/web_interface_screenshot_small.gif" alt="Web Interface Screenshot" width="200" height="101" class="alignleft size-full wp-image-1145" /></a>The Fox G20 runs a PHP schedule application which sends signals to the control box LEDs / relays, and also receives button press events for override support.  It does this via a serial / wireless link (using Synapse modules) to the control box.</p>
<p>The Fox G20 was chosen since it offers (in software terms) something very similar to a regular Linux PC &#8211; support for web server, PHP, Cron jobs, RTC (with backup battery), serial ports, Ethernet, hard drive (memory card) all in a small form factor (web server, PHP, cron support were even already installed on the purchased memory card), meaning that time consuming / fiddly cross compiling etc was not required as they might with other hardware.</p>
<p>Getting the Fox G20 out of the box I was immediately very impressed with it and was able to get up and running within minutes, only thing that was not immediately clear was the <a href="http://foxg20.acmesystems.it/doku.php?id=tutorial:ssh_access&#038;s[]=netusg20">root password</a> (netusg20) but this was quickly located after a search of the <a href=" http://foxg20.acmesystems.it/doku.php">wiki</a>.</p>
<p>[Download: <a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/06/php_schedule_app.zip">PHP Schedule Application</a> inc. Cron service]</p>
<h4>Fox G20 &#8211; Synapse RF Engine</h4>
<p><a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/06/fox_g20_electronics.jpg"><img src="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/06/fox_g20_electronics_small.jpg" alt="Fox G20 Electronics" width="200" height="150" class="alignright size-full wp-image-1124" /></a>The Python script on the Synapse RF Engine simple connects the serial port to the transparent wireless connection. </p>
<p>[Download: <a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/06/heating_pc.py_.txt">Python Software</a>]</p>
<h4>Control Box &#8211; Synapse RF Engine</h4>
<p>The Python script on the Synapse RF Engine mounted in the control box is responsible for sending out message over wireless serial when buttons are pressed, and processing messages turning them into GPIO on/off events to control the relays/LEDs.</p>
<p>[Download: <a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/06/heating_controller.py_.txt">Python Software</a>]</p>
<h3>Custom Build</h3>
<p>A few of the decisions to build my own system include:</p>
<ul>
<li>Cost of commercial solution.</li>
<li>Easily extendable as required (ability to just code new features in PHP).</li>
<li>Support for control via Cisco 7960 phones (at any location in the house) &#8211; phones that support XML browser via &#8220;services&#8221; menu.</li>
<li>Implementation of all existing features of current system easing user adoption (for other members of the household).</li>
<li>Ability to make system wireless, but also separate from existing servers (independent system).
<li>Network support for NTP  / timezones / daylight savings time.</li>
<li>Key components that may be damaged by heat (unavoidable due to location) easily replaceable (e.g. just slot in new Synapse Module, purchase new power adapter).</li>
<li>Easy to make remotely accessible (just code authentication support).</li>
</ul>
<h3>Implementation Notes</h3>
<ul>
<li>PHP was not particularly designed to be used as a long running process (which is how it is necessarily used on the Fox G20 to receive data from the serial port.  For that reason I wrote a separate script called by Cron to check it is running, or if not start it back up again.  This causes a slight usability issue with the physical control box in that it may be unresponsive for up to 60 seconds (if the PHP process stops, and is pending a restart) however in practice this seems to happen only once every 5 hours, and the control box is rarely used anyway so it would be unlucky for a user to try and use it during that time.  It does not cause any issues with the schedule since any on/off events that happened when it was not running will be processed when it starts back up again.</li>
<li>I could have simplified things by having the Fox G20 board with WiFi module directly in the control box (removing the need for the Synapse modules) however did not do this due to possible issues with heat (cost of replacement), ease of access, and ease of hardware / software implementation (there does not seem to be a particularly simple/optimal way of supporting momentary push buttons in an event driven way, with the Fox G20 whereas there is with the Synapse).</li>
<li><a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/06/fox_g20.jpg"><img src="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/06/fox_g20_small.jpg" alt="Fox G20 Packaging" width="200" height="150" class="alignright size-full wp-image-1127" /></a>I chose to implement support for permanent overrides on the control box via momentary/non locking toggle switches.  These are not ideal as they do not offer the user any feedback on the current state directly, however it seemed like the best option due to already using up most of the GPIOs on the Synapse Engine, and increased built time, especially when they are a rarely used feature.  I chose to use non locking switches such that the permanent override setting could be changed via the web interface, but another option may have been to use locking toggle switches and remove permanent override control from the web interface.</li>
<li>The Fox G20 PSU is supplied with a Euro plug, even if ordered in the UK, I therefore purchased a <a href="http://www.pulsat.com/products/Euro-Charger-to-UK-Adaptor-%28Black%29.html">Euro to UK plug adapter</a>, but another option would have been ordering a new 5V 1A PSU.</li>
<li>Currently the system is still relying on the existing hard wired thermostat.  Synapse recently brought out a new <a href="http://www.synapse-wireless.com/index.php?mainID=8&#038;subID=24&#038;type=product&#038;prodID=24">motion/light/temperature sensor</a> which I may add in support for in the future.  The motion sensor could potentially be used to automatically turn off the system (disregarding the schedule) if no one is in the house resulting in cost savings.  To switch over I would simply set the existing thermostat to a high temperature such that it is always on, allowing the Synapse sensor to have priority.</li>
<li>I only tested the blue LEDs initially which was a mistake since after implementation I found that the green LEDs were barely visible (I did not realise the greens require greater current), this meant the addition of some extra lower value resistors on the PCB that I had not originally planned for.  Even so the green LEDs still ended up being significantly less bright than the blues however measuring current with a meter any lower resistor values (leading to a higher current) may have been out of spec possibly damaging / reducing the life of the LED.  The reduced brightness is not ideal from a user point of view however is acceptable as the box is mounted inside a darkened cabinet.</li>
</ul>
<h3>Parts List</h3>
<table cellspacing="0" class="tblwithborder">
<tr>
<td>x2</td>
<td>Momentary Toggle Switch</td>
<td><a href="http://www.maplin.co.uk/sub-miniature-toggle-switches-2341">FH03D</a></td>
</tr>
<tr>
<td>x1</td>
<td>2.1DC Socket</td>
<td><a href="http://www.maplin.co.uk/2.1mm-single-hole-fixing-dcsocket-1407">JK09K</a></td>
</tr>
<tr>
<td>x1</td>
<td>ABS Box (Control)</td>
<td><a href="http://www.maplin.co.uk/mb-plastic-boxes-1676">LH22Y</a></td>
</tr>
<tr>
<td>x2</td>
<td>Green LED Momentary Push Switch</td>
<td><a href="http://www.maplin.co.uk/illuminated-push-to-make-switch-34861">N08AR</a></td>
</tr>
<tr>
<td>x2</td>
<td>Blue LED Momentary Push Switch</td>
<td><a href="http://www.maplin.co.uk/illuminated-push-to-make-switch-34861">N09AR</a></td>
</tr>
<tr>
<td>x1</td>
<td>12V DC PSU</td>
<td><a href="http://www.maplin.co.uk/cctv-dc-12v-1000ma-power-supply-227631">N12GN</a></td>
</tr>
<tr>
<td>x1</td>
<td>9V Regulator (TS7809CZ)</td>
<td><a href="http://www.maplin.co.uk/1a-positive-fixed-regulators-7937">N37CA</a></td>
</tr>
<tr>
<td>x1</td>
<td>ABS Box (Relays)</td>
<td><a href="http://www.maplin.co.uk/multipurpose-abs-plastic-enclosures-219549">N59FK</a></td>
</tr>
<tr>
<td>x3</td>
<td>2 Core 3A Mains Cable</td>
<td><a href="http://www.maplin.co.uk/oval-2-core-3a-mains-cable-2192y-80">XR47B</a></td>
</tr>
<tr>
<td>x2</td>
<td>4 Core Alarm White</td>
<td><a href="http://www.maplin.co.uk/burglar-alarm-signal-cable-to-bs6360-bs6746-65">XR89W</a></td>
</tr>
<tr>
<td>x4</td>
<td>2N2222A Transistor</td>
<td><a href="http://www.maplin.co.uk/small-signal-npnhigh-frequency-19068">Maplin</a></td>
</tr>
<tr>
<td>x1</td>
<td>FOX Board G20 Starter Kit</td>
<td><a href="http://eshop.acmesystems.it/?id=COMBO-2">COMBO-2</a></td>
</tr>
<tr>
<td>x2</td>
<td>Synapse RF150 Module</td>
<td><a href="http://uk.futureelectronics.com/en/technologies/semiconductors/wireless-rf/rf-modules-solutions/802154-zigbee/Pages/9000494-RF150PC6.aspx">RF150PC6</a></td>
</tr>
<tr>
<td>x1</td>
<td>Synapse Evaluation Board</td>
<td><a href="http://uk.futureelectronics.com/en/technologies/semiconductors/wireless-rf/rf-modules-solutions/proprietary/Pages/6671358-SN171GG-NR.aspx">SN171GG-NR</a></td>
</tr>
<tr>
<td>x1</td>
<td>Euro to UK plug adapter</td>
<td><a href="http://www.pulsat.com/products/Euro-Charger-to-UK-Adaptor-%28Black%29.html">Pulsat</a></td>
</tr>
</table>
<h3>FOX G20 / Synapse &#8211; Pinouts</h3>
<table cellspacing="0" class="tblwithborder">
<tr>
<th>Synapse Pin</th>
<th>G20 Pin</th>
</tr>
<tr>
<td>5 (UART 0 RX)</td>
<td>J6.5 (USART 1 TX)</td>
</tr>
<tr>
<td>6 (UART 0 TX)</td>
<td>J6.4 (USART 1 RX)</td>
</tr>
<tr>
<td>21 (VCC)</td>
<td>J6.1 (3.3V)</td>
</tr>
<tr>
<td>24 (GND)</td>
<td>J6.40 (GND)</td>
</tr>
</table>
<p>Further Information: <a href="http://foxg20.acmesystems.it/doku.php?id=tutorial:serial_port">FOX G20 &#8211; serial ports</a>, <a href="http://foxg20.acmesystems.it/doku.php?id=hw:foxg20pinout&#038;s[]=3&#038;s[]=3v">FOX G20 &#8211; pinout</a></p>
<p>The FOX G20 has a 3.3V output that can be used to directly power the Synapse Module.</p>
<h3>Further Resources</h3>
<ul>
<li><a href="http://www.automatedhome.co.uk/Reviews/Central-Heating-Automation-Review.html">Dean Smith &#8211; Comfort System</a></li>
<li><a href="http://www.automatedhome.co.uk/Reviews/DIY-Heating-Interface-Review.html">Steve Jones &#8211; HomeVisionPro</a></li>
<li><a href="http://www.automatedhome.co.uk/Content/HomeVision-Central-Heating.html">Keith Doxey &#8211; HomeVisionPro</a></li>
<li><a href="http://honeycottage.mm-wave.com/hahome.htm">Honey Cottage &#8211; TOM10/xAP</a></li>
</ul>
<p><strong>Update 2011-07-06</strong>:  The Synapse &#8220;<a href="http://www.synapse-wireless.com/index.php?mainID=8&#038;subID=24&#038;type=product&#038;prodID=24">motion/light/temperature sensor</a>&#8221; is part of the &#8220;closed&#8221; <a href="http://www.snap-lighting.com/">SNAP-Lighting.com</a> system, it can not be independently controlled via Python.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ns-tech.co.uk/blog/2011/06/web-accessible-heating-hot-water-programmer/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Doorbell Control (Home Automation) Notification Hardware Unit</title>
		<link>http://www.ns-tech.co.uk/blog/2011/05/doorbell-control-home-automation-notification-hardware-unit/</link>
		<comments>http://www.ns-tech.co.uk/blog/2011/05/doorbell-control-home-automation-notification-hardware-unit/#comments</comments>
		<pubDate>Sun, 08 May 2011 15:38:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Electronics Projects]]></category>

		<guid isPermaLink="false">http://www.ns-tech.co.uk/blog/?p=1071</guid>
		<description><![CDATA[In an addition to my original Doorbell Control project, along with software based notification of events I put together a portable, battery operated unit as well. The unit operates from two AA batteries and features: 1 Red LED 2 Green LEDs 1 Buzzer 2 Push switches 2 Toggle switches Apart from the toggle power switch [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/05/notifier_unit_open.jpg"><img src="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/05/notifier_unit_open_small.jpg" alt="Notifier Unit Open" title="Notifier Unit Open" width="300" height="285" class="alignright size-full wp-image-1075" /></a>In an addition to my original <a href="http://www.ns-tech.co.uk/blog/2010/12/doorbell-control-home-automation-with-the-synapse-rf-engine/">Doorbell Control project</a>, along with <a href="http://www.ns-tech.co.uk/blog/2011/01/doorbell-control-home-automation-notification-software/">software based notification of events</a> I put together a portable, battery operated unit as well.</p>
<p>The <a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/05/notifier_unit.jpg">unit</a> operates from two AA batteries and features:</p>
<ul>
<li>1 Red LED</li>
<li>2 Green LEDs</li>
<li>1 Buzzer</li>
<li>2 Push switches</li>
<li>2 Toggle switches</li>
</ul>
<p>Apart from the toggle power switch all LEDs/switches are software controllable via GPIO pins.</p>
<p><a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/05/unit_parts.jpg"><img src="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/05/unit_parts_small.jpg" alt="Notifier Unit Parts" title="Notifier Unit Parts" width="180" height="194" class="alignleft size-full wp-image-1082" /></a>If the doorbell is rung, the bell sends a multicast RPC call which is picked up by the unit.  One of the green LEDs is then turned on.  Depending on the status of the (non power) toggle switch the buzzer is then turned on as well (the non power toggle switch is used to enable/disable the buzzer).  One push button is used to reset the unit (turn back off the LED/buzzer).  The red LED is used to indicate the power on/off status.  The remaining extra push switch/LED are currently not used but built in for possible future functionality.</p>
<h3>Parts List</h3>
<table cellspacing="0" class="tblwithborder">
<tr>
<td>x2</td>
<td>Green LED</td>
<td><a href="http://www.maplin.co.uk/5mm-low-current-leds-35771">UK49D</a></td>
</tr>
<tr>
<td>x1</td>
<td>Red LED</td>
<td><a href="http://www.maplin.co.uk/">CK48</a></td>
</tr>
<tr>
<td>x2</td>
<td>Push Switch</td>
<td><a href="http://www.maplin.co.uk/push-to-make-low-cost-2493">NK91Y</a></td>
</tr>
<tr>
<td>x2</td>
<td>Toggle Switch</td>
<td><a href="http://www.maplin.co.uk/sub-miniature-toggle-switches-2341">FH00A</a></td>
</tr>
<tr>
<td>x1</td>
<td>ABS Box MB1</td>
<td><a href="http://www.maplin.co.uk/mb-plastic-boxes-1676">LH20W</a></td>
</tr>
<tr>
<td>x3</td>
<td>LED Holder</td>
<td><a href="http://www.maplin.co.uk/5mm-rounded-panel-indicator-leds-and-bezels-35952">N89AX</a></td>
</tr>
<tr>
<td>x1</td>
<td>PP3 Battery Clip</td>
<td><a href="http://www.maplin.co.uk/pp3-type-battery-snap-44392">HF28F</a></td>
</tr>
<tr>
<td>x1</td>
<td>2AA Battery Box</td>
<td><a href="http://www.maplin.co.uk/aa-size-battery-holders-31427">YR60Q</a></td>
</tr>
<tr>
<td>x1</td>
<td>Buzzer</td>
<td><a href="http://www.maplin.co.uk/wire-ended-piezo-buzzer-3219">CR34M</a></td>
</tr>
<tr>
<td>x1</td>
<td>Synapse RF Engine</td>
<td><a href="http://www.synapse-wireless.com/index.php?mainID=3&#038;subID=3&#038;type=product&#038;prodID=3">RF100</a></td>
</tr>
</table>
<p>Note: The DC plug/socket shown in one of the photos was later removed due to lack of space inside the box.</p>
<p>Download: <a href="http://www.ns-tech.co.uk/blog/wp-content/uploads/2011/05/portable.py_.txt">Python Software</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ns-tech.co.uk/blog/2011/05/doorbell-control-home-automation-notification-hardware-unit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

