<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CkcAQnw7eCp7ImA9WhVTEEs.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232</id><updated>2012-02-24T16:07:23.200+11:00</updated><category term="Python" /><category term="X10" /><category term="Desktop" /><category term="Install-Script" /><category term="SR7400" /><category term="Linux" /><category term="AudioVisual" /><category term="Ooddles" /><category term="GC-100" /><category term="Ubuntu" /><category term="Bash" /><category term="Windows" /><category term="CM19a" /><category term="Automation" /><category term="USB" /><title>cuddon.net</title><subtitle type="html">By Andrew</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.cuddon.net/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.cuddon.net/" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>25</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Cuddonnet" /><feedburner:info uri="cuddonnet" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DE8FQH4zfCp7ImA9WhdVFE8.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-441142863713775080</id><published>2011-09-13T19:55:00.000+10:00</published><updated>2011-09-19T20:06:51.084+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-19T20:06:51.084+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="X10" /><category scheme="http://www.blogger.com/atom/ns#" term="CM19a" /><category scheme="http://www.blogger.com/atom/ns#" term="USB" /><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><title>Python X10 CM19A USB Driver - Version 3.0</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vbVgShWFX4refkzNmMzQDWGYgPo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vbVgShWFX4refkzNmMzQDWGYgPo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vbVgShWFX4refkzNmMzQDWGYgPo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vbVgShWFX4refkzNmMzQDWGYgPo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;span class="Apple-style-span" style="color: grey; font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h1&gt;



&lt;span class="Apple-style-span" style="color: grey; font-family: Verdana, sans-serif;"&gt;&lt;b&gt;Python X10 CM19A USB Driver version 3.0 is here&lt;/b&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;span class="Apple-style-span" style="color: grey; font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;

&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;a href="http://ubuntuone.com/0O4fjPSt2QFAY8yNcdxZVz"&gt;Download&lt;/a&gt;&lt;/span&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: grey; font-family: Verdana, sans-serif;"&gt;
&lt;h2&gt;&lt;b&gt;&lt;u&gt;New features&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;span class="Apple-style-span" style="color: grey; font-family: Verdana, sans-serif;"&gt;
&lt;/span&gt;

&lt;span class="Apple-style-span" style="color: grey; font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;

&lt;span class="Apple-style-span" style="color: grey; font-family: Verdana, sans-serif;"&gt;

&lt;b&gt;Basic command line argument functionality&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;span class="Apple-style-span" style="color: grey; font-family: Verdana, sans-serif;"&gt;
&lt;/span&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-4g6lxffS0zo/Tm8pThhBNlI/AAAAAAAAAHA/NeLk-HAlEzg/s1600/CM19a%2Bcommand%2Bline.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="156" src="http://1.bp.blogspot.com/-4g6lxffS0zo/Tm8pThhBNlI/AAAAAAAAAHA/NeLk-HAlEzg/s320/CM19a%2Bcommand%2Bline.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;e.g. ./CM19aDriver.py A1 ON
&lt;/li&gt;
&lt;li&gt;Send only, you cannot receive commands via this approach becuase the device does not maintain a queue of commands received.
&lt;/li&gt;
&lt;li&gt;Relatively slow because the driver must initialise the device each time and then exit.
&lt;/li&gt;
&lt;li&gt;This is the default mode of operation: MODE = 'Command Line'
&lt;/li&gt;
&lt;/ul&gt;
&lt;span class="Apple-style-span" style="color: grey; font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;



&lt;span class="Apple-style-span" style="color: grey; font-family: Verdana, sans-serif;"&gt;&lt;b&gt;Built-in HTTP server&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-0MGC8rqJv24/Tm8p0_goC6I/AAAAAAAAAHI/lCCYW5g4gjM/s1600/Browser1.png" imageanchor="1" style="clear:right; float:right; margin-left:1em; margin-bottom:1em"&gt;&lt;img border="0" height="97" width="320" src="http://1.bp.blogspot.com/-0MGC8rqJv24/Tm8p0_goC6I/AAAAAAAAAHI/lCCYW5g4gjM/s320/Browser1.png" /&gt;&lt;/a&gt;&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Send and receive commands via a web browser, any app that supports http get calls, or even the command line (using cURL)
&lt;/li&gt;
&lt;li&gt;e.g. http://192.168.1.3:8008/?house=A&amp;amp;unit=1&amp;amp;command=ON
&lt;/li&gt;
&lt;li&gt;The driver starts and remains running so it can monitor and respond to http requests and capture inbound RF commands received by the CM19a
&lt;/li&gt;
&lt;li&gt;Faster than the basic command line interface becuase the device needs to be initilaised only once (at startup)
&lt;/li&gt;
&lt;li&gt;You need to set MODE = 'HTTP Server' to use the driver this way. You also need to set the IP address and port you wish to use.
&lt;/li&gt;
&lt;/ul&gt;
&lt;span class="Apple-style-span" style="color: grey; font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h2&gt;



&lt;span class="Apple-style-span" style="color: grey; font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;u&gt;Bug Fixes&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;span class="Apple-style-span" style="color: grey; font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;


&lt;span class="Apple-style-span" style="color: grey; font-family: Verdana, sans-serif;"&gt;
&lt;b&gt;Fixed several bugs relating to bright/dim functionality&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;span class="Apple-style-span" style="color: grey; font-family: Verdana, sans-serif;"&gt;
&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;Added in missing bright/dim commands to the protocol file
&lt;/li&gt;
&lt;li&gt;Modified approach to decode bright/dim button presses from a X10 RF remote
&lt;/li&gt;
&lt;li&gt;Now identifies the house code as well as the button pressed (bright or dim) on the RF keychain remote
&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Enjoy... Feedback and bug fixes welcome.&lt;br /&gt;
&lt;i&gt;Andrew&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-441142863713775080?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/owBGKoLtEGI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/441142863713775080/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2011/09/python-x10-cm19a-usb-driver-version-30.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/441142863713775080?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/441142863713775080?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/owBGKoLtEGI/python-x10-cm19a-usb-driver-version-30.html" title="Python X10 CM19A USB Driver - Version 3.0" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-4g6lxffS0zo/Tm8pThhBNlI/AAAAAAAAAHA/NeLk-HAlEzg/s72-c/CM19a%2Bcommand%2Bline.png" height="72" width="72" /><thr:total>6</thr:total><feedburner:origLink>http://www.cuddon.net/2011/09/python-x10-cm19a-usb-driver-version-30.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4FR3Y9fyp7ImA9WhdWEE4.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-1677657079585785465</id><published>2011-09-03T15:27:00.000+10:00</published><updated>2011-09-03T16:21:56.867+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-03T16:21:56.867+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="X10" /><category scheme="http://www.blogger.com/atom/ns#" term="CM19a" /><category scheme="http://www.blogger.com/atom/ns#" term="USB" /><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><title>How to import the CM19a driver into another module</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EBV1Ruq-YYX435Ch9Gfzb_zWIco/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EBV1Ruq-YYX435Ch9Gfzb_zWIco/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/EBV1Ruq-YYX435Ch9Gfzb_zWIco/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EBV1Ruq-YYX435Ch9Gfzb_zWIco/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;This question has come up many times.  Here is an example of how to import the CM19a driver (v0.12) into another Python module so you can create your own macros.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-ocHkNlKpj9U/TmG6i7_qUFI/AAAAAAAAAGY/oS7ClscRYjc/s1600/Screenshot.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="261" src="http://2.bp.blogspot.com/-ocHkNlKpj9U/TmG6i7_qUFI/AAAAAAAAAGY/oS7ClscRYjc/s320/Screenshot.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
It's relatively painless:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Use the import statement to import the driver module (import cm19aDriver)&lt;/li&gt;
&lt;li&gt;Configure/initialise the CM19a (cm19aDriver.configure(start=True))&lt;/li&gt;
&lt;li&gt;Send and receive commands (result = cm19aDriver.cm19a.send("A", "1", "ON") and cm19aDriver.cm19a.getReceiveQueue())&lt;/li&gt;
&lt;li&gt;Tidy up and exit (cm19aDriver.tidyUp())&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;a href="http://ubuntuone.com/0MKk8sY39CBRONepB9atc1"&gt;Download the example&lt;/a&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-1677657079585785465?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/BeuNRFME9RI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/1677657079585785465/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2011/09/how-to-import-cm19a-driver-into-another.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/1677657079585785465?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/1677657079585785465?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/BeuNRFME9RI/how-to-import-cm19a-driver-into-another.html" title="How to import the CM19a driver into another module" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-ocHkNlKpj9U/TmG6i7_qUFI/AAAAAAAAAGY/oS7ClscRYjc/s72-c/Screenshot.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://www.cuddon.net/2011/09/how-to-import-cm19a-driver-into-another.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4DQHczcCp7ImA9WhdWEE4.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-2398919669358177574</id><published>2011-09-03T15:07:00.000+10:00</published><updated>2011-09-03T16:22:51.988+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-03T16:22:51.988+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Automation" /><category scheme="http://www.blogger.com/atom/ns#" term="X10" /><category scheme="http://www.blogger.com/atom/ns#" term="CM19a" /><category scheme="http://www.blogger.com/atom/ns#" term="USB" /><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><category scheme="http://www.blogger.com/atom/ns#" term="Bash" /><title>CM19a Driver - new version 0.12</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Jl0nEnXV25gChqKCoC-4LyNEueg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Jl0nEnXV25gChqKCoC-4LyNEueg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Jl0nEnXV25gChqKCoC-4LyNEueg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Jl0nEnXV25gChqKCoC-4LyNEueg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Here is the latest version of the original (0.1 series) driver. This seems to be the version most people currently use.The following updates have been made:&lt;br /&gt;
1. Added functionality to accept command line arguments for sending an x10 command&lt;br /&gt;
e.g.&lt;br /&gt;
sudo ./cm19aDriver.py A1 ON&lt;br /&gt;
echo "Result: $?"&lt;br /&gt;
&lt;br /&gt;
Note that this is relatively slow since the device needs to be reinitialised for each command line request. (I am working on ways of changing this).&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-FqedhN8RMbY/TmG1oIRpH8I/AAAAAAAAAGU/vl2tJwl2gyE/s1600/Screenshot-andrew%2540ubuntu-desktop%253A%2B%257E-v0.12.png" imageanchor="1"&gt;&lt;img border="0" height="140" src="http://1.bp.blogspot.com/-FqedhN8RMbY/TmG1oIRpH8I/AAAAAAAAAGU/vl2tJwl2gyE/s320/Screenshot-andrew%2540ubuntu-desktop%253A%2B%257E-v0.12.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
2. Added argument to Configure to state whether polling for inbound commands should be started. The default is 'start=False'.  This is the correct setting for command line processing but can be changed to 'start=False' when importing this driver into another module and polling the device for inbound commands. Click here to see how.&lt;br /&gt;
&lt;a href="http://ubuntuone.com/0MKk8sY39CBRONepB9atc1"&gt;Download version 0.12&lt;/a&gt;


