<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Tinkerlog</title>
	
	<link>http://tinkerlog.com</link>
	<description>Alex' blog</description>
	<lastBuildDate>Fri, 03 Sep 2010 18:39:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/tinkerlog" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="tinkerlog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Tiny Proto Boards</title>
		<link>http://tinkerlog.com/2010/09/03/tiny-proto-boards/</link>
		<comments>http://tinkerlog.com/2010/09/03/tiny-proto-boards/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 18:39:47 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[avr]]></category>

		<guid isPermaLink="false">http://tinkerlog.com/?p=1255</guid>
		<description><![CDATA[
Here are two brand new boards for faster prototyping. These are especially useful for these one-off projects that need to be more permanent than on a breadboard. And they save time as most of the standard components as reset button or ISP header are already on board. Only the custom part of the project has [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2010/09/DSC_0072.jpg"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2010/09/s_DSC_0072.jpg" alt="Tiny25 and Tiny2313 Proto Board" title="Tiny25 and Tiny2313 Proto Board" width="480" height="333" class="alignnone size-full wp-image-1257" /></a></p>
<p>Here are two brand new boards for faster prototyping. These are especially useful for these one-off projects that need to be more permanent than on a breadboard. And they save time as most of the standard components as reset button or ISP header are already on board. Only the custom part of the project has to be soldered on the proto area. They come in two flavors, one for ATtiny25 and one for ATtiny2313 Atmel microcontrollers.</p>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2010/09/DSC_0078.jpg"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2010/09/s_DSC_0078.jpg" alt="Tiny2313 Proto Board" title="Tiny2313 Proto Board" width="480" height="333" class="alignnone size-full wp-image-1261" /></a></p>
<p>Even a 3 AA cell battery holder with on/off switch is included in the kit. There also two new how-tos with detailed step-by-step instructions, <a href="http://tinkerlog.com/howto/tiny25-proto">Tiny25 Proto Board Howto</a> and <a href="http://tinkerlog.com/howto/tiny2313-proto">Tiny2313 Proto Board Howto</a>.</p>
<p>You can grab a full kit at the <a href="http://store.tinkerlog.com/store/index.php?main_page=index&#038;cPath=6">Tinker Store</a>, if you like.  </p>
<img src="http://feeds.feedburner.com/~r/tinkerlog/~4/xQkmMlu7Cm4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tinkerlog.com/2010/09/03/tiny-proto-boards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fireflies in Elektor</title>
		<link>http://tinkerlog.com/2010/07/09/fireflies-in-elektor/</link>
		<comments>http://tinkerlog.com/2010/07/09/fireflies-in-elektor/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 08:49:55 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[fireflies]]></category>

		<guid isPermaLink="false">http://tinkerlog.com/?p=1129</guid>
		<description><![CDATA[
Yay, here is my second article, this time published in the famous Elektor magazine. It&#8217;s about the synchronizing fireflies.

I met Jerry at last years HAR2009 and we chatted about the fireflies and all things electronics. He works for the Elektor magazine in the Netherlands and asked me, if I would like to publish an article [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2010/07/DSC_0222.jpg" alt="" title="Elektor July/August" width="480" height="300" class="alignnone size-full wp-image-1131" /></p>
<p>Yay, here is my second article, this time published in the famous Elektor magazine. It&#8217;s about the <a href="http://tinkerlog.com/howto/synchronizing-firefly-how-to/">synchronizing fireflies</a>.</p>
<p><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2010/07/DSC_0221.jpg" alt="" title="Elektor, page 100" width="480" height="300" class="alignnone size-full wp-image-1130" /></p>
<p>I met <a href="http://www.xor-gate.org/electronics">Jerry</a> at last years HAR2009 and we chatted about the fireflies and all things electronics. He works for the Elektor magazine in the Netherlands and asked me, if I would like to publish an article about the fireflies. And here it is. Thanks Jerry, for making this possible!</p>
<img src="http://feeds.feedburner.com/~r/tinkerlog/~4/v8yqumDgNOo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tinkerlog.com/2010/07/09/fireflies-in-elektor/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fireflies at the Fira de la Ciència</title>
		<link>http://tinkerlog.com/2010/05/17/fireflies-at-the-fira-de-la-ciencia/</link>
		<comments>http://tinkerlog.com/2010/05/17/fireflies-at-the-fira-de-la-ciencia/#comments</comments>
		<pubDate>Mon, 17 May 2010 14:29:48 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[avr]]></category>
		<category><![CDATA[led]]></category>
		<category><![CDATA[simulation]]></category>

		<guid isPermaLink="false">http://tinkerlog.com/?p=1105</guid>
		<description><![CDATA[
A couple of months ago, some nice guys of the IFISC (Institute for Cross-Disciplinary Physics and Complex Systems) contacted me. They saw the Synchronizing Fireflies and wanted them to demonstrate how simple rules can make patterns emerge from chaos. The main research of the institute is in Nonlinear Physics and Complex Systems. 

But why would [...]]]></description>
			<content:encoded><![CDATA[<p><object width="490" height="276"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=11804408&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=11804408&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="490" height="276"></embed></object></p>
<p>A couple of months ago, some nice guys of the <a target="_blank" href="http://ifisc.uib.es/">IFISC</a> (Institute for Cross-Disciplinary Physics and Complex Systems) contacted me. They saw the <a href="http://tinkerlog.com/2009/06/25/64-synchronizing-fireflies/">Synchronizing Fireflies</a> and wanted them to demonstrate how simple rules can make patterns emerge from chaos. The main research of the institute is in Nonlinear Physics and Complex Systems. </p>
<p><span id="more-1105"></span></p>
<p>But why would they want electronic gimicks? Every year, there is a science fair, the &#8220;<a target="_blank" href="http://fira2010.balearsfaciencia.org/">Fira de la ciència</a>&#8221; in Palma de Mallorca. The fair is aimed at young students, to introduce them to science with many hands-on projects and experiments. The IFISC is part of this fair and decided to use my fireflies as a demonstration of self organizing systems for one of their projects. </p>
<p><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2010/05/310320100741.jpg" alt="" title="Fireflies in the palm tree" width="450" height="600" class="alignnone size-full wp-image-1116" /></p>
<p><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2010/05/310320100721.jpg" alt="" title="Fireflies in the palm tree" width="450" height="600" class="alignnone size-full wp-image-1115" /></p>
<p>It took a while to figure out how to present the fireflies best. Here are two pictures of the palm tree to which the fireflies are tied. Great idea and it came out really beautiful.</p>
<p><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2010/05/DSC_0042-11.jpg" alt="" title="Synchronizing Fireflies" width="417" height="700" class="alignnone size-full wp-image-1118" /></p>
<p>For the fair they built a small cubicle with the palm tree inside. The cubicle was neccessary because the fireflies need an almost pitch back environment to see each other flashes.</p>
<p>As the fair was at Palma de Mallorca, I couldn&#8217;t resist to see it in person. Last week my girlfriend and I took some days off and travelled to Mallorca. We visited the fair and met some really nice staff members of IFISC. And there it was, a tiny black cube with a palm tree and fireflies within. Wohoo!</p>
<p>After all I have to say thank you all so much for the warm welcome and showing and explaining all your projects. Thanks for the cool t-shirt, I feel almost as a IFISC member now <img src='http://tinkerlog.com/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><br />
And especially thanks to Pep for pushing this project further and further and making it possible. It has been a fantastic experience. You guys rock.</p>
<h3>Links</h3>
<ul>
<li><a href="http://tinkerlog.com/2009/06/25/64-synchronizing-fireflies/">64 Synchronizing Fireflies</a></li>
<li><a target="_blank" href="http://store.tinkerlog.com/store/index.php?main_page=product_info&#038;cPath=2&#038;products_id=2">Synchronizing Firefly Kit</a></li>
<li><a target="_blank" href="http://www.youtube.com/user/pepdecanvalent">Some more videos</a> of the test setup, done by Pep</li>
<li><a target="_blank" href="http://ifisc.uib.es/">IFICS</a> (Instituto de Física Interdisciplinar y Sistemas Complejos)</li>
<li><a target="_blank" href="http://fira2010.balearsfaciencia.org/">Fira de la ciència</a></li>
</ul>
<img src="http://feeds.feedburner.com/~r/tinkerlog/~4/Plw5eOEY53w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tinkerlog.com/2010/05/17/fireflies-at-the-fira-de-la-ciencia/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Palo Altona built MakerBot CupCake CNC</title>
		<link>http://tinkerlog.com/2010/04/16/palo-altona-built-makerbot-cupcake-cnc/</link>
		<comments>http://tinkerlog.com/2010/04/16/palo-altona-built-makerbot-cupcake-cnc/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 08:20:32 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[cnc]]></category>
		<category><![CDATA[makerbot]]></category>
		<category><![CDATA[palo altona]]></category>

		<guid isPermaLink="false">http://tinkerlog.com/?p=1095</guid>
		<description><![CDATA[

Last weekend, a small group of tinkerers of Palo Altona built a MakerBot Cupcake CNC. Simone and Christian from Good School bought the MakerBot and asked Palo Altona for assistance with the assembly. Of course we were happy to help out.

We startet on Saturday and made good progress. We assembled the CNC and the extruder [...]]]></description>
			<content:encoded><![CDATA[<p><object width="490" height="368"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=10852657&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=10852657&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="490" height="368"></embed></object></p>
<p><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2010/04/DSC_0085-1.jpg" alt="" title="X-Y stage MakerBot" width="480" height="322" class="alignnone size-full wp-image-1096" /></p>
<p>Last weekend, a small group of tinkerers of <a href="http://paloaltona.posterous.com/">Palo Altona</a> built a MakerBot Cupcake CNC. Simone and Christian from <a target="_blank" href="http://www.good-school.de/">Good School</a> bought the MakerBot and asked Palo Altona for assistance with the assembly. Of course we were happy to help out.</p>
<p><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2010/04/DSC_0094-1.jpg" alt="" title="MakerBot assembly" width="480" height="322" class="alignnone size-full wp-image-1098" /></p>
<p>We startet on Saturday and made good progress. We assembled the CNC and the extruder and made the first tests with stinking hot ABS. Yeah! </p>
<p><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2010/04/DSC_0006.jpg" alt="" title="MakerBot first print" width="480" height="322" class="alignnone size-full wp-image-1097" /></p>
<p>Next day was for learning firmware and tools. We switched X, Y and Z directions of the stepper motors a couple of times and managed to drive the heated nozzle into the platform at first try. *sigh*</p>
<p><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2010/04/DSC_0009.jpg" alt="" title="First attempt shotglass" width="480" height="301" class="alignnone size-full wp-image-1099" /></p>
<p>This is the very first print out. Although it is not tight enough to drink from it, I was really impressed by the result. What a cool machine! </p>
<p>Here are some more pictures:</p>
<ul>
<li><a target="_blank" href="http://www.flickr.com/photos/8123185@N02/sets/72157623825590568/">My Flickr set</a></li>
<li><a target="_blank" href="http://goodschool.posterous.com/">Good School</a> on posterous</li>
<li><a target="_blank" href="http://cgast.posterous.com/">Christian</a> on posterous</li>
<li><a target="_blank" href="http://paloaltona.posterous.com/tag/makerbot">Palo Altona</a> on posterous</li>
<li><a target="_blank" href="http://www.flickr.com/photos/29486873@N08/sets/72157623832621642/">Marcus</a> Flickr set</li>
</ul>
<p>Thanks Simone and Christian for inviting us, it was a pleasure!</p>
<img src="http://feeds.feedburner.com/~r/tinkerlog/~4/k3saEC-rGR8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tinkerlog.com/2010/04/16/palo-altona-built-makerbot-cupcake-cnc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pong Time</title>
		<link>http://tinkerlog.com/2010/03/20/pong-time/</link>
		<comments>http://tinkerlog.com/2010/03/20/pong-time/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 12:15:33 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[pong]]></category>
		<category><![CDATA[pong clock]]></category>

		<guid isPermaLink="false">http://tinkerlog.com/?p=1066</guid>
		<description><![CDATA[
This is a Pong clock for your Android phone. It tells the time by playing Pong against itself.
Sander Muller came up first with the idea to have a Pong Clock. A really great idea and a fantastic device. Then lately Lady Ada designed a wonderful hackable clock platform, called MONOCHRON. The first implementation on the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2010/03/l_DSC_0049.jpg"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2010/03/s_DSC_0049.jpg" alt="" title="PongTime on Motorola Milestone" width="480" height="321" class="alignnone size-full wp-image-1067" /></a></p>
<p>This is a Pong clock for your Android phone. It tells the time by playing Pong against itself.</p>
<p>Sander Muller came up first with the idea to have a <a target="_blank" href="http://www.sandermulder.com/pong_clock.html">Pong Clock</a>. A really great idea and a fantastic device. Then lately Lady Ada designed a wonderful hackable clock platform, called <a target="_blank" href="http://www.adafruit.com/index.php?cPath=39&#038;main_page=product_info&#038;products_id=204">MONOCHRON</a>. The first implementation on the platform was, of course, a Pong Clock.</p>
<p>As I received my new Android phone, a Motorola Milestone, I was looking for a simple project to get my hands dirty. So what could be more obvious than writing a Pong Clock.</p>
<p>If you want to take a look at the source, check out my <a target="_blank" href="http://github.com/tinkerlog/PongTime">PongTime</a> repo at github. The code is not pretty as can be, mostly because of optimizations to get rid of object creation and thus garbage collection.</p>
<p><object width="490" height="276"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=10291532&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=10291532&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="490" height="276"></embed></object></p>
<p>If you are reading this with your Android phone, you can grab the <a href="market://search?q=pname:com.tinkerlog.android.pongtime">Pong Time app</a> directly in the Android Market. Otherwise search for &#8220;Pong Time&#8221;.</p>
<ul>
<li><a href="market://search?q=pname:com.tinkerlog.android.pongtime">Pong Time market://search?q=pname:com.tinkerlog.android.pongtime</a> in the Adroid Market</li>
<li><a target="_blank" href="http://github.com/tinkerlog/PongTime">PongTime repository</a> at github</li>
<li>Original <a target="_blank" href="http://www.sandermulder.com/pong_clock.html">Pong Clock</a> by Sander Muller</li>
<li><a target="_blank" href="http://www.adafruit.com/index.php?cPath=39&#038;main_page=product_info&#038;products_id=204">MONOCHRON</a> by Adafruit</li>
</ul>
<img src="http://feeds.feedburner.com/~r/tinkerlog/~4/zIFgR7kBCD8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tinkerlog.com/2010/03/20/pong-time/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Mega328 Header Kit</title>
		<link>http://tinkerlog.com/2010/03/11/mega328-header-kit/</link>
		<comments>http://tinkerlog.com/2010/03/11/mega328-header-kit/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 14:51:40 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[avr]]></category>

		<guid isPermaLink="false">http://tinkerlog.com/?p=1059</guid>
		<description><![CDATA[
It took a while since I first posted about the new ATmega header board but finally, here it is.
The board is great for prototyping on a solderless breadboard. It is compatible with the common 28-pin AVR controllers like ATmega48, ATmega88, ATmega168 and ATmega328. On plus it is Arduino compatible.
Some of the features:

Space efficient, occupies only [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2010/02/l_IMGP0033.JPG"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2010/02/s_IMGP0033.JPG" alt="Blinky Mega328 Header Board" title="Blinky Mega328 Header Board" width="480" height="301" class="alignnone size-full wp-image-1032" /></a></p>
<p>It took a while since I first <a href="http://tinkerlog.com/2009/05/23/atmega-breadboard-header/">posted</a> about the new ATmega header board but finally, here it is.</p>
<p>The board is great for prototyping on a solderless breadboard. It is compatible with the common 28-pin AVR controllers like ATmega48, ATmega88, ATmega168 and ATmega328. On plus it is Arduino compatible.</p>
<p>Some of the features:</p>
<ul>
<li>Space efficient, occupies only on more row than the controller itself</li>
<li>Has no voltage regulator on board, so you choose, at which voltage you want to run it</li>
<li>It has SMD resistors and LEDs (size 1206) to make it a great starting point to learn how to hand solder SMD</li>
<li>Has a sticker to tell which pin is what. <a target="_blank" href="http://todbot.com/blog/2009/05/23/arduino-chip-sticker-label/">Thanks Tod!</a></li>
<li>Blinks blue!</li>
</ul>
<p>Check out the detailed <a href="http://tinkerlog.com/howto/mega328-header/">howto page</a> and grab a <a href="http://store.tinkerlog.com/store/index.php?main_page=product_info&#038;cPath=3&#038;products_id=11">kit at the shop</a>, if you like.</p>
<img src="http://feeds.feedburner.com/~r/tinkerlog/~4/CHiDEWco2eo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tinkerlog.com/2010/03/11/mega328-header-kit/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Remote Accelerometer</title>
		<link>http://tinkerlog.com/2010/02/07/remote-accelerometer/</link>
		<comments>http://tinkerlog.com/2010/02/07/remote-accelerometer/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 15:44:21 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[ADXL335]]></category>
		<category><![CDATA[RFM12B]]></category>

		<guid isPermaLink="false">http://tinkerlog.com/?p=915</guid>
		<description><![CDATA[
What is a remote accelerometer? It&#8217;s a tiny device that has a three axis accelerometer and transmit the acceleration values to a remote host. And what is it good for? There are various uses for it. One is you attach the sensor to someone and let him jump around. On your remote machine you can [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2010/02/l_DSC_0080.JPG"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2010/02/s_DSC_0080.JPG" alt="ADXL335 + ATmega328 + RFM12B" title="ADXL335 + ATmega328 + RFM12B" width="480" height="300" class="alignnone size-full wp-image-925" /></a></p>
<p>What is a remote accelerometer? It&#8217;s a tiny device that has a three axis accelerometer and transmit the acceleration values to a remote host. And what is it good for? There are various uses for it. One is you attach the sensor to someone and let him jump around. On your remote machine you can use the data to produce sound or modify music. Think of it as a simplified Wiimote.</p>
<p><span id="more-915"></span></p>
<p>Last year Jan of <a href="http://electronicperformers.org/">electronicperformers.org</a> came to me with the idea to make the jumping of people on a trampoline audible. We thought about it and it seemed to be easy. I tinkered with some <a target="_blank" href="http://www.digi.com/products/wireless/point-multipoint/xbee-series1-module.jsp">XBees</a> and <a target="_blank" href="http://www.analog.com/en/sensors/inertial-sensors/adxl335/products/product.html">ADXL</a> acceleration sensors. They worked quite ok, but we had some trouble with the transmission, which sometimes just stopped for a couple of seconds. Maybe some kind of resetting, I really don&#8217;t know. Here is a video of the installation.</p>
<p><object style="height: 344px; width: 425px"><param name="movie" value="http://www.youtube.com/v/jP24ht-JSfw"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><embed src="http://www.youtube.com/v/jP24ht-JSfw" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"></object></p>
<p>After that I thought, nice, but can&#8217;t we get it smaller and cheaper? So I sat down and designed a tiny custom PCB.</p>
<h3>Features</h3>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2010/02/l_adxl_rfm12.png"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2010/02/s_adxl_rfm12.png" alt="ADXL335 + ATmega328 + RFM12B (Schematic)" title="ADXL335 + ATmega328 + RFM12B (Schematic)" width="480" height="330" class="alignnone size-full wp-image-937" /></a></p>
<p>I had already two <a target="_blank" href="http://news.jeelabs.org/docs/jn3.html">JeeNodes</a> laying around. These boards are using a RFM12B transceiver board to communicate with each other. So I decided to use the RFM12B as XBee replacement. They are really cheap, around 3 to 4 Euros.<br />
The device should be Arduino compatible. Mostly because of the ease of development and available libraries.</p>
<ul>
<li><a target="_blank" href="http://www.atmel.com/dyn/products/product_card.asp?PN=ATmega328P">ATmega328P</a>, Arduino compatible microcontroller, running at 8 MHz</li>
<li><a target="_blank" href="http://www.analog.com/en/sensors/inertial-sensors/adxl335/products/product.html">ADXL335</a>, 3 axis accelerometer, +/- 3g</li>
<li><a target="_blank" href="http://www.hoperf.com/rf_fsk/rf_transceiver.htm">RFM12B</a> radio transceiver, 868 MHz, range of up to 100 meters</li>
<li><a target="_blank" href="http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&#038;name=MCP1702T-3302E/CBCT-ND">MCP1702</a> linear, low-drop voltage regulator for 3.3 V, 250 mA</li>
<li>powered by a 3.7 V lipo cell, 100-300 mA</li>
<li>6 pin ISP header for programming the bootloader</li>
<li>6 pin serial header to attach an FTDI-cable</li>
<li>voltage sensor to tell when the battery goes low</li>
</ul>
<h3>Assembly</h3>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2010/02/l_DSC_0067.JPG"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2010/02/s_DSC_0067.JPG" alt="ADXL335 + ATmega328 + RFM12B" title="ADXL335 + ATmega328 + RFM12B" width="480" height="301" class="alignnone size-full wp-image-928" /></a></p>
<p>This is my second try on SMD. Resistors and capacitors are sized 0805. The controller is TQFP and the ADXL335 is LFCSP. LFCSP has not even pins you can hand solder. A very tiny package. As I had no stencil to place the solder paste (because I still have no laser cutter) I had to place the paste by hand. Pressing hard on the syringe and trying to work precisely at the same time is not that easy. After placing a tiny bubble of paste on every pad and gently placing all components, I heated up my hot-air rework station. Soldering with the hot-air station was easy. Not all components are well aligned, maybe because I used not enough solder paste. Often mis-aligned parts slide into place as soon as the paste gets liquid.<br />
Next were the headers, battery connector and the RFM12B module. These were soldered traditionally with an iron.   </p>
<p>Here is a picture of the back with the RFM12B module. The red wire is the antenna.</p>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2010/02/l_DSC_0070.JPG"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2010/02/s_DSC_0070.JPG" alt="ADXL335 + ATmega328 + RFM12B (backside)" title="ADXL335 + ATmega328 + RFM12B (backside)" width="480" height="300" class="alignnone size-full wp-image-927" /></a></p>
<h3>Software</h3>
<p>After having the thing assembled it&#8217;s time to test it out. First is to program the Arduino bootloader. For that you need an ISP programmer. I used the <a target="_blank" href="http://www.adafruit.com/index.php?main_page=product_info&#038;products_id=46">USBtinyISP</a> from adafruit. Simply select the target (Arduino Pro Mini @ 8 MHz w/ ATmega328), programmer and the port in the Arduino IDE and select &#8220;burn bootloader&#8221;. Worked on the first try.<br />
Next is a blink sketch to check if the serial connection and the LED works. It turns out that I used too little solder paste on the controller. After resoldering that pin the LED worked.<br />
Next sketch was to check if the ADXL works correctly, which it did. All three axis seem to work great.<br />
After that I had to get the transceiver working. I took the RFM12 lib from <a target="_blank" href="http://news.jeelabs.org/code/">Jee Labs</a>. You have to download the Ports lib as well to get it running. First I uploaded the RF12demo sketch, which allows to setup the RFM12 module and store the configuration in EEPROM. The module was recognized and configured with no problem at all.</p>
<p>Time to develop the actual firmware. Here is the sketch for the sensor.</p>
<pre name="code" class="c">
// RF12B ADXL sensor
// config D i4 g212 @ 868 MHz

#include "Ports.h"
#include "RF12.h"

int xPin = 0;
int yPin = 1;
int zPin = 2;
int ledPin = 5;
byte buf[6];

void setup() {
  rf12_config();
  pinMode(ledPin, OUTPUT);
}

int x, y, z;
unsigned long time;
byte ledOn;

void loop() {
  rf12_recvDone();
  if (rf12_canSend()) {
    x = analogRead(xPin);
    y = analogRead(yPin);
    z = analogRead(zPin);
    buf[0] = x >> 8;
    buf[1] = x;
    buf[2] = y >> 8;
    buf[3] = y;
    buf[4] = z >> 8;
    buf[5] = z;
    rf12_sendStart(0, buf, 6);
  }
  if (time < millis()) {
    time = millis() + 200;
    if (ledOn) {
      digitalWrite(ledPin, HIGH);
    }
    else {
      digitalWrite(ledPin, LOW);
    }
    ledOn = !ledOn;
  }
}
</pre>
<p>It's really easy. You have to call the rfm12_recvDone() to make sure the driver is still working. You have to call it, even if you are not trying to receive anything. If rfm12_canSend() returns true, we can transmit our data. We read the 3 axis acceleration and pack it into a byte array. This byte array is then transmitted. No more, no less. No acknowledge, nothing. </p>
<p>The receiver part looks almost the same, it receives the data and prints it on the serial port. From here on, you can do almost anything: Processing, Pure Data, Python, what ever fits best. You only have to be able to read a serial port.</p>
<h3>Demo</h3>
<p><object width="490" height="276"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=9270103&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=9270103&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="490" height="276"></embed></object></p>
<p>For the demo I used Processing to draw a graph of every acceleration value. The red one is a bit hard to see in the video. Then I used Python with <a target="_blank" href="http://www.pyglet.org/">pyglet</a> to play short wave sounds.</p>
<h3>Outlook</h3>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2010/02/l_DSC_0077.JPG"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2010/02/s_DSC_0077.JPG" alt="3 generations of remote accelerometers" title="3 generations of remote accelerometers" width="480" height="299" class="alignnone size-full wp-image-930" /></a></p>
<p>The picture above shows three generations of this device. On the left is the first implementation, using an XBee and an ADXL335, both on breakout boards, wired on a prototyping board. In the middle is the first custom PCB. As you can see, there are two air wires. That happens, when you get distracted while designing a PCB. On the right is the current version.</p>
<p>For the next design I would include an ON/OFF switch so you don't have to pull off the battery all the time. And maybe add a small tactile button to make more Wii-like projects possible.</p>
<h3>Downloads and Links</h3>
<ul>
<li>Eagle files and Arduino sketches, <a href='http://tinkerlog.com/wordpress/wp-content/uploads/2010/02/remote_accell.zip'>remote_accell.zip</a></li>
<li><a target="_blank" href="http://news.jeelabs.org/code/">RFM12 lib</a> at Jee Labs, great stuff!</li>
</ul>
<img src="http://feeds.feedburner.com/~r/tinkerlog/~4/MTHYNZn-G-w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tinkerlog.com/2010/02/07/remote-accelerometer/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Palo Altona – Tinker drinkup in Hamburg</title>
		<link>http://tinkerlog.com/2010/01/15/palo-altona-tinker-drinkup-in-hamburg/</link>
		<comments>http://tinkerlog.com/2010/01/15/palo-altona-tinker-drinkup-in-hamburg/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 10:16:30 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[palo altona]]></category>

		<guid isPermaLink="false">http://tinkerlog.com/?p=905</guid>
		<description><![CDATA[
If you&#8217;ve missed Marcus post, here is another on the same topic.
Nearly every other Thursday Marcus and I are hanging out together for having a beer and chatting about all things geek, especially electronics, CNC, 3D-printing, micrcontroller and Arduino. But there&#8217;s no limit, everyone interested in tinkering and making is welcome. It takes place at [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2010/01/tinker-drinkup.jpg" alt="tinker-drinkup" title="Tinker drinkup - Michael and me - with blinking stuff on the table" width="500" height="281" class="alignnone size-full wp-image-906" /></p>
<p>If you&#8217;ve missed <a target="_blank" href="http://interactive-matter.org/2010/01/palo-altona-%e2%80%93-hamburg-tinker-drinkup/">Marcus post</a>, here is another on the same topic.</p>
<p>Nearly every other Thursday Marcus and I are hanging out together for having a beer and chatting about all things geek, especially electronics, CNC, 3D-printing, micrcontroller and Arduino. But there&#8217;s no limit, everyone interested in tinkering and making is welcome. It takes place at <a target="_blank" href="http://www.qype.co.uk/place/5426-Saal-II-Hamburg">Saal II</a> in Schanze. Try us, we&#8217;re kind <img src='http://tinkerlog.com/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>You can take a look at <a target="_blank" href="http://twitter.com/interactmatter">Marcus&#8217;</a> or <a target="_blank" href="http://twitter.com/9600baud">mine</a> twitterfeed to checkout when the next <a target="_blank" href="http://twitter.com/#search?q=%23palo_altona">#palo_altona</a> will be.</p>
<p>We already had guests sometimes but yesterday&#8217;s drinkup was great as we had <strong>two</strong> new guests. Feels as if there is something moving in Hamburg. Yeah!</p>
<p><b>Update 2010/02/16:</b> Palo Altona is now scheduled biweekly. Every Thursday was a bit stressing for everybody.</p>
<p><b>Update 2010/03/20:</b> Palo Altona has now a <a href="http://paloaltona.posterous.com/">Posterous page</a> for news and schedule.</p>
<img src="http://feeds.feedburner.com/~r/tinkerlog/~4/ucL4ZK8j8nE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tinkerlog.com/2010/01/15/palo-altona-tinker-drinkup-in-hamburg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geeky Advent</title>
		<link>http://tinkerlog.com/2009/12/12/geeky-advent/</link>
		<comments>http://tinkerlog.com/2009/12/12/geeky-advent/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 10:44:23 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[avr]]></category>
		<category><![CDATA[led]]></category>

		<guid isPermaLink="false">http://tinkerlog.com/?p=860</guid>
		<description><![CDATA[
It&#8217;s Advent season. And what do you do to let your geek shine? An LED Advent wreath of course.

The idea came to me after seeing Sprite&#8217;s minimalistic version of the Hackaday&#8217;s Flickering LED circuit. It&#8217;s a simple circuit that flickers LEDs and detects darkness. I thought that this could make a great little Advent wreath. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/12/DSC_00261.JPG"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/12/DSC_0026.JPG" alt="LED Advent" title="LED Advent" width="480" height="344" class="alignnone size-full wp-image-879" /></a></p>
<p>It&#8217;s Advent season. And what do you do to let your geek shine? An LED Advent wreath of course.</p>
<p><span id="more-860"></span></p>
<p>The idea came to me after seeing <a target="_blank" href="http://spritesmods.com/?art=minimalism">Sprite&#8217;s minimalistic version</a> of the Hackaday&#8217;s <a target="_blank" href="http://hackaday.com/2008/10/30/flickering-led-circuit/">Flickering LED circuit</a>. It&#8217;s a simple circuit that flickers LEDs and detects darkness. I thought that this could make a great little Advent wreath. My version should have 4 LEDs and should be support first, second, third and fourth Advent. </p>
<h3>Parts and Schematic</h3>
<p><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/12/advent.png" alt="advent schematic" title="advent schematic" width="490" height="172" class="alignnone size-full wp-image-887" /></p>
<p>The parts list is rather short:</p>
<ul>
<li>ATtiny13V, 8-bit microcontroller, 1k flash RAM, 64 bytes SRAM</li>
<li>4 * 3mm LEDs, yellow or orange, forward voltage ~ 2.0 V</li>
<li>CR2032 coin cell, 3 V, 230 mAh</li>
<li>Paperclip</li>
</ul>
<p>There are no current limiting resistors in this circuit. Normally operating LEDs without them is not advisable because the LEDs will get damaged. But under certain conditions the resistors can be left out. For more on this topic, see <a target="_blank" href="http://spritesmods.com/?art=minimalism&#038;page=2">Sprite&#8217;s computation</a> or mine <a href="http://tinkerlog.com/2009/04/05/driving-an-led-with-or-without-a-resistor/">here</a>.</p>
<h3>How does it work</h3>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/12/DSC_00031.JPG"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/12/DSC_0003.JPG" alt="LED Advent wreath" title="LED Advent wreath" width="480" height="342" class="alignnone size-full wp-image-866" /></a></p>
<p>The nice thing about this circuit is, that it needs no special components to detect darkness. It uses an LED for that. An LED is also a photodiode that can detect light of the same wavelength it emits. See <a target="_blank" href="http://www.merl.com/publications/TR2003-035/">here</a> for more details. Sprite used an available ADC of the ATtiny13 instead of the &#8220;Reverse Bias&#8221; method. </p>
<h3>Software</h3>
<p>The software is heavily based on Sprite&#8217;s version. Things I&#8217;ve changed:</p>
<ul>
<li>Added support for four LEDs.</li>
<li>Removed calibration, replaced with hard wired values.</li>
<li>Added a bit sampling to the light measurements, because the values were a bit erratic.</li>
<li>Added a mode for first, second, third and fourth Advent, stored in EEPROM. Gets incremented at every reset.</li>
<li>Modified the watchdog code a bit to keep it generating interrupts instead of resets.
</ul>
<p>After power up, the watchdog gets enabled to generate an interrupt every two seconds. Then the current mode (0-3) is read from EEPROM, incremented and stored back. Then the endless loop is entered, where random values are used to flicker the LEDs. The ISR checks the ambient lighting and if it is higher than a certain level, sets a sleep flag. This flag is monitored in the main loop. If set it sends the controller in to power down mode to save battery power. The next interrupt will wake up the main loop.</p>
<h3>Assembly</h3>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/12/DSC_00191.JPG"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/12/DSC_0019.JPG" alt="2nd Advent" title="2nd Advent" width="480" height="343" class="alignnone size-full wp-image-873" /></a></p>
<p>This circuit is soldered in &#8220;free form&#8221;, so no PCBs. It takes some time to get it done but it&#8217;s worth it.<br />
All cathodes of the LEDs are connected to form the ring. The anodes are bent inwards to be soldered to pin 2, 3, 6 and 7 of the ATtiny13. A short piece of wire is connected to the common cathode and soldered to the GND pin.</p>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/12/DSC_00131.JPG"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/12/DSC_0013.JPG" alt="Dead bug style" title="Dead bug style" width="480" height="344" class="alignnone size-full wp-image-863" /></a></p>
<p>The microcontroller lies &#8220;dead bug&#8221; style on the coin cell. The GND pin is bent to the top, now connecting to GND of the battery. The VCC pin is bent to the bottom and soldered to the coin cell holder. The coin cell holder works as a clip, pressing the microcontroller onto the cell.</p>
<p>Some random notes: </p>
<ul>
<li>Be patient.</li>
<li>Use as less solder as possible.</li>
<li>Don&#8217;t heat the pins of the controller for too long.</li>
<li>Be gentle while bending the controller pins. They come off easily. I added a tiny bit of solder.</li>
<li>BE patient <img src='http://tinkerlog.com/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ul>
<h3>The Result</h3>
<p><object width="490" height="276"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=8134511&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=8134511&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="490" height="276"></embed></object></p>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/12/DSC_00311.JPG"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/12/DSC_0031.JPG" alt="LED Advent wreath" title="LED Advent wreath" width="480" height="344" class="alignnone size-full wp-image-868" /></a></p>
<p>If you make one, please let me know. Send me a picture or post it on the <a target="_blank" href="http://www.flickr.com/groups/1145324@N23/">tinkerlog flickr pool</a>.</p>
<p>Happy third Advent &#8230; </p>
<h3>Downloads and Links</h3>
<ul>
<li>Source <a href='http://tinkerlog.com/wordpress/wp-content/uploads/2009/12/advent.zip'>advent.zip</a>
<li><a target="_blank" href="http://spritesmods.com/?art=minimalism">Minimalistic flickering LEDs</a> at Spritesmods</li>
<li><a target="_blank" href="http://hackaday.com/2008/10/30/flickering-led-circuit/">Flickering LED circuit</a> at Hackaday
<li><a href="http://evilmadscience.com/component/content/article/155">LED Menorah</a>, also free form at Evil Mad Science</li>
</ul>
<img src="http://feeds.feedburner.com/~r/tinkerlog/~4/Njqgm2pf4Bc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tinkerlog.com/2009/12/12/geeky-advent/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>A retro twitter wall (twypper)</title>
		<link>http://tinkerlog.com/2009/11/20/a-retro-twitter-wall-twypper/</link>
		<comments>http://tinkerlog.com/2009/11/20/a-retro-twitter-wall-twypper/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 18:12:57 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://tinkerlog.com/?p=822</guid>
		<description><![CDATA[
A couple of weeks ago Jan came to me and asked me if I could build a special kind of twitter wall. At our company CoreMedia we do an Open Space every 3 months or so. This time we had a Hacking Day as well, so we needed something special. After throwing some ideas around, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/11/l_DSC_0420.JPG"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/11/s_DSC_0420.JPG" alt="Arduino with typewriter" title="Arduino with typewriter" width="480" height="343" class="alignnone size-full wp-image-844" /></a></p>
<p>A couple of weeks ago <a target="_blank" href="http://twitter.com/jtietjen">Jan</a> came to me and asked me if I could build a special kind of twitter wall. At our company <a target="_blank" href="http://www.coremedia.com">CoreMedia</a> we do an <a target="_blank" href="http://en.wikipedia.org/wiki/Open_Space_Technology">Open Space</a> every 3 months or so. This time we had a <a target="_blank" href="https://blog.coremedia.com/cm/post/3077033/RE_SocializeCoreMedia_OpenSpace_am_13_November_2009.html#4634397">Hacking Day</a> as well, so we needed something special. After throwing some ideas around, we came up with a twitter client that should print out tweets with an electric typewriter. A short google showed, that that has been done already (of course!). See it at <a target="_blank" href="http://oomlout.co.uk/?p=79">oomlout</a>.</p>
<p>But that couldn&#8217;t stop us. Jan scanned ebay for a nice electric typewriter and found a Commodore SQ 1000. It was in really good condition, probably rarely used. It worked as advertised.</p>
<p><span id="more-822"></span></p>
<h3>Take it apart</h3>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/11/l_DSC_0320.JPG"><img class="alignnone size-full wp-image-828" title="Take it apart" src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/11/s_DSC_0320.JPG" alt="Take it apart" width="480" height="322" /></a></p>
<p>First step is to take it apart. That reveals a small PCB and the connections of the keyboard. Later I realized that I hadn&#8217;t to open up the keyboard itself, because there is nothing of interest in there. It is a simple keyboard matrix.</p>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/11/l_DSC_0319.JPG"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/11/s_DSC_0319.JPG" alt="SQ 1000 Mainboard" title="Commodore SQ 1000 Mainboard" width="480" height="344" class="alignnone size-full wp-image-830" /></a></p>
<p>The big chip on the right is a SEC microcontroller. The smaller chips should be there for driving the barrel etc. but I haven&#8217;t investigated that. The green foil in the middle is the connection to the keyboard. Actually there are two connections, each with 8 lines, one for the rows, one for the columns to form a matrix.</p>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/11/l_DSC_0325.JPG"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/11/s_DSC_0325.JPG" alt="Solder some hook wires" title="Solder some hook wires" width="480" height="343" class="alignnone size-full wp-image-829" /></a></p>
<p>I decided, that the easiest way to simulate key presses was by shorting the switch of the desired key. I soldered two 8 line cables to the solder joints on the bottom side of the PCB. Actually there were 12 lines on one of the connectors, but 4 of these lines are used to drive LEDs for caps lock and power. </p>
<h3>How does it work</h3>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/11/l_DSC_0328.JPG"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/11/s_DSC_0328.JPG" alt="Analyze the keyboard" title="Analyze the keyboard" width="480" height="322" class="alignnone size-full wp-image-827" /></a></p>
<p>Putting everything back in to place I tried to understand, how the keyboard matrix works. Very helpful was <a target="_blank" href="http://www.avr-asm-tutorial.net/avr_en/keypad/keyboard.html">this tutorial</a>, that connects a keypad to an AVR. </p>
<p>All 16 lines are directly connected to the controller, no external pull-up or pull-down resistors. As already said, the 16 lines are arranged to form a 8 by 8 matrix, giving 64 possible key codes. 8 lines are supplying 5V (called out) and the other 8 lines are low (called in).  The controller then cycles through all out lines, pulling it down, one at a time. Then it checks if one of the in lines is pulled to low to identify the pressed key.<br />
To simulate the key press I have to wait for low on a specific out line and then pull one of the in lines low. I used my oscilloscope to see what&#8217;s really going on. It turns out that the controller scans for key strokes with 87 Hz. Every line is low for about 150 us. I used the Arduino to record the sequence and calculate how wide the low phase is. When I would find a low on line 1 of the out line, I could use it as trigger and compute when the other lines would be pulled down. That way I would only use a single wire (and Arduino input) to detect the out line.<br />
To set a specific in line to low I am using a 74HC595, a shift register with tristate output. The tristate is nice, because if it is disabled, the keyboard is fully functional as if the Arduino is not connected at all.</p>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/11/l_DSC_0421.JPG"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/11/s_DSC_0421.JPG" alt="Arduino interfaced with Commodore SQ1000" title="Arduino interfaced with Commodore SQ1000" width="480" height="344" class="alignnone size-full wp-image-838" /></a></p>
<p>Here is everything connected on a breadboard. On the left is a standard Arduino with an Ethernet Shield.</p>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/11/l_DSC_0423.JPG"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/11/s_DSC_0423.JPG" alt="Arduino, Ethernetshield and a shift register 74HC595" title="Arduino, Ethernetshield and a shift register 74HC595" width="480" height="343" class="alignnone size-full wp-image-836" /></a></p>
<p>On the right is the shift register. In the middle is a pull up resistor connected to line 1 of the out lines. That is used to be able to &#8220;see&#8221;, when the line goes down.</p>
<h3>Reading twitter</h3>
<p>The software part to connect to twitter is straight forward. I used the <a target="_blank" href="http://apiwiki.twitter.com/Twitter-Search-API-Method%3A-search">twitter search API</a> to pull tweets that contained the word #cos09, which was the hashtag used at the CoreMedia Open Space. The query is executed every 60 seconds and the query string looks like this:<br />
<code></p>
<p>http://search.twitter.com/search.json?q=cos09&#038;since_id=0</p>
<p></code><br />
Parsing the json formatted response is a bit ugly, mostly because memory is very limited on the ATmega168. After fetching and parsing a complete response, the max_id is stored and used for the next query. That way only new tweets are printed. </p>
<h3>Demo</h3>
<p><object width="490" height="276"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7645230&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=7645230&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="490" height="276"></embed></object></p>
<p>So far everything worked well, except the hash sign (#), the @ and &#8230; umlauts (*sigh*). The hash sign is not available because it only accessible by pressing the code key simultaneously, which is not possible with the current setup. The @ is not available at all, I simulate it by the sequence O-backspace-a. Umlauts are missing because &#8230; I&#8217;m lazy. </p>
<h3>Final twitter wall setup</h3>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/11/l_DSC_0013.JPG"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/11/s_DSC_0013.JPG" alt="Final setup at CoreMedia Open Space" title="Final setup with camera and projector" width="480" height="343" class="alignnone size-full wp-image-837" /></a></p>
<p>This is the setup as twitter wall. On the right is a video camera, recording incoming tweets and displaying them via a projector on the wall. The notebook is only bridging WiFi to Ethernet.</p>
<p>After all, the retro twitter wall was fairly successful. People stood around with a smile, tweeting with their iPhone, waiting for an intense &#8220;rattatatat rattatat &#8230;&#8221;.</p>
<p><object style="height: 344px; width: 425px"><param name="movie" value="http://www.youtube.com/v/CV9_25N21eM"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><embed src="http://www.youtube.com/v/CV9_25N21eM" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"></object></p>
<p>Here is another action shot, taken by <a href="http://www.jormason.com/wordpress/?p=409">Jörn</a>.</p>
<h3>Links and Downloads</h3>
<ul>
<li>Source: <a href='http://tinkerlog.com/wordpress/wp-content/uploads/2009/11/twypper.zip'>twypper.zip</a></li>
<li><a href="http://oomlout.co.uk/?p=79">Twitter Monitoring Typewriter at oomlout</a></li>
<li><a target="_blank" href="http://www.avr-asm-tutorial.net/avr_en/keypad/keyboard.html">Connecting a keypad to an AVR</a></li>
<li><a target="_blank" href="http://www.dribin.org/dave/keyboard/one_html/">Keyboard Matrix Help</a></li>
</ul>
<img src="http://feeds.feedburner.com/~r/tinkerlog/~4/UYw5VLZ5wy8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tinkerlog.com/2009/11/20/a-retro-twitter-wall-twypper/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
