<?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>WyoLum Blog</title>
	<atom:link href="http://wyolum.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://wyolum.com</link>
	<description>Open Source Electronics for Huge Nerds</description>
	<lastBuildDate>Wed, 18 Apr 2012 10:44:03 +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>GPS Disciplined RTC</title>
		<link>http://wyolum.com/?p=795</link>
		<comments>http://wyolum.com/?p=795#comments</comments>
		<pubDate>Wed, 18 Apr 2012 02:32:07 +0000</pubDate>
		<dc:creator>wyojustin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wyolum.com/?p=795</guid>
		<description><![CDATA[<p>Here is a sneak preview into a product we are working on: the I2GPS.  The I2GPS is a slightly modified I2SD.  The only difference is that Anool added an interface to the hacker friendly <a href="http://www.fastraxgps.com/products/gpsantennamodules/500series/up501/">Fastrax UP501 GPS reciever</a>.  We think we have found a winning combination: for processing an arduino compatible ATMEGA328, a micro [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption aligncenter" style="width: 610px"><a href="http://www.briankrontz.com/Product/ClockThree/i-9RvvctZ/0/M/0H0C9638-1-M.jpg"><img title="I2GPS" src="http://www.briankrontz.com/Product/ClockThree/i-9RvvctZ/0/M/0H0C9638-1-M.jpg" alt="I2GPS" width="600" height="400" /></a><p class="wp-caption-text">The power packed I2GPS board (photo by Brian Krontz)</p></div>
<p>Here is a sneak preview into a product we are working on: the I2GPS.  The I2GPS is a slightly modified I2SD.  The only difference is that Anool added an interface to the hacker friendly <a href="http://www.fastraxgps.com/products/gpsantennamodules/500series/up501/">Fastrax UP501 GPS reciever</a>.  We think we have found a winning combination: for processing an arduino compatible ATMEGA328, a micro SD for massive amounts of storage, the ChronoDot (macetech.com) compatible DS3231 real time clock and finally the UP501 GPS module.  This board also has on board voltage regulators for both 3 and 5 volts and plenty of break out pins for hackablity.</p>
<p>The initial application is a GPS disciplined timing reference that acquires and maintains 1 microsecond timing accuracy.  This even works in the basement of my house!  When the GPS signal is lost, the RTC maintains 1 millisecond / hour accuracy on its own.  I know that for many DIY apps this is overkill, but we are building a race timing system that requires this level of accuracy.</p>
<p>But why stop there?  With GPS in hand, we can determine the timezone!  This sounds like a piece of cake, but turned out to be a pretty tricky problem.  There are literally thousands and thousands of individually defined timezones!  In fact there are 27,732 defined in the generously provided shape file by Eric Muller at <a href="http://efele.net/maps/tz/world/">http://efele.net/maps/tz/world/</a>.</p>
<p><a href="http://wyolum.com/?attachment_id=796" rel="attachment wp-att-796"><img class="alignleft size-full wp-image-796" title="tz_world (1)" src="http://wyolum.com/blog/wp-content/uploads/2012/04/tz_world-1.png" alt="" width="987" height="484" /></a></p>
<p>The good news is that I found a Java library that looks up time zone by GPS fix, the bad news is that they wanted $2000 for it!  With Eric&#8217;s shape file in hand, and an open source <a href="http://http://code.google.com/p/pyshp/">shape file library</a> written in Python only one more piece of information was missing: the <a href="http://en.wikipedia.org/wiki/List_of_time_zones_by_UTC_offset">list of GMT offsets</a> which was thankfully provided by Wikipedia.</p>
<p>We had an internal debate here at WyoLum.  Kevin Osborn found an elegant solution based on zip codes that worked for the United States but was not easily extendable to the rest of the world.  While driving to work last week, I realized that we could easily store the timezone for every  single latitude and longitude in a fine grid over the Earth on the SD card.  And why not?  With a measly 1GB SD card, the I2GPS has way more memory than processing power.</p>
<p>Within an hour I had a function (albeit non optimized) that could look up the timezone for any latitude, longitude pair.  I guess that answers the make/buy decision that the propriety code begged me to consider.  Within 5 hours I had a database of latitude, longetude, timezone, daylight time that was about 22 MB in size.  Large for a micro, but fits with ease onto a 1GB card.  I used 1 degree latitude bins and 0.1 degree longitude bins for about 648000 points.</p>
<p>For implementation reasons I broke the large file up into manageable chunks by latitude and put them on the micro SD card.  Finally I wrote a lookup routine for the micro controller that looks up the timezone by latitude and longitude.</p>
<p>Aahhh setting your awesome word clock for daylight savings time is so yesterday&#8230;</p>
<p>Code and hardware will be available soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://wyolum.com/?feed=rss2&#038;p=795</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ClockTHREEjr License</title>
		<link>http://wyolum.com/?p=789</link>
		<comments>http://wyolum.com/?p=789#comments</comments>
		<pubDate>Sun, 08 Apr 2012 19:02:43 +0000</pubDate>
		<dc:creator>wyojustin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wyolum.com/?p=789</guid>
		<description><![CDATA[<p><a href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license"></a><br /> ClockTHREEjr by <a href="WyoLum.com" rel="cc:attributionURL">WyoLum</a> is licensed under a <a href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.<br /> Based on a work at <a href="wyolum.com" rel="dct:source">wyolum.com</a>.<br /> Permissions beyond the scope of this license may be available at <a href="wyolum.com" rel="cc:morePermissions">wyolum.com</a>.</p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license"><img style="border-width: 0;" src="http://i.creativecommons.org/l/by-sa/3.0/88x31.png" alt="Creative Commons License" /></a><br />
ClockTHREEjr by <a href="WyoLum.com" rel="cc:attributionURL">WyoLum</a> is licensed under a <a href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.<br />
Based on a work at <a href="wyolum.com" rel="dct:source">wyolum.com</a>.<br />
Permissions beyond the scope of this license may be available at <a href="wyolum.com" rel="cc:morePermissions">wyolum.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://wyolum.com/?feed=rss2&#038;p=789</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WyoLum Text Format</title>
		<link>http://wyolum.com/?p=758</link>
		<comments>http://wyolum.com/?p=758#comments</comments>
		<pubDate>Sat, 31 Mar 2012 14:37:56 +0000</pubDate>
		<dc:creator>wyojustin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wyolum.com/?p=758</guid>
		<description><![CDATA[<p>You are probably already asking yourself what is WyoLum Text Format, or WTF? for short.  Let me answer that for you.  The WyoLum Text Format is a file format that defines the  LED sequencing for ClockTHREEjr.  This makes it easy for anyone to define a new language or dialect for ClockTHREEjr without programming.  Our LINGUIST [...]]]></description>
			<content:encoded><![CDATA[<p>You are probably already asking yourself what is WyoLum Text Format, or WTF? for short.  Let me answer that for you.  The WyoLum Text Format is a file format that defines the  LED sequencing for ClockTHREEjr.  This makes it easy for anyone to define a new language or dialect for ClockTHREEjr without programming.  Our LINGUIST backers from Kickstarter and others have already used WTF to define <a href="https://docs.google.com/spreadsheet/ccc?key=0AoFDFqMbmin9dEFCX1ZfOG5VbkRRSzVxSGJNWFVVb1E#gid=25">10 languages and variants</a>.  Here, we show how it works through an example: Dutch_v1.  (David Pincus&#8217; and Roel Paes&#8217; clear and simple rendition of the LED sequence that defined his Dutch variant was the spark that led to WTF).</p>
<p>In your favorite spreadsheet program (we use Google Docs), start by defining the characters in the 8&#215;16 LED grid.</p>
<pre>  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
0 h e t r i s p v i j f b t i e n
1 k w a r t w i n t i g n v o o r
2 o v e r v h a l f w t w e e n b
3 d r i e v i e r v i j f z e s b
4 z e v e n e g e n a c h t i e n
5 e l f t w a a l f c u u r f ' s
6 o c h t e n d s m i d d a g s a
7 d p a v o n d s n a c h t s j s</pre>
<p>The first character &#8220;h&#8221; (in the upper left hand corner of the grid) goes in cell &#8220;C2&#8243; so that the character grid covers the range(C2:R9).</p>
<p>Next we define the grid vocabulary (the individual words that the faceplate is capable of displaying) .  A &#8220;word&#8221; here means a group of horizontally adjacent cells which is identified by three numbers: starting row, starting column, and length.  Words are allowed to overlap if they share common letters.  For instance &#8220;twee&#8221; and &#8220;een&#8221; at the end of row number 2 share &#8220;ee&#8221;.  The word definitions start in cell V1.  The number of words in the vocabulary is arbitrary although there are more efficient ways of stroring the LED sequence if more than 128 words are used.  In practice, we have not required more than 45 words in any variant.  If we include the labels in column U and the translations in rows 3 and 4, the Dutch_v1 words start out like this:</p>
<pre>StartRow	0	0	0	0	1	1	1	2	2	...
StartCol	0	4	7	12	0	4	12	0	5	...
length		3	2	4	4	5	7	4	4	4	...
Dutch		het	is	vijf	tien	kwart	twinig	voor	over	half	...
Translation	it	is	five	ten	quarter	twenty	before	after	half	...</pre>
<p>Although it is not absolutely essential, the words should appear in the same order as on the faceplate.  This allows Simulate.py (discussed later) to print the words corresponding to each time as well as to display the time on the faceplate.</p>
<p>Next we define when each word should light up.  There are 288 5-minute time increments in 24 hours.  Therefore, the LED sequencing matrix has 288 rows and one column per word.  In Dutch_v1 there are <em>27</em> words, so the LED sequencing matrix is 288 rows by 27 columns starting in cell V6.  In Dutch &#8220;het is twaalf uur &#8216;s nachts&#8221; means &#8221;it is mignight&#8221;.  This is indicated in the first row of the LED sequencing matrix by copying each word in the pharse &#8220;het is twaalf uur &#8216;s nachts&#8221; to the first row, in the appropriate cell.  Please refer back to the <a href="https://docs.google.com/spreadsheet/ccc?key=0AoFDFqMbmin9dEFCX1ZfOG5VbkRRSzVxSGJNWFVVb1E#gid=13">Google doc</a> for clarification.  Even though this is really a binary (on/off) matrix we use the whole word to indicate that it should be lit so that it is easty to read the time phase right off the spreadsheet.</p>
<div id="attachment_779" class="wp-caption aligncenter" style="width: 810px"><a href="http://wyolum.com/?attachment_id=779" rel="attachment wp-att-779"><img class="size-full wp-image-779  " title="visual_dutch_v1" src="http://wyolum.com/blog/wp-content/uploads/2012/03/visual_dutch_v1.png" alt="" width="800" height="776" /></a><p class="wp-caption-text">The LED sequencing matrix displayed for English_v3.</p></div>
<p>Finally we define the &#8220;minutes hack&#8221; leds and sequencing.  Some people love the minutes hack, others hate it.  Basically it allows the clock to display more precise time than every five minutes, but not in words.  We call it the &#8220;minutes hack&#8221; because when Anool and I made our first word clock, the &#8220;<a href="http://wyoinnovation.blogspot.com/2010/05/worduino-instructions.html">Worduino</a>&#8221; the minute leds were an after thought.  Traces needed to be cut and extra wires needed to be added.  It really was a hack.  Since then we have designed in the &#8220;minutes hack&#8221; but the name as stuck.</p>
<p>You can have as many &#8220;minute&#8221; leds as you want.  The Hebrew_v1 variant uses the whole bottom row as minute LEDs, but just four works well too to show how many minutes past the displayed time have elapsed.  A minute LED is a single cell specified by a row and a column of the matrtix.  Also a variant may have any number of minute hack &#8220;states&#8221;.  The transitions are timed so that the entire sequence is displayed every five minutes.</p>
<p>The number of minute LEDs is specified in cell V294.  Put a zero here if your variant does not use minutes hack LEDs.  The number of minutes hack states is specified in cell X294.  Again, put a zero here if your variant does not use minutes hack LEDs.</p>
<p>Since Dutch_v1 does not used the minutes hack feature, we use Shai Aharonov&#8217;s Hebrew_v1 as an example.</p>
<pre>n_min_led	16	n_min_state	20</pre>
<p>Including the labels the LED locations for this variant look like this (the first 7 is located in cell V295):</p>
<pre>minute row	7	7	7	7	7	7	7	...
minute column	0	1	2	3	4	5	6	...</pre>
<p>The next n_min_state rows (20 in this case) define when each minute led is lit.  Put an &#8220;X&#8221;s in the appropriate cells.</p>
<p><a href="http://wyolum.com/?attachment_id=770" rel="attachment wp-att-770"><img class="alignleft size-medium wp-image-770" title="Screenshot at 2012-03-31 10:46:50" src="http://wyolum.com/blog/wp-content/uploads/2012/03/Screenshot-at-2012-03-31-104650-300x240.png" alt="" width="300" height="240" /></a></p>
<p><span id="more-758"></span><!--more--><strong>Simulating your ClockTHREEjr variant</strong></p>
<p>After you have defined your ClockTHREEjr variant in the above format, save the file as &#8220;.csv&#8221;.  This stands for &#8220;comma separated value.&#8221;  Prior to the file definition defined above, we tried several different &#8220;.csv&#8221; formats. To indicate that the above format is adhered to and to distinguish WTF files from any old .csv file, we use the &#8220;.wtf&#8221; extension.  Rename your recently saved &#8220;.csv&#8221; file to YOUR_LANGUAGE_v1.wtf, with &#8220;YOUR_LANGUAGE&#8221; and &#8220;v1&#8243; replaced with a name that describes the language and version.  <a href="http://wyolum.com/docs/code/Simulate.py">Simulate.py</a> requires the &#8220;.wtf&#8221; extension.</p>
<p><strong>Install Python</strong></p>
<p>If you don&#8217;t have python and numpy installed on your system, do that now.</p>
<p><a href="http://www.python.org/getit/">http://www.python.org/getit/</a>, <a href="http://numpy.org/">http://numpy.org/</a></p>
<p>Start Simulate.py from the command line with your &#8220;.wtf&#8221; file as the first argument.  On my system this looks like this:</p>
<p>&gt; python Simulate.py Dutch_v1.wtf</p>
<p>On Windows:</p>
<p>start-&gt;run &#8220;cmd&#8221;</p>
<p>DOS&gt; cd  &#8221;the directory where your wtf file is located&#8221;</p>
<p>DOS&gt; Simulate.py Dutch_v1.wtf</p>
<p><!--more--><strong>Shortcut keys:</strong></p>
<p><strong>H/h</strong> move forward/backward one hour</p>
<p><strong>M/m</strong> move forward/backward one minute</p>
<p><strong>F/f</strong>  move forward/backward five minutes</p>
<p><strong>U/l</strong> change to UPPER or lower case</p>
<p>To create the a header file to run on ClockTHREEjr, select File-&gt; C-Convert from the menu.  Save the  header (&#8220;.h&#8221;) file in your arduino sketch directory (currently libraries/ClockTHREE/examples/ClockTHREE_04/)</p>
<p>To upload your new ClockTHREEjr variant requires one line change in the sketch file ClockTHREE_04.ino.  On or about line 28 comment out the existing header file and replace it with your new variant header file.</p>
<p>WAS</p>
<pre>#include "english_v3.h"</pre>
<p>AFTER</p>
<pre>//#include "english_v3.h"
#include "YOUR_LANGUAGE_v1.h"</pre>
<p>Finally upload your new ClockTHREEjr variant! Congratulations! Send a copy of the &#8220;.wtf&#8221; file to infor@wyolum.com if would like to make your new variant open source.</p>
]]></content:encoded>
			<wfw:commentRss>http://wyolum.com/?feed=rss2&#038;p=758</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ClockTHREEjr auf Deutsch</title>
		<link>http://wyolum.com/?p=751</link>
		<comments>http://wyolum.com/?p=751#comments</comments>
		<pubDate>Thu, 29 Mar 2012 20:56:31 +0000</pubDate>
		<dc:creator>wyojustin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wyolum.com/?p=751</guid>
		<description><![CDATA[<p>Announcing two German versions of<a href="http://wyolum.com/shop/products.php?8"> ClockTHREEjr</a>.  The are open to review on the <a href="http://forum.wyolum.com/showthread.php?tid=25">forum.</a></p> <p>German_v1 includes words like &#8220;mittags&#8221; &#8220;nachts&#8221; und &#8220;abends&#8221;. We were one letter too short to include them all as we would like so we had to make the compromise of sharing the &#8220;s&#8221; on &#8220;nachts&#8221; with mittags. so &#8220;nachts&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>Announcing two German versions of<a href="http://wyolum.com/shop/products.php?8"> ClockTHREEjr</a>.  The are open to review on the <a href="http://forum.wyolum.com/showthread.php?tid=25">forum.</a></p>
<p>German_v1 includes words like &#8220;mittags&#8221; &#8220;nachts&#8221; und &#8220;abends&#8221;. We were one letter too short to include them all as we would like so we had to make the compromise of sharing the &#8220;s&#8221; on &#8220;nachts&#8221; with mittags. so &#8220;nachts&#8221; reads</p>
<p>&#8220;NACHT__________S&#8221;</p>
<p>German_v2 only tells the time. The words are numerically ordered so the progression flows more naturally. None of the words share any letters.</p>
<p>Each version is available as an animated GIF file or a zipped directory of images.  Coming up:Esperonto and French.</p>
<p>Roger, who initiated the explosion in number of German veriants has contributed this table clarify the differences between the them.  Thanks Roger!</p>
<table border="0" frame="VOID" rules="NONE" cellspacing="0">
<colgroup>
<col width="60" />
<col width="111" />
<col width="160" />
<col width="166" />
<col width="111" />
<col width="176" />
<col width="144" /></colgroup>
<tbody>
<tr>
<td align="LEFT" width="60" height="20"><strong><span style="text-decoration: underline;"><br />
</span></strong></td>
<td align="LEFT" width="111"><strong><span style="font-size: small;">12:00</span></strong></td>
<td align="LEFT" width="160"><strong><span style="font-size: small;">12:15</span></strong></td>
<td align="LEFT" width="166"><strong><span style="font-size: small;">12:20</span></strong></td>
<td align="LEFT" width="111"><strong><span style="font-size: small;">12:30</span></strong></td>
<td align="LEFT" width="176"><strong><span style="font-size: small;">12:40</span></strong></td>
<td align="LEFT" width="144"><strong><span style="font-size: small;">12:45</span></strong></td>
</tr>
<tr>
<td align="LEFT" height="20"><strong><span style="font-size: small;">V1</span></strong></td>
<td align="LEFT">zwölf uhr mittags</td>
<td align="LEFT">viertel nach zwölf mittags</td>
<td align="LEFT">zehn vor halb eins mittags</td>
<td align="LEFT">halb eins mittags</td>
<td align="LEFT">zehn nach halb eins mittags</td>
<td align="LEFT">viertel vor eins mittags</td>
</tr>
<tr>
<td align="LEFT" height="20"><strong><span style="font-size: small;">V2</span></strong></td>
<td align="LEFT">zwölf uhr</td>
<td align="LEFT">viertel nach zwölf</td>
<td align="LEFT">zehn vor halb eins</td>
<td align="LEFT">halb eins</td>
<td align="LEFT">zehn nach halb eins</td>
<td align="LEFT">viertel vor eins</td>
</tr>
<tr>
<td align="LEFT" height="20"><strong><span style="font-size: small;">V3</span></strong></td>
<td align="LEFT">zwölf uhr</td>
<td align="LEFT">viertel nach zwölf</td>
<td align="LEFT">zwanzig nach zwölf</td>
<td align="LEFT">halb eins</td>
<td align="LEFT">zwanzig vor eins</td>
<td align="LEFT">viertel vor eins</td>
</tr>
<tr>
<td align="LEFT" height="20"><strong><span style="font-size: small;">V4</span></strong></td>
<td align="LEFT">zwölf uhr</td>
<td align="LEFT">viertel eins</td>
<td align="LEFT">zwanzig nach zwölf</td>
<td align="LEFT">halb eins</td>
<td align="LEFT">zwanzig vor eins</td>
<td align="LEFT">dreivertel eins</td>
</tr>
</tbody>
</table>
<p><img class="alignleft" title="German_v1" src="http://wyolum.com/images/ClockTHREEjr/German_v1.gif" alt="" width="362" height="392" /></p>
<p><a href="http://wyolum.com/images/ClockTHREEjr/German_v2.zip"><img class="alignright" title="German_v2" src="http://wyolum.com/images/ClockTHREEjr/German_v2.gif" alt="" width="362" height="392" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://wyolum.com/images/ClockTHREEjr/German_v3.zip"><img class="alignleft" src="http://wyolum.com/images/ClockTHREEjr/German_v3.gif" alt="" width="362" height="392" /></a><a href="http://wyolum.com/images/ClockTHREEjr/German_v4.zip"><img class="alignright" src="http://wyolum.com/images/ClockTHREEjr/German_v4.gif" alt="" width="362" height="392" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://wyolum.com/?feed=rss2&#038;p=751</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Our ClockTHREEjr Partners.</title>
		<link>http://wyolum.com/?p=734</link>
		<comments>http://wyolum.com/?p=734#comments</comments>
		<pubDate>Tue, 06 Mar 2012 11:14:32 +0000</pubDate>
		<dc:creator>wyojustin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wyolum.com/?p=734</guid>
		<description><![CDATA[<p><a href="http://timewitharduino.blogspot.com/"></a>Given the recent success of ClockTHREEjr, we thought it was appropriate to point out our partnerships, without whom ClockTHREEjr would not be possible.</p> <p>Volunteer Partnerships:  These partners have not asked for any compensation for supporting ClockTHREEjr.</p> Wise Time With Arduino, (FlorinC) <a href="http://timewitharduino.blogspot.com/">http://timewitharduino.blogspot.com/</a> &#8211; The original impetus for bringing the costs down on ClockTHREEjr and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://timewitharduino.blogspot.com/"><img class="alignright" title="FlorinC" src="http://2.bp.blogspot.com/_2CxEHzbU8qc/SjzQcUOKf6I/AAAAAAAAABs/zYrc7MOrKk0/S220/logo.JPG" alt="" width="165" height="220" /></a>Given the recent success of ClockTHREEjr, we thought it was appropriate to point out our partnerships, without whom ClockTHREEjr would not be possible.</p>
<p>Volunteer Partnerships:  These partners have not asked for any compensation for supporting ClockTHREEjr.</p>
<ul>
<li>Wise Time With Arduino, (FlorinC) <a href="http://timewitharduino.blogspot.com/">http://timewitharduino.blogspot.com/</a> &#8211; The original impetus for bringing the costs down on ClockTHREEjr and project lead</li>
<li>Brian Krontz, <a href="http://www.briankrontz.com/">http://www.briankrontz.com/</a> &#8211; Photographer.  Brian indicated in no uncertain terms how much room for improvement we had in the photographic arts!  We challenged him to &#8220;show us what we were missing&#8221; and that he did.</li>
</ul>
<p>Please visit their websites and price them on your next project.  We have found them to be reliable and more affordable than all of their competitors.<a href="http://angushines.com/"><img class="alignright" title="Hines" src="http://angushines.com/wp-content/themes/hines%20design/images/hdl-logo.png" alt="" width="88" height="90" /></a></p>
<ul>
<li>Hines Design Labs <a href="http://angushines.com/">http://angushines.com</a> &#8211; Custom CNC work, and laser cutting.  Angus re-designed our faceplates to be much more manufacturable and flexible.  We have priced other services and have found Angus Hines to be literally half the cost.</li>
<li>See<img class="alignright" title="Seeed" src="http://www.seeedstudio.com/depot/includes/templates/pure_green/images/logo.gif" alt="" width="297" height="30" />ed Studio, <a href="http://www.seeedstudio.com/depot/">http://www.seeedstudio.com/depot/</a> &#8211; PCB, kits, assembly.  We were shocked by the discounts we could receive from Seeed Studio if we could buy in quantities of 100 or more.</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://wyolum.com/?feed=rss2&#038;p=734</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kickstarter successful! (and other news)</title>
		<link>http://wyolum.com/?p=722</link>
		<comments>http://wyolum.com/?p=722#comments</comments>
		<pubDate>Sun, 04 Mar 2012 22:21:22 +0000</pubDate>
		<dc:creator>wyojustin</dc:creator>
				<category><![CDATA[ClockTHREE]]></category>
		<category><![CDATA[ClockTHREEjr]]></category>

		<guid isPermaLink="false">http://wyolum.com/?p=722</guid>
		<description><![CDATA[<p>Thanks to everyone who helped us get the &#8220;Word&#8221; out, wordclock that is.  Our Kickstarter project exceeded all of our expectations by an order of magnitude.</p> <p>In order to prepare for builder questions, David Pincus set up a forum:<a href=" http://forum.wyolum.com."> http://forum.wyolum.com.</a>  Please sign up and post a question or answer one.</p> <p>The ClockTHREEjr has [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="Forum Live" src="http://wyolum.com/images/ClockTHREEjr/Screenshot%20at%202012-03-02%2023:34:36.png" alt="Forum Live" width="820" height="461" />Thanks to everyone who helped us get the &#8220;Word&#8221; out, wordclock that is.  Our Kickstarter project exceeded all of our expectations by an order of magnitude.</p>
<p>In order to prepare for builder questions, David Pincus set up a forum:<a href=" http://forum.wyolum.com."> http://forum.wyolum.com.</a>  Please sign up and post a question or answer one.</p>
<p>The ClockTHREEjr has illustrated the viability of the WyoLum model.  The following is from our original homepage.</p>
<p><em>WyoLum is a partnership of Open Source enthusiasts collaborating on cool products.</em></p>
<p><em>We want to take DoItYourself to the next level of efficiency by creating a collaboration platform where guerrilla engineering-and-design teams can emerge for the duration of a project, solve a problem, disband and move on to the next project with the main goal of having fun in learning and developing as many cool and interesting projects as we can.</em></p>
<p><em><span id="more-722"></span></em></p>
<div>Several people played key roles to the ClockTHREEjr success.  <a href="http://www.briankrontz.com/Product/ClockThree/21328598_LjKgzd#!i=1717449565&amp;k=NxBw88p">Brian Krontz</a> took amazing photos that really capture the beauty of the clock.  The photos where eye catching as a thumbnail and stunning in full scale.  Margaret Shaw (a.k.a. Grandmama) send out a personal thank you note to (almost) every new backer which set a friendly tone for the interactions to come.  David Pincus kept everything moving by replying quickly to the many questions that came up.  Backers pitched in to define new languages, faceplates and one backer even performed a thorough board review.  It was amazing to see the pieces come flying together at just the right time.</div>
<div></div>
<div>Some of the WyoLum team met Saturday to discuss what went right and lessons learned from our experience.  Here are the highlights of our meeting.</div>
<div></div>
<h2>Kickstarter Lessons Learned</h2>
<div>
<ul>
<li>Consistent Positive Interaction &#8212; When you have your heart and soul poured into a project, it is easy to be overly defensive to every comment.  The WyoLum team resisted the urge to be offended and tried to get to the core of the inquirers question or point.</li>
<li>All help accepted &#8212; We accepted any and all assistance.  We could not have done it otherwise.</li>
<li>Frequent updates &#8212; There is a fine line between spamming and informing.  We updated our backers whenever we had enough significant updates that our backers would genuinely interested.</li>
<li>Prior Success &#8212; This gave confidence that we would fulfill our commitment to our backers</li>
<li>Diverse Group &#8212; Men, women, and children, form around the world made it easy to identify with someone</li>
<li>Customization &#8212; This can be a pain to deliver, but it sets ClockTHREEjr apart from other clocks.</li>
<li>Too many backer options &#8212; The several options where confusing to several backers.  We thought photos of the rewards might make it easier for the backers.</li>
</ul>
<p>Please comment if you agree or disagree with any of the above.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wyolum.com/?feed=rss2&#038;p=722</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ClockTHREEjr KickStarter Launched</title>
		<link>http://wyolum.com/?p=659</link>
		<comments>http://wyolum.com/?p=659#comments</comments>
		<pubDate>Tue, 31 Jan 2012 12:44:24 +0000</pubDate>
		<dc:creator>wyojustin</dc:creator>
				<category><![CDATA[ClockTHREE]]></category>

		<guid isPermaLink="false">http://wyolum.com/?p=659</guid>
		<description><![CDATA[<p></p> <p>We just launched a <a href="http://www.kickstarter.com/projects/252714519/clockthree-jr">KickStarter project for ClockTHREEjr</a>!  We can significantly reduce the price if we achieve a volume buy.  Help us spread the word!</p> <p>Justin</p> <p>UPDATE: We have exceeded our minimum threshold by a factor of 2 and still three weeks to go! Help us keep up the momentum! Spread the word [...]]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://www.kickstarter.com/projects/252714519/clockthree-jr/widget/card.html" frameborder="0" align="right" width="220px" height="380px"></iframe></p>
<p>We just launched a <a href="http://www.kickstarter.com/projects/252714519/clockthree-jr">KickStarter project for ClockTHREEjr</a>!  We can significantly reduce the price if we achieve a volume buy.  Help us spread the word!</p>
<p>Justin</p>
<p>UPDATE: We have exceeded our minimum threshold by a factor of 2 and still three weeks to go! Help us keep up the momentum! Spread the word [clock]!!</p>
<p>UPDATE: We have added 2- and 3-board designs. Check out the super cool &#8220;artist rendition&#8221; of &#8220;to-the-minute&#8221;.<a href="http://wyolum.com/images/ClockTHREEjr/to-the-minute.png"><img class="alignleft" src="http://wyolum.com/images/ClockTHREEjr/to-the-minute.png" alt="" width="522" height="414" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://wyolum.com/?feed=rss2&#038;p=659</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Custom faceplate C3 glam shot</title>
		<link>http://wyolum.com/?p=641</link>
		<comments>http://wyolum.com/?p=641#comments</comments>
		<pubDate>Mon, 23 Jan 2012 05:59:28 +0000</pubDate>
		<dc:creator>david</dc:creator>
				<category><![CDATA[ClockTHREE]]></category>

		<guid isPermaLink="false">http://wyolum.com/?p=641</guid>
		<description><![CDATA[<p><a href="http://wyolum.com/?attachment_id=642" rel="attachment wp-att-642"></a>Here&#8217;s a quick pic of my custom faceplate Clock3.  My clock has a custom black faceplate with a row of &#8216;dots&#8217; across the second to last row on the bottom.  Each dot represents 15 seconds and move one dot from left to right in groups of four dots, or one minute.  When [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://wyolum.com/?attachment_id=642" rel="attachment wp-att-642"><img class="alignright size-medium wp-image-642" title="David's Glam Shot" src="http://wyolum.com/blog/wp-content/uploads/2012/01/Davids-Glam-Shot-300x200.jpg" alt="" width="300" height="200" /></a>Here&#8217;s a quick pic of my custom faceplate Clock3.  My clock has a custom black faceplate with a row of &#8216;dots&#8217; across the second to last row on the bottom.  Each dot represents 15 seconds and move one dot from left to right in groups of four dots, or one minute.  When the dots reach the right side of the clock five minutes is up and the words change.</p>
]]></content:encoded>
			<wfw:commentRss>http://wyolum.com/?feed=rss2&#038;p=641</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Arduino Library Modifications</title>
		<link>http://wyolum.com/?p=627</link>
		<comments>http://wyolum.com/?p=627#comments</comments>
		<pubDate>Fri, 30 Dec 2011 20:20:30 +0000</pubDate>
		<dc:creator>wyojustin</dc:creator>
				<category><![CDATA[ClockTHREE]]></category>
		<category><![CDATA[Math & Physics]]></category>
		<category><![CDATA[Open Hardware Grants]]></category>

		<guid isPermaLink="false">http://wyolum.com/?p=627</guid>
		<description><![CDATA[<p>Prior to the actual doomsday, we plan to use <a href="http://www.youtube.com/watch?v=juwcKZUu_Bo">DOOMSDAY</a> as a race timer for mountain bike races.  To that end we need precision time keeping.  We have a 1 ms accuracy goal relative to an absolute GPS time reference.  The GPS module provides time data in NEMA format as well as a one [...]]]></description>
			<content:encoded><![CDATA[<p>Prior to the <em>actual</em> doomsday, we plan to use <a href="http://www.youtube.com/watch?v=juwcKZUu_Bo">DOOMSDAY</a> as a race timer for mountain bike races.  To that end we need precision time keeping.  We have a 1 ms accuracy goal relative to an absolute GPS time reference.  The GPS module provides time data in NEMA format as well as a one pulse per second (1pps) reference signal.  When the GPS signal goes out of view, a real time clock chip keeps track of time and provides its own 1 Hertz signal: a 1 Hertz square wave.</p>
<p>In order to sync the 1pps signals to the real time clock square wave, I made some modifications to two libraries:<a href="http://code.google.com/p/clockthree/downloads/detail?name=Time.zip&amp;can=2&amp;q=#makechanges"> Time,</a> and <a href="http://code.google.com/p/clockthree/downloads/detail?name=TinyGPS.zip&amp;can=2&amp;q=#makechanges">TinyGPS</a> (by<a href="http://arduiniana.org/"> Mikal Hart</a>).  Precision timing is made possible by adding a 1Hz reference to the existing library.  Millisecond accuracy is obtained by keeping track of the last 1 Hz transistion and the 1 Hz duration.  So in addition to the standard year(), month(), day(), hour(), minute(), and second() functions, I added millisecond() which returns an integer between 0 and 999.</p>
<p>Some other functions were added to support the 1Hz reference:</p>
<pre><span style="color: #993300;">/* TJS: one Hertz interrupt to be called on rising edge of one Hz square wave. </span>
<span style="color: #993300;"> *      Used to sync with GPS clock or other 1Hz source to get millisecond time accuracy</span>
<span style="color: #993300;"> *      trigger is one of LOW, CHANGE, RISING, or FALLING</span>
<span style="color: #993300;"> */</span>
<span style="color: #008000;">void</span> <span style="color: #000080;">set_1Hz_ref</span>(<span style="color: #008000;">time_t</span> current_time,<span style="color: #008000;"> int</span> interrupt_pin,<span style="color: #008000;"> void</span>(*cb_ptr)(),<span style="color: #008000;"> int</span> trigger);

<span style="color: #993300;">/*</span>
<span style="color: #993300;"> * TJS: stop counting ticks.  Used to sync with absolute time.</span>
<span style="color: #993300;"> */</span>
<span style="color: #008000;">void</span> <span style="color: #000080;">pause_1Hz</span>();

<span style="color: #993300;">/*</span>
<span style="color: #993300;"> * TJS: start counting ticks.  Used to sync with absolute time.</span>
<span style="color: #993300;"> */</span>
<span style="color: #008000;">void</span> <span style="color: #000080;">unpause_1Hz</span>();</pre>
<p>The TinyGPS library also needed to be modified to support precision time synchronization.  The key enabler is a fix notification scheme.  At the heart is a user provided function that gets called when a new fix message arrives.   This function was added to support this:</p>
<pre><span style="color: #993300;">/*</span>
<span style="color: #993300;"> * TJS: Add a callback routine to be called when a new fix arrives.</span>
<span style="color: #993300;"> */</span>
<span style="color: #008000;">void</span> <span style="color: #000080;">TinyGPS::add_callback</span>(<span style="color: #008000;">fix_cb_t</span> fct_ptr);

<span style="color: #993300;">// Example fix callback signature</span>
<span style="color: #008000;">void</span> <span style="color: #000080;">grab_datetime</span>(<span style="color: #008000;">unsigned long</span> _date,
                   <span style="color: #008000;">unsigned long</span> _time,
                   <span style="color: #008000;">long</span> lat,
                   <span style="color: #008000;">long</span> lon,
                   <span style="color: #008000;">long</span> alt,
                   <span style="color: #008000;">unsigned long</span> speed,
                   <span style="color: #008000;">unsigned long</span> course);</pre>
]]></content:encoded>
			<wfw:commentRss>http://wyolum.com/?feed=rss2&#038;p=627</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Upgrading to Arduino 1.0</title>
		<link>http://wyolum.com/?p=624</link>
		<comments>http://wyolum.com/?p=624#comments</comments>
		<pubDate>Mon, 19 Dec 2011 16:47:22 +0000</pubDate>
		<dc:creator>wyojustin</dc:creator>
				<category><![CDATA[ClockTHREE]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://wyolum.com/?p=624</guid>
		<description><![CDATA[<p><a href="http://www.arduino.cc/en/Main/ReleaseNotes">Arduino 1.0</a> has hit the street.  And with that comes some backward compatibility issues.  These are the ones I needed to address to get ClockTHREE to run on Arduino 1.0.</p> <p>&#160;</p> <p>ISSUE #1: &#8221;BYTE&#8221; keyword is no longer supported, but it is not required with the new Serial.write command.</p> <p style="padding-left: 30px;">FIX: Replace Serial.print(val, BYTE); with Serial.write(val);</p> [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.arduino.cc/en/Main/ReleaseNotes">Arduino 1.0</a> has hit the street.  And with that comes some backward compatibility issues.  These are the ones I needed to address to get ClockTHREE to run on Arduino 1.0.</p>
<p>&nbsp;</p>
<p>ISSUE #1: &#8221;BYTE&#8221; keyword is no longer supported, but it is not required with the new Serial.write command.</p>
<p style="padding-left: 30px;">FIX: Replace Serial.print(val, BYTE); with Serial.write(val);</p>
<p>ISSUE #2: &#8220;wprogram.h&#8221; not found.  It has been renamed &#8220;Arduino.h&#8221;</p>
<p style="padding-left: 30px;">FIX: The release notes includes a handy pre-compiler directive to check of the arduino flavor you are using.</p>
<pre style="padding-left: 60px;"> #if defined(ARDUINO) &amp;&amp; ARDUINO &gt;= 100
 #include "Arduino.h"
 #else
 #include "WProgram.h"
 #endif</pre>
<p>ISSUE #3: Wire.send, Wire.recieve renamed to Wire.write and Wire.read resp.</p>
<p style="padding-left: 30px;">FIX: At first I tried writing a couple of macros like FIX 1, but after it took me a long time to discover my mistake, I decided not to be clever here.  I now I just add a pre-compiler conditional for Arduino 1.0.  So you end up wrapping the old code with the check wherever &#8220;Wire.send&#8221; and &#8220;Wire.receive()&#8221; where.  Like this (and so on for read/receive).</p>
<pre style="padding-left: 60px;"><span style="color: #993300;">// Arduino 1.0 compatibility</span></pre>
<pre style="padding-left: 60px;"><span style="color: #800080;">#if defined</span>(ARDUINO) &amp;&amp; ARDUINO &gt;= 100
Wire.write("DATA", 4)
<span style="color: #800080;">#else</span>
Wire.send("DATA", 4)
<span style="color: #800080;">#endif</span></pre>
<pre><span style="color: #000000;">ISSUE #4: NewSoftSerial renamed to SoftwareSerial</span></pre>
<p><span style="color: #000000;">FIX: This fix stinks, I don&#8217;t know a good way to solve it (suggestions welcome!) Arduino will scan the PDE file for ANY #includes EVEN when precluded by a pre-processor directive. The fix is to comment/uncomment the code for the correct version of Arduino.</span></p>
<pre style="padding-left: 30px;"><span style="color: #000000;">For Arduino 1.0:</span></pre>
<pre style="padding-left: 30px;"><span style="color: #800080;">#include <span style="color: #993300;">&lt;SoftwareSerial.h&gt;</span></span></pre>
<pre style="padding-left: 30px;"><span style="color: #800080;"><span style="color: #008000;">SoftwareSerial</span> <span style="color: #0000ff;">sws</span><span style="color: #000000;">(4, 5);</span></span></pre>
<pre style="padding-left: 30px;"><span style="color: #800000;">//#include &lt;SoftwareSerial.h&gt;</span></pre>
<pre style="padding-left: 30px;"><span style="color: #800000;">//SoftwareSerial sws(4, 5);</span></pre>
]]></content:encoded>
			<wfw:commentRss>http://wyolum.com/?feed=rss2&#038;p=624</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Served from: wyolum.com @ 2012-05-19 02:46:24 -->