&lt;br /&gt;
Cheers, Andrew&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-2398919669358177574?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/xp_8iHZjGsE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/2398919669358177574/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2011/09/cm19a-driver-new-version-012.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/2398919669358177574?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/2398919669358177574?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/xp_8iHZjGsE/cm19a-driver-new-version-012.html" title="CM19a Driver - new version 0.12" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-FqedhN8RMbY/TmG1oIRpH8I/AAAAAAAAAGU/vl2tJwl2gyE/s72-c/Screenshot-andrew%2540ubuntu-desktop%253A%2B%257E-v0.12.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.cuddon.net/2011/09/cm19a-driver-new-version-012.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYCQno9cSp7ImA9WhdXGU4.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-5695796063381693665</id><published>2011-09-02T14:02:00.001+10:00</published><updated>2011-09-02T14:02:43.469+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-02T14:02:43.469+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SR7400" /><category scheme="http://www.blogger.com/atom/ns#" term="GC-100" /><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><title>SR7400 Page updated</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rejwkGmswehvvAa8OnLOi73yMeA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rejwkGmswehvvAa8OnLOi73yMeA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/rejwkGmswehvvAa8OnLOi73yMeA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rejwkGmswehvvAa8OnLOi73yMeA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;
I have now updated the static page for the Marantz SR7400/SR8400 Surround Sound Receiver.  This includes the serial control specification and my automation driver.

Click on the SR7400 Page above or &lt;a href="http://www.cuddon.net/p/sr7400-page.html"&gt;click here&lt;/a&gt;.

&lt;br&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-5695796063381693665?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/7SVus2bTkp8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/5695796063381693665/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2011/09/sr7400-page-updated.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/5695796063381693665?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/5695796063381693665?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/7SVus2bTkp8/sr7400-page-updated.html" title="SR7400 Page updated" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.cuddon.net/2011/09/sr7400-page-updated.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQFQHk4fSp7ImA9WhdXGEo.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-4454209941606509994</id><published>2011-09-01T21:18:00.001+10:00</published><updated>2011-09-01T21:25:11.735+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-01T21:25:11.735+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Install-Script" /><category scheme="http://www.blogger.com/atom/ns#" term="Desktop" /><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><category scheme="http://www.blogger.com/atom/ns#" term="Bash" /><title>Script - Install Mediainfo</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Mjj3i09hEUnMspyU3WGX36Rnp6o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Mjj3i09hEUnMspyU3WGX36Rnp6o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Mjj3i09hEUnMspyU3WGX36Rnp6o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Mjj3i09hEUnMspyU3WGX36Rnp6o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;h2&gt;


&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Ubuntu Desktop Script&lt;/span&gt;&lt;/h2&gt;
&lt;br /&gt;
This script installs MediaInfo, which is a great app for displays information on various media files. This script installs both the GUI and command line tools.&amp;nbsp;&lt;a href="http://mediainfo.sourceforge.net/"&gt;http://mediainfo.sourceforge.net/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-4rcliFVhmNw/Tl9pbi3ZViI/AAAAAAAAAGA/ZD04T02PZOQ/s1600/Screenshot-MediaInfo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="157" src="http://2.bp.blogspot.com/-4rcliFVhmNw/Tl9pbi3ZViI/AAAAAAAAAGA/ZD04T02PZOQ/s400/Screenshot-MediaInfo.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://ubuntuone.com/2owUmCHCAkYRcuGfbSP2Gu"&gt;Download the script&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.cuddon.net/p/ubuntu-scripts.html"&gt;Other Ubuntu Scripts&lt;/a&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-4454209941606509994?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/xoqc7PrRccA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/4454209941606509994/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2011/09/script-install-mediainfo.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/4454209941606509994?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/4454209941606509994?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/xoqc7PrRccA/script-install-mediainfo.html" title="Script - Install Mediainfo" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-4rcliFVhmNw/Tl9pbi3ZViI/AAAAAAAAAGA/ZD04T02PZOQ/s72-c/Screenshot-MediaInfo.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.cuddon.net/2011/09/script-install-mediainfo.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkAFSXY_cSp7ImA9WhdXGEo.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-241569446202282773</id><published>2011-09-01T17:44:00.001+10:00</published><updated>2011-09-01T20:58:38.849+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-01T20:58:38.849+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Install-Script" /><category scheme="http://www.blogger.com/atom/ns#" term="Desktop" /><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><category scheme="http://www.blogger.com/atom/ns#" term="Bash" /><title>Script - Install Virtualbox</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/tSQiM8mBzmAw3Zme6p7ubD_Ye58/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tSQiM8mBzmAw3Zme6p7ubD_Ye58/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/tSQiM8mBzmAw3Zme6p7ubD_Ye58/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tSQiM8mBzmAw3Zme6p7ubD_Ye58/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;span class="Apple-style-span" style="color: #999999; font-size: large;"&gt;&lt;b&gt;Ubuntu Desktop Script&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-tFCMwdE1Fo8/Tl9lS9LadZI/AAAAAAAAAF8/g4thMRYkrsg/s1600/Screenshot.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-tFCMwdE1Fo8/Tl9lS9LadZI/AAAAAAAAAF8/g4thMRYkrsg/s1600/Screenshot.png" /&gt;&lt;/a&gt;&lt;/div&gt;
Installs Oracle VM Virtualbox. Based on information from &lt;a href="http://www.virtualbox.org/wiki/Linux_Downloads"&gt;http://www.virtualbox.org/wiki/Linux_Downloads&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://ubuntuone.com/61TWzLak3PD3rkHFJHpzK0"&gt;Download&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.cuddon.net/p/ubuntu-scripts.html"&gt;Other Ubuntu Scripts&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-241569446202282773?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/CTlb8HKGxL8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/241569446202282773/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2011/09/script-install-virtualbox.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/241569446202282773?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/241569446202282773?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/CTlb8HKGxL8/script-install-virtualbox.html" title="Script - Install Virtualbox" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-tFCMwdE1Fo8/Tl9lS9LadZI/AAAAAAAAAF8/g4thMRYkrsg/s72-c/Screenshot.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.cuddon.net/2011/09/script-install-virtualbox.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMMQHc7fip7ImA9WhdXGEo.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-7263735090463760543</id><published>2011-09-01T15:19:00.000+10:00</published><updated>2011-09-01T20:54:41.906+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-01T20:54:41.906+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Install-Script" /><category scheme="http://www.blogger.com/atom/ns#" term="Desktop" /><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><category scheme="http://www.blogger.com/atom/ns#" term="Bash" /><title>Script - Access a networked scanner</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZrUlzqWG7mb9gvFzS6zqqOgBxQU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZrUlzqWG7mb9gvFzS6zqqOgBxQU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZrUlzqWG7mb9gvFzS6zqqOgBxQU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZrUlzqWG7mb9gvFzS6zqqOgBxQU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h2&gt;


