<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Maartendamen&#039;s blog &#187; wireless</title>
	<atom:link href="http://www.maartendamen.com/tag/wireless/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.maartendamen.com</link>
	<description>Blogging on various IT subjects</description>
	<lastBuildDate>Tue, 22 Nov 2011 21:27:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Horstmann HRT4-ZW Thermostat &#8211; open ends</title>
		<link>http://www.maartendamen.com/2011/06/horstmann-hrt4-zw-thermostat-open-ends/</link>
		<comments>http://www.maartendamen.com/2011/06/horstmann-hrt4-zw-thermostat-open-ends/#comments</comments>
		<pubDate>Mon, 13 Jun 2011 18:53:40 +0000</pubDate>
		<dc:creator>Maarten</dc:creator>
				<category><![CDATA[Home automation]]></category>
		<category><![CDATA[horstmann]]></category>
		<category><![CDATA[hrt4-zw]]></category>
		<category><![CDATA[thermostat]]></category>
		<category><![CDATA[wireless]]></category>
		<category><![CDATA[z-wave]]></category>

		<guid isPermaLink="false">http://www.maartendamen.com/?p=775</guid>
		<description><![CDATA[A few weeks ago I received an e-mail from a guy who rather stays anonymous, but had some really great additional/detailed information about the HRT4-ZW thermostat. There&#8217;s some things I missed out, or did configure along the way while tinkering with this device but forgot to mention. So here&#8217;s a post about these &#8220;open ends&#8221;. [...]]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago I received an e-mail from a guy who rather stays anonymous, but had some really great additional/detailed information about the HRT4-ZW thermostat.<br />
There&#8217;s some things I missed out, or did configure along the way while tinkering with this device but forgot to mention. So here&#8217;s a post about these &#8220;open ends&#8221;.</p>
<ul>
<li>Previously I mentioned an &#8220;ERASE&#8221; mode, this is actually &#8220;EXCLUDE&#8221; mode. This mode should only be used if your thermostat was previously installed in a z-wave network, I guess this was the case when I first set-up my thermostat. The protocol reset does more or less the same but is more extensive. It removes any network information from the HRT4-ZW and returns it to the factory default state (The double press of the dial is to avoid accidental operation)</li>
<p></p>
<li>The way incorporate the devices with a controller (in my case the Aeon Labs Z-Stick) is to start with both in an unassigned state. Install each device separately on to your controller. The Association between the two devices may be done using the ‘A’ command on the HRT4-ZW and pressing the install button on the ASR. This does not require knowledge of the node numbers. The install (network) button is required for installation. You need to hold the button down for over a second.</li>
<p></p>
<li>I forgot to mention about the wake-up time, I changed the wake-up time while it was in the LI (listen) mode. The default wake-up time is around 23 hours, which is a bit long when you want your thermostat changed. I changed it to 256 seconds or in other words 4 minutes and 16 seconds (the bare minimum value), but I might change it to a higher value again later on.. please see the point below why..</li>
<p></p>
<li>The 2 year battery life (as reported by Horstmann) is based on normal use as a stand-alone thermostat. Use in a network where the HRT4-ZW is woken up regularly will reduce this time. That’s why there is a minimum wake-up interval. Battery life should not be a problem in practice, but please note that when the HRT4-ZW is in installer mode (switch 1 up) the Z-Wave module is permanently powered and takes much more power. This is why my battery life reported 90% after some tests. 0% is 2V and 100% is 3V or above. A new set of batteries will normally give just over 3V (2xAAA, 1.5v each)</li>
<p></p>
<li>There is actually a second and third configuration parameter I forgot to mention about. The second one allows you to change to Fahrenheit messages. The third one allows you to set a delta t for reporting temperature changes. A message will be sent to associated nodes if the temperature changes by delta t. This parameter defaults to 1°C.</li>
<p></p>
<li>When controlled by Z-Wave messages rather than turning the dial, you can actually set the setpoint to 0.1°C steps. This will not show up on the display as it’s only 2 digits, but it will attempt to control to it. For example you could set the setpoint to 20.6°C if you wished. 21°C will be shown on the display as the demand temperature is rounded up. Fahrenheit temperatures are converted internally to the nearest 0.1°C so will not give you more accuracy.</li>
</ul>
<p>Some really valuable additional information, thanks a lot Mr.Anonymous ! :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.maartendamen.com/2011/06/horstmann-hrt4-zw-thermostat-open-ends/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Horstmann HRT4-ZW Thermostat</title>
		<link>http://www.maartendamen.com/2011/05/horstmann-hrt4-zw-thermostat/</link>
		<comments>http://www.maartendamen.com/2011/05/horstmann-hrt4-zw-thermostat/#comments</comments>
		<pubDate>Thu, 19 May 2011 18:20:37 +0000</pubDate>
		<dc:creator>Maarten</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Home automation]]></category>
		<category><![CDATA[open-zwave]]></category>
		<category><![CDATA[thermostat]]></category>
		<category><![CDATA[wireless]]></category>
		<category><![CDATA[z-wave]]></category>

		<guid isPermaLink="false">http://www.maartendamen.com/?p=734</guid>
		<description><![CDATA[About one month ago I ordered a Horstmann HRT4-ZW thermostat. I came across this z-wave thermostat while I was surfing across the web. As far as I know this is the only EU thermostat available right now. Some of the features I like and I was looking for in a z-wave thermostat: Control the setpoint [...]]]></description>
			<content:encoded><![CDATA[<p>About one month ago I ordered a <a href="http://www.horstmann.co.uk/downloads/ElectronicDocuments/Central-Heating/HRT4-ZWdataweb.pdf">Horstmann HRT4-ZW</a> thermostat. I came across this z-wave thermostat while I was surfing across the web. As far as I know this is the only EU thermostat available right now. Some of the features I like and I was looking for in a z-wave thermostat:</p>
<ul>
<li>Control the setpoint</li>
<li>Get a setpoint report when it is manually changed (also notifications of battery levels and the room temperature)</li>
<li>Get the actual room temperature</li>
</ul>
<p>There are several posts on the Micasa Verde and Homeseer forums that device is not working in their software, despite this fact I decided to take the risk and order this device. The total cost including shipping costs was just under €100.<br />
The HRT4-ZW is a thermostat system that consists of two devices, one controller (the user side of the system, where you control the set point etc.) and a receiver (this one needs to be attached to your HVAC system). Here&#8217;s a picture of both devices:<br />
<span id="more-734"></span></p>
<p><a href="http://www.maartendamen.com/wp-content/uploads/2011/05/HRT4-ZW-montage.jpg"><img src="http://www.maartendamen.com/wp-content/uploads/2011/05/HRT4-ZW-montage.jpg" alt="" title="HRT4-ZW-montage" width="370" height="380" class="alignnone size-full wp-image-735" /></a></p>
<p><strong>Getting my feet wet: the first steps</strong></p>
<p>The first step I took when I got the device was creating a test setup, I connected an old PC power supply cable to the receiver (it needs 230v). Put in the batteries of the controller device and I was good to go! I decided the first step I had to take was getting values from the device (temperature, current set point and battery level as a bonus). Horstmann has provided detailed z-wave information in a separate document, available <a href="http://www.pepper1.net/zwavedb/uploads/resources/c9a9e2f0a21623166ddfc437c4f842c34020aa45.pdf">here</a>.<br />
One of the requirements for me was to include the controller device into my existing z-wave network, that appears to be a pretty trivial task. But, it turned out it was one of the most difficult tasks.<br />
I completely read through the z-wave document over and over again, but after 2 evenings of playing around with I was about to give up. The L mode as described in the document does include the controller within an existing z-wave network, but that loses the connection with the device that you attach to your HVAC.<br />
Separately re-associating that unit is not an option as the network button on the device does not do anything. Or, maybe it can be used?<br />
I figured out that once you put the controller unit into ERASE mode, the receiver network LED will blink as if it is ready for association. This turned out to be the key to getting both nodes included within my existing z-wave network! Here are the steps in detail:</p>
<p>1) Put the thermostat into program mode (dip switch 1 into position ON)<br />
2) Select the P option, double click the rotary wheel until PP appears on the display.<br />
3) Now go to the E, for ERASE mode. Click the rotary wheel once again until the E starts blinking.<br />
4) At this point the receiver network LED should be blinking, this means the node is ready for inclusion.<br />
5) Now, remove the batteries from the controller! Yes, just do it :-)<br />
6) Include the receiver by pushing the include button on your z-wave network stick (in my case an Aeon Labs z-stick), after that press the network button on the receiver until the ON led starts to blink.<br />
7) The receiver is now included!<br />
8) Include the controller by using the L function as described in the z-wave documentation.</p>
<p>You should now end up with two thermostat devices in your z-wave network. Here&#8217;s a screenshot from <a href="http://projects.maartendamen.com/projects/houseagent">HouseAgent</a>:</p>
<p><a href="http://www.maartendamen.com/wp-content/uploads/2011/05/17-5-2011-23-45-16.png"><img src="http://www.maartendamen.com/wp-content/uploads/2011/05/17-5-2011-23-45-16.png" alt="" title="17-5-2011 23-45-16" width="584" height="106" class="alignnone size-full wp-image-739" /></a></p>
<p>Node number 3 is the receiver and node 4 is the controller. Node 3 is quite useless (it doesn&#8217;t report any z-wave classes, except basic) but it needs to be included within the same network in order to work with the controller. Here are the z-wave classes reported by the controller, again a screenshot from HouseAgent:</p>
<p><a href="http://www.maartendamen.com/wp-content/uploads/2011/05/17-5-2011-23-48-52.png"><img src="http://www.maartendamen.com/wp-content/uploads/2011/05/17-5-2011-23-48-52.png" alt="" title="17-5-2011 23-48-52" width="727" height="411" class="alignnone size-full wp-image-741" /></a></p>
<p>Please note that the controller is a sleeping z-wave device, requests for this device need to be queued until the device comes available. The device will send a wakeup notification once it comes online. You can queue commands to the controller, and when it gets online send these commands.</p>
<p><strong>Associations</strong></p>
<p>In order to receive updates from the controller once a value changes you need to set associations. The thermostat supports associations for unsollicited room temperature, setpoint and battery reports. I set associations for each of these reports to my z-wave stick. Here&#8217;s an overview of my configuration (more information of the specifications of these groups can be found in the Horstmann document):</p>
<p><a href="http://www.maartendamen.com/wp-content/uploads/2011/05/associations.png"><img src="http://www.maartendamen.com/wp-content/uploads/2011/05/associations.png" alt="" title="associations" width="671" height="337" class="alignnone size-full wp-image-757" /></a></p>
<p><strong>Setting the setpoint</strong></p>
<p>This was my final task to be actually able to control the thermostat. Because this is a sleepjng device commands need to be queued, this was an easy thing to do in open-zwave. The problem was however that my Python z-wave wrapper had no support for setting values.. yet. I commited a new version of my open-zwave python wrapper, with setvalue support to github!</p>
<p>Here&#8217;s an example of the setvalue command being executed after the device woke up:</p>
<p><code><br />
2011-05-19 20:10:01:771 Received Wakeup Notification from node 4<br />
2011-05-19 20:10:01:772   Node 4 has been marked as awake<br />
2011-05-19 20:10:01:774 Queuing command: Set Thermostat Setpoint (Node=4): 0x01, 0x0c, 0x00, 0x13, 0x04, 0x05, 0x43, 0x01, 0x01, 0x01, 0x0f, 0x05, 0x09, 0xa0<br />
2011-05-19 20:10:01:817 Sending command (Callback ID=0x09, Expected Reply=0x13) - Set Thermostat Setpoint (Node=4): 0x01, 0x0c, 0x00, 0x13, 0x04, 0x05, 0x43, 0x01, 0x01, 0x01, 0x0f, 0x05, 0x09, 0xa0<br />
2011-05-19 20:10:01:822   ACK received CallbackId 0x09 Reply 0x13<br />
2011-05-19 20:10:01:825   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8<br />
2011-05-19 20:10:01:828   ZW_SEND_DATA delivered to Z-Wave stack<br />
2011-05-19 20:10:01:838   Received: 0x01, 0x05, 0x00, 0x13, 0x09, 0x00, 0xe0<br />
2011-05-19 20:10:01:840   ZW_SEND_DATA Request with callback ID 0x09 received (expected 0x09)<br />
2011-05-19 20:10:01:845   Expected reply was received<br />
2011-05-19 20:10:01:869   Message transaction complete<br />
</code></p>
<p><strong>Physical/electrical connections</strong></p>
<p>I was unsure about the electrical connections required from the receiver to my HVAC, so I decided to hook up two wires to the points I expected to be the required connections. After that I tested it with the continuity function of my multimeter. Here&#8217;s a video of my test setup:</p>
<p><iframe width="425" height="349" src="http://www.youtube.com/embed/9ldwge_3fJc" frameborder="0" allowfullscreen></iframe></p>
<p><strong>Parameters</strong></p>
<p>One more sidenote, there are two configuration parameters available. Configuration parameter 1 must be set in order for room temperature reporting to work! This does not work out of the box..</p>
<p>This concludes my long post about this thermostat, next up for me is creating a nice GUI for it&#8230; now that I got everything figured out.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.maartendamen.com/2011/05/horstmann-hrt4-zw-thermostat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opening the Belkin Home Base</title>
		<link>http://www.maartendamen.com/2011/02/opening-the-belkin-home-base/</link>
		<comments>http://www.maartendamen.com/2011/02/opening-the-belkin-home-base/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 05:06:37 +0000</pubDate>
		<dc:creator>Maarten</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Reverse engineering]]></category>
		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://www.maartendamen.com/?p=508</guid>
		<description><![CDATA[Today I received a new gadget, the Belkin Home Base. It&#8217;s a wireless and wired network USB hub. After playing around a bit with (works just fine!) I decided to open it.. why? Just because I can :-) Opening this things was a piece of cake, just mind that there is a Torx T7 screw [...]]]></description>
			<content:encoded><![CDATA[<p>Today I received a new gadget, the Belkin Home Base. It&#8217;s a wireless and wired network USB hub.</p>
<p><a href="http://www.maartendamen.com/wp-content/uploads/2011/02/homebase.jpg"><img src="http://www.maartendamen.com/wp-content/uploads/2011/02/homebase.jpg" alt="" title="homebase" width="472" height="277" class="aligncenter size-full wp-image-509" /></a></p>
<p>After playing around a bit with (works just fine!) I decided to open it.. why? Just because I can :-)<br />
Opening this things was a piece of cake, just mind that there is a Torx T7 screw in the right bottom corner. It&#8217;s hidden underneath the information label:<br />
<span id="more-508"></span></p>
<p><a href="http://www.maartendamen.com/wp-content/uploads/2011/02/17-2-2011-22.02.16-0000.png"><img src="http://www.maartendamen.com/wp-content/uploads/2011/02/17-2-2011-22.02.16-0000.png" alt="" title="17-2-2011 22.02.16 0000" width="622" height="464" class="aligncenter size-full wp-image-521" /></a></p>
<p>Here are some pictures of the board itself: </p>
<p><a href="http://www.maartendamen.com/wp-content/uploads/2011/02/17-2-2011-21.55.42-0001.png"><img src="http://www.maartendamen.com/wp-content/uploads/2011/02/17-2-2011-21.55.42-0001.png" alt="" title="17-2-2011 21.55.42 0001" width="574" height="769" class="alignnone size-full wp-image-513" /></a><br />
<em>Frontside of the Home Base PCB.</em></p>
<p><a href="http://www.maartendamen.com/wp-content/uploads/2011/02/17-2-2011-21.55.42-0002.png"><img src="http://www.maartendamen.com/wp-content/uploads/2011/02/17-2-2011-21.55.42-0002.png" alt="" title="17-2-2011 21.55.42 0002" width="574" height="769" class="alignnone size-full wp-image-515" /></a><br />
<em>Backside of the Home Base PCB.</em></p>
<p>There are two interesting headers on the board (1&#215;6 pin and 1x2x7 pin), I will play around with them a bit later on (in fact, I already did.. I&#8217;ll just save that for a later blog post..):</p>
<p><a href="http://www.maartendamen.com/wp-content/uploads/2011/02/headers.png"><img src="http://www.maartendamen.com/wp-content/uploads/2011/02/headers.png" alt="" title="headers" width="194" height="308" class="alignnone size-full wp-image-523" /></a></p>
<p>To be continued.. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.maartendamen.com/2011/02/opening-the-belkin-home-base/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>RFM12B prototyping &#8211; on a breadboard</title>
		<link>http://www.maartendamen.com/2011/01/rfm12b-prototyping-on-a-breadboard/</link>
		<comments>http://www.maartendamen.com/2011/01/rfm12b-prototyping-on-a-breadboard/#comments</comments>
		<pubDate>Thu, 06 Jan 2011 22:46:52 +0000</pubDate>
		<dc:creator>Maarten</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[rfm12b]]></category>
		<category><![CDATA[soldering]]></category>
		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://www.maartendamen.com/?p=502</guid>
		<description><![CDATA[I recently wanted to prototype with the RFM12B wireless transceiver from HopeRF. The bad thing is that this transceiver comes in a SMD package/form. So I had to find a solution for this, luckily Steve Evans had a nice suggestion for me. His suggestion was to use two male headers on each side, bending the [...]]]></description>
			<content:encoded><![CDATA[<p>I recently wanted to prototype with the <a href="http://www.google.nl/url?sa=t&#038;source=web&#038;cd=1&#038;ved=0CBcQFjAA&#038;url=http%3A%2F%2Fwww.hoperf.com%2Fupfile%2FRFM12B.pdf&#038;ei=XkEmTcvEF5GbOq3t5IYD&#038;usg=AFQjCNFicXjTvejoKOR8IIWRLNpmLWfiPw&#038;sig2=ydWVTZgpspqelAKaZ1b81g">RFM12B</a> wireless transceiver from HopeRF.<br />
The bad thing is that this transceiver comes in a SMD package/form. So I had to find a solution for this, luckily Steve Evans had a nice suggestion for me.<br />
<span id="more-502"></span><br />
His suggestion was to use two male headers on each side, bending the pins slightly to each other (the middle pins are not used in my circuit). And then soldering it onto the RFM12B.</p>
<p>This is how it looks:</p>
<p><a href="http://www.maartendamen.com/wp-content/uploads/2011/01/rfm12b_1.png"><img src="http://www.maartendamen.com/wp-content/uploads/2011/01/rfm12b_1.png" alt="" title="rfm12b_1" width="331" height="264" class="alignnone size-full wp-image-503" /></a></p>
<p>And this is how it looks on a (solder less) breadboard:</p>
<p><a href="http://www.maartendamen.com/wp-content/uploads/2011/01/rfm12b_2.png"><img src="http://www.maartendamen.com/wp-content/uploads/2011/01/rfm12b_2.png" alt="" title="rfm12b_2" width="539" height="470" class="alignnone size-full wp-image-504" /></a></p>
<p>Great stuff, thanks Steve!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.maartendamen.com/2011/01/rfm12b-prototyping-on-a-breadboard/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New router part 2: Linksys WRT320N serial console</title>
		<link>http://www.maartendamen.com/2010/09/new-router-part-2-linksys-wrt320n-serial-console/</link>
		<comments>http://www.maartendamen.com/2010/09/new-router-part-2-linksys-wrt320n-serial-console/#comments</comments>
		<pubDate>Wed, 15 Sep 2010 18:00:04 +0000</pubDate>
		<dc:creator>Maarten</dc:creator>
				<category><![CDATA[Routers]]></category>
		<category><![CDATA[linksys]]></category>
		<category><![CDATA[Reverse engineering]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[wireless]]></category>
		<category><![CDATA[wrt]]></category>

		<guid isPermaLink="false">http://www.maartendamen.com/?p=422</guid>
		<description><![CDATA[Yesterday I posted about my new Linksys router, I had to open it because I flashed a wrong firmware image to it. All it did was flashing a blue led.. but there&#8217;s a cure. In this post I will explain how to connect a serial console to your Linksys WRT320N router! Remember the solder pads [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I posted about my new Linksys router, I had to open it because I flashed a wrong firmware image to it.<br />
All it did was flashing a blue led.. but there&#8217;s a cure.</p>
<p>In this post I will explain how to connect a serial console to your Linksys WRT320N router!<br />
<span id="more-422"></span><br />
Remember the solder pads from the last post? Here&#8217;s a closeup image:</p>
<p><a href="http://www.maartendamen.com/wp-content/uploads/2010/09/router31.jpg"><img src="http://www.maartendamen.com/wp-content/uploads/2010/09/router31.jpg" alt="" title="router3" width="634" height="475" class="alignnone size-full wp-image-425" /></a></p>
<p>The pads are labeled, it&#8217;s a serial connection. Connecting only the RX/TX signals and the GND signal is sufficient.<br />
Please note that you need a logic level converter (such as a max232, or telephone datacables) to convert the signal.</p>
<p>Now that we have a possibility to connect to the console of the router, we can all sorts of cool stuff. Including interrupting the bootloader to flash a new firmware image!<br />
Here&#8217;s a boot log of the router with a dd-wrt (big) image:</p>
<p><code><br />
CFE version 1.0.37 for BCM947XX (32bit,SP,LE)<br />
Build Date: Fri Jul 24 07:15:00 EDT 2009 (root@Raymond.Lai)<br />
Copyright (C) 2000,2001,2002,2003 Broadcom Corporation.</p>
<p>Initializing Arena<br />
Initializing Devices.</p>
<p>No DPN<br />
This is a Serial Flash<br />
Boot partition size = 262144(0x40000)<br />
Found a 8MB ST compatible serial flash<br />
Partition information:<br />
boot    #00   00000000 -> 0003FFFF  (262144)<br />
trx     #01   00040000 -> 0004001B  (28)<br />
os      #02   0004001C -> 007F7FFF  (8093668)<br />
nvram   #03   007F8000 -> 007FFFFF  (32768)<br />
Partition information:<br />
boot    #00   00000000 -> 0003FFFF  (262144)<br />
trx     #01   00040000 -> 007F7FFF  (8093696)<br />
nvram   #02   007F8000 -> 007FFFFF  (32768)<br />
BCM47XX_GMAC_ID<br />
et0: Broadcom BCM47XX 10/100/1000 Mbps Ethernet Controller 5.10.56.9<br />
CPU type 0x19740: 354MHz<br />
Total memory: 32768 KBytes</p>
<p>Total memory used by CFE:  0x80700000 - 0x807A1D80 (662912)<br />
Initialized Data:          0x80735D20 - 0x80738920 (11264)<br />
BSS Area:                  0x80738920 - 0x8073BD80 (13408)<br />
Local Heap:                0x8073BD80 - 0x8079FD80 (409600)<br />
Stack Area:                0x8079FD80 - 0x807A1D80 (8192)<br />
Text (code) segment:       0x80700000 - 0x80735D18 (220440)<br />
Boot area (physical):      0x007A2000 - 0x007E2000<br />
Relocation Factor:         I:00000000 - D:00000000</p>
<p>Boot version: v5.4<br />
The boot is CFE<br />
Nothing...</p>
<p>### CLKDIV= 0x80a082c, SFlashClkDiv=8 clkdivsf=2 ###<br />
### Change it to 0x20a082c (2) ###<br />
CMD: [ifconfig eth0 -addr=192.168.1.1 -mask=255.255.255.0]<br />
Device eth0:  hwaddr 68-7F-74-96-43-CC, ipaddr 192.168.1.1, mask 255.255.255.0<br />
        gateway not set, nameserver not set<br />
CMD: [go;]<br />
Check CRC of image1<br />
  Len:     0x6E0000     (7208960)       (0xBC040000)<br />
  Offset0: 0x1C         (28)            (0xBC04001C)<br />
  Offset1: 0x9A8        (2472)  (0xBC0409A8)<br />
  Offset2: 0x14CC00     (1362944)       (0xBC18CC00)<br />
  Header CRC:    0x853EE8DC<br />
  Calculate CRC: 0x853EE8DC<br />
Image 1 is OK<br />
Try to load image 1.<br />
Waiting for 5 seconds to upgrade ...<br />
CMD: [load -raw -addr=0x807a1d80 -max=0x185e280 :]<br />
Loader:raw Filesys:tftp Dev:eth0 File:: Options:(null)<br />
Loading: _tftpd_open(): retries=0/5<br />
_tftpd_open(): retries=1/5<br />
_tftpd_open(): retries=2/5<br />
_tftpd_open(): retries=3/5<br />
_tftpd_open(): retries=4/5</p>
<p>### Start=486462851 E=1250622957 Delta=764160106 ###<br />
Failed.<br />
Could not load :: Timeout occured<br />
CMD: [boot -raw -z -addr=0x80001000 -max=0x6ff000 flash0.os:]<br />
Loader:raw Filesys:raw Dev:flash0.os File: Options:(null)<br />
Loading: .. 3856 bytes read</p>
<p>### Start=1257679943 E=1260915130 Delta=3235187 ###<br />
Entry at 0x80001000<br />
Closing network.<br />
Starting program at 0x80001000<br />
Linux version 2.6.24.111 (root@dd-wrt) (gcc version 4.1.2) #1987 Sat Aug 7 02:06:16 CEST 2010<br />
CPU revision is: 00019740<br />
Found a 8MB ST compatible serial flash<br />
Determined physical RAM map:<br />
 memory: 02000000 @ 00000000 (usable)<br />
Built 1 zonelists in Zone order.  Total pages: 8128<br />
Kernel command line: console=ttyS0,115200 root=1f02 rootfstype=squashfs noinitrd<br />
Primary instruction cache 32kB, physically tagged, 4-way, linesize 32 bytes.<br />
Primary data cache 32kB, 4-way, linesize 32 bytes.<br />
Synthesized TLB refill handler (20 instructions).<br />
Synthesized TLB load handler fastpath (32 instructions).<br />
Synthesized TLB store handler fastpath (32 instructions).<br />
Synthesized TLB modify handler fastpath (31 instructions).<br />
PID hash table entries: 128 (order: 7, 512 bytes)<br />
CPU: BCM4716 rev 1 at 354 MHz<br />
Using 177.000 MHz high precision timer.<br />
console [ttyS0] enabled<br />
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)<br />
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)<br />
Memory: 27344k/32768k available (3144k kernel code, 5424k reserved, 1479k data, 144k init, 0k highmem)<br />
Mount-cache hash table entries: 512<br />
NET: Registered protocol family 16<br />
Generic PHY: Registered new driver<br />
PCI: Using membase 8000000<br />
PCI: Disabled<br />
PCI: Fixing up bus 0<br />
PCI: Fixing up bus 1<br />
NET: Registered protocol family 2<br />
Time: MIPS clocksource has been installed.<br />
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)<br />
TCP established hash table entries: 1024 (order: 1, 8192 bytes)<br />
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)<br />
TCP: Hash tables configured (established 1024 bind 1024)<br />
TCP reno registered<br />
devfs: 2004-01-31 Richard Gooch (rgooch@atnf.csiro.au)<br />
devfs: boot_options: 0x1<br />
squashfs: version 3.0 (2006/03/15) Phillip Lougher<br />
io scheduler noop registered<br />
io scheduler deadline registered (default)<br />
HDLC line discipline: version $Revision: 4.8 $, maxframe=4096<br />
N_HDLC line discipline registered.<br />
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled<br />
serial8250: ttyS0 at MMIO 0x0 (irq = 8) is a 16550A<br />
PPP generic driver version 2.4.2<br />
PPP Deflate Compression module registered<br />
PPP BSD Compression module registered<br />
MPPE/MPPC encryption/compression module registered<br />
NET: Registered protocol family 24<br />
PPPoL2TP kernel driver, V1.0<br />
tun: Universal TUN/TAP device driver, 1.6<br />
tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com><br />
eth0: Broadcom BCM47XX 10/100/1000 Mbps Ethernet Controller 5.10.56.27<br />
pflash: found no supported devices<br />
bootloader size: 262144<br />
sflash: Filesystem type: squashfs, size=0x585356<br />
partition size = 5846016<br />
Creating 5 MTD partitions on "sflash":<br />
0x00000000-0x00040000 : "cfe"<br />
0x00040000-0x007f0000 : "linux"<br />
0x0018cc00-0x00720000 : "rootfs"<br />
mtd: partition "rootfs" doesn't start on an erase block boundary -- force read-only<br />
0x007f0000-0x00800000 : "nvram"<br />
0x00720000-0x007f0000 : "ddwrt"<br />
Broadcom Watchdog Timer: 0.07 initialized.<br />
u32 classifier<br />
    Actions configured<br />
Netfilter messages via NETLINK v0.30.<br />
nf_conntrack version 0.5.0 (1024 buckets, 4096 max)<br />
ctnetlink v0.93: registering with nfnetlink.<br />
IPv4 over IPv4 tunneling driver<br />
GRE over IPv4 tunneling driver<br />
ip_tables: (C) 2000-2006 Netfilter Core Team<br />
ClusterIP Version 0.8 loaded successfully<br />
TCP bic registered<br />
TCP cubic registered<br />
TCP westwood registered<br />
TCP highspeed registered<br />
TCP hybla registered<br />
TCP htcp registered<br />
TCP vegas registered<br />
TCP scalable registered<br />
NET: Registered protocol family 1<br />
NET: Registered protocol family 17<br />
Welcome to PF_RING 3.2.1<br />
(C) 2004-06 L.Deri <deri@ntop.org><br />
NET: Registered protocol family 27<br />
PF_RING: bucket length    128 bytes<br />
PF_RING: ring slots       4096<br />
PF_RING: sample rate      1 [1=no sampling]<br />
PF_RING: capture TX       No [RX only]<br />
PF_RING: transparent mode Yes<br />
PF_RING initialized correctly.<br />
PF_RING: registered /proc/net/pf_ring/<br />
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com><br />
All bugs added by David S. Miller <davem@redhat.com><br />
decode 1f02<br />
VFS: Mounted root (squashfs filesystem) readonly.<br />
Mounted devfs on /dev<br />
Freeing unused kernel memory: 144k freed<br />
start service<br />
starting Architecture code for broadcom<br />
Booting device: Linksys WRT320N<br />
loading bcm57xx<br />
[USB] checking...<br />
sh: can't create /proc/switch/eth0/reset: nonexistent directory<br />
sh: can't create /proc/switch/eth1/reset: nonexistent directory<br />
sh: can't create /proc/switch/eth0/vlan/1/ports: nonexistent directory<br />
sh: can't create /proc/switch/eth0/vlan/1/ports: nonexistent directory<br />
sh: can't create /proc/switch/eth0/vlan/2/ports: nonexistent directory<br />
sh: can't create /proc/switch/eth0/vlan/2/ports: nonexistent directory<br />
/etc/preinit: line 66: can't create /proc/sys/net/ipv4/ip_conntrack_max: nonexistent directory<br />
Unlocking ddwrt ...<br />
eth1: Operation not supported<br />
wl0.1: No such device<br />
wl0.2: No such device<br />
wl0.3: No such device<br />
nbw = 20<br />
eth1: Operation not supported<br />
eth1: Operation not supported<br />
eth1: Operation not supported<br />
eth1: Operation not supported<br />
br0: Dropping NETIF_F_UFO since no NETIF_F_HW_CSUM feature.<br />
device br0 entered promiscuous mode<br />
Algorithmics/MIPS FPU Emulator v1.5<br />
br0: Bad file descriptor<br />
device vlan1 entered promiscuous mode<br />
device eth0 entered promiscuous mode<br />
br0: Bad file descriptor<br />
eth1: Operation not supported<br />
wl0.1: No such device<br />
wl0.2: No such device<br />
wl0.3: No such device<br />
nbw = 20<br />
eth1: Operation not supported<br />
eth1: Operation not supported<br />
eth1: Operation not supported<br />
eth1: Operation not supported<br />
device eth1 entered promiscuous mode<br />
br0: port 2(eth1) entering learning state<br />
br0: port 1(vlan1) entering learning state<br />
device br0 left promiscuous mode<br />
device br0 entered promiscuous mode<br />
device br0 left promiscuous mode<br />
device br0 entered promiscuous mode<br />
device vlan2 entered promiscuous mode<br />
br0: topology change detected, propagating<br />
br0: port 2(eth1) entering forwarding state<br />
br0: topology change detected, propagating<br />
br0: port 1(vlan1) entering forwarding state<br />
Key is a RSA key<br />
Wrote key to '/tmp/root/.ssh/ssh_host_rsa_key'<br />
device vlan2 left promiscuous mode<br />
Key is a DSS key<br />
Wrote key to '/tmp/root/.ssh/ssh_host_dss_key'<br />
SIOCGIFFLAGS: No such device<br />
SIOCGIFFLAGS: No such device<br />
SIOCGIFFLAGS: No such device<br />
SIOCGIFFLAGS: No such device<br />
etherip: Ethernet over IPv4 tunneling driver<br />
The Milkfish Router Services<br />
ERROR: Necessary service setting not found: milkfish_username - aborting.<br />
The Milkfish Router Services<br />
Restoring SIP ddsubscriber database from NVRAM...<br />
Empty.<br />
The Milkfish Router Services<br />
Restoring SIP ddaliases database from NVRAM...<br />
Empty.</p>
<p></code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.maartendamen.com/2010/09/new-router-part-2-linksys-wrt320n-serial-console/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New router: Linksys WRT320N</title>
		<link>http://www.maartendamen.com/2010/09/new-router-linksys-wrt320n/</link>
		<comments>http://www.maartendamen.com/2010/09/new-router-linksys-wrt320n/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 18:00:42 +0000</pubDate>
		<dc:creator>Maarten</dc:creator>
				<category><![CDATA[Routers]]></category>
		<category><![CDATA[linksys]]></category>
		<category><![CDATA[Reverse engineering]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[wireless]]></category>
		<category><![CDATA[wrt]]></category>

		<guid isPermaLink="false">http://www.maartendamen.com/?p=400</guid>
		<description><![CDATA[Last week I bought a new router, I wanted one with gigabit ports and wireless N. So I ended up buying the Linksys WRT320N. After doing a bad flash, I had to open it to find an unbrick method. Good thing though is that I got to see the inside of this nifty device. Opening [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I bought a new router, I wanted one with gigabit ports and wireless N.<br />
So I ended up buying the <a href="http://www.linksysbycisco.com/NL/nl/products/WRT320N">Linksys WRT320N</a>.<br />
After doing a bad flash, I had to open it to find an unbrick method.<br />
<span id="more-400"></span><br />
Good thing though is that I got to see the inside of this nifty device.<br />
Opening the case wasn&#8217;t such a tough job, it had little &#8220;chix with dix&#8221; torx (official name: security torx):</p>
<p><a href="http://www.maartendamen.com/wp-content/uploads/2010/09/funnyscrew.jpg"><img src="http://www.maartendamen.com/wp-content/uploads/2010/09/funnyscrew-150x150.jpg" alt="" title="funnyscrew" width="150" height="150" class="alignnone size-thumbnail wp-image-411" /></a></p>
<p>Fortunately I could wrap around it with a little regular screwdriver (didn&#8217;t have any security torx driver handy, who does anyway?)<br />
Here&#8217;s a picture of the case from the inside (note the three, damn small antenna&#8217;s):</p>
<p><a href="http://www.maartendamen.com/wp-content/uploads/2010/09/router11.jpg"><img src="http://www.maartendamen.com/wp-content/uploads/2010/09/router11.jpg" alt="" title="router1" width="634" height="475" class="alignnone size-full wp-image-415" /></a></p>
<p>Here&#8217;s a picture of the hardware board:<br />
<a href="http://www.maartendamen.com/wp-content/uploads/2010/09/router2.jpg"><img src="http://www.maartendamen.com/wp-content/uploads/2010/09/router2.jpg" alt="" title="router2" width="634" height="475" class="alignnone size-full wp-image-417" /></a></p>
<p>But wait.. what&#8217;s the soldered wire down the bottom left? [teaser]We will talk about that in the next blog post :-)[/teaser]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.maartendamen.com/2010/09/new-router-linksys-wrt320n/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mass creation of HP WSEM WiFi guest accounts using SSH and PowerShell</title>
		<link>http://www.maartendamen.com/2010/07/mass-creation-of-hp-wsem-wifi-guest-accounts-using-ssh-and-powershell/</link>
		<comments>http://www.maartendamen.com/2010/07/mass-creation-of-hp-wsem-wifi-guest-accounts-using-ssh-and-powershell/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 13:58:51 +0000</pubDate>
		<dc:creator>Maarten</dc:creator>
				<category><![CDATA[Powershell]]></category>
		<category><![CDATA[hp]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[wireless]]></category>
		<category><![CDATA[wsem]]></category>

		<guid isPermaLink="false">http://www.maartendamen.com/?p=348</guid>
		<description><![CDATA[I was asked to create 365 (1 year) of WiFi (daily) guest access accounts, and export them to CSV. Of course I didn&#8217;t want to create them by hand.. this is where PowerShell came in. I used the following PowerShell script to create random WiFi guest accounts: Special thanks to Joel Bennett&#8217;s SharpSSH wrapper for [...]]]></description>
			<content:encoded><![CDATA[<p>I was asked to create 365 (1 year) of WiFi (daily) guest access accounts, and export them to CSV.<br />
Of course I didn&#8217;t want to create them by hand.. this is where PowerShell came in. I used the following PowerShell script to create random WiFi guest accounts:</p>
<p><span id="more-348"></span></p>
<pre class="brush: powershell; title: ; notranslate">
# Number of days to generate, default = 365
$NumDays 		= 365
$AccessGroup 	= &quot;Gasten&quot;
$ExpiryTime 	= &quot;20:00&quot;
$StartTime 		= &quot;07:00&quot;
$OutputCSV		= &quot;C:\TEMP\wireless.csv&quot;

$SshHost 		= &quot;127.0.0.1&quot;
$SshUser		= &quot;someuser&quot;

$access_codes = @()

# Start SSH session
New-SshSession $SshUser $SshHost
Invoke-Ssh &quot;z&quot;
Invoke-Ssh &quot;conf t&quot;
Invoke-Ssh &quot;wireless F&quot;
Invoke-Ssh &quot;conf t&quot;
Invoke-Ssh &quot;radius-server local&quot;

$i = 0;
do {
	# WSEM format: mm/dd/yyyy hh:mm
	$date = (Get-Date).AddDays($i)
	$date2 = Get-Date $date -Format &quot;dd-MM-yyyy&quot;
	$date = Get-Date $date -format &quot;MM:dd:yyyy&quot;
	$pass = RandomPassword 4
	$user = RandomPassword 4
	$output = &quot;rad-user $user password 0 $pass group $AccessGroup guest expiry-time $ExpiryTime expiry-date $date start-time $StartTime start-date $date&quot;

	# add user through SSH
	Invoke-ssh $output

	$Response = New-Object PSObject
	Add-Member -InputObject $Response -MemberType NoteProperty -Name &quot;Datum&quot; -Value $date2
	Add-Member -InputObject $Response -MemberType NoteProperty -Name &quot;Gebruikersnaam&quot; -Value $user
	Add-Member -InputObject $Response -MemberType NoteProperty -Name &quot;Wachtwoord&quot; -Value $pass
	$access_codes += $Response

	$i++;
} while ( $i -le $NumDays )

# Save and disconnect SSH
Invoke-ssh &quot;write mem&quot;
Remove-SshSession

# Export to CSV
$access_codes | Export-Csv $OutputCSV

# Helper functions
function RandomPassword ([int]$intPasswordLength)
{
   $strNumbers = &quot;1234567890&quot;
   $strCapitalLetters = &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;
   $strLowerLetters = &quot;abcdefghijklmnopqrstuvwxyz&quot;
   $rand = new-object random

   for ($a=1; $a -le $intPasswordLength; $a++)
      {
         if ($a -gt 3)
           {
      	      $b = $rand.next(0,3) + $a
      	      $b = $b % 3 + 1
      	   } else { $b = $a }
      	 switch ($b)
      	   {
      	      &quot;1&quot; {$b = &quot;$strNumbers&quot;}
      	      &quot;2&quot; {$b = &quot;$strCapitalLetters&quot;}
      	      &quot;3&quot; {$b = &quot;$strLowerLetters&quot;}
      	   }
         $charset = $($b)
         $number = $rand.next(0,$charset.Length)
         $RandomPassword += $charset[$number]
      }
   return $RandomPassword
}
</pre>
<p>Special thanks to Joel Bennett&#8217;s SharpSSH wrapper for PowerShell (located here: <a href="http://huddledmasses.org/scriptable-ssh-from-powershell/">http://huddledmasses.org/scriptable-ssh-from-powershell/</a>) which I used to automate the command line commands for the HP WSEM.<br />
This shows the great power of PowerShell for automating virtually anything! </p>
]]></content:encoded>
			<wfw:commentRss>http://www.maartendamen.com/2010/07/mass-creation-of-hp-wsem-wifi-guest-accounts-using-ssh-and-powershell/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

