<?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>Digits Domotica Blog &#187; JeeNodes</title>
	<atom:link href="http://blog.hekkers.net/tag/jeenodes/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.hekkers.net</link>
	<description>My Weblog about Domotica and more</description>
	<lastBuildDate>Wed, 01 Feb 2012 19:32:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>RF to Zigbee gateway</title>
		<link>http://blog.hekkers.net/2011/12/02/rf-to-zigbee-gateway/</link>
		<comments>http://blog.hekkers.net/2011/12/02/rf-to-zigbee-gateway/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 17:00:31 +0000</pubDate>
		<dc:creator>Robert Hekkers</dc:creator>
				<category><![CDATA[Domotica]]></category>
		<category><![CDATA[HVAC]]></category>
		<category><![CDATA[JeeNodes]]></category>
		<category><![CDATA[Sensors]]></category>
		<category><![CDATA[Xbee]]></category>

		<guid isPermaLink="false">http://blog.hekkers.net/?p=2508</guid>
		<description><![CDATA[The last piece of missing hardware is finished. The picture below shows the 2nd RF to Zigbee gateway I had to make to be able to receive all the Hydronic balancing sensors I made earlier this week. One of those sensors just couldn&#8217;t make it through 3 walls all day long, so I created  a [...]]]></description>
			<content:encoded><![CDATA[<p>The last piece of <a href="http://blog.hekkers.net/2011/11/29/hb-sensors-finished-and-installed/">missing hardware</a> is finished. The picture below shows the 2nd RF to Zigbee gateway I had to make to be able to receive all the Hydronic balancing sensors I made earlier this week. One of those sensors just couldn&#8217;t make it through 3 walls all day long, so I created  a temporary solution on a breadboard to solve this.</p>
<p style="text-align: center;"><a href="http://blog.hekkers.net/wp-content/uploads/2011/12/DSC_6393_s.jpg"><img class="aligncenter size-full wp-image-2511" title="RF to Zigbee gateway" src="http://blog.hekkers.net/wp-content/uploads/2011/12/DSC_6393_p.jpg" alt="" width="600" height="399" /></a></p>
<p>A very simple yet effective way (for me) to get the sensor data where I want it (in my Domotica system) with minimal effort.</p>
<p>The <a href="http://jeelabs.net/projects/hardware/wiki/JeeNode">JeeNode</a> acts as a RF receiver and just echoes everything with a valid CRC to the <a href="http://www.digi.com/xbee/">Digi XBee</a>; from there it eventually arrives at my Zigbee Coordinator with which I can communicate over<a href="http://en.wikipedia.org/wiki/TCP/IP_model"> TCP/IP</a>.</p>
<p>The JeeNode runs a slightly modified version of the<a href="http://jeelabs.net/projects/cafe/wiki/RF12demo_sketch"> RF12Demo sketch</a> made by Jean-Claude Wippler. I used the <a href="http://arduiniana.org/libraries/newsoftserial/">NewSoftSerial</a> library to create an additional Serial port, and added a few <span style="color: #ff6600;">print</span> statements for the XBee port, right there where the RF12Demo<span style="color: #ff6600;"><strong> Serial</strong>.println</span>()&#8217;s the received RF data to the Serial port. Compile, Upload, setting the RF band,  group- and node ID and I&#8217;m done!</p>
<p>This JeeNode is powered by a 5V USB adapter and the XBee gets its power from the 3.3V JeeNode ports. The XBee uses a Zigbee End Device AT firmware (2864) with the Sleep Mode set to Pin Hibernate. But because pin 9 is wired to GND, this means that the XBee is permanently on.  Only 3 wires are needed to connect the XBee to the JeeNode: 3.3V, GND and a JeeNode digital pin to the XBee DOUT.</p>
<p>That&#8217;s it &#8211; moving on with where this all <a href="http://blog.hekkers.net/2011/11/12/controlling-the-radiators-is-not-enough/">started with</a>: <em>understanding the flow of  heating energy in our house</em>!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hekkers.net/2011/12/02/rf-to-zigbee-gateway/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Hydronic balancing</title>
		<link>http://blog.hekkers.net/2011/11/22/hydronic-balancing/</link>
		<comments>http://blog.hekkers.net/2011/11/22/hydronic-balancing/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 21:36:39 +0000</pubDate>
		<dc:creator>Robert Hekkers</dc:creator>
				<category><![CDATA[Domotica]]></category>
		<category><![CDATA[HVAC]]></category>
		<category><![CDATA[JeeNodes]]></category>
		<category><![CDATA[Remeha]]></category>
		<category><![CDATA[Sensors]]></category>
		<category><![CDATA[Thermostat]]></category>

		<guid isPermaLink="false">http://blog.hekkers.net/?p=2468</guid>
		<description><![CDATA[This weekend I came to the conclusion that whatever I do, I&#8217;ll never get a well performing central heating without hydronic balancing. I&#8217;ve been watching how the temperatures in all the rooms of our house react and where the energy goes to &#8211; it&#8217;s a mess! No matter how well I&#8217;ll be able to control the [...]]]></description>
			<content:encoded><![CDATA[<p>This weekend I came to the conclusion that whatever I do, I&#8217;ll never get a well performing central heating without <a href="http://en.wikipedia.org/wiki/Hydronic_balancing" target="_blank">hydronic balancing</a>. I&#8217;ve been watching how the temperatures in all the rooms of our house react and where the energy goes to &#8211; it&#8217;s a mess! No matter how well I&#8217;ll be able to control the kettle, temperature control in all the rooms will still be a mess without a hydronicly balanced system.</p>
<p>So this weekend I decided to stop what I was doing (building the <a href="http://blog.hekkers.net/2011/11/12/controlling-the-radiators-is-not-enough/">Opentherm Gateway</a>) and first try to do something about this balancing issue.</p>
<p>Hydronic balancing is not something I&#8217;m familiar with, and I certainly don&#8217;t have the tools for it ; but what i <em>can</em> do is provide enough information with these sensors; I don&#8217;t know if I&#8217;ll succeed, but it&#8217;s worth to give it a try.</p>
<p><a href="http://blog.hekkers.net/wp-content/uploads/2011/11/DSC_6370_s.jpg"><img class="alignleft size-full wp-image-2472" title="Sensor for Hydronic balancing" src="http://blog.hekkers.net/wp-content/uploads/2011/11/DSC_6370_p.jpg" alt="Sensor for Hydronic balancing" width="320" height="213" /></a> The first thing I need to know is how much energy flows through the radiators. Well, I can do that, I guess&#8230; A <a href="http://jeelabs.net/projects/hardware/wiki/JeeNode" target="_blank">JeeNode with RF</a> transmitter and 2 <a href="http://www.maxim-ic.com/datasheet/index.mvp/id/2812" target="_blank">1-Wire DS18B20</a> sensors can provide me information about how much energy each radiator produces by measuring the flow- and return temperatures of each radiator.</p>
<p>I&#8217;ve got a bunch of JeeNode kits still waiting to be used, enough 1-Wire sensors, batteries and all other components needed, so what am I waiting for??</p>
<p>So this weekend I built a first sensor and a RF-to-Zigbee &#8216;gateway&#8217; so I can receive all the sensors without the need of USB, RS232 or an additional Ethernet port.</p>
<p>The first sensor is operational now; more will follow!</p>
<div id="attachment_2474" class="wp-caption aligncenter" style="width: 601px"><a href="http://blog.hekkers.net/wp-content/uploads/2011/11/TempsPic_000023.png"><img class="size-full wp-image-2474" title="Sensor data" src="http://blog.hekkers.net/wp-content/uploads/2011/11/TempsPic_000023.png" alt="" width="591" height="150" /></a><p class="wp-caption-text">Red = flow temperature, Blue = temperature drop</p></div>
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://blog.hekkers.net/2011/11/22/hydronic-balancing/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Something old and something new</title>
		<link>http://blog.hekkers.net/2011/07/30/something-old-and-something-new/</link>
		<comments>http://blog.hekkers.net/2011/07/30/something-old-and-something-new/#comments</comments>
		<pubDate>Sat, 30 Jul 2011 21:22:09 +0000</pubDate>
		<dc:creator>Robert Hekkers</dc:creator>
				<category><![CDATA[Domotica]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[JeeNodes]]></category>
		<category><![CDATA[Sensors]]></category>

		<guid isPermaLink="false">http://blog.hekkers.net/?p=2136</guid>
		<description><![CDATA[While I&#8217;m logging data and waiting for it to become substantial enough to test another project with, I thought it would be nice to kill the time and start building some new sensors: motion, temperature and light. My goal is to monitor the complete second floor. For the 3 bedrooms I want to monitor motion, [...]]]></description>
			<content:encoded><![CDATA[<p>While I&#8217;m logging data and waiting for it to become substantial enough to test another project with, I thought it would be nice to kill the time and start building some new sensors: motion, temperature and light.</p>
<p>My goal is to monitor the complete second floor. For the 3 bedrooms I want to monitor motion, temperature and light. The passage will only require motion and light, while measuring the humidity in the bathroom would be nice too.</p>
<p>So, for that I need the following:</p>
<ul>
<li>5 * motion;</li>
<li>4 * temperature;</li>
<li>5 * light;</li>
<li>1 * humidity.</li>
</ul>
<p>I already have the motion sensors (<a href="http://en.wikipedia.org/wiki/Passive_infrared_sensor" target="_blank">PIR</a>), the temperature sensors (1-Wire <a href="http://www.maxim-ic.com/datasheet/index.mvp/id/2812" target="_blank">DS18B20</a>), light sensors (<a href="http://en.wikipedia.org/wiki/Light_Dependent_Resistor" target="_blank">LDR</a>), enough JeeNodes, so all I need is a new <a href="http://en.wikipedia.org/wiki/Humidity" target="_blank">humidity</a> sensor.</p>
<p>OK; the amount of sensors I want to use is a bit too much for a single <a href="http://jeelabs.net/projects/hardware/wiki/JeeNode" target="_blank">JeeNode</a> I guess. Maybe 2 JeeNodes will suffice? I didn&#8217;t do any math on this yet, but I don&#8217;t think a single JeeNode can do the job all on its own. 2 JeeNodes maybe, cause the temperature sensors can be on a single 1-Wire bus, so those sensors won&#8217;t use up much ports on the JeeNode; and maybe I can use an <a href="http://jeelabs.net/projects/hardware/wiki/Analog_Plug" target="_blank">Analog Plug</a> to measure the LDRs? We&#8217;ll see. But for now, I assume I&#8217;ll need more than 1 JeeNode. However, I don&#8217;t like to spend an XBee module on each of those JeeNodes, cause I want to keep it relatively low cost. Yeah I know, there are cheaper alternatives for XBee..</p>
<p>But wait, I&#8217;ve still got an<a href="http://www.arduino.cc/en/Main/ArduinoBoardFio" target="_blank"> Arduino Fio</a>; I&#8217;ve bought it sometime in January, not for a specific purpose but just to have a look at it, and I never found a good use for it yet. This Fio is also based on the ATmega328P and runs at 3.3V and 8 MHz. And it also has an XBee socket and USB connector. And it&#8217;s getting old, gathering dust on the shelf&#8230;</p>
<p>Now why don&#8217;t I use this Fio as a &#8216;hub&#8217;, or &#8216;central node&#8217;? It shouldn&#8217;t be too hard to make the (1,2,..) JeeNodes talk to this Arduino Fio over a few wires and use the Fio to transmit all the sensor values to the Zigbee coordinator; now that would be nice! I could power this Fio with a small USB power adapter and run a few wires (for power and serial connection) to the JeeNodes. Maybe I could just as easily use 1 JeeNode per room; this leaves enough ports available for future expansion&#8230; well, let&#8217;s think this one over for some time!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hekkers.net/2011/07/30/something-old-and-something-new/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Ethernet Doorbell</title>
		<link>http://blog.hekkers.net/2011/07/26/ethernet-doorbell/</link>
		<comments>http://blog.hekkers.net/2011/07/26/ethernet-doorbell/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 20:42:33 +0000</pubDate>
		<dc:creator>Robert Hekkers</dc:creator>
				<category><![CDATA[Domotica]]></category>
		<category><![CDATA[doorbell]]></category>
		<category><![CDATA[JeeNodes]]></category>

		<guid isPermaLink="false">http://blog.hekkers.net/?p=2126</guid>
		<description><![CDATA[Yep, today the old Doorbell has been removed and my new Ethernet Doorbell is in use! As you can see the white LED was on when I took the picture on the left, which means that it was dark outside at that time. By polling my Domotica system, the doorbell &#8216;knows&#8217; whether it&#8217;s dark outside [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.hekkers.net/wp-content/uploads/2011/07/newdoorbell.png"><img class="alignleft size-full wp-image-2128" title="new doorbell" src="http://blog.hekkers.net/wp-content/uploads/2011/07/newdoorbell.png" alt="" width="265" height="373" /></a>Yep, today the old Doorbell has been removed and my new Ethernet Doorbell is in use! As you can see the white LED was on when I took the picture on the left, which means that it was dark outside at that time. By polling my Domotica system, the doorbell &#8216;knows&#8217; whether it&#8217;s dark outside or not. Of course it&#8217;s not the doorbell itself, but the hardware behind it that does the &#8216;knowing&#8217;: a JeeNode with Ethercard.</p>
<p>All I had to do today was some soldering, finishing the doorbell sketch and pulling the UTP cable through the hole in the wooden door frame. Those last 2 items made it all take a total of 9 hours before I could actually say that the job was completely finished&#8230;</p>
<p>Using XMLRPC to communicate to my Domotica system was a bit too much for the 2 kilobytes of RAM on the ATMega. Strings like</p>
<pre>&lt;?xml version=\"1.0\"?&gt;&lt;methodCall&gt;&lt;methodName&gt;GetDevice&lt;/methodName&gt;&lt;params&gt;</pre>
<pre>&lt;param&gt;&lt;value&gt;DUSKDAWN1.DAYLIGHT&lt;/value&gt;&lt;/param&gt;&lt;/params&gt;&lt;/methodCall&gt;</pre>
<p>just to get the current value of a dusk/dawn sensor made the amount of free RAM disappear very quickly, so I decided to use another approach I already used some years ago. It hasn&#8217;t been used for some time, but it was still available and ready to use. Now all I have to send to my Domotica system is a</p>
<pre>GET DUSKDAWN1.DAYLIGHT</pre>
<p>and a Indy IdCmdTCPServer takes care of supplying the response. This saves a lot of RAM! Free RAM went up to 900 bytes again, where the XMLRPC method made RAM drop below 200 bytes. And an additional bonus: no need for XML parsing of the response <img src='http://blog.hekkers.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
<p>The picture below shows the hardware that&#8217;s making it all possible: a JeeNode, an EtherCard and a modified Utility Plug. The cable at the bottom goes to the doorbell, the yellow cable on the right goes to an Ethernet switch and the top right cable is the power supply.</p>
<p style="text-align: center;"><a href="http://blog.hekkers.net/wp-content/uploads/2011/07/DSC_5948r.jpg"><img class="size-full wp-image-2127 aligncenter" title="Ethernet enabled Doorbell" src="http://blog.hekkers.net/wp-content/uploads/2011/07/DSC_5948r.jpg" alt="" width="600" height="399" /></a></p>
<p>&nbsp;</p>
<p>And below the sketch that&#8217;s currently running on the JeeNode:</p>
<p>&nbsp;</p>
<pre>
<div>//</div>
<div>// Doorbell</div>
<div>//</div>
<div>#include &lt;EtherCard.h&gt;</div>
<div>#include &lt;Ports.h&gt;</div>
<div>#include &lt;RF12.h&gt; // needed to avoid a linker error <img src='http://blog.hekkers.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </div>
<div></div>
<div>// ethernet interface mac address, must be unique on the LAN</div>
<div>//char website[] PROGMEM = "virtualxp.hekkers.lan";</div>
<div>char website[] PROGMEM = "domoticaserver.hekkers.lan";</div>
<div>static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };</div>
<div>static byte myip[] = { 192,168,10,75 };</div>
<div>static byte gwip[] = {192,168,10,60 };</div>
<div>static byte dnsip[] = {192,168,10,10 };</div>
<div>static byte hisip[] = {192,168,10,40 };</div>
<div></div>
<div>Stash stash;</div>
<div>MilliTimer DuskDawn;</div>
<div>MilliTimer HeartBeat;</div>
<div>byte Ethernet::buffer[600];</div>
<div></div>
<div>byte HP3=0;</div>
<div>byte VP3=0;</div>
<div>byte night = 0;</div>
<div>byte vnight = 0;</div>
<div></div>
<div>#define DDINTERVAL 60000  // 10 minutes = 600 seconds</div>
<div>#define HBINTERVAL 9000   // 1.5 minutes = 90 seconds</div>
<div></div>
<div>//</div>
<div>// LED &amp; button related stuff</div>
<div>//</div>
<div>Port BlueLed (1);</div>
<div>Port Button (3);</div>
<div>Port WhiteLed (4);</div>
<div>int freeRam () {</div>
<div>  extern int __heap_start, *__brkval;</div>
<div>  int v;</div>
<div>  return (int) &amp;v - (__brkval == 0 ? (int) &amp;__heap_start : (int) __brkval);</div>
<div>}</div>
<div></div>
<div>void(* resetFunc) (void) = 0; //declare reset function @ address 0</div>
<div></div>
<div>void setup () {</div>
<div>  Serial.begin(57600);</div>
<div>  Serial.println("[Doorbell_01]");</div>
<div>  Serial.println(freeRam());</div>
<div>  if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)</div>
<div>    Serial.println("Failed to access Ethernet controller");</div>
<div>  if (!ether.staticSetup(myip, gwip, dnsip))</div>
<div>    Serial.print("IP address setup failed");</div>
<div>  ether.printIp("IP:  ", ether.myip);</div>
<div>  ether.printIp("GW:  ", ether.gwip);</div>
<div>  ether.printIp("DNS: ", ether.dnsip);</div>
<div>  if (!ether.dnsLookup(website))</div>
<div>  Serial.print("DNS failed");</div>
<div>  ether.printIp("SRV: ", ether.hisip);</div>
<div>  ether.hisport = 8000;</div>
<div></div>
<div>  // port 3 = doorbell button</div>
<div>  Button.mode(INPUT);</div>
<div>  Button.digiWrite(HIGH);   // pull-up DIO</div>
<div>  // BlueLed = push LED</div>
<div>  BlueLed.mode(OUTPUT);</div>
<div>  BlueLed.digiWrite(0);</div>
<div>  // WhiteLed = night LED</div>
<div>  WhiteLed.mode(OUTPUT);</div>
<div>  WhiteLed.digiWrite(0);</div>
<div>  DuskDawn.set(1);</div>
<div>}</div>
<div></div>
<div>static void send_callback (byte status, word off, word len) {</div>
<div>  Serial.println("&lt;P&lt;\r\n");</div>
<div>  Ethernet::buffer[off+600] = 0;</div>
<div>  Serial.print((const char*) Ethernet::buffer + off);</div>
<div>  Serial.println("...");</div>
<div>}</div>
<div></div>
<div>static void poll_callback (byte status, word off, word len) {</div>
<div>  const char* res = (const char*) Ethernet::buffer + off;</div>
<div>  Serial.println("&lt;G&lt;\r\n");</div>
<div>  Ethernet::buffer[off+600] = 0;</div>
<div>  Serial.println(res);</div>
<div>  if((res[0]=='R')&amp;&amp;((res[1]=='='))) {</div>
<div>    night = (res[2]=='1')?0:1;</div>
<div>    Serial.print("n=");</div>
<div>    Serial.println(night, DEC);</div>
<div>  }</div>
<div>  if(res[0]=='E') {</div>
<div>    resetFunc();</div>
<div>  }</div>
<div>  Serial.println("...");</div>
<div>  if (night!=vnight)</div>
<div>  {</div>
<div>    WhiteLed.digiWrite(night);</div>
<div>    vnight = night;</div>
<div>  }</div>
<div>}</div>
<div></div>
<div>void PollDuskDawn(){</div>
<div>  //return;</div>
<div>  Serial.println("?");</div>
<div>  byte sd = stash.create();</div>
<div>  stash.println("DUSKDAWN1.DAYLIGHT");</div>
<div>  stash.save();</div>
<div>  // generate the header with payload - note that the stash size is used,</div>
<div>  // and that a "stash descriptor" is passed in as argument using "$H"</div>
<div>  Stash::prepare(PSTR("GET $H"), sd);</div>
<div>  // send the packet - this also releases all stash buffers once done</div>
<div>  ether.tcpSend(poll_callback);</div>
<div>  Serial.println(".");</div>
<div>}</div>
<div></div>
<div>void SendStatus() {</div>
<div>  Serial.print("P");</div>
<div>  byte sd = stash.create();</div>
<div>  stash.print("DB2=");</div>
<div>  stash.println(HP3, DEC);</div>
<div>  stash.save();</div>
<div>  // generate the header with payload - note that the stash size is used,</div>
<div>  // and that a "stash descriptor" is passed in as argument using "$H"</div>
<div>  Stash::prepare(PSTR("PUT $H"), sd);</div>
<div>  // send the packet - this also releases all stash buffers once done</div>
<div>  ether.tcpSend(send_callback);</div>
<div>  Serial.println(".");</div>
<div>}</div>
<div></div>
<div>void loop(){</div>
<div>  ether.packetLoop(ether.packetReceive());</div>
<div>  if (ether.clientWaitingGw()) return;</div>
<div></div>
<div>  if (DuskDawn.poll(DDINTERVAL)) {</div>
<div>    PollDuskDawn();</div>
<div>  }</div>
<div></div>
<div>  if (HeartBeat.poll(HBINTERVAL)) {</div>
<div>    SendStatus();</div>
<div>  }</div>
<div></div>
<div>  HP3 = !Button.digiRead();</div>
<div>  if (HP3 != VP3)</div>
<div>  {</div>
<div>    if (HP3) {</div>
<div>      Serial.println("Button Pressed!");</div>
<div>      BlueLed.digiWrite(HIGH);</div>
<div>      WhiteLed.digiWrite(LOW);</div>
<div>      SendStatus();</div>
<div>      HeartBeat.set(HBINTERVAL);</div>
<div>    }</div>
<div>    else</div>
<div>    {</div>
<div>      Serial.print("Button Released\r\n");</div>
<div>      BlueLed.digiWrite(LOW);</div>
<div>      WhiteLed.digiWrite(night);</div>
<div>    }</div>
<div>  }</div>
<div>  VP3=HP3;</div>
<div>}</div>
</pre>
<p>That&#8217;s it! On to the next adventure <img src='http://blog.hekkers.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hekkers.net/2011/07/26/ethernet-doorbell/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Doorbell software</title>
		<link>http://blog.hekkers.net/2011/07/03/doorbell-software/</link>
		<comments>http://blog.hekkers.net/2011/07/03/doorbell-software/#comments</comments>
		<pubDate>Sun, 03 Jul 2011 20:29:22 +0000</pubDate>
		<dc:creator>Robert Hekkers</dc:creator>
				<category><![CDATA[Domotica]]></category>
		<category><![CDATA[doorbell]]></category>
		<category><![CDATA[JeeNodes]]></category>

		<guid isPermaLink="false">http://blog.hekkers.net/?p=2111</guid>
		<description><![CDATA[Today I continued working on the Doorbell controller hardware &#38; software. First I had to solder a Utility Plug, but I did it somewhat different than usual, I guess: (sorry JC, I seem to have some sort of &#8220;destructive&#8221; way of using your creations The way I&#8217;m going to use this Utility Plug is not [...]]]></description>
			<content:encoded><![CDATA[<p>Today I continued working on the <a href="http://blog.hekkers.net/2011/06/23/building-the-doorbell-controller/" target="_blank">Doorbell controller</a> hardware &amp; software. First I had to solder a <a href="http://jeelabs.com/products/utility-plug" target="_blank">Utility Plug</a>, but I did it somewhat different than usual, I guess:</p>
<p style="text-align: center;"><a href="http://blog.hekkers.net/wp-content/uploads/2011/07/DSC_5633s.jpg"><img class="aligncenter size-full wp-image-2112" title="Utility Plug" src="http://blog.hekkers.net/wp-content/uploads/2011/07/DSC_5633r.jpg" alt="Utility Plug" width="600" height="399" /></a></p>
<p>(sorry JC, I seem to have some sort of &#8220;destructive&#8221; way of using your creations <img src='http://blog.hekkers.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>The way I&#8217;m going to use this Utility Plug is not standard; the only reason I want to use this Utility Plug is to have a good-fitting RJ12 plug sticking out of the enclosure in a way that it keeps the whole construction as strong as possible. I could just as easily have glued a RJ12 Plug into the enclosure, but with the headers plugged into the carrier board I think I have a stronger construction than without the use of this Plug.</p>
<p>Since I will need to use more than 1 JeeNode Port (a button and 2 LEDs), I made sure that the Utility Plug headers were isolated from the Plug but were still usable construction-wise, so I cut all connections between the headers and the PCB, as can be seen in the picture above. Instead of using the headers, I soldered an <a href="http://jeelabs.com/products/extension-cables" target="_blank">Extension cable</a> to the Utility Plug; this way I can do whatever I want with those 6 wires! After checking the header isolation with a multimeter and connecting the Extension cable wires to the JeeNode ports, I was ready to start writing some code. But first, let&#8217;s specify how this Ethernet enabled doorbell should behave. It should:</p>
<ul>
<li>Periodically query my system and ask whether it&#8217;s dark outside or not and turn on the &#8220;night LED&#8221; inside the doorbell based on that. If the query fails, it should always turn on the night LED;</li>
<li>Switch on the blue &#8220;signalling LED&#8221; when the button is pressed; if the white night LED is on at that moment, it should switch that one off;</li>
<li>Switch off the blue &#8220;signalling LED&#8221; when the button is released; if it&#8217;s dark outside, it should switch the white night LED on;</li>
<li>Periodically send a heartbeat to my system;</li>
<li>Only send a &#8220;Doorbell pressed&#8221; message to my system once in a specific time-frame (1 second or so, to eliminate jitter).</li>
</ul>
<p>I&#8217;m almost there! Most of these items are already working, but there are still some small issues to be resolved.  As always, the details take most of the time..</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hekkers.net/2011/07/03/doorbell-software/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Building the doorbell controller</title>
		<link>http://blog.hekkers.net/2011/06/23/building-the-doorbell-controller/</link>
		<comments>http://blog.hekkers.net/2011/06/23/building-the-doorbell-controller/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 19:49:52 +0000</pubDate>
		<dc:creator>Robert Hekkers</dc:creator>
				<category><![CDATA[Domotica]]></category>
		<category><![CDATA[doorbell]]></category>
		<category><![CDATA[JeeNodes]]></category>

		<guid isPermaLink="false">http://blog.hekkers.net/?p=2083</guid>
		<description><![CDATA[2 days ago the hardware for the doorbell controller arrived; a JeeNode v6, a Carrier Board, an Ether Card and a Utility Plug. After building the first 3 items on the day they arrived, I was ready to do some tests yesterday. I installed the latest Arduino IDE, the latest RF12, Ports and Ether Card [...]]]></description>
			<content:encoded><![CDATA[<p>2 days ago the hardware for the doorbell controller arrived; a <a href="http://jeelabs.net/projects/hardware/wiki/JeeNode" target="_blank">JeeNode v6</a>, a<a href="http://jeelabs.net/projects/hardware/wiki/Carrier_Board" target="_blank"> Carrier Board</a>, an <a href="http://jeelabs.net/projects/hardware/wiki/Ether_Card" target="_blank">Ether Card</a> and a <a href="http://jeelabs.net/projects/hardware/wiki/Utility_Plug" target="_blank">Utility Plug</a>. After building the first 3 items on the day they arrived, I was ready to do some tests yesterday. I installed the latest Arduino IDE, the latest RF12, Ports and Ether Card library and hooked up the JeeNode to a USB BUB. I saw the RF12demo sketch appearing in the Serial Monitor; so far so good.</p>
<p>Let&#8217;s see if there&#8217;s an example sketch in the JeeLabs Ether Card Libary I can quickly modify for testing; yep, the getStaticIP sketch looks OK; I changed some IP addresses, the page to request on my web server and the request interval. I pushed a patch cable into the RJ45 plug, uploaded the sketch and bingo!</p>
<p>Ready! Hmm, no, not really. It all seemed to work perfectly, but after a while I saw strange replies in the Serial Monitor window and I could tell they didn&#8217;t belong there. These replies came at times where there hadn&#8217;t been a request for several seconds, so where was this reply coming from? I searched the code but couldn&#8217;t find out what the status code 3 meant that was returned with these strange replies. Hmm, I don&#8217;t like this. Just ignoring those strange replies was easy to do but it just didn&#8217;t feel right. There had to be something wrong; I mean, have you ever heard of a garbage filter on a NIC? Me neither.</p>
<p>I decided to dig a little bit deeper. The next morning, while on my way to the office, it hit me: the HTTP 1.1 protocol, doesn&#8217;t it use persistent connections by default? And <em>does</em> the connection get closed by either side after the reply has arrived? I checked<a href="http://www.ietf.org/rfc/rfc2616.txt" target="_blank"> RFC 2616</a> and I was right, so the first thing I did when I came home was checking my <a href="http://www.iis.net/" target="_blank">IIS</a> logs and found the evidence for open connections being closed by IIS after a certain idle period:</p>
<pre>192.168.10.203 3031 192.168.10.13 80 - - - - - Timer_ConnectionIdle</pre>
<p>That could very well be the cause of those garbage replies I saw on the JeeNode!</p>
<p>Looking at the sketch I saw that the request didn&#8217;t contain a <em>Connection:close</em> header line. So my server did not close the connection.. after changing the request to HTTP 1.0, the behavior of the server changed and it closed the connection after sending the reply. This was also visible by the extra header line the server added to the reply: <em>Connection:close</em>. And guess what: the garbage replies no longer appeared and everything&#8217;s fine now. Now that traffic between server and JeeNode was <em>clean</em>, I could start working on the enclosure.</p>
<p>I disconnected the USB BUB, grabbed an enclosure and started cutting out holes for the DC jack and the RJ45 plug:</p>
<p><a href="http://blog.hekkers.net/wp-content/uploads/2011/06/DSC_5564s.jpg"><img class="size-full wp-image-2084 alignleft" title="Doorbell controller in enclosure" src="http://blog.hekkers.net/wp-content/uploads/2011/06/DSC_5564r.jpg" alt="Doorbell controller in enclosure" width="300" height="199" /></a><a href="http://blog.hekkers.net/wp-content/uploads/2011/06/DSC_5563s.jpg"><img class="alignright size-full wp-image-2085" title="Doorbell controller in enclosure" src="http://blog.hekkers.net/wp-content/uploads/2011/06/DSC_5563r.jpg" alt="Doorbell controller in enclosure" width="300" height="199" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>With the enclosure almost finished I connected a 5V power adapter to the DC jack, put the patch cable back in and I saw the requests arriving at my server again. Perfect!</p>
<p><a href="http://blog.hekkers.net/wp-content/uploads/2011/06/DSC_5565r.jpg"></a><a href="http://blog.hekkers.net/wp-content/uploads/2011/06/DSC_5566s.jpg"><img class="alignright size-full wp-image-2091" title="Doorbell controller" src="http://blog.hekkers.net/wp-content/uploads/2011/06/DSC_5566r.jpg" alt="Doorbell controller" width="300" height="199" /></a><a href="http://blog.hekkers.net/wp-content/uploads/2011/06/DSC_5565r1.jpg"></a><a href="http://blog.hekkers.net/wp-content/uploads/2011/06/DSC_5565s.jpg"><img class="alignleft size-full wp-image-2090" title="Doorbell controller: case closed" src="http://blog.hekkers.net/wp-content/uploads/2011/06/DSC_5565r.jpg" alt="Doorbell controller: case closed" width="300" height="199" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hekkers.net/2011/06/23/building-the-doorbell-controller/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Finishing the Doorbell</title>
		<link>http://blog.hekkers.net/2011/06/19/finishing-the-doorbell/</link>
		<comments>http://blog.hekkers.net/2011/06/19/finishing-the-doorbell/#comments</comments>
		<pubDate>Sun, 19 Jun 2011 21:56:49 +0000</pubDate>
		<dc:creator>Robert Hekkers</dc:creator>
				<category><![CDATA[Domotica]]></category>
		<category><![CDATA[doorbell]]></category>
		<category><![CDATA[JeeNodes]]></category>

		<guid isPermaLink="false">http://blog.hekkers.net/?p=2054</guid>
		<description><![CDATA[&#160; Today I finished modifying the doorbell with which I started yesterday. I drilled a 4.5 mm hole through the back of the doorbell and led a solid core CAT5 cable through that hole. This cable will be used to connect the doorbell switch and the 2 LEDs (a white and blue one) to the [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>Today I finished modifying the doorbell with which I started <a href="http://blog.hekkers.net/2011/06/19/a-new-doorbell/">yesterday</a>. I drilled a 4.5 mm hole through the back of the doorbell and led a solid core CAT5 cable through that hole. This cable will be used to connect the doorbell switch and the 2 LEDs (a white and blue one) to the Jeenode that will be placed in the fuse box which is only 2 meters away. The legs of the LED were bent sideways right there where they come out of the LED housing and these legs were temporarily glued to the doorbell housing to secure the position of the LED for easy soldering. You can still see some residue of the glue (the white blur on the housing surface) where the legs of the right LED touch the doorbell housing.</p>
<p><a href="http://blog.hekkers.net/wp-content/uploads/2011/06/DSC_5556s.jpg"><img class="alignleft size-full wp-image-2055" title="Finishing the hardware" src="http://blog.hekkers.net/wp-content/uploads/2011/06/DSC_5556r.jpg" alt="Finishing the hardware" width="300" height="199" /></a><a href="http://blog.hekkers.net/wp-content/uploads/2011/06/DSC_5557hs.jpg"><img class="alignright size-full wp-image-2056" title="Finishing the hardware" src="http://blog.hekkers.net/wp-content/uploads/2011/06/DSC_5557hr.jpg" alt="Finishing the hardware" width="300" height="199" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>To get a good insulation from the outside world, I pushed the cable through the hole, put hot glue on it and pulled the cable back  a few millimeters; this should suffice for proper insulation. After the wires were cut to the right length and soldered to the legs of the LEDs, it was time to check if everything was working. So I put the 2 halves of the doorbell housing on each other, pressed them firmly, and put the other side of the wire on a breadboard. With a 5V power supply, two 330 Ω resistors and a multimeter I convinced myself that everything was OK.</p>
<p>BTW, it&#8217;s a good thing I didn&#8217;t choose red as one of the colors for the LEDs; otherwise, a visitor might think he&#8217;s being held at gunpoint by a sniper with laser sight <img src='http://blog.hekkers.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  In other words, the LEDs are a bit too bright, so I think I&#8217;ll use a higher resistor value in the final version &#8211; that&#8217;s why I left the resistors out of the housing in the first place, cause I was anticipating &#8220;tuning&#8221; issues like this.</p>
<p>Well, now that I have verified that the doorbell is working OK, I can move on to the next step: the JeeNode, some more hardware and the software that goes with it!</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hekkers.net/2011/06/19/finishing-the-doorbell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A new doorbell</title>
		<link>http://blog.hekkers.net/2011/06/19/a-new-doorbell/</link>
		<comments>http://blog.hekkers.net/2011/06/19/a-new-doorbell/#comments</comments>
		<pubDate>Sun, 19 Jun 2011 15:08:53 +0000</pubDate>
		<dc:creator>Robert Hekkers</dc:creator>
				<category><![CDATA[Domotica]]></category>
		<category><![CDATA[doorbell]]></category>
		<category><![CDATA[JeeNodes]]></category>

		<guid isPermaLink="false">http://blog.hekkers.net/?p=2043</guid>
		<description><![CDATA[One of the things I never liked, was our doorbell. You&#8217;ve probably seen or used them, those mostly black plastic boxes with some pieces of copper strips inside; the mechanism relies on those 2 copper spring-like strips to make contact when the button is pressed and return to their old position when the button is [...]]]></description>
			<content:encoded><![CDATA[<p>One of the things I never liked, was our doorbell. You&#8217;ve probably seen or used them, those mostly black plastic boxes with some pieces of copper strips inside; the mechanism relies on those 2 copper spring-like strips to make contact when the button is pressed and return to their old position when the button is released. However, more than once it has happened that if someone pushes the button too hard, the button doesn&#8217;t work that well anymore because the strips are bent. Time to do something about this annoying issue and solve this once and for all.</p>
<p>So here&#8217;s the most important requirement: the new doorbell should always work. Besides that, I wanted the doorbell to have a distinctive &#8216;click&#8217; as physical feedback and if possible, also a visible feedback for the person standing in front of our door pushing that doorbell button. Last but not least, the visitor should be able to find the doorbell while standing in front of the door while it&#8217;s dark outside. A white LEDs should be able to do just that.</p>
<p>I bought a wireless doorbell once, thinking I could remove the wireless part and just use it as a simple switch . But I was wrong; the button and wireless part were too much integrated for me to do something useful with the PCB that was inside. This wireless doorbell cost me about 30 euro, the looks were OK and I didn&#8217;t want it to end up on the shelf with all the rest of the things I&#8217;ve bought but never used. Sounds like a good opportunity for some DIY <img src='http://blog.hekkers.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>I removed the PCB from the doorbell, glued a piece of experimenting board into the doorbell and soldered a PCB switch on top of the board:</p>
<p style="text-align: center;"><a href="http://blog.hekkers.net/wp-content/uploads/2011/06/DSC_5551s.jpg"><img class="aligncenter size-full wp-image-2046" title="New Doorbell" src="http://blog.hekkers.net/wp-content/uploads/2011/06/DSC_5551R.jpg" alt="New Doorbell" width="600" height="399" /></a></p>
<p>Fits perfectly. With this switch you get instant feedback on whether the switch sensed your push because of the audible and tactile click, you can both hear and feel it very well. As visible feedback for pressing the button I decided to use a blue 3mm LED. This LED should cooperate with the white one, which should take care of night visibility: resulting in a blue indicator above the button when it&#8217;s pushed, and a white indicator while it&#8217;s dark outside.</p>
<p>While working on the new interior of the doorbell, I decided to use a JeeNode with EtherCard to control it all, thereby creating my own Ethernet-enabled doorbell. Why? Because I can! <img src='http://blog.hekkers.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>To be continued.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hekkers.net/2011/06/19/a-new-doorbell/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Allegro A3214 Hall-Effect Switch</title>
		<link>http://blog.hekkers.net/2010/12/04/the-allegro-a3214-hall-effect-switch/</link>
		<comments>http://blog.hekkers.net/2010/12/04/the-allegro-a3214-hall-effect-switch/#comments</comments>
		<pubDate>Sat, 04 Dec 2010 14:51:22 +0000</pubDate>
		<dc:creator>Robert Hekkers</dc:creator>
				<category><![CDATA[Domotica]]></category>
		<category><![CDATA[JeeNodes]]></category>
		<category><![CDATA[Sensors]]></category>

		<guid isPermaLink="false">http://blog.hekkers.net/?p=1684</guid>
		<description><![CDATA[As I mentioned yesterday, I&#8217;m currently testing a new sensor: the Allegro A3214 Hall-Effect switch. This very small sensor looks like a very good candidate for my own Door &#38; Window sensors. A sample of this sensor was given to me by Jean-Claude Wippler a few weeks ago, and now that I&#8217;m waiting for some [...]]]></description>
			<content:encoded><![CDATA[<p>As I mentioned <a href="http://blog.hekkers.net/2010/12/03/small-smaller-smallest/" target="_self">yesterday</a>, I&#8217;m currently testing a new sensor: the <a href="http://blog.hekkers.net/wp-content/uploads/2010/12/A3214.pdf" target="_blank">Allegro A3214</a> Hall-Effect switch. This very small sensor looks like a very good candidate for my own Door &amp; Window sensors. A sample of this sensor was given to me by <a href="http://jeelabs.org/" target="_blank">Jean-Claude Wippler</a> a few weeks ago, and now that I&#8217;m waiting for some Mantis parts I ordered and have no more time to spend on the <a href="http://blog.hekkers.net/2010/11/29/arduino-workshop-2/" target="_self">Arduino Workshop</a>, it was time for something new.</p>
<p>Some characteristics of the A3214:</p>
<ul>
<li>2.4 to 5.5V battery operation</li>
<li>minimal power requirements</li>
<li>pole independent switching</li>
<li>small size</li>
</ul>
<p>How small is small??</p>
<div id="attachment_1685" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.hekkers.net/wp-content/uploads/2010/12/DSC_4717c_resize.jpg"><img class="size-full wp-image-1685 " title="This is small!" src="http://blog.hekkers.net/wp-content/uploads/2010/12/DSC_4717c_resize.jpg" alt="This is small!" width="300" height="199" /></a><p class="wp-caption-text">Allegro A3214</p></div>
<p>The magnet (upper left) measures 3x3x3 mm, the sensor dimensions are 4 x 3 x 1.5 mm. Yep, that&#8217;s really small <img src='http://blog.hekkers.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>First thing I did yesterday, was putting this sensor on a breadboard and connecting it to a <a href="http://cafe.jeelabs.net/lab/jn4/" target="_blank">JeeNode</a>. I wrote a small sketch that used LED2 of the <a href="http://jeelabs.org/2010/12/01/assembling-the-bridge-board/" target="_blank">Bridge Board</a> to visually show the status of the sensor output:</p>
<pre><span style="color: #000000;">#include &lt;Ports.h&gt;
#include &lt;RF12.h&gt;

Port one (1);
Port four (4);

void setup() {
  one.mode(OUTPUT); // LED2 of Bridge Board is connected to Port 1 Digital.

  four.mode(INPUT); // the sensor is connected to Port 4.
  four.digiWrite(HIGH);  // enable pullup
}

void loop() {

  one.digiWrite(four.digiRead());
}</span></pre>
<p>It worked, wow! Moving the magnet towards the sensor made the LED go off (the output is high when the magnetic field isn&#8217;t strong enough), moving the magnet away made the LED go on again. The distance between sensor and magnet when the output value changes is approx. 10 mm.</p>
<p>Today I wanted to do some power usage measurements, so I changed the sketch a bit:</p>
<pre>#include &lt;Ports.h&gt;
#include &lt;RF12.h&gt; // needed to avoid a linker error <img src='http://blog.hekkers.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />
#include &lt;Sleep.h&gt;

#define DEBUG 0

int INTpin = 3;
Port one (1);

volatile boolean wdt_expired=0;

// Interrupt Serive Routine that will be executed when the Watchdog Timer expired.
ISR(WDT_vect) {
  wdt_expired=1;
}

//****************************************************************
// 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms
// 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec
void setup_watchdog(int ii) {

  byte bb;
  int ww;
  if (ii &gt; 9 ) ii=9;
  bb=ii &amp; 7;
  if (ii &gt; 7) bb|= (1&lt;&lt;5);
  bb|= (1&lt;&lt;WDCE);
  ww=bb;

  MCUSR &amp;= ~(1&lt;&lt;WDRF);
  // start timed sequence
  WDTCSR |= (1&lt;&lt;WDCE) | (1&lt;&lt;WDE);
  // set new watchdog timeout value
  WDTCSR = bb;
  WDTCSR |= _BV(WDIE);
}

void setup(void)
{
  pinMode(INTpin, INPUT);
  digitalWrite(INTpin, HIGH);

  one.mode(OUTPUT); // LED2 of Bridge Board is connected to Port 1 Digital.

  #if DEBUG
  Serial.begin(9600);
  #endif
}

void loop(void)
{
  #if DEBUG
  Serial.print(millis(), DEC);
  Serial.print(" I'm awake, caused by ");
  #endif  

  if (wdt_expired==1){
    wdt_expired=0;
    #if DEBUG
      Serial.println("the WDT");
    #endif    

    // Do something, like sending a heatbeat
    // sometimes

  }
  else
  {
    // External interrupt triggered!
    byte val = digitalRead(INTpin);

    // disable LED during power measurements
    //one.digiWrite(val);  

    #if DEBUG
    Serial.print(val, DEC);
    Serial.println(" INT0");
    Serial.print("Doing some serious stuff now...");
    #endif    

    // measure awake
    delay(5000);

    #if DEBUG
    Serial.println("finished!");
    #endif
  }

  //
  #if DEBUG
  Serial.print(millis(), DEC);
  Serial.println(" Sleeping...");
  delay(100);     // wait for serial to finish
  #endif                        

  // go to sleep and wake up
  // on watchdog or IRQ pin change
  setup_watchdog(9);
  Sleep.powerDownAndWakeupExternalEvent(1, CHANGE);     // sleep function called here
}</pre>
<div>The A3214 output was moved to an external interrupt pin, I disabled LED2 and wrote down the power usages with the JeeNode, Bridge Board and A3214 connected to a 3 x AA battery pack producing 4.1 V:</div>
<div>
<ul>
<li>JeeNode awake: 7 mA;</li>
<li>JeeNode asleep, magnet in range of sensor: 38 μA;</li>
<li>JeeNode asleep, magnet out of range: 14 μA.</li>
</ul>
</div>
<p>That&#8217;s very good&#8230; I&#8217;m sure this power usage will be good enough to live on 1 set of AA batteries for a long time. <img src='http://blog.hekkers.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Of course, Door &amp; Window sensors is the most obvious application for these sensors. But the small size makes me wonder if I can come up with more useful ideas&#8230;</p>
<p>On to the next step!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hekkers.net/2010/12/04/the-allegro-a3214-hall-effect-switch/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Different breadboards</title>
		<link>http://blog.hekkers.net/2010/11/05/different-breadboards/</link>
		<comments>http://blog.hekkers.net/2010/11/05/different-breadboards/#comments</comments>
		<pubDate>Fri, 05 Nov 2010 22:24:49 +0000</pubDate>
		<dc:creator>Robert Hekkers</dc:creator>
				<category><![CDATA[Domotica]]></category>
		<category><![CDATA[JeeNodes]]></category>

		<guid isPermaLink="false">http://blog.hekkers.net/?p=1563</guid>
		<description><![CDATA[As part of preparation for the Arduino Workshop, I was soldering a new Bridge Board a few days ago. The Bridge Board is, just like the AA Power Board, a very handy tool that helps you  keep all those experiments you do on a breadboard clear, simple and easy to build. After soldering the row [...]]]></description>
			<content:encoded><![CDATA[<p>As part of preparation for the <a href="http://blog.hekkers.net/2010/10/30/preparing-for-the-arduino-workshop/" target="_self">Arduino Workshop</a>, I was soldering a new Bridge Board a few days ago. The Bridge Board is, just like the AA Power Board, a very handy tool that helps you  keep all those experiments you do on a breadboard clear, simple and easy to build.</p>
<p>After soldering the row of pins that will be pushed into the breadboard, I wanted to see what it was going to look like. I took a random breadboard and immediately saw something was wrong here.. I&#8217;ll never be able to connect the JeeNode to the Bridge Board ?! This is strange; this being a design flaw was out of the question of course, so I took another random breadboard. Now the Bridge Board (better: the breadboard <img src='http://blog.hekkers.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ) dimensions are correct! Just look at the horizontal white line across the Bridge Board; this should be in line with the outside of the breadboard:</p>
<p><a href="http://blog.hekkers.net/wp-content/uploads/2010/11/DSC_4535_2.jpg"><img class="size-full wp-image-1567 alignnone" style="margin-left: 2px; margin-right: 2px;" title="Correct" src="http://blog.hekkers.net/wp-content/uploads/2010/11/DSC_4535c_resize.jpg" alt="Correct" width="300" height="165" /></a><a href="http://blog.hekkers.net/wp-content/uploads/2010/11/DSC_4533_2.jpg"><img class="alignnone size-full wp-image-1570" title="Wrong!" src="http://blog.hekkers.net/wp-content/uploads/2010/11/DSC_4533_resize_resize.jpg" alt="Wrong!" width="311" height="165" /></a></p>
<p>The cause is quite obvious: not all breadboards are equal in size (click the images for more detail). The left breadboard that fits perfectly has a width of 54.2 mm while the breadboard on the right, which is unusable in combination with the Bridge Board, measures 64.5 mm. Well, this is something I never realized before: even breadboards with the same amount of tie points can have different dimensions. So much for standardization&#8230;</p>
<p>So if you&#8217;re a potential Bridge Board user, watch out what breadboards you buy.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hekkers.net/2010/11/05/different-breadboards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