&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Ubuntu Desktop Script&lt;/span&gt;&lt;/h2&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;This script enables access to a NETWORKED scanner that uses the SANED (Scanner Access Now Easy) daemon. The scanner is attached (usually via USB) to a server or another computer. This setup is not required if you simply connect your scanner directly to your Ubuntu Desktop computer.
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-S1IzBF5n4hU/Tl9j23eSOJI/AAAAAAAAAF4/Dbr91OZzVqo/s1600/Screenshot-Preferences2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="94" src="http://3.bp.blogspot.com/-S1IzBF5n4hU/Tl9j23eSOJI/AAAAAAAAAF4/Dbr91OZzVqo/s320/Screenshot-Preferences2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;After running the script you should be able to selected your networked scanner (in my case an Epson Multifunction printer&amp;nbsp;&lt;/span&gt;scanner&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;) as you scanning source device.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://ubuntuone.com/06GSg4chXahi7fVYQZOqpK"&gt;Download the script&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.cuddon.net/p/ubuntu-scripts.html"&gt;Other Ubuntu Scripts&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-7263735090463760543?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/BqNdf6Z6bBU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/7263735090463760543/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2011/09/script-access-networked-scanner.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/7263735090463760543?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/7263735090463760543?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/BqNdf6Z6bBU/script-access-networked-scanner.html" title="Script - Access a networked scanner" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-S1IzBF5n4hU/Tl9j23eSOJI/AAAAAAAAAF4/Dbr91OZzVqo/s72-c/Screenshot-Preferences2.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.cuddon.net/2011/09/script-access-networked-scanner.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4BQX4_fip7ImA9WhdXGEg.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-1759542692042850687</id><published>2011-08-12T12:06:00.002+10:00</published><updated>2011-09-01T14:55:50.046+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-01T14:55:50.046+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Automation" /><category scheme="http://www.blogger.com/atom/ns#" term="X10" /><category scheme="http://www.blogger.com/atom/ns#" term="CM19a" /><category scheme="http://www.blogger.com/atom/ns#" term="USB" /><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><title>New links to the CM19a Drivers</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/kdtbFxUk71GpRHRdpEr-Xv9kgB8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kdtbFxUk71GpRHRdpEr-Xv9kgB8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/kdtbFxUk71GpRHRdpEr-Xv9kgB8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kdtbFxUk71GpRHRdpEr-Xv9kgB8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Apologies guys. Obviously I have not been active on this site for quite some time.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Updated links to the various versions of my driver are provided on the CM19a Page. Click this &lt;a href="http://www.cuddon.net/p/cm19a-x10-wireless-transceiver-usb.html"&gt;link&lt;/a&gt; or click on the 'CM19a Page' tab above.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Let me know if you have any problems.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;i&gt;Andrew&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-1759542692042850687?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/0Y49AkavUIY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/1759542692042850687/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2011/08/new-links-to-drivers.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/1759542692042850687?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/1759542692042850687?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/0Y49AkavUIY/new-links-to-drivers.html" title="New links to the CM19a Drivers" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.cuddon.net/2011/08/new-links-to-drivers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04EQXgyfSp7ImA9Wx5WEE8.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-5293000306070784138</id><published>2010-06-26T15:20:00.001+10:00</published><updated>2010-09-21T08:31:40.695+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-21T08:31:40.695+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="X10" /><category scheme="http://www.blogger.com/atom/ns#" term="CM19a" /><category scheme="http://www.blogger.com/atom/ns#" term="USB" /><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><title>Version 2.(beta) Python driver for CM19a X10 RF Transceiver (USB)</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mA4sCJrnUcHiCwna9RFWM_7XM4g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mA4sCJrnUcHiCwna9RFWM_7XM4g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mA4sCJrnUcHiCwna9RFWM_7XM4g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mA4sCJrnUcHiCwna9RFWM_7XM4g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Here's a new version (treat it as a beta) of my Python driver for the CM19a X10 RF Transceiver (USB).&lt;br /&gt;
&lt;br /&gt;
There are many changes including:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;ability to send dim and bright commands.&lt;/li&gt;
&lt;li&gt;ability to receive dim and bright commands from an X10 remote.&lt;/li&gt;
&lt;li&gt;ability to turn off automatic polling of the device for incoming commands from a remote. This is useful if you want control over when the device is polled for inbound commands or if your application just sends commands to X10 units and does not respond to remote controls.&lt;/li&gt;
&lt;li&gt;more error checks.&lt;/li&gt;
&lt;li&gt;some refactoring of the class methods and some methods have been renamed to identify then as private to the class and should not be called externally. This is mostly to support a device manager I am working on which exposes the key methods as XML-RPC functions that can be called remotely by other languages such as Perl.&lt;/li&gt;
&lt;li&gt;I have also included some examples of how you can use this driver to respond to inbound commands and perform a simple macro.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
I have tested this on Ubuntu 10.04. Please let me know if you have any problems.&lt;br /&gt;
&lt;br /&gt;
Download the version 2 (Beta) driver &lt;a href="http://ubuntuone.com/p/GtG/"&gt;here&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Andrew&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-5293000306070784138?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/99K9yH85PEc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/5293000306070784138/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2010/06/version-2beta-python-driver-for-cm19a.html#comment-form" title="13 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/5293000306070784138?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/5293000306070784138?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/99K9yH85PEc/version-2beta-python-driver-for-cm19a.html" title="Version 2.(beta) Python driver for CM19a X10 RF Transceiver (USB)" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><thr:total>13</thr:total><feedburner:origLink>http://www.cuddon.net/2010/06/version-2beta-python-driver-for-cm19a.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AFSXgzfCp7ImA9WxFUEE0.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-4862052372469293681</id><published>2010-06-20T14:32:00.012+10:00</published><updated>2010-06-20T14:55:18.684+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-20T14:55:18.684+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="X10" /><category scheme="http://www.blogger.com/atom/ns#" term="CM19a" /><category scheme="http://www.blogger.com/atom/ns#" term="USB" /><title>CM19a USB permissions in Ubuntu Lucid</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-dI0LWkuRKo8JpE14kNC5EYJug8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-dI0LWkuRKo8JpE14kNC5EYJug8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-dI0LWkuRKo8JpE14kNC5EYJug8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-dI0LWkuRKo8JpE14kNC5EYJug8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Here's how I set permissions in Ubuntu 10.04 (Lucid) so that any user can run my CM19a X10 USB Transceiver driver.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;1. Create a &lt;/span&gt;&lt;a href="http://linux.die.net/man/7/udev"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;udev&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt; permissions files so that when udev creates a device file when the transceiver is connected, the correct permissions are set&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo nano /etc/udev/rules.d/cm19a.rules&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Note that I did not number this file so it runs after all other permissions are set.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;2. Add in the following text and save&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# Allow all users to read and write to the CM19a X10 Transceiver (USB)&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;SYSFS{idVendor}=="0bc7", SYSFS{idProduct}=="0002", MODE="666"&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;3. If your CM19a is plugged in, then remove, wait a sec or two and then plug it back in again. The correct permissions should now be set.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;4. Any user should now be able to run the driver without using sudo.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;eg. From a terminal&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;./CM19A_X10_USB.py&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #cc0000;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Note: In Ubuntu you will also need to blacklist two drivers so they do not take control of the CM19a when it is plugged in.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;1. Edit the blacklist file&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo nano &amp;nbsp;/etc/modprobe.d/blacklist&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;2. Add in the follow text and save&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# To enable CM19a X10 Transceiver to work&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt; blacklist lirc_atiusb&lt;br /&gt;
blacklist ati_remote&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;3. Reboot so this all takes effect.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-4862052372469293681?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/Ep9oPz_e_8Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/4862052372469293681/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2010/06/cm19a-usb-permissions-in-ubuntu-lucid.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/4862052372469293681?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/4862052372469293681?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/Ep9oPz_e_8Q/cm19a-usb-permissions-in-ubuntu-lucid.html" title="CM19a USB permissions in Ubuntu Lucid" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.cuddon.net/2010/06/cm19a-usb-permissions-in-ubuntu-lucid.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcCQn04cCp7ImA9WxBSGEQ.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-1165622411542092131</id><published>2009-12-27T17:50:00.005+11:00</published><updated>2009-12-27T18:14:23.338+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-27T18:14:23.338+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Automation" /><category scheme="http://www.blogger.com/atom/ns#" term="CM19a" /><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><title>Cm19a driver User Interface concept is here</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8VKDUMvnhiCyafMpOUfV1KUCwV8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8VKDUMvnhiCyafMpOUfV1KUCwV8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8VKDUMvnhiCyafMpOUfV1KUCwV8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8VKDUMvnhiCyafMpOUfV1KUCwV8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rx2cioGV7eU/SzcGp1cWixI/AAAAAAAAAB4/1sQLiZEQkqs/s1600-h/Screenshot.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 180px;" src="http://3.bp.blogspot.com/_rx2cioGV7eU/SzcGp1cWixI/AAAAAAAAAB4/1sQLiZEQkqs/s320/Screenshot.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5419807992354081554" /&gt;&lt;/a&gt;Several people have asked for a user interface for my CM19a X10 USB Transceiver driver.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's my first attempt at a very simple front end. It's not elegant at all - it just allows a user to turn on/off devices with the click of a button.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can download the code from &lt;a href="http://sites.google.com/site/andrewcuddon/blog-attachments/CM19aUIv0.1.py?attredirects=0&amp;amp;d=1"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Requires my CM19a driver version 0.11 or later, available &lt;a href="http://sites.google.com/site/andrewcuddon/blog-attachments/cm19aDriver.py?attredirects=0&amp;amp;d=1"&gt;here&lt;/a&gt;. You must run this with root privileges (I use gksudo) for the driver to be able to access the usb device.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-1165622411542092131?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/4oCWIaZPUeo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/1165622411542092131/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2009/12/cm19a-driver-user-interface-concept-is.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/1165622411542092131?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/1165622411542092131?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/4oCWIaZPUeo/cm19a-driver-user-interface-concept-is.html" title="Cm19a driver User Interface concept is here" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_rx2cioGV7eU/SzcGp1cWixI/AAAAAAAAAB4/1sQLiZEQkqs/s72-c/Screenshot.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.cuddon.net/2009/12/cm19a-driver-user-interface-concept-is.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUCSH86eip7ImA9WxBSGE4.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-7877196037591078146</id><published>2009-12-26T23:53:00.004+11:00</published><updated>2009-12-26T23:57:49.112+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-26T23:57:49.112+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><category scheme="http://www.blogger.com/atom/ns#" term="CM19a" /><title>Cm19a driver User Interface</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5vGNsZpuxCnZJYlaZUDWO2Kg0y4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5vGNsZpuxCnZJYlaZUDWO2Kg0y4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5vGNsZpuxCnZJYlaZUDWO2Kg0y4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5vGNsZpuxCnZJYlaZUDWO2Kg0y4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rx2cioGV7eU/SzYIJgwSjCI/AAAAAAAAABw/MlEZU05K_7g/s1600-h/Screenshot-CM19a+driver+front+end+(v0.1).png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 141px;" src="http://1.bp.blogspot.com/_rx2cioGV7eU/SzYIJgwSjCI/AAAAAAAAABw/MlEZU05K_7g/s400/Screenshot-CM19a+driver+front+end+(v0.1).png" border="0" alt="" id="BLOGGER_PHOTO_ID_5419528161091292194" /&gt;&lt;/a&gt;&lt;br /&gt;Just started working on a simple user interface to demonstrate how my Cm19a driver works.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-7877196037591078146?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/j3IIq2KM9A4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/7877196037591078146/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2009/12/cm19a-driver-user-interface.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/7877196037591078146?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/7877196037591078146?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/j3IIq2KM9A4/cm19a-driver-user-interface.html" title="Cm19a driver User Interface" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_rx2cioGV7eU/SzYIJgwSjCI/AAAAAAAAABw/MlEZU05K_7g/s72-c/Screenshot-CM19a+driver+front+end+(v0.1).png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.cuddon.net/2009/12/cm19a-driver-user-interface.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEICQnY6fyp7ImA9WxBTFUs.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-436746075494272566</id><published>2009-12-12T07:14:00.001+11:00</published><updated>2009-12-12T07:16:03.817+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-12T07:16:03.817+11:00</app:edited><title>Back again</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/cM1ix5OYu-6Zr9tkRsQT-r-gLiI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cM1ix5OYu-6Zr9tkRsQT-r-gLiI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/cM1ix5OYu-6Zr9tkRsQT-r-gLiI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cM1ix5OYu-6Zr9tkRsQT-r-gLiI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;It sure has been a long time since I posted. Hopefully I will have time to work on my projects over Christmas and the summer holidays.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-436746075494272566?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/Z5FRt6VYdlQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/436746075494272566/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2009/12/back-again.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/436746075494272566?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/436746075494272566?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/Z5FRt6VYdlQ/back-again.html" title="Back again" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.cuddon.net/2009/12/back-again.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0AFQHkycSp7ImA9WxNWGEs.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-3022702887171483393</id><published>2009-10-18T21:24:00.003+11:00</published><updated>2009-10-18T21:28:31.799+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-18T21:28:31.799+11:00</app:edited><title>Ubuntu Karmic Koala is coming soon</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-pg8d0DKKLPL22NxlXSzWKpPUgo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-pg8d0DKKLPL22NxlXSzWKpPUgo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-pg8d0DKKLPL22NxlXSzWKpPUgo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-pg8d0DKKLPL22NxlXSzWKpPUgo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.ubuntu.com/"&gt;&lt;img src="http://www.ubuntu.com/files/countdown/static.png" alt="Ubuntu: For Desktops, Servers, Netbooks and in the cloud" width="180" border="0" height="150" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ubuntu.com/testing/karmic/beta"&gt;Get the beta here&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-3022702887171483393?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/6KUyZPTSOyw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/3022702887171483393/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2009/10/ubuntu-karmic-koala-is-coming-soon.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/3022702887171483393?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/3022702887171483393?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/6KUyZPTSOyw/ubuntu-karmic-koala-is-coming-soon.html" title="Ubuntu Karmic Koala is coming soon" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.cuddon.net/2009/10/ubuntu-karmic-koala-is-coming-soon.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEEQ3Y8eyp7ImA9WxNRGE8.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-7785403140875446569</id><published>2009-09-13T17:33:00.005+10:00</published><updated>2009-09-13T17:40:02.873+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-13T17:40:02.873+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Ooddles" /><title>Ooddles</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/PAyOJJHUcOSX28DBhjbcvW9sIp0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PAyOJJHUcOSX28DBhjbcvW9sIp0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/PAyOJJHUcOSX28DBhjbcvW9sIp0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PAyOJJHUcOSX28DBhjbcvW9sIp0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rx2cioGV7eU/Sqyg8KoVyNI/AAAAAAAAABQ/NL9EVnewnqE/s1600-h/IMGP0267_w500.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 500px; height: 688px;" src="http://4.bp.blogspot.com/_rx2cioGV7eU/Sqyg8KoVyNI/AAAAAAAAABQ/NL9EVnewnqE/s400/IMGP0267_w500.JPG" alt="" id="BLOGGER_PHOTO_ID_5380852610307049682" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-7785403140875446569?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/-6xyauHjOuc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/7785403140875446569/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2009/09/ooddles.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/7785403140875446569?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/7785403140875446569?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/-6xyauHjOuc/ooddles.html" title="Ooddles" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_rx2cioGV7eU/Sqyg8KoVyNI/AAAAAAAAABQ/NL9EVnewnqE/s72-c/IMGP0267_w500.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.cuddon.net/2009/09/ooddles.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQDRHw6eip7ImA9WxBSGEQ.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-9147951180762331630</id><published>2009-08-19T15:16:00.010+10:00</published><updated>2009-12-27T18:19:35.212+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-27T18:19:35.212+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Automation" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="X10" /><category scheme="http://www.blogger.com/atom/ns#" term="CM19a" /><category scheme="http://www.blogger.com/atom/ns#" term="USB" /><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><title>Python driver v0.11 for CM19a X10 Transceiver</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6TuNZGZ6aQS3fdQUxhHFuORdCfk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6TuNZGZ6aQS3fdQUxhHFuORdCfk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6TuNZGZ6aQS3fdQUxhHFuORdCfk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6TuNZGZ6aQS3fdQUxhHFuORdCfk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;Now updated to version 0.11. Just a few bug fixes plus it now saves any error messages to an object attribute so these can be accessed externally (such as via a user interface app).&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Here's my first attempt at a Python driver for the CM19a wireless (USB, Firecracker) transceiver.&lt;br /&gt;This is a user space driver so a kernel driver for the CM19a does not need to be installed.&lt;br /&gt;&lt;br /&gt;Functionality&lt;br /&gt;- Use the CM19a to send any X10 on/off command (eg A1OFF, C16ON) wirelessly to a lamp or appliance module (requires an X10 receiver module).&lt;br /&gt;- Use the CM19a to automatically receive and log to a queue any command received from an X10 remote control.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sites.google.com/site/andrewcuddon/blog-attachments/cm19aDriver.py?attredirects=0&amp;amp;d=1"&gt;Click here for the Python code&lt;/a&gt;(version 0.11)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sites.google.com/site/andrewcuddon/blog-attachments/CM19aProtocol.txt?attredirects=0"&gt;Click here for the X10 protocol file&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Andrew&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example Output&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Configuring...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CM19a found and opened&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  Vendor ID (dev.idVendor): 3015 (0bc7 hex)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  Product ID (dev.idProduct): 2 (0002 hex)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  Device Version: 01.00&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  usbVersion:  01.10&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  Number of Configurations:  1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Turning ON A1...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Waiting 5 seconds...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Turning OFF A1...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Press one or more keys on the x10 remote within the next 30 seconds&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Command A3OFF received via cm19a&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Command A3ON received via cm19a&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Command A3ON received via cm19a&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Command A4OFF received via cm19a&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Command A3OFF received via cm19a&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Command A1OFF received via cm19a&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Receive Queue: ['A3OFF', 'A3ON', 'A3ON', 'A4OFF', 'A3OFF', 'A1OFF']&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Press one or more keys on the x10 remote within the next 30 seconds&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Command A1ON received via cm19a&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Command A2ON received via cm19a&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Command A2ON received via cm19a&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Command A3ON received via cm19a&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Command A4ON received via cm19a&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Receive Queue (since the last time we requested the queue): ['A1ON', 'A2ON', 'A2ON', 'A3ON', 'A4ON']&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Tests complete.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-9147951180762331630?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/8HqDAjHokQs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/9147951180762331630/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2009/08/python-driver-v01-for-cm19a-x10.html#comment-form" title="24 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/9147951180762331630?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/9147951180762331630?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/8HqDAjHokQs/python-driver-v01-for-cm19a-x10.html" title="Python driver v0.11 for CM19a X10 Transceiver" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><thr:total>24</thr:total><feedburner:origLink>http://www.cuddon.net/2009/08/python-driver-v01-for-cm19a-x10.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIFRng4cSp7ImA9WxJaGUs.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-6775981426011164333</id><published>2009-08-11T13:36:00.004+10:00</published><updated>2009-08-11T13:48:37.639+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-11T13:48:37.639+10:00</app:edited><title>CM19a USB Permissions</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Xhi1k31JzQmfm-pkDxtkLpm9uxA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Xhi1k31JzQmfm-pkDxtkLpm9uxA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Xhi1k31JzQmfm-pkDxtkLpm9uxA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Xhi1k31JzQmfm-pkDxtkLpm9uxA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;A typical user in Linux does not have sufficient privileges to read/write to the CM19a USB device without the appropriate driver installed with the correct permissions. Since I am writing a User Space driver in Python I need a way to read/write to the device without having to run the script/programme as thee root user.&lt;br /&gt;&lt;br /&gt;The following notes show how I have set up &lt;span style="font-weight: bold;"&gt;udev&lt;/span&gt; rules to automatically set the correct permissions on system start or hot pluggin the CM19a.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Create the udev rules file:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;      &lt;span style="font-style: italic;"&gt;gksudo gedit /etc/udev/rules.d/40-cm19a.rules&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;This uses gedit text editor in Ubuntu. You can create the text file any way you like.&lt;/li&gt;&lt;li&gt;The '''40''' is the priority/order for the rule relative to other rules found in /etc/udev/rules.d (user rules) and /lib/udev/rules.d (system/package rules etc)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Add the rules&lt;/span&gt;&lt;br /&gt;These rules says that for a device with the specific vendor and product id, enable read/write access to any user who is a member of the '''cm19a-users''' groups&lt;br /&gt;&lt;br /&gt;&lt;div style="font-size:small"&gt;&lt;br /&gt;# Sets user permissions for the CM19a X10 US Wireless Transceiver&lt;br /&gt;# Users who are members of the cm19a-users group have read and write access to this device&lt;br /&gt;# Note that the vendor and product IDs are hexadecimal values&lt;br /&gt;# Vendor id = 3015 (decimal), 0bc7(hex), X10 Wireless Technology Inc&lt;br /&gt;# Product id = 2 (decimal), 0002 (hex), USB Transceiver&lt;br /&gt;&lt;br /&gt;# Skip these rules if a usb device is not being added&lt;br /&gt;SUBSYSTEM!="usb_device", ACTION!="add", GOTO="end_of_cm19a_rules"&lt;br /&gt;&lt;br /&gt;SYSFS{idVendor}=="0bc7", SYSFS{idProduct}=="0002", MODE:="0660", GROUP:="cm19a-users"&lt;br /&gt;&lt;br /&gt;LABEL="end_of_cm19a_rules"&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;3. Restart the server/pc to ensure to permissions take hold.&lt;br /&gt;(Just re-plugging the device does not seem to work correctly)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4. Check that the CM19a has been detected&lt;/span&gt;&lt;br /&gt;&lt;div style="font-size:small"&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;lsusb&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;Bus 005 Device 002: ID 046d:c517 Logitech, Inc. LX710 Cordless Desktop Laser&lt;br /&gt;Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;Bus 004 Device 003: ID 0bc7:0002 X10 Wireless Technology, Inc. Firecracker Interface (ACPI-compliant)&lt;br /&gt;Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;Bus 002 Device 002: ID 045e:00f5 Microsoft Corp. LifeCam VX-3000.&lt;br /&gt;Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5. Check the group ownership&lt;/span&gt;&lt;br /&gt;&lt;div style="font-size:small"&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;ls -la /dev/bus/usb/004/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;total 0&lt;br /&gt;drwxr-xr-x 2 root root              80 2009-08-11 11:22 .&lt;br /&gt;drwxr-xr-x 7 root root             140 2009-08-11 18:20 ..&lt;br /&gt;crw-rw-r-- 1 root root        189, 384 2009-08-11 18:20 001&lt;br /&gt;crw-rw---- 1 root cm19a-users 189, 387 2009-08-11 11:22 003&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Notes:&lt;br /&gt; * 004 in the ls command is the bus number where lsusb found the device&lt;br /&gt; * The ls command lists the devices found on that bus&lt;br /&gt; * The Cm19a is device number 003 on bus 004&lt;br /&gt; * Owner is root with permissions: create, read, write&lt;br /&gt; * Group is cm19a-users with permissions: read, write&lt;br /&gt; * The World has no permissions at all&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6. Add any users who need to access the CM19a to the cm19a-users group.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;7. Now your users have read/write access to the device&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-6775981426011164333?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/skuk5JbPwjA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/6775981426011164333/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2009/08/cm19a-usb-permissions.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/6775981426011164333?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/6775981426011164333?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/skuk5JbPwjA/cm19a-usb-permissions.html" title="CM19a USB Permissions" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.cuddon.net/2009/08/cm19a-usb-permissions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EBR3Yzfyp7ImA9WxJaGUs.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-3005660255591919610</id><published>2009-08-11T13:11:00.002+10:00</published><updated>2009-08-11T13:34:16.887+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-11T13:34:16.887+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Automation" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="X10" /><category scheme="http://www.blogger.com/atom/ns#" term="CM19a" /><category scheme="http://www.blogger.com/atom/ns#" term="USB" /><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><title>CM19a USB Info</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xn2uyYm6uH_DKdd9rYffuzkN7Pw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xn2uyYm6uH_DKdd9rYffuzkN7Pw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xn2uyYm6uH_DKdd9rYffuzkN7Pw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xn2uyYm6uH_DKdd9rYffuzkN7Pw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Here's my programme to extract the Descriptor info from the CM19a X10 USB Transceiver.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sites.google.com/site/andrewcuddon/blog-attachments/CM19aUSBinfov1.0.py?attredirects=0"&gt;Click Here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;By Default, a normal user does not have sufficient privileges to access this device so you can either:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;run the programme as root (sudo python CM19aUSBinfo.py); or&lt;/li&gt;&lt;li&gt;set the privileges when &lt;span style="font-weight: bold;"&gt;udev&lt;/span&gt; detects the device (see my next post for how to do this)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;On my PC, the Python script returns the following information for the CM19a:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-size: small; color: gray; font-family: Arial,Helvetica,Serif;"&gt;&lt;br /&gt;Bus number (bus.dirname): 004&lt;br /&gt;CM19a found:&lt;br /&gt;  Device Number(dev.filename): 002&lt;br /&gt;  Device class: 0 (Per Interface)&lt;br /&gt;      Device sub class: 0 (Per Interface)&lt;br /&gt;      Device protocol: 0&lt;br /&gt;      Max packet size for Endpoint 0: 8&lt;br /&gt;      Vendor ID (dev.idVendor): 3015 (0bc7 hex)&lt;br /&gt;      Product ID (dev.idProduct): 2 (0002 hex)&lt;br /&gt;      Device Version: 01.00&lt;br /&gt;      Manufacturer (dev.iManufacturer): 1, X10 Wireless Technology Inc&lt;br /&gt;      Product (dev.iProduct): 2, USB Transceiver&lt;br /&gt;      SerialNumber (dev.iSerialNumber):  0, ?&lt;br /&gt;      usbVersion:  01.10&lt;br /&gt;      Number of Configurations:  1&lt;br /&gt;      Configuration: 1&lt;br /&gt;          Total length: 32&lt;br /&gt;          selfPowered: 0&lt;br /&gt;          remoteWakeup: 0&lt;br /&gt;          maxPower: 4&lt;br /&gt;          Configuration Description:  0&lt;br /&gt;          Number of Interfaces:  1&lt;br /&gt;          Interface tuple:  ((usb.Interface object at 0xb7d22cb0,),)&lt;br /&gt;          Interface Number:  0&lt;br /&gt;       Alternate Setting Number: 0&lt;br /&gt;       Interface class: 255 (Vendor Specific)&lt;br /&gt;              Interface sub class: 0 (Per Interface)&lt;br /&gt;              Interface protocol: 0&lt;br /&gt;              Number of end points:  2&lt;br /&gt;              Endpoint tuple:  (usb.Endpoint object at 0xb7d441c0, usb.Endpoint object at 0xb7d441d0)&lt;br /&gt;       Endpoint address: 129 (0081 hex)&lt;br /&gt;                  Type: 3 (INTERRUPT):&lt;br /&gt;                  Max packet size: 8 bytes&lt;br /&gt;                 Interval: 10&lt;br /&gt;              Endpoint address: 2 (0002 hex)&lt;br /&gt;                  Type: 3 (INTERRUPT):&lt;br /&gt;                  Max packet size: 8 bytes&lt;br /&gt;                 Interval: 10&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-3005660255591919610?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/iSsSgVk_Grs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/3005660255591919610/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2009/08/cm19a-usb-info.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/3005660255591919610?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/3005660255591919610?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/iSsSgVk_Grs/cm19a-usb-info.html" title="CM19a USB Info" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.cuddon.net/2009/08/cm19a-usb-info.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQNRH85eip7ImA9WxNTEk0.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-7724802044325932758</id><published>2009-08-03T10:33:00.012+10:00</published><updated>2009-08-14T09:33:15.122+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-14T09:33:15.122+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Automation" /><category scheme="http://www.blogger.com/atom/ns#" term="X10" /><category scheme="http://www.blogger.com/atom/ns#" term="CM19a" /><category scheme="http://www.blogger.com/atom/ns#" term="USB" /><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><title>Python Driver for the CM19a X10 USB Transceiver</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/63tI3va8GaMsLOwWqBRmOoChu_k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/63tI3va8GaMsLOwWqBRmOoChu_k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/63tI3va8GaMsLOwWqBRmOoChu_k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/63tI3va8GaMsLOwWqBRmOoChu_k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Python Driver for the CM19a X10 RF Transciever (USB)&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;1. I have started developing a driver for the CM19a using &lt;a href="http://pyusb.wiki.sourceforge.net/" rel="nofollow" target="_blank"&gt;pyUSB&lt;/a&gt;, which allows for easy integration in my home-grown Python-based automation software. PyUSB is simply to install in Ubuntu:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Open a terminal&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Install dependencies: &lt;i style="color: rgb(0, 0, 0);"&gt;sudo apt-get install python gcc python-dev libusb-dev&lt;/i&gt;&lt;/li&gt;&lt;li&gt;Change directory to the puSUB source:&lt;i&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; cd ~/pyusbfolder&lt;/span&gt;&lt;br /&gt;&lt;/i&gt;&lt;/li&gt;&lt;li&gt;Install pyUSB: &lt;i style="color: rgb(0, 0, 0);"&gt;sudo python setup.py install&lt;/i&gt;&lt;/li&gt;&lt;li&gt;Test the installation by running &lt;span style="color: rgb(0, 0, 0);"&gt;usbenum.py&lt;/span&gt; which is found in the samples folder&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;2. Here's a dump of the information extracted from the CM19a using usbenum.py. Note this the vendor information is independent of the actual branding of the device, which in my case is &lt;a href="http://www.winplus.com.au/automated_entertainment.html" rel="nofollow" target="_blank"&gt;Winplus Home Automation&lt;/a&gt;.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Vendor ID:  3015 (decimal),  0bc7 (hex)   = X10 Wireless Technology, Inc.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Device ID:  2 (decimal), 0002 (hex) = Firecracker Interface (ACPI-compliant)&lt;/li&gt;&lt;li&gt;Interface Class = 255 (decimal), FF (Hex) = Vendor Specific&lt;/li&gt;&lt;li&gt;Interface subclass and protocol = 0 (decimal), 0000 (Hex) = Vendor Specific&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="border: 1px solid gray; font-size: 75%; width: 60%;"&gt;&lt;div style="border: 1px solid gray; padding: 4px; font-size: 100%; background-color: silver; font-weight: bold;"&gt;USB Device Details&lt;/div&gt;&lt;br /&gt;Device: 002&lt;br /&gt;Device class: 0&lt;br /&gt;Device sub class: 0&lt;br /&gt;Device protocol: 0&lt;br /&gt;Max packet size: 8&lt;br /&gt;idVendor: 3015 (0x0bc7)   X10 Wireless Technology, Inc.&lt;br /&gt;idProduct: 2 (0x0002)     Firecracker Interface (ACPI-compliant)&lt;br /&gt;Device Version: 01.00&lt;br /&gt;Configuration: 1&lt;br /&gt;Total length: 32&lt;br /&gt;selfPowered: 0&lt;br /&gt;remoteWakeup: 0&lt;br /&gt;maxPower: 4&lt;br /&gt;Interface: 0&lt;br /&gt;Alternate Setting: 0&lt;br /&gt;  Interface class: 255&lt;br /&gt;  Interface sub class: 0&lt;br /&gt;  Interface protocol: 0&lt;br /&gt;  Endpoint: 0x81L&lt;br /&gt;    Type: 3&lt;br /&gt;    Max packet size: 8&lt;br /&gt;    Interval: 10&lt;br /&gt;  Endpoint: 0x2L&lt;br /&gt;    Type: 3&lt;br /&gt;    Max packet size: 8&lt;br /&gt;    Interval: 10&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;3. Now I need to start developing the Python Driver module and classes. The basic approach will likely be something like this:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Load pyUSB&lt;/li&gt;&lt;li&gt;find the correct device and get all the details&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Open the device and claim the interface&lt;br /&gt;&lt;/li&gt;&lt;li&gt; send and receive commands (using the appropriate protocol)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Release the interface&lt;/li&gt;&lt;li&gt;Close and cleanup&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-7724802044325932758?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/HwoeWPQNsMM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/7724802044325932758/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2009/08/python-driver-for-cm19a-x10-usb.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/7724802044325932758?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/7724802044325932758?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/HwoeWPQNsMM/python-driver-for-cm19a-x10-usb.html" title="Python Driver for the CM19a X10 USB Transceiver" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.cuddon.net/2009/08/python-driver-for-cm19a-x10-usb.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEAQnkycSp7ImA9WhdXGU4.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-696017816804415632</id><published>2009-08-03T09:56:00.004+10:00</published><updated>2011-09-02T13:37:23.799+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-02T13:37:23.799+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Automation" /><category scheme="http://www.blogger.com/atom/ns#" term="SR7400" /><category scheme="http://www.blogger.com/atom/ns#" term="AudioVisual" /><title>RS232C Controller Specification for Marantz SR8500/SR7500/SR5500</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/koq6I15qaaNGyVlEE5G16EzTTdI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/koq6I15qaaNGyVlEE5G16EzTTdI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/koq6I15qaaNGyVlEE5G16EzTTdI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/koq6I15qaaNGyVlEE5G16EzTTdI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Click &lt;a href="http://sites.google.com/site/andrewcuddon/blog-attachments/RS232marantzSR7500.doc?attredirects=0"&gt;here &lt;/a&gt;for the specification.&lt;br /&gt;
&lt;br /&gt;
Source: &lt;a href="http://us.marantz.com/136.asp"&gt;Marantz USA&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you are looking for my driver for the &lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;SR7400&lt;/span&gt;&lt;/b&gt; &lt;a href="http://www.cuddon.net/2009/07/marantz-sr7400-surround-sound-receiver.html"&gt;click here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-696017816804415632?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/RUPr04dBCKY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/696017816804415632/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2009/08/rs232c-controller-specification-for.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/696017816804415632?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/696017816804415632?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/RUPr04dBCKY/rs232c-controller-specification-for.html" title="RS232C Controller Specification for Marantz SR8500/SR7500/SR5500" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.cuddon.net/2009/08/rs232c-controller-specification-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4FR3ozcSp7ImA9WxJaEUo.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-600235286708527037</id><published>2009-08-02T10:27:00.000+10:00</published><updated>2009-08-02T10:28:36.489+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-02T10:28:36.489+10:00</app:edited><title>Android on a PC</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wTWT6LuEuxXtdLqbKCOpCHK33-I/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wTWT6LuEuxXtdLqbKCOpCHK33-I/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wTWT6LuEuxXtdLqbKCOpCHK33-I/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wTWT6LuEuxXtdLqbKCOpCHK33-I/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="font-family: arial;font-size:100%;" &gt;Now this is cool. Running Google's Android OS, which was designed for mobile devices, on an X86-based PC. My guess is we'll be seeing more of this on netbooks and mobile-based tablets in the near future.&lt;br /&gt;&lt;br /&gt;Here's all the info and downloads &lt;a href="http://code.google.com/p/live-android/" target="_blank"&gt;http://code.google.com/p/live-android/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At present this is just a live CD but these guys have a hard rive install on their roadmap.&lt;br /&gt;&lt;br /&gt;I have managed to run the live CD under Virtualbox - really easy to get running. It will be interesting to see how well this runs on a low spec/old PC.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="display: block; text-align: left; font-family: arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://sites.google.com/site/andrewcuddon/blog/androidonapc/Screenshot-Android%20%5BRunning%5D%20-%20VirtualBox%20OSE.png?attredirects=0" imageanchor="1"&gt;&lt;img src="http://sites.google.com/site/andrewcuddon/_/rsrc/1248053602633/blog/androidonapc/Screenshot-Android%20%5BRunning%5D%20-%20VirtualBox%20OSE.png?height=342&amp;amp;width=420" width="420" border="0" height="342" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: arial;font-size:100%;" &gt;&lt;br /&gt;I wonder if Python will run under Android?&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-600235286708527037?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/wXCVS8zhlUM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/600235286708527037/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2009/08/android-on-pc.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/600235286708527037?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/600235286708527037?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/wXCVS8zhlUM/android-on-pc.html" title="Android on a PC" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.cuddon.net/2009/08/android-on-pc.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUMRH49eSp7ImA9WxJaEkg.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-818960524293990644</id><published>2009-07-13T11:58:00.012+10:00</published><updated>2009-08-03T10:11:25.061+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-03T10:11:25.061+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Automation" /><category scheme="http://www.blogger.com/atom/ns#" term="SR7400" /><category scheme="http://www.blogger.com/atom/ns#" term="AudioVisual" /><title>Marantz SR7400 Surround Sound Receiver</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0De9iTl12tN4g518oEmAPrs4b4I/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0De9iTl12tN4g518oEmAPrs4b4I/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0De9iTl12tN4g518oEmAPrs4b4I/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0De9iTl12tN4g518oEmAPrs4b4I/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Great sounding receiver&lt;/li&gt;&lt;li&gt;Crossover settings could go a little lower to better cater for small speakers&lt;/li&gt;&lt;li&gt;Automation via its RS232 port&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;Serial Protocol and codes&lt;/b&gt;&lt;br /&gt;Note that the codes used by this receiver are completely different to the SR7&lt;span style="font-weight: bold;"&gt;5&lt;/span&gt;00.&lt;br /&gt;&lt;br /&gt;Here is the official specification (I can no longer find the original source)&lt;br /&gt;&lt;a href="http://sites.google.com/site/andrewcuddon/blog-attachments/MarantzSR7400.pdf?attredirects=0"&gt;Marantz SR7400 Serial Control Specification&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is the &lt;a href="http://sites.google.com/site/andrewcuddon/blog-attachments/MarantzSR7400SerialProtocol.ini?attredirects=0"&gt;serial control protocol&lt;/a&gt; file I use for my AV automation controller.&lt;br /&gt;&lt;br /&gt;This specification also applies to the &lt;span style="font-weight: bold;"&gt;SR8400&lt;/span&gt; (but &lt;u&gt;not&lt;/u&gt; the &lt;a href="http://www.cuddon.net/2009/08/rs232c-controller-specification-for.html"&gt;SR7&lt;span style="font-weight: bold;"&gt;5&lt;/span&gt;00/SR8&lt;span style="font-weight: bold;"&gt;5&lt;/span&gt;00/SR5&lt;span style="font-weight: bold;"&gt;5&lt;/span&gt;00&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;NOTE On the serial comms parameters required&lt;br /&gt;&lt;div style="background-color: silver; width: 33%; color: black; font-size: 80%;"&gt;A STRAIGHT THROUGH serial (NOT a Null Modem cable) is required (the SR7400 has its pins already reversed)&lt;br /&gt;Baud: 9600 bps&lt;br /&gt;Parity: None&lt;br /&gt;Stop Bits: 1&lt;br /&gt;Data bits: 8&lt;br /&gt;Flow Control: RTS/CTS (Hardware Flow Control)&lt;br /&gt;Note that software flow control and no flow control do not work so the connecting master device must support hardware flow control&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Infrared Protocol and codes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Search for SR7400 on the &lt;a href="http://us.marantz.com/136.asp"&gt;Marantz USA&lt;/a&gt; support site.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Python comms driver I wrote to control this device&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here is my &lt;a href="http://sites.google.com/site/andrewcuddon/blog-attachments/SR7400_TCP.py?attredirects=0"&gt;Python driver&lt;/a&gt; for controlling the Marantz SR7400 AV Receiver over TCP (connected via serial to a Global Cache GC-100).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-818960524293990644?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/XO6I5Wv_cJ0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/818960524293990644/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2009/07/marantz-sr7400-surround-sound-receiver.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/818960524293990644?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/818960524293990644?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/XO6I5Wv_cJ0/marantz-sr7400-surround-sound-receiver.html" title="Marantz SR7400 Surround Sound Receiver" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.cuddon.net/2009/07/marantz-sr7400-surround-sound-receiver.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08HQHY6fCp7ImA9WxJUFEk.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-9032659177149405634</id><published>2009-07-13T11:24:00.000+10:00</published><updated>2009-07-13T11:50:31.814+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-13T11:50:31.814+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Automation" /><category scheme="http://www.blogger.com/atom/ns#" term="GC-100" /><category scheme="http://www.blogger.com/atom/ns#" term="AudioVisual" /><title>Global Caché GC-100</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/cJexFs6kBo2gVuH9DTMXStEYOb4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cJexFs6kBo2gVuH9DTMXStEYOb4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/cJexFs6kBo2gVuH9DTMXStEYOb4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cJexFs6kBo2gVuH9DTMXStEYOb4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;This is one of my favourite devices. It allows me to connect a serial device via serial/rs232c port (my Marantz Surround Sound Receiver) and 3 infrared devices (TV etc) to my Ethernet network. It has been key to integrating my AV equipment into my automation environment.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Global Cach&lt;/b&gt;&lt;span style="font-weight: bold;"&gt;é&lt;/span&gt;&lt;b&gt;'s website&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.globalcache.com/"&gt;http://www.globalcache.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Availabilty&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;The device is not widely available in Australia. However I was able to get one via a Sydney based stoe on ebay.&lt;br /&gt;&lt;br /&gt;Lifestyle Automation: on &lt;a href="http://stores.shop.ebay.com.au/LifeStyle-Automation"&gt;&lt;span style="text-decoration: underline;"&gt;ebay&lt;/span&gt;&lt;/a&gt;. Great service from this guy. He even returned to device to the US to get the latest firmware.&lt;br /&gt;&lt;br /&gt;I had a few problems wither ther version 2 software that came on my device initially. After upgrading to software version: 3.2-06, the device has been running very smoothly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-9032659177149405634?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/YRQiZeM5hPA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/9032659177149405634/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2009/07/global-cache-gc-100.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/9032659177149405634?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/9032659177149405634?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/YRQiZeM5hPA/global-cache-gc-100.html" title="Global Caché GC-100" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.cuddon.net/2009/07/global-cache-gc-100.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8AQ3k6eCp7ImA9WxJUFEk.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-8641144761599855969</id><published>2009-07-13T11:13:00.000+10:00</published><updated>2009-07-13T11:17:22.710+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-13T11:17:22.710+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="X10" /><category scheme="http://www.blogger.com/atom/ns#" term="CM19a" /><title>CM19a USB X10 Transceiver - Existing Drivers</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/d3tslk-6Z5vNLyiFhZBrZ32M7_s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/d3tslk-6Z5vNLyiFhZBrZ32M7_s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/d3tslk-6Z5vNLyiFhZBrZ32M7_s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/d3tslk-6Z5vNLyiFhZBrZ32M7_s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div&gt; &lt;div&gt;&lt;p&gt;A quick google search shows that there are many drivers (Windows and Linux) available for X10 devices that are connected to your PC via a serial port. This is not the case for USB connected X10 devices such as the CM19a X10 wireless transceiver (also called ....). The device came with a firecracker driver for Windows, but Linux was a completely different story.&lt;br /&gt;&lt;/p&gt; &lt;p&gt;Here are some of the drivers I have been able to locate but none is particularly comprehensive in terms of functionality and ease of use.&lt;/p&gt; &lt;p&gt;At present I am using this one from Michael LeMay &lt;a href="http://lemaymd.com/drupal/node/3" rel="nofollow"&gt;http://lemaymd.com&lt;/a&gt; which is part of his X10mms software suite. It’s a linux kernal driver rather than a standalone USB module which is great for stability but means it needs to be installed on each PC you run it on (not so easy for inexperienced Linux user).&lt;/p&gt; &lt;p&gt;Some great instructions on how to install it are located here: &lt;a href="http://wp.pr0gr4mm3r.com/linux/getting-your-x10-cm19a-module-working-in-linux/" rel="nofollow"&gt;http://wp.pr0gr4mm3r.com&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;Here’s Neil Cherry’s pages which contain some drivers and links to others. When I get a chance I want to see if I can construct a driver using Python.&lt;br /&gt;&lt;a href="http://www.linuxha.com/USB/" rel="nofollow"&gt;Linuxha USB page&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.linuxha.com/USB/cm19a.html" rel="nofollow"&gt;Linuxha CM19a page&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.linuxha.com/USB/cm19a.html" rel="nofollow"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-8641144761599855969?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/vmCpxMYS8VM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/8641144761599855969/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2009/07/cm19a-usb-x10-transceiver-existing.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/8641144761599855969?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/8641144761599855969?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/vmCpxMYS8VM/cm19a-usb-x10-transceiver-existing.html" title="CM19a USB X10 Transceiver - Existing Drivers" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.cuddon.net/2009/07/cm19a-usb-x10-transceiver-existing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4NRX0zfCp7ImA9WxJUE0o.&quot;"><id>tag:blogger.com,1999:blog-136957934485772232.post-4362649043525991315</id><published>2009-07-12T14:43:00.000+10:00</published><updated>2009-07-12T14:46:34.384+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-12T14:46:34.384+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Automation" /><title>Automation</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6E68g4mjLkCRGLVX23daBYv6qDI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6E68g4mjLkCRGLVX23daBYv6qDI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6E68g4mjLkCRGLVX23daBYv6qDI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6E68g4mjLkCRGLVX23daBYv6qDI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="font-family: verdana;font-size:100%;" &gt;This Category of posts is a collection of information and thoughts from my experiences in building a system from scratch to automate my AV system, and to a lesser extend other home devices. This project commenced as a basic desire for a way of controlling the various components of my lounge room's audio visual system - so that family members with little understanding of the devices and how they were connected could easily operate the equipment and maximise the pleasure of great sound and video quality.&lt;br /&gt;&lt;br /&gt;Initially I used the Marantz learning remote that came with my amp - using a series of macros. Although I think this is a great learning remote - it was difficult to make it foolproof for my family and the varying way in which they use the equipment. That's when I stumbled across great activiy based fully programmable remotes (such as the ipronto) but their price was impossible to justify and often they did not seem to be able to do exactly what I wanted.&lt;br /&gt;&lt;br /&gt;So I decied I would do my own thing from scratch and embarked on a journey of discovery.  I learned much about the hardware, communications protocols, commercial products and open source projects, and found my favourite programming language - Python.&lt;br /&gt;&lt;br /&gt;My system, as it currenlty stands, employs a range of protocols and devices that make it all tie together via my home LAN. Protocols used include TCP/IP, serial comms, Infrared, X-10, wired and wireless Ethernet and it's all controlled via my Python program running on my central server (Desktop Edition of Ubuntu 8.04 LTS - Hardy Heron).&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/136957934485772232-4362649043525991315?l=www.cuddon.net' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Cuddonnet/~4/SKkn7OUW9lI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.cuddon.net/feeds/4362649043525991315/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.cuddon.net/2009/07/automation.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/4362649043525991315?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/136957934485772232/posts/default/4362649043525991315?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Cuddonnet/~3/SKkn7OUW9lI/automation.html" title="Automation" /><author><name>Andrew Cuddon</name><uri>https://profiles.google.com/100115418396733096968</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-y752K0UgEBg/AAAAAAAAAAI/AAAAAAAAAAA/5rWaNrryakc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.cuddon.net/2009/07/automation.html</feedburner:origLink></entry></feed>

