<?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" version="2.0">

<channel>
	<title>Tinkerlog</title>
	
	<link>http://tinkerlog.com</link>
	<description>Alex' blog</description>
	<pubDate>Fri, 30 Oct 2009 09:35:15 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/tinkerlog" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Synchronizing audible fireflies</title>
		<link>http://tinkerlog.com/2009/10/30/synchronizing-audible-fireflies/</link>
		<comments>http://tinkerlog.com/2009/10/30/synchronizing-audible-fireflies/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 09:35:15 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
		
		<category><![CDATA[led]]></category>

		<category><![CDATA[firefly]]></category>

		<guid isPermaLink="false">http://tinkerlog.com/?p=818</guid>
		<description><![CDATA[
Niklas did an amazing job, letting fireflies play some tunes. It&#8217;s almost as if they are alive.
Niklas, I owe you a beer (or Club-Mate or whatever), should we ever met. You made my day!
]]></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=5916130&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=5916130&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>Niklas did an <a target="_blank" href="http://petterniklas.wordpress.com/2009/08/04/synchronizing-soundflies/">amazing job</a>, letting <a href="http://tinkerlog.com/howto/synchronizing-firefly-how-to/">fireflies</a> play some tunes. It&#8217;s almost as if they are alive.</p>
<p>Niklas, I owe you a beer (or Club-Mate or whatever), should we ever met. You made my day!</p>
<img src="http://feeds.feedburner.com/~r/tinkerlog/~4/Cy-nI8-bwGM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tinkerlog.com/2009/10/30/synchronizing-audible-fireflies/feed/</wfw:commentRss>
		</item>
		<item>
		<title>LiPoly charging with MCP73833</title>
		<link>http://tinkerlog.com/2009/09/19/lipoly-charging-with-mcp73833/</link>
		<comments>http://tinkerlog.com/2009/09/19/lipoly-charging-with-mcp73833/#comments</comments>
		<pubDate>Sat, 19 Sep 2009 12:08:32 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
		
		<category><![CDATA[misc]]></category>

		<category><![CDATA[lipo]]></category>

		<guid isPermaLink="false">http://tinkerlog.com/?p=802</guid>
		<description><![CDATA[
For my latest projects I used a lot of single cell lipo batteries. They are really nice. High power density, low self-discharge, no memory effect and they can deliver quite an amount of current.
But lipo battery handling is a bit more complicated as with other rechargeable batteries. You have to take care of under voltage [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/09/l_dsc_0100.jpg"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/09/dsc_0100.jpg" alt="" title="Lipo charging with MCP73833" width="490" height="351" class="alignnone size-full wp-image-807" /></a></p>
<p>For my latest projects I used a lot of single cell lipo batteries. They are really nice. High power density, low self-discharge, no memory effect and they can deliver quite an amount of current.<br />
But lipo battery handling is a bit more complicated as with other rechargeable batteries. You have to take care of under voltage and over charging as that may destroy the battery.</p>
<p>I used the <a target="_blank" href="http://www.sparkfun.com/commerce/product_info.php?products_id=726">Sparkfun LiPoly charger</a>, based on <a target="_blank" href="http://pdfserv.maxim-ic.com/en/ds/MAX1551-MAX1555.pdf">MAX1555</a>, for some time and it works really well. The only thing I missed was a way to control the current. After some research I decided to try another chip, the <a target="_blank" href="http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en027785">Microchip MCP73833</a>.</p>
<p><span id="more-802"></span></p>
<h3>Features of the MCP73833</h3>
<p>Copied from the specs:</p>
<ul>
<li>High accuracy preset output voltage regulation</li>
<li>Regulated output voltage options</li>
<li>User-programmable charge current up to 1A</li>
<li>Two open-drain Status outputs</li>
<li>Preconditioning and end-of-charge ratio options</li>
<li>Under-voltage lockout</li>
<li>Power Good output</li>
</ul>
<p>What I like is the ability to adjust the charging current and the status outputs, which should get really useful if integrated into a greater application.</p>
<h3>The schematic</h3>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/09/l_charger.png"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/09/s_charger.png" alt="" title="s_charger" width="497" height="327" class="alignnone size-full wp-image-803" /></a></p>
<p>The schematic is mostly a copy of the reference design. It has three LEDs, one for <em>power good</em>, one for <em>charging</em> and one for <em>charging complete</em>. All pins of the chip itself are also available on two header rows. The idea was to enable easy integration on a breadboard. Actually I misplaced the rows, so they don&#8217;t fit (#fail).</p>
<p>The resistor R4 is used to control the charge current. I used a socket for that, so I am able to adapt the current for different batteries. The 10k resistor results in a charge current of 100 mA.</p>
<h3>The result</h3>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/09/l_dsc_0072.jpg"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/09/dsc_0072.jpg" alt="" title="MCP73833 breakout board" width="490" height="351" class="alignnone size-full wp-image-806" /></a></p>
<p>All components were 0805 SMD parts, despite the MCP73833, which is 10-MSOP. This was my first attempt to do something useful with SMD. I used my brand new hot air reflow station, which turns out to work as expected. Only I had to be very precise at dosing the solder paste. Applying too much had to be removed with solder wick later on. </p>
<h3>Issues</h3>
<p>The next version should include a jack for a wall adapter. The two header pins are not really useful to connect to a power supply. And of course the two rows of header pins should be aligned correctly to fit on a breadboard.</p>
<p>As a sidenote: as you see, the board has a mini-USB connector to be able to connect the charger to a notebook.<br />
<strong>I stronly recommend to use some kind of USB hub to test any newly build USB hardware.</strong><br />
I didn&#8217;t. And now I have a burned first prototype of my charger and only one USB port left on my MacBook. Although the OS warned me with &#8220;something is sucking too much, port gets shut down&#8221;, it wasn&#8217;t fast enough. So, you have been warned.</p>
<h3>Links</h3>
<ul>
<li><a target="_blank" href="http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en027785">Microchip MCP73833</a></li>
</ul>
<img src="http://feeds.feedburner.com/~r/tinkerlog/~4/DUzrw913oRA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tinkerlog.com/2009/09/19/lipoly-charging-with-mcp73833/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tiny Braitenberg vehicle</title>
		<link>http://tinkerlog.com/2009/07/24/tiny-braitenberg-vehicle/</link>
		<comments>http://tinkerlog.com/2009/07/24/tiny-braitenberg-vehicle/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 13:05:25 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
		
		<category><![CDATA[avr]]></category>

		<category><![CDATA[braitenberg]]></category>

		<category><![CDATA[robot]]></category>

		<guid isPermaLink="false">http://tinkerlog.com/?p=783</guid>
		<description><![CDATA[
Again a Braitenberg vehicle. This one is even smaller, than the previous one and comes on a custom PCB. It weighs 17 gramms, is driven by two pager motors, powered by a small lipo cell and controlled by an 8-pin ATtiny25V.

Schematic and parts

This tiny robot has a very low component count. At least for a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/07/l_dsc_0022.jpg"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/07/s_dsc_0022.jpg" alt="" title="Tiny Braitenberg vehicle" width="480" height="343" class="alignnone size-full wp-image-787" /></a></p>
<p>Again a <a target="_blank" href="http://en.wikipedia.org/wiki/Braitenberg_vehicle">Braitenberg vehicle</a>. This one is even smaller, than the <a target="_blank" href="http://tinkerlog.com/2009/06/07/mini-braitenberg-vehicle/">previous one</a> and comes on a custom PCB. It weighs 17 gramms, is driven by two pager motors, powered by a small lipo cell and controlled by an 8-pin ATtiny25V.</p>
<p><span id="more-783"></span></p>
<h3>Schematic and parts</h3>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/07/l_tiny_sch.png"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/07/s_tiny_sch.png" alt="" title="Tiny Braitenberg schematic" width="484" height="246" class="alignnone size-full wp-image-791" /></a></p>
<p>This tiny robot has a very low component count. At least for a robot, based on a microcontroller. That has, of course, some implications. It can handle only two sensors and the motors run only in one direction. A full <a target="_blank" href="http://www.robotroom.com/BipolarHBridge.html">H-bridge</a> for both motors would need 8 transistors and more lines to control it.</p>
<p>So I decided to just use a single transistor to drive the motor. That means it can only run forward. Not a big deal for a Braitenberg vehicle.</p>
<p>Here is the parts list. Most parts are very common.</p>
<ul>
<li>ATtiny25V, 2 kB flash RAM, <a target="_blank" href="http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&#038;name=ATTINY25V-10PU-ND">ATTINY25V-10PU-ND</a></li>
<li>MPC1700 3.3 voltage regulator, <a target="_blank" href="http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&#038;name=MCP1700-3302E/TO-ND">MCP1700-3302E/TO-ND</a></li>
<li>2 * light dependent resistors (LDR)</li>
<li>2 * 10 kOhm resistor</li>
<li>2 * 470 Ohm resistor</li>
<li>2 * 2n3904 transistor</li>
<li>2 * 1n4148 diode</li>
<li>100n capacitor</li>
<li>100u capacitor</li>
<li>Lithium-polymer battery, 3.7 V, 100mAh, <a target="_blank" href="http://www.hobbycity.com">HobbyCity</a></li>
<li>2 * fuse holder</li>
<li>2 * pager motor</li>
<li>heat shrink tubes</li>
<li>rubber tube</li>
<li>custom PCB</li>
<li>6-pin ISP header</li>
</ul>
<p>A bit tricky was to find the right rubber tube to build the wheels. I found <a target="_blank" href="http://www.hobby-lobby-modellbau.com/onlineshop/product_info.php/info/p1525_Robbe-Kupplungsschlauch----1-1386.html">these</a>, which are normally used to connect tiny motors to a model stern tube. Because the inner diameter is a bit to wide, I used short pieces of cable isolation as an adaptor.</p>
<p>If you have pager motors with an attached weight on their shaft, you may want to take a look at the<a target="_blank" href="http://www.robotroom.com/TinyMotor.html"> RobotRoom</a> for instruction on how to get rid of the weights. I had no locking pliers, maybe that&#8217;s the reason why I ruined at least three motors. Mostly by twisting the shaft while trying to pull off the weight.</p>
<h3>Software and programming</h3>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/07/l_dsc_0025.jpg"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/07/s_dsc_0025.jpg" alt="" title="Braitenberg vehicles" width="480" height="344" class="alignnone size-full wp-image-788" /></a></p>
<p>The software is straigt forward. Reading two inputs, the light sensors, and driving two ouput lines accordingly with a PWM signal. </p>
<p>But it turns out, that the software needs a lot of adjustments. First you have to figure out in what range the light sensors report values. Next, check at what PWM level the robot starts to move. Maybe even adjust the directional stability.</p>
<p>Programming the robot in circuit via the 6-pin ISP header didn&#8217;t work out in the first place. The programmer was not able to set the lines to high that were driving the transistors. So I soldered a socket in place and can now pull off the two 470 Ohm resistors. After programming I can re-insert the resistors. Can be seen on the left critter on the picture above. A bit awkward, but it works. </p>
<h3>Demo</h3>
<p><object width="490" height="282"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5664333&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=5664333&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="282"></embed></object></p>
<p>You should have a very clean surface for them to run on. If you put them on a table, as I did, be sure to have very good reflexes or put a kind of fence around them. Mine dropped off the table a couple of times. Mostly no dramatic damage, but the sensors got twistet and the motors sprung out of their holders.</p>
<p>Depending on the ambient light, the light source itself and the nature of the surface you may have to adjust the light sensors. As an example, if the surface is white and diffuses the light, then you would have to bend the sensors away from the surface, because the surface looks bright, even if the robot turns away from the light source.</p>
<h3>Issues and conclusion</h3>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/07/l_dsc_0029.jpg"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/07/s_dsc_0029.jpg" alt="" title="Braitenberg vehicle with pager motors" width="480" height="344" class="alignnone size-full wp-image-789" /></a></p>
<p>There are still a couple of issues to resolve. </p>
<ul>
<li>Software improvements, use ADC in free running mode and use hardware PWM to drive the motors</li>
<li>Place the skid in the middle of the PCB.</li>
<li>There is no protection of deep discharging the battery, no idea how to solve this.</li>
<li>Add a small power switch.</li>
</ul>
<p>Someone wanting to volunteer for some private beta testing and helping with improvements?</p>
<p>Besides these issues, these two critters are fun. There was a lot of testing, reprogramming and re-adjustment needed, to get them doing, what I thought they should do. But hey, that&#8217;s the way to learn something.</p>
<h3>Links and downloads</h3>
<ul>
<li><a href="http://tinkerlog.com/2009/06/07/mini-braitenberg-vehicle/">Braitenberg vehicle with Arduino mini</a></li>
<li><a href="http://tinkerlog.com/2009/04/18/arduino-powered-braitenberg-vehicle/">Arduino powered Braitenberg vehicle</a></li>
<li><a target="_blank" href="http://warrantyvoidifremoved.com/formica">Formica</a>, swarm bots</li>
<li>Source code and Eagle CAD files, really BETA, <a href='http://tinkerlog.com/wordpress/wp-content/uploads/2009/07/tiny_braitenberg.zip'>tiny_braitenberg.zip</a>
</ul>
<img src="http://feeds.feedburner.com/~r/tinkerlog/~4/cNloZu-y2qw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tinkerlog.com/2009/07/24/tiny-braitenberg-vehicle/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Arduino introduction in c’t</title>
		<link>http://tinkerlog.com/2009/07/21/arduino-introduction-in-ct/</link>
		<comments>http://tinkerlog.com/2009/07/21/arduino-introduction-in-ct/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 22:55:50 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
		
		<category><![CDATA[Arduino]]></category>

		<guid isPermaLink="false">http://tinkerlog.com/?p=773</guid>
		<description><![CDATA[
Here is my very first article. It is published in c&#8217;t, one of the best known computer magazines in Germany. wOOt!
It shows some basic Arduino examples and how to build a Wiimote-like controller. The controller consists of an 3-axis accelerometer, a push button and an Arduino nano on a breadboard. This combination is used to [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/07/dsc_0037.jpg" alt="" title="c&#039;t Arduino article " width="480" height="322" class="alignnone size-full wp-image-774" /></p>
<p>Here is my very first article. It is published in <a target="_blank" href="http://www.heise.de/ct/inhalt/2009/16/164/">c&#8217;t</a>, one of the best known computer magazines in Germany. wOOt!</p>
<p>It shows some basic <a target="_blank" href="http://arduino.cc">Arduino</a> examples and how to build a Wiimote-like controller. The controller consists of an 3-axis accelerometer, a push button and an Arduino nano on a breadboard. This combination is used to control a Lunar Lander type of game, programmed in <a target="_blank" href="http://processing.org/">Processing</a>.</p>
<ul>
<li>c&#8217;t article <a target="_blank" href="http://www.heise.de/ct/Mikrocontroller-Programmierung-mit-Arduino--/artikel/142053">Shake, rattle &#8216;n&#8217; roll, as full text</a></li>
<li><a target="_blank" href="http://www.heise.de/ct/projekte/machmit/processing/wiki">wiki</a> with more images, links and downloads</li>
</ul>
<img src="http://feeds.feedburner.com/~r/tinkerlog/~4/CJwBeb-YHp4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tinkerlog.com/2009/07/21/arduino-introduction-in-ct/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Resistor cheat sticker</title>
		<link>http://tinkerlog.com/2009/07/05/resistor-cheat-sticker/</link>
		<comments>http://tinkerlog.com/2009/07/05/resistor-cheat-sticker/#comments</comments>
		<pubDate>Sun, 05 Jul 2009 08:56:45 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
		
		<category><![CDATA[misc]]></category>

		<category><![CDATA[sticker]]></category>

		<guid isPermaLink="false">http://tinkerlog.com/?p=764</guid>
		<description><![CDATA[
While we were at cheating, here is a new sticker for your notebook. It helps you to read and learn resistor values.
The first 10 direct messages to me will get one for free. And of course every next order at the Tinker Store will include one of these.  
]]></description>
			<content:encoded><![CDATA[<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/07/l_dsc_0016.jpg"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/07/s_dsc_0016.jpg" alt="" title="Resistor cheat sticker" width="480" height="344" class="alignnone size-full wp-image-766" /></a></p>
<p>While we were at <a target="_blank" href="http://tinkerlog.com/2009/06/18/microcontroller-cheat-sheet/">cheating</a>, here is a new sticker for your notebook. It helps you to read and learn resistor values.</p>
<p>The first 10 direct messages to <a target="_blank" href="http://twitter.com/9600baud">me</a> will get one for free. And of course every next order at the <a href="http://store.tinkerlog.com/store/">Tinker Store</a> will include one of these.  </p>
<img src="http://feeds.feedburner.com/~r/tinkerlog/~4/ggyq10Oxn0E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tinkerlog.com/2009/07/05/resistor-cheat-sticker/feed/</wfw:commentRss>
		</item>
		<item>
		<title>64 Synchronizing Fireflies</title>
		<link>http://tinkerlog.com/2009/06/25/64-synchronizing-fireflies/</link>
		<comments>http://tinkerlog.com/2009/06/25/64-synchronizing-fireflies/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 09:27:09 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
		
		<category><![CDATA[avr]]></category>

		<category><![CDATA[led]]></category>

		<category><![CDATA[simulation]]></category>

		<category><![CDATA[firefly]]></category>

		<guid isPermaLink="false">http://tinkerlog.com/?p=760</guid>
		<description><![CDATA[
Last week I invested some time to solder 64 Firefly boards. Only 2.432 solder joints later I was ready for some videos. 
Every firefly acts completely autonomously, it has its own tiny controller, eye and luminary. They are all connected for power supply only. 

Here are some different configurations. 



Links

See how it&#8217;s done in the [...]]]></description>
			<content:encoded><![CDATA[<p><object width="490" height="282"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5317886&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=5317886&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="282"></embed></object></p>
<p>Last week I invested some time to solder 64 <a target="_blank" href="http://tinkerlog.com/howto/synchronizing-firefly-how-to/">Firefly</a> boards. Only 2.432 solder joints later I was ready for some videos. </p>
<p>Every firefly acts completely autonomously, it has its own tiny controller, eye and luminary. They are all connected for power supply only. </p>
<p><object width="490" height="282"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5318234&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=5318234&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="282"></embed></object></p>
<p>Here are some different configurations. </p>
<p><span id="more-760"></span></p>
<p><object width="490" height="282"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5318396&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=5318396&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="282"></embed></object></p>
<p><object width="490" height="282"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5318548&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=5318548&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="282"></embed></object></p>
<h3>Links</h3>
<ul>
<li>See how it&#8217;s done in the <a href="http://tinkerlog.com/howto/synchronizing-firefly-how-to/">Synchronizing Firefly Howto</a></li>
<li>Grab a <a href="http://store.tinkerlog.com/store/index.php?main_page=product_info&#038;cPath=2&#038;products_id=2">Firefly kit</a> at the Tinker Store</li>
</ul>
<img src="http://feeds.feedburner.com/~r/tinkerlog/~4/SxlPJy-htkY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tinkerlog.com/2009/06/25/64-synchronizing-fireflies/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Microcontroller cheat sheet</title>
		<link>http://tinkerlog.com/2009/06/18/microcontroller-cheat-sheet/</link>
		<comments>http://tinkerlog.com/2009/06/18/microcontroller-cheat-sheet/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 10:54:35 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
		
		<category><![CDATA[Arduino]]></category>

		<category><![CDATA[avr]]></category>

		<guid isPermaLink="false">http://tinkerlog.com/?p=752</guid>
		<description><![CDATA[
Often, when I am tinkering with a controller on a breadboard, I have to open up the according datasheet, only to look up the pinout. So I designed a simple page with all of of the pinouts that I use most. It has:

8-pin AVRs, ATtiny25/ATtiny45/ATtiny85
20-pin AVR, ATtiny2313
28-pin AVRs, ATmega48/ATmega88/ATmega168/ATmega328
Arduino to ATmega mapping
ISP header, 6-pin and [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/06/micro-cheat-sheet.png" alt="" title="Microcontroller cheat sheet" width="470" height="578" class="alignnone size-full wp-image-755" /></p>
<p>Often, when I am tinkering with a controller on a breadboard, I have to open up the according datasheet, only to look up the pinout. So I designed a simple page with all of of the pinouts that I use most. It has:</p>
<ul>
<li>8-pin AVRs, ATtiny25/ATtiny45/ATtiny85</li>
<li>20-pin AVR, ATtiny2313</li>
<li>28-pin AVRs, ATmega48/ATmega88/ATmega168/ATmega328</li>
<li>Arduino to ATmega mapping</li>
<li>ISP header, 6-pin and 10-pin</li>
<li>FTDI-cable</li>
</ul>
<p>Maybe it&#8217;s helpful for others as well. You can download it as:</p>
<ul>
<li><a href='http://tinkerlog.com/wordpress/wp-content/uploads/2009/06/micro-cheat-sheet.pdf'>micro-cheat-sheet.pdf</a></li>
<li><a href='http://tinkerlog.com/wordpress/wp-content/uploads/2009/06/micro-cheat-sheet.svg'>micro-cheat-sheet.svg</a></li>
</ul>
<p>If you like it, you will also like the Tod&#8217;s cool <a target="_blank" href="http://todbot.com/blog/2009/05/23/arduino-chip-sticker-label/">Arduino chip sticker</a>.</p>
<img src="http://feeds.feedburner.com/~r/tinkerlog/~4/LEwU0LYmgE8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tinkerlog.com/2009/06/18/microcontroller-cheat-sheet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mini Braitenberg vehicle</title>
		<link>http://tinkerlog.com/2009/06/07/mini-braitenberg-vehicle/</link>
		<comments>http://tinkerlog.com/2009/06/07/mini-braitenberg-vehicle/#comments</comments>
		<pubDate>Sun, 07 Jun 2009 12:40:28 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
		
		<category><![CDATA[Arduino]]></category>

		<category><![CDATA[braitenberg]]></category>

		<category><![CDATA[robot]]></category>

		<guid isPermaLink="false">http://tinkerlog.com/?p=737</guid>
		<description><![CDATA[
Here is the second incarnation of a Braitenberg vehicle. This one is almost half of the size of the previous one and it is programmed to &#8220;love&#8221;. That means it sticks to the light source and does not try to overrun it, as the &#8220;aggressive&#8221; first one.


If it is dark, then the two motors run [...]]]></description>
			<content:encoded><![CDATA[<p><object width="490" height="282"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5029632&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=5029632&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="282"></embed></object></p>
<p>Here is the second incarnation of a <a target="_blank" href="http://en.wikipedia.org/wiki/Braitenberg_vehicle">Braitenberg</a> vehicle. This one is almost half of the size of the <a target="_blank" href="http://tinkerlog.com/2009/04/18/arduino-powered-braitenberg-vehicle/">previous one</a> and it is programmed to &#8220;love&#8221;. That means it sticks to the light source and does not try to overrun it, as the &#8220;aggressive&#8221; first one.</p>
<p><span id="more-737"></span></p>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/06/l_dsc_0019.jpg"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/06/s_dsc_0019.jpg" alt="" title="Mini Braitenberg" width="480" height="343" class="alignnone size-full wp-image-742" /></a></p>
<p>If it is dark, then the two motors run at full speed. If a sensor detects light, it slows down the motor on the same side. So, if the right sensor detects more light than the left sensor, the right motor turns slower than the left one. That makes the vehicle turn right to the light source. If it is bright enough, both sensors will stop both motors. </p>
<h3>Parts</h3>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/06/l_dsc_0027.jpg"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/06/s_dsc_0027.jpg" alt="" title="Two mini servos and a lipo cell" width="480" height="344" class="alignnone size-full wp-image-743" /></a></p>
<ul>
<li><a target="_blank" href="http://www.sparkfun.com/commerce/product_info.php?products_id=9220">Arduino Mini Pro</a> from Sparkfun</li>
<li><a target="_blank" href="http://www.sparkfun.com/commerce/product_info.php?products_id=7916">Mini breadboard</a> with 170 tie points from Sparkfun</li>
<li>2 mini servos, <a target="_blank" href="http://www.hobbycity.com/hobbycity/store/uh_viewItem.asp?idProduct=663&#038;Product_Name=HXT500_5g_/_.8kg_/_10sec_Micro_Servo">HXT500</a> from Hobbycity</li>
<li>2 <a target="_blank" href="http://www.solarbotics.com/products/gm10w/">GM10 wheels</a> from Solarbotics</li>
<li><a taget="_blank" href="http://www.sparkfun.com/commerce/product_info.php?products_id=341">3.7V LiPo cell with 800 mAh</a> from Sparkfun</li>
<li>2 Light Dependant Resistors (LDR)</li>
<li>2 10 k resitors</li>
<li>2 3 pin headers</li>
</ul>
<p>I picked the Arduino Mini Pro because of it&#8217;s size and because it runs at 3.3V, a good match with the 3.7V lipo cell. The lipo cell has about the same size as the mini breadboard. The two servos are hacked for continuous rotation and tied together, bottom to bottom with a piece of wire. Although most servos are rated for 5V, they work great with 3.7V. Maybe they run a bit slower.</p>
<h3>Code</h3>
<pre name="code" class="c">
/*
 * Simple braitenberg vehicle
 */
#include "Servo.h"

Servo leftServo;
Servo rightServo;
int leftValue = 0;
int rightValue = 0;

void setup() {
  Serial.begin(9600);
  leftServo.attach(10);
  rightServo.attach(9);
} 

void loop() {
  // sensor values between 50..900
  leftValue = (880 - analogRead(1)) / 25;
  rightValue = (900 - analogRead(0)) / 30;
  leftServo.write(101 + rightValue);
  rightServo.write(101 - leftValue);
  delay(10);
}
</pre>
<p>The values are determined by experiments. Yours may vary.</p>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/06/l_dsc_0031.jpg"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/06/s_dsc_0031.jpg" alt="" title="Mini Braitenberg with his older brother" width="480" height="343" class="alignnone size-full wp-image-741" /></a></p>
<p>Here is the mini next to his older brother. The space on the mini breadboard is really limited, but it just works out. Still no soldering required, if you don&#8217;t count the servo hacking.</p>
<p>What&#8217;s next? Hm, pager motors?</p>
<h3>Links</h3>
<ul>
<li><a href="http://tinkerlog.com/2009/04/18/arduino-powered-braitenberg-vehicle/">Arduino powered Braitenberg vehicle</a></li>
<li><a target="_blank" href="http://en.wikipedia.org/wiki/Valentino_Braitenberg">Valentino Braitenberg</a></li>
</ul>
<img src="http://feeds.feedburner.com/~r/tinkerlog/~4/Ot9GjPjFpH8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tinkerlog.com/2009/06/07/mini-braitenberg-vehicle/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ATmega breadboard header</title>
		<link>http://tinkerlog.com/2009/05/23/atmega-breadboard-header/</link>
		<comments>http://tinkerlog.com/2009/05/23/atmega-breadboard-header/#comments</comments>
		<pubDate>Sat, 23 May 2009 14:59:24 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
		
		<category><![CDATA[Arduino]]></category>

		<category><![CDATA[avr]]></category>

		<guid isPermaLink="false">http://tinkerlog.com/?p=724</guid>
		<description><![CDATA[
This is another breadboard compatible header board, that I am working on. This one is for all 28-pin AVR devices, ATmega48, ATmega88, ATmega168 and the latest ATmega328. Component count is low and there is no voltage regulator on board. That makes it easy to power it from various sources.
As a bonus, this board is a [...]]]></description>
			<content:encoded><![CDATA[<p><object width="490" height="282"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=4796132&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=4796132&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="282"></embed></object></p>
<p>This is <a href="http://tinkerlog.com/2009/01/18/attiny-breadboard-headers/">another</a> breadboard compatible header board, that I am working on. This one is for all 28-pin AVR devices, ATmega48, ATmega88, ATmega168 and the latest ATmega328. Component count is low and there is no voltage regulator on board. That makes it easy to power it from various sources.</p>
<p>As a bonus, this board is a hybrid of through hole and SMT components. It has two SMD LEDs under the hood. Great to learn how to solder surface mounted devices.</p>
<p><span id="more-724"></span></p>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/05/l_dsc_00211.jpg"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/05/s_dsc_00211.jpg" alt="" title="mega168 header board" width="480" height="344" class="alignnone size-full wp-image-731" /></a></p>
<p>It has also an FTDI-connector and runs with a 16 MHz resonator, which makes it Arduino compatible. The jumper is used to select between different power sources.</p>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/05/l_imgp0004.jpg"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/05/s_imgp0004.jpg" alt="" title="SMD LEDs and resistors, noob soldering" width="480" height="343" class="alignnone size-full wp-image-727" /></a></p>
<p>Yikes, SMD soldering. This is my first attempt at hand soldering 1206 <a href="http://en.wikipedia.org/wiki/Surface-mount_technology" target="_blank">SMT</a> components. 1206 is only 3.2 mm × 1.6 mm! But these are about the largest SMT components available. Most commonly used are way smaller, 0805, 0603 or 0402. My soldering still looks ugly, but with a bit of practice I think I can do much better.</p>
<p>The space on the board is a bit limitted, so there is no room to mark all pins. That&#8217;s why I have a little cheat sheet around, while wiring things up.</p>
<img src="http://feeds.feedburner.com/~r/tinkerlog/~4/GwgxY_KYHDc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tinkerlog.com/2009/05/23/atmega-breadboard-header/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Interfacing Arduino with a Telit GM862</title>
		<link>http://tinkerlog.com/2009/05/15/interfacing-arduino-with-a-telit-gm862/</link>
		<comments>http://tinkerlog.com/2009/05/15/interfacing-arduino-with-a-telit-gm862/#comments</comments>
		<pubDate>Fri, 15 May 2009 17:59:52 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
		
		<category><![CDATA[Arduino]]></category>

		<category><![CDATA[gps]]></category>

		<category><![CDATA[gsm]]></category>

		<category><![CDATA[GM862-GPS]]></category>

		<guid isPermaLink="false">http://tinkerlog.com/?p=704</guid>
		<description><![CDATA[
The Arduino can talk over a wide range of networks. Ethernet, Bluetooth, Wifi, XBEE and GPRS to name the most known. I had a Telit GM862-GPS module laying around, unused for some time already. It has GPRS and GPS capabilities, both accessible with AT commands. So I decided to port some of my code to [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/05/s_dsc_0005.jpg" alt="" title="Telit GM862-GPS" width="480" height="343" class="alignnone size-full wp-image-705" /></p>
<p>The Arduino can talk over a wide range of networks. Ethernet, Bluetooth, Wifi, XBEE and GPRS to name the most known. I had a <a target="_blank" href="http://www.telit.com/en/products/gsm-gprs.php?p_id=12&#038;p_ac=show&#038;p=7">Telit GM862-GPS</a> module laying <a href="http://tinkerlog.com/2007/07/13/interfacing-an-avr-controller-to-a-gps-mobile-phone/">around</a>, unused for some time already. It has GPRS and GPS capabilities, both accessible with AT commands. So I decided to port some of my code to the Arduino.</p>
<p><span id="more-704"></span></p>
<h3>Schematic</h3>
<p><a href="http://tinkerlog.com/wordpress/wp-content/uploads/2009/05/l_gm862.png"><img src="http://tinkerlog.com/wordpress/wp-content/uploads/2009/05/s_gm862.png" alt="" title="Schematic GM862 with Arduino Mega" width="490" height="240" class="alignnone size-full wp-image-706" /></a></p>
<p>Connecting the Arduino Mega to the GM862 is rather easy. Only four connections are needed.</p>
<ul>
<li>Tx3 - Tx</li>
<li>Rx3 - Rx</li>
<li>Pin 22 - On/Off</li>
<li>GND - GND</li>
</ul>
<p>The GM862 is accessed with a breadboard fiendly breakout board from <a target="_blank" href="http://www.sparkfun.com/commerce/product_info.php?products_id=277">Sparkfun</a>.</p>
<p>The logic pins of the GM862 accept only CMOS 2.8 Volt. For that reason, a voltage divider is needed for the Tx line. Both, Rx and Tx are pulled up to the PWR_CTL line of the module because these pins don&#8217;t have an internal pull up resistor.<br />
The on/off line is connected to ground with a transistor.</p>
<p>The bad thing for this setup is the power supply. The module is powered by a LiPo cell (3.7 V with 2000 mAh). The Arduino Mega is powered by the USB port. If I want to make this portable, I have to use two batteries.  Or find a better solution. Maybe powering the Arduino with a step-up converter. </p>
<h3>Software</h3>
<p>First I wanted to use an Arduino Pro mini, that runs on 3.3 V. That would save me from having two different power supplies for the Arduino and the GM862. I tried to connect the Rx/Tx lines to two digital pins and use the <a target="_blank" href="http://arduiniana.org/">NewSoftSerial</a> library. This library enables a second serial port on the Arduino besides the hardware serial port. Unfortunately it wasn&#8217;t reliable enough. Sending to the module seems to work well, receiving sometimes did not. I tried it with different baud rates and different Arduinos, 8 MHz and 16 MHz, but that didn&#8217;t help. Maybe I did something wrong, but I couldn&#8217;t figure it out.<br />
So I switched to my brand new Arduino Mega. I just connected Rx/Tx to one of the hardware serial ports and it worked immediatly.</p>
<p>The following features are implemented:</p>
<ul>
<li>Starting and stopping the module</li>
<li>Initialization</li>
<li>Sending of SMS</li>
<li>Requesting GPS position and parsing the result</li>
<li>Opening a socket, writing and reading (used to talk HTTP) over GPRS</li>
</ul>
<p>The software is an really early stage. I focussed most on functionality and less on performance or compact code.  The following todos are still open:</p>
<ul>
<li>Make debugging output configurable</li>
<li>Use of PROGMEM to reduce RAM usage</li>
<li>More compact structure for AT commands</li>
<li>Parse more responses of AT commands. Some are simply issued, without looking at the response</li>
</ul>
<p>Nevertheless, here is a small snippet, that shows features that are already working. To get it working, you have to replace XXXX with your PIN. For GPRS you have to dig into the module code and adapt the GPRS settings.</p>
<pre name="code" class="c">
/*
 * GM862-GPS testing sketch
 * used with Arduino Mega
 * http://tinkerlog.com
 */

#include "GM862.h"

int onPin = 22;                      // pin to toggle the modem's on/off
char PIN[5] = "XXXX";                // replace this with your PIN
Position position;                   // stores the GPS position
GM862 modem(&#038;Serial3, onPin, PIN);   // modem is connected to Serial3
char cmd;                            // command read from terminal

void setup() {
  delay(10000);
  Serial.begin(19200);
  Serial.println("GM862 monitor");
  modem.switchOn();                   // switch the modem on
  delay(4000);                        // wait for the modem to boot
  modem.init();                       // initialize the GM862
  modem.version();                    // request modem version info
  while (!modem.isRegistered()) {
    delay(1000);
    modem.checkNetwork();             // check the network availability
  }
  Serial.println("---------------------");
  Serial.println("ready");
}

void requestHTTP() {
  char buf[100];
  byte i = 0;
  modem.initGPRS();                   // setup of GPRS context
  modem.enableGPRS();                 // switch GPRS on
  modem.openHTTP("search.twitter.com");    // open a socket
  Serial.println("sending request ...");
  modem.send("GET /search.atom?q=gm862 HTTP/1.1\r\n"); // search twitter for gm862
  modem.send("HOST: search.twitter.com port\r\n");     // write on the socket
  modem.send("\r\n");
  Serial.println("receiving ...");
  while (i++ < 10) {                  // try to read for 10s
    modem.receive(buf);               // read from the socket, timeout 1s
    if (strlen(buf) > 0) {            // we received something
      Serial.print("buf:"); Serial.println(buf);
      i--;                            // reset the timeout
    }
  }
  Serial.println("done");
  modem.disableGPRS();                // switch GPRS off
}

void loop() {
  if (Serial.available()) {
    cmd = Serial.read();
    switch (cmd) {
    case 'o':
      modem.switchOff();              // switch the modem off
      break;
    case 's':                         // send a SMS. Replace with your number
      modem.sendSMS("6245", "your@email.com hello from arduino");
      break;
    case 'w':
      modem.warmStartGPS();           // issue a GPS warmstart
      break;
    case 'p':
      position = modem.requestGPS();  // request a GPS position
      if (position.fix == 0) {        // GPS position is not fixed
        Serial.println("no fix");
      }
      else {                          // print lat, lon, alt
        Serial.print("GPS position: ");
        Serial.print(position.lat_deg);  Serial.print(".");
        Serial.print(position.lat_min);  Serial.print(", ");
        Serial.print(position.lon_deg);  Serial.print(".");
        Serial.print(position.lon_min);  Serial.print(", ");
        Serial.println(position.alt);
      }
      break;
    case 'h':
      requestHTTP();                  // do a sample HTTP request
      break;
    default:
      Serial.println("command not recognized");
    }
  }
}
</pre>
<h3>Log</h3>
<p>Here is a log, that I recorded within the Arduino IDE. You can see, how</p>
<ul>
<li>the modem gets switched on</li>
<li>the modem gets initialized</li>
<li>the version info is requested</li>
<li>it waits until the network is reachable</li>
<li>a GPS position is requested</li>
<li>a SMS gets send</li>
<li>how a HTTP GET is issued over GPRS, it searches for gm862 on twitter</li>
</ul>
<pre>
GM862 monitor
switching on
done
initializing modem ...
AT
->ok
AT+IPR=19200
->ok
AT+CMEE=2
->ok
AT+CPIN=XXXX
->ok
done
version info ...
AT+GMI
->buf: AT+GMI
Telit
OK
AT+GMM
->buf: AT+GMM
GM862-GPS
OK
AT+GMR
->buf: AT+GMR
07.02.403
OK
AT+CSQ
->buf: AT+CSQ
+CSQ: 0,0
OK
done

checking network ...
AT+CREG?
->buf: AT+CREG?
+CREG: 0,2
OK
done

checking network ...
AT+CREG?
->buf: AT+CREG?
+CREG: 0,2
OK
done

checking network ...
AT+CREG?
->buf: AT+CREG?
+CREG: 0,1
OK
done

---------------------
ready

requesting GPS position ...
AT$GPSACP
->buf: AT$GPSACP
$GPSACP: 110621.999,5333.9477N,00954.8735E,1.4,66.3,3,22.21,0.10,0.05,150509,08
OK
3
GPS position: 53.565794, 9.914568, 66

sending SMS ...
AT+CMGF=1
->ok
AT+CMGS="6245"
->not ok: AT+CMGS="6245"
>
your@email.com hello from arduino
done

initializing GPRS ...
AT+CGDCONT=1,"IP","internet","0.0.0.0",0,0
->buf:
+CMGS:  35
OK
AT+CGDCONT=1,"IP","internet","0.0.0.0",0,0
OK
AT#USERID=""
->buf: AT#USERID=""
OK
AT#PASSW=""
->buf: AT#PASSW=""
OK
done

switching GPRS on ...
AT#GPRS=1
->buf: AT#GPRS=1
+IP: 10.37.146.251
OK
done

opening socket ...
AT#SKTD=0,80,"search.twitter.com",0,0
->buf: AT#SKTD=0,80,"search.twitter.com",0,0
buf:
buf:
CONNECT
sending request ...
receiving ...
buf:HTTP/1.1 200 OK
Date: Fri, 15 May 2009 11:07:19 GMT
Server: hi
Status: 200 OK
Cache-Control: ma
buf:x-age=20, must-revalidate, max-age=1800
Content-Type: application/atom+xml; charset=utf-8
X-Serve
buf:d-By: searchweb005.twitter.com
Expires: Fri, 15 May 2009 11:37:18 GMT
Content-Length: 4757
Vary:
buf: Accept-Encoding
X-Varnish: 218274860
Age: 0
Via: 1.1 varnish
X-Cache-Svr: searchweb005.twitter
buf:.com
X-Cache: MISS
Connection: close

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
[...]
    &lt;/author&gt;
  &lt;/entry&gt;
&lt;/feed&gt;

NO CARRIER
done

switching GPRS off ...
AT#GPRS=0
->buf: AT#GPRS=0
OK
done
</pre>
<h3>Outlook</h3>
<p>Besides some software todos on the list, two things are still bugging me. One is the need of an Arduino Mega because of the hardware serial port. I will try the new version of NewSoftSerial, as soon as it is released. The other thing is the need of two power sources. But that could be solved with the Arduino Mini pro, when the software serial issue is fixed.</p>
<p>Everything else worked well. Now I only need a problem that could be solved with this <img src='http://tinkerlog.com/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<h3>Links and Downloads</h3>
<ul>
<li>Source code: <a href='http://tinkerlog.com/wordpress/wp-content/uploads/2009/05/arduino-gm862.zip'>arduino-gm862.zip</a></li>
<li><a href="http://tinkerlog.com/2007/07/13/interfacing-an-avr-controller-to-a-gps-mobile-phone/">Interfacing an AVR controller to a GPS Mobile Phone</a></li>
<li><a target="_blank" href="http://www.sparkfun.com/commerce/product_info.php?products_id=277">GM862 breakout board</a> from Sparkfun</li>
<li><a target="_blank" href="http://www.telit.co.it/modulef.asp?famId=7&#038;famName=GM862%20Modem%20Family">GM862 specs</a> at Telit.</li>
<li><a target="_blank" href="http://www.roundsolutions.de">roundsolutions</a>, distributor for GM862 modules.</li>
</ul>
<img src="http://feeds.feedburner.com/~r/tinkerlog/~4/rLJLOm4miJw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tinkerlog.com/2009/05/15/interfacing-arduino-with-a-telit-gm862/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
