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

<channel>
	<title>thinkl33t</title>
	<atom:link href="http://thinkl33t.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://thinkl33t.co.uk</link>
	<description>The l33test thoughts you'll ever see.</description>
	<pubDate>Sun, 07 Sep 2008 19:34:19 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Track bot.</title>
		<link>http://thinkl33t.co.uk/2008/09/track-bot/</link>
		<comments>http://thinkl33t.co.uk/2008/09/track-bot/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 19:34:19 +0000</pubDate>
		<dc:creator>parag0n</dc:creator>
		
		<category><![CDATA[Electronics]]></category>

		<category><![CDATA[Robotics]]></category>

		<guid isPermaLink="false">http://thinkl33t.co.uk/?p=265</guid>
		<description><![CDATA[While waiting for the last parts for r2 to arrive, I have been toying with building a bot based on&#8230; well&#8230; a toy!
I bought this remote control tank off ebay last year, and took off the plastic top.  Today I stripped off the other unnecessary bits of plastic, and mounted a breadboard on top.
Next part [...]]]></description>
			<content:encoded><![CDATA[<p>While waiting for the last parts for r2 to arrive, I have been toying with building a bot based on&#8230; well&#8230; a toy!</p>
<p>I bought this remote control tank off ebay last year, and took off the plastic top.  Today I stripped off the other unnecessary bits of plastic, and mounted a breadboard on top.</p>
<p>Next part of the plan is to either modify the existing drive board to allow direct drive from the microcontroller, or build a replacement based on a single-chip h-bridge device.</p>

<a href='http://thinkl33t.co.uk/2008/09/track-bot/p1010325/' title='Inside view.'><img src="http://thinkl33t.co.uk/wp-content/uploads/2008/09/p1010325-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://thinkl33t.co.uk/2008/09/track-bot/p1010327/' title='Inside from front.'><img src="http://thinkl33t.co.uk/wp-content/uploads/2008/09/p1010327-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://thinkl33t.co.uk/2008/09/track-bot/p1010329/' title='Top view.'><img src="http://thinkl33t.co.uk/wp-content/uploads/2008/09/p1010329-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://thinkl33t.co.uk/2008/09/track-bot/p1010331/' title='Bottom of chassis.'><img src="http://thinkl33t.co.uk/wp-content/uploads/2008/09/p1010331-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://thinkl33t.co.uk/2008/09/track-bot/p1010332/' title='Tracks'><img src="http://thinkl33t.co.uk/wp-content/uploads/2008/09/p1010332-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://thinkl33t.co.uk/2008/09/track-bot/p1010333/' title='Complete bot, as it stands'><img src="http://thinkl33t.co.uk/wp-content/uploads/2008/09/p1010333-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://thinkl33t.co.uk/2008/09/track-bot/p1010334/' title='Complete bot, pic 2'><img src="http://thinkl33t.co.uk/wp-content/uploads/2008/09/p1010334-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>

]]></content:encoded>
			<wfw:commentRss>http://thinkl33t.co.uk/2008/09/track-bot/feed/</wfw:commentRss>
		</item>
		<item>
		<title>R2 Project Log - Motors</title>
		<link>http://thinkl33t.co.uk/2008/08/r2-project-log-motors/</link>
		<comments>http://thinkl33t.co.uk/2008/08/r2-project-log-motors/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 22:09:00 +0000</pubDate>
		<dc:creator>parag0n</dc:creator>
		
		<category><![CDATA[Electronics]]></category>

		<category><![CDATA[Micromouse]]></category>

		<category><![CDATA[R2]]></category>

		<category><![CDATA[Robotics]]></category>

		<category><![CDATA[avr]]></category>

		<category><![CDATA[MicroMouse]]></category>

		<guid isPermaLink="false">http://thinkl33t.co.uk/?p=252</guid>
		<description><![CDATA[After a minor slip up with a probe killed my primary R2 bot (shorted VBATT to 5VCC, bye bye processor and drive chips) I&#8217;ve tonight soldered up another of my spare R2 boards to take over the mantle.
And the motor drive code i was debugging at the time works!

 
Tomorrow, i add a battery monitor [...]]]></description>
			<content:encoded><![CDATA[<p>After a minor slip up with a probe killed my primary R2 bot (shorted VBATT to 5VCC, bye bye processor and drive chips) I&#8217;ve tonight soldered up another of my spare R2 boards to take over the mantle.</p>
<p>And the motor drive code i was debugging at the time works!</p>
<p><a href="http://thinkl33t.co.uk/wp-content/uploads/2008/08/p1010226.jpg"><img class="alignnone size-medium wp-image-253" title="R2 with motors attached." src="http://thinkl33t.co.uk/wp-content/uploads/2008/08/p1010226-300x190.jpg" alt="" width="300" height="190" /></a></p>
<p><!-- start insertion by YouTube Brackets, robertbuzink.nl --><span class="youtube"><object width="425" height="350" type="application/x-shockwave-flash" data="http://www.youtube.com/v/tNQfu4DB9lU"> <param name="movie" value="http://www.youtube.com/v/tNQfu4DB9lU" /><param name="wmode" value="transparent" /></object></span><!-- end Youtube Brackets insertion --></p>
<p>Tomorrow, i add a battery monitor circuit and the sensors, so i&#8217;ll finally have al the major electronic systems tested and good to go ready for the motor mounts.</p>

<div class="wp_syntax"><div class="code"><pre class="c"><span style="color: #339933;">#define F_CPU 1000000UL</span>
<span style="color: #339933;">#include &lt; avr/io.h&gt;</span>
<span style="color: #339933;">#include &lt; util/delay.h&gt;</span>
<span style="color: #339933;">#include &lt; avr/interrupt.h&gt;</span>
&nbsp;
<span style="color: #339933;">#include &quot;r2.h&quot;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">// Activate all the LEDs, set their pins to output</span>
	bit_set<span style="color: #009900;">&#40;</span>LED_WHITE_L_DDR, LED_WHITE_L_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>LED_WHITE_R_DDR, LED_WHITE_R_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>LED_RED_L_DDR, LED_RED_L_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>LED_RED_R_DDR, LED_RED_R_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>LED_YELLOW_FL_DDR, LED_YELLOW_FL_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>LED_YELLOW_FR_DDR, LED_YELLOW_FR_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>LED_YELLOW_RL_DDR, LED_YELLOW_RL_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>LED_YELLOW_RR_DDR, LED_YELLOW_RR_BIT<span style="color: #009900;">&#41;</span>;
&nbsp;
	<span style="color: #666666; font-style: italic;">// Activate the motor's control lines</span>
	bit_set<span style="color: #009900;">&#40;</span>MOTOR_R_ENABLE_DDR, MOTOR_R_ENABLE_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>MOTOR_R_PHASE_DDR, MOTOR_R_PHASE_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>MOTOR_L_ENABLE_DDR, MOTOR_L_ENABLE_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>MOTOR_L_PHASE_DDR, MOTOR_L_PHASE_BIT<span style="color: #009900;">&#41;</span>;
&nbsp;
	<span style="color: #666666; font-style: italic;">// turn on the motors</span>
	bit_set<span style="color: #009900;">&#40;</span>MOTOR_R_ENABLE_PORT, MOTOR_R_ENABLE_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>MOTOR_R_PHASE_PORT, MOTOR_R_PHASE_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>MOTOR_L_ENABLE_PORT, MOTOR_L_ENABLE_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>MOTOR_L_PHASE_PORT, MOTOR_L_PHASE_BIT<span style="color: #009900;">&#41;</span>;
&nbsp;
	<span style="color: #666666; font-style: italic;">// turn on the white and red LEDs</span>
	bit_set<span style="color: #009900;">&#40;</span>LED_WHITE_L_PORT, LED_WHITE_L_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>LED_WHITE_R_PORT, LED_WHITE_R_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>LED_RED_L_PORT, LED_RED_L_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>LED_RED_R_PORT, LED_RED_R_BIT<span style="color: #009900;">&#41;</span>;
&nbsp;
	<span style="color: #666666; font-style: italic;">// enable internal pullup on PD0</span>
	bit_set<span style="color: #009900;">&#40;</span>PORTD, BIT<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #666666; font-style: italic;">// enable external interrupts</span>
	EIMSK <span style="color: #339933;">=</span> BIT<span style="color: #009900;">&#40;</span>INT0<span style="color: #009900;">&#41;</span> | BIT<span style="color: #009900;">&#40;</span>INT1<span style="color: #009900;">&#41;</span>;
	<span style="color: #666666; font-style: italic;">// enable global interrupts</span>
	sei<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
	<span style="color: #666666; font-style: italic;">// loop forever</span>
	<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
&nbsp;
		delayms<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">500</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">0</span>;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// delay for up to 65k milliseconds</span>
<span style="color: #993333;">void</span> delayms<span style="color: #009900;">&#40;</span>uint16_t millis<span style="color: #009900;">&#41;</span> 
<span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">// loop, delaying 1ms each iteration</span>
	<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span> millis <span style="color: #009900;">&#41;</span> 
	<span style="color: #009900;">&#123;</span>
		_delay_ms<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>;
		millis<span style="color: #339933;">--</span>;
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// this catches the Interrupt sent from pin INT0</span>
ISR<span style="color: #009900;">&#40;</span>INT0_vect<span style="color: #009900;">&#41;</span> 
<span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">//Turn everything off</span>
	bit_clear<span style="color: #009900;">&#40;</span>LED_WHITE_L_PORT, LED_WHITE_L_BIT<span style="color: #009900;">&#41;</span>;
	bit_clear<span style="color: #009900;">&#40;</span>LED_WHITE_R_PORT, LED_WHITE_R_BIT<span style="color: #009900;">&#41;</span>;
	bit_clear<span style="color: #009900;">&#40;</span>LED_RED_L_PORT, LED_RED_L_BIT<span style="color: #009900;">&#41;</span>;
	bit_clear<span style="color: #009900;">&#40;</span>LED_RED_R_PORT, LED_RED_R_BIT<span style="color: #009900;">&#41;</span>;
&nbsp;
	bit_clear<span style="color: #009900;">&#40;</span>MOTOR_R_ENABLE_PORT, MOTOR_R_ENABLE_BIT<span style="color: #009900;">&#41;</span>;
	bit_clear<span style="color: #009900;">&#40;</span>MOTOR_R_PHASE_PORT, MOTOR_R_PHASE_BIT<span style="color: #009900;">&#41;</span>;
	bit_clear<span style="color: #009900;">&#40;</span>MOTOR_L_ENABLE_PORT, MOTOR_L_ENABLE_BIT<span style="color: #009900;">&#41;</span>;
	bit_clear<span style="color: #009900;">&#40;</span>MOTOR_L_PHASE_PORT, MOTOR_L_PHASE_BIT<span style="color: #009900;">&#41;</span>;
&nbsp;
&nbsp;
	<span style="color: #666666; font-style: italic;">// loop forever, flashing our indicators.</span>
	<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		bit_flip<span style="color: #009900;">&#40;</span>LED_YELLOW_FL_PORT, LED_YELLOW_FL_BIT<span style="color: #009900;">&#41;</span>;
		bit_flip<span style="color: #009900;">&#40;</span>LED_YELLOW_FR_PORT, LED_YELLOW_FR_BIT<span style="color: #009900;">&#41;</span>;
		bit_flip<span style="color: #009900;">&#40;</span>LED_YELLOW_RL_PORT, LED_YELLOW_RL_BIT<span style="color: #009900;">&#41;</span>;
		bit_flip<span style="color: #009900;">&#40;</span>LED_YELLOW_RR_PORT, LED_YELLOW_RR_BIT<span style="color: #009900;">&#41;</span>;
		delayms<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">500</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://thinkl33t.co.uk/2008/08/r2-project-log-motors/feed/</wfw:commentRss>
		</item>
		<item>
		<title>AVR GCC Bit Manipulation Macros</title>
		<link>http://thinkl33t.co.uk/2008/07/avr-gcc-bit-manipulation-macros/</link>
		<comments>http://thinkl33t.co.uk/2008/07/avr-gcc-bit-manipulation-macros/#comments</comments>
		<pubDate>Sun, 27 Jul 2008 16:44:47 +0000</pubDate>
		<dc:creator>parag0n</dc:creator>
		
		<category><![CDATA[Computing]]></category>

		<category><![CDATA[Electronics]]></category>

		<category><![CDATA[Robotics]]></category>

		<category><![CDATA[atmega]]></category>

		<category><![CDATA[avr]]></category>

		<category><![CDATA[avrfreaks]]></category>

		<category><![CDATA[gcc]]></category>

		<guid isPermaLink="false">http://thinkl33t.co.uk/?p=248</guid>
		<description><![CDATA[These are some macros i originally found on avrfreaks for bit manipulation.  I have posted them here in case they are useful to anyone.

#define bit_get(p,m) ((p) &#38; (m))
#define bit_set(p,m) ((p) &#124;= (m))
#define bit_clear(p,m) ((p) &#38;= ~(m))
#define bit_flip(p,m) ((p) ^= (m))
#define bit_write(c,p,m) (c ? bit_set(p,m) : bit_clear(p,m))
#define BIT(x) (0x01 &#60; &#60; (x))
#define LONGBIT(x) ((unsigned long)0x00000001 [...]]]></description>
			<content:encoded><![CDATA[<p>These are some macros i originally found on <a href="http://avrfreaks.net">avrfreaks</a> for bit manipulation.  I have posted them here in case they are useful to anyone.</p>

<div class="wp_syntax"><div class="code"><pre class="c"><span style="color: #339933;">#define bit_get(p,m) ((p) &amp; (m))</span>
<span style="color: #339933;">#define bit_set(p,m) ((p) |= (m))</span>
<span style="color: #339933;">#define bit_clear(p,m) ((p) &amp;= ~(m))</span>
<span style="color: #339933;">#define bit_flip(p,m) ((p) ^= (m))</span>
<span style="color: #339933;">#define bit_write(c,p,m) (c ? bit_set(p,m) : bit_clear(p,m))</span>
<span style="color: #339933;">#define BIT(x) (0x01 &lt; &lt; (x))</span>
<span style="color: #339933;">#define LONGBIT(x) ((unsigned long)0x00000001 &lt;&lt; (x))</span></pre></div></div>

</pre>
]]></content:encoded>
			<wfw:commentRss>http://thinkl33t.co.uk/2008/07/avr-gcc-bit-manipulation-macros/feed/</wfw:commentRss>
		</item>
		<item>
		<title>R2 Project Log - External Interrupts</title>
		<link>http://thinkl33t.co.uk/2008/07/r2-project-log-external-interrupts/</link>
		<comments>http://thinkl33t.co.uk/2008/07/r2-project-log-external-interrupts/#comments</comments>
		<pubDate>Sun, 27 Jul 2008 16:10:47 +0000</pubDate>
		<dc:creator>parag0n</dc:creator>
		
		<category><![CDATA[Electronics]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Micromouse]]></category>

		<category><![CDATA[R2]]></category>

		<category><![CDATA[Robotics]]></category>

		<category><![CDATA[MicroMouse]]></category>

		<guid isPermaLink="false">http://thinkl33t.co.uk/?p=235</guid>
		<description><![CDATA[I&#8217;ve done some playing, and worked out how to turn on the external interrupts on the atmega128 I am using for R2.
Code:

#define F_CPU 1000000UL
#include &#60; avr/io.h&#62;
#include &#60; util/delay.h&#62;
#include &#60; avr/interrupt.h&#62;
&#160;
#include &#34;r2.h&#34;
&#160;
int main&#40;void&#41; &#123;
	// Activate all the LEDs, set their pins to output
	bit_set&#40;LED_WHITE_L_DDR, LED_WHITE_L_BIT&#41;;
	bit_set&#40;LED_WHITE_R_DDR, LED_WHITE_R_BIT&#41;;
	bit_set&#40;LED_RED_L_DDR, LED_RED_L_BIT&#41;;
	bit_set&#40;LED_RED_R_DDR, LED_RED_R_BIT&#41;;
	bit_set&#40;LED_YELLOW_FL_DDR, LED_YELLOW_FL_BIT&#41;;
	bit_set&#40;LED_YELLOW_FR_DDR, LED_YELLOW_FR_BIT&#41;;
	bit_set&#40;LED_YELLOW_RL_DDR, LED_YELLOW_RL_BIT&#41;;
	bit_set&#40;LED_YELLOW_RR_DDR, LED_YELLOW_RR_BIT&#41;;
&#160;
	// enable internal pullup on PD0
	bit_set&#40;PORTD, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve done some playing, and worked out how to turn on the external interrupts on the atmega128 I am using for R2.</p>
<p><strong>Code:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="c"><span style="color: #339933;">#define F_CPU 1000000UL</span>
<span style="color: #339933;">#include &lt; avr/io.h&gt;</span>
<span style="color: #339933;">#include &lt; util/delay.h&gt;</span>
<span style="color: #339933;">#include &lt; avr/interrupt.h&gt;</span>
&nbsp;
<span style="color: #339933;">#include &quot;r2.h&quot;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">// Activate all the LEDs, set their pins to output</span>
	bit_set<span style="color: #009900;">&#40;</span>LED_WHITE_L_DDR, LED_WHITE_L_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>LED_WHITE_R_DDR, LED_WHITE_R_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>LED_RED_L_DDR, LED_RED_L_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>LED_RED_R_DDR, LED_RED_R_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>LED_YELLOW_FL_DDR, LED_YELLOW_FL_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>LED_YELLOW_FR_DDR, LED_YELLOW_FR_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>LED_YELLOW_RL_DDR, LED_YELLOW_RL_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>LED_YELLOW_RR_DDR, LED_YELLOW_RR_BIT<span style="color: #009900;">&#41;</span>;
&nbsp;
	<span style="color: #666666; font-style: italic;">// enable internal pullup on PD0</span>
	bit_set<span style="color: #009900;">&#40;</span>PORTD, BIT<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #666666; font-style: italic;">// enable external interrupts</span>
	EIMSK <span style="color: #339933;">=</span> BIT<span style="color: #009900;">&#40;</span>INT0<span style="color: #009900;">&#41;</span> | BIT<span style="color: #009900;">&#40;</span>INT1<span style="color: #009900;">&#41;</span>;
	<span style="color: #666666; font-style: italic;">// enable global interrupts</span>
	sei<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
	<span style="color: #666666; font-style: italic;">// turn on the white and red LEDs</span>
	bit_set<span style="color: #009900;">&#40;</span>LED_WHITE_L_PORT, LED_WHITE_L_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>LED_WHITE_R_PORT, LED_WHITE_R_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>LED_RED_L_PORT, LED_RED_L_BIT<span style="color: #009900;">&#41;</span>;
	bit_set<span style="color: #009900;">&#40;</span>LED_RED_R_PORT, LED_RED_R_BIT<span style="color: #009900;">&#41;</span>;
&nbsp;
	<span style="color: #666666; font-style: italic;">// loop forever</span>
	<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		delayms<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">500</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">0</span>;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// delay for up to 65k milliseconds</span>
<span style="color: #993333;">void</span> delayms<span style="color: #009900;">&#40;</span>uint16_t millis<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">// loop, delaying 1ms each iteration</span>
	<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span> millis <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		_delay_ms<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>;
		millis<span style="color: #339933;">--</span>;
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// this catches the Interrupt sent from pin INT0</span>
ISR<span style="color: #009900;">&#40;</span>INT0_vect<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">//Turn everything off</span>
	bit_clear<span style="color: #009900;">&#40;</span>LED_WHITE_L_PORT, LED_WHITE_L_BIT<span style="color: #009900;">&#41;</span>;
	bit_clear<span style="color: #009900;">&#40;</span>LED_WHITE_R_PORT, LED_WHITE_R_BIT<span style="color: #009900;">&#41;</span>;
	bit_clear<span style="color: #009900;">&#40;</span>LED_RED_L_PORT, LED_RED_L_BIT<span style="color: #009900;">&#41;</span>;
	bit_clear<span style="color: #009900;">&#40;</span>LED_RED_R_PORT, LED_RED_R_BIT<span style="color: #009900;">&#41;</span>;
&nbsp;
	<span style="color: #666666; font-style: italic;">// loop forever, flashing our indicators.</span>
	<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		bit_flip<span style="color: #009900;">&#40;</span>LED_YELLOW_FL_PORT, LED_YELLOW_FL_BIT<span style="color: #009900;">&#41;</span>;
		bit_flip<span style="color: #009900;">&#40;</span>LED_YELLOW_FR_PORT, LED_YELLOW_FR_BIT<span style="color: #009900;">&#41;</span>;
		bit_flip<span style="color: #009900;">&#40;</span>LED_YELLOW_RL_PORT, LED_YELLOW_RL_BIT<span style="color: #009900;">&#41;</span>;
		bit_flip<span style="color: #009900;">&#40;</span>LED_YELLOW_RR_PORT, LED_YELLOW_RR_BIT<span style="color: #009900;">&#41;</span>;
		delayms<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">500</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><strong>Changing Trigger Mode:</strong></p>
<p>By default, the interrupt triggers when the pin is brought low.  If we want to change this behavior, we need to poke at the External Interrupt Control Registers, EICRA (for INT0 - INT3) and EICRB (for INT4 - INT7).</p>
<p>Each interrupt pin has 2 bits in the EICR Registers, ISCxO and ISCx1.  This Gives 4 possible options for triggering:</p>
<ul>
<li>0 0: Default, Trigger when INTx is held low</li>
<li>0 1: Not Used</li>
<li>1 0: Trigger when INTx changes from 1 to 0</li>
<li>1 1: Trigger when INTx changes from 0 to 1</li>
</ul>
<p>So, to turn on INT1, and set it to trigger on a rising edge, we,d use the following code:</p>

<div class="wp_syntax"><div class="code"><pre class="c"><span style="color: #666666; font-style: italic;">// enable external interrupt</span>
EIMSK <span style="color: #339933;">=</span> BIT<span style="color: #009900;">&#40;</span>INT0<span style="color: #009900;">&#41;</span>;
<span style="color: #666666; font-style: italic;">//  set the interrupt to trigger on a rising edge</span>
EICRA |<span style="color: #339933;">=</span> BIT<span style="color: #009900;">&#40;</span>ISC00<span style="color: #009900;">&#41;</span> | BIT<span style="color: #009900;">&#40;</span>ISC01<span style="color: #009900;">&#41;</span>;</pre></div></div>

<p><strong>Video:</strong></p>
<p><!-- start insertion by YouTube Brackets, robertbuzink.nl --><span class="youtube"><object width="425" height="350" type="application/x-shockwave-flash" data="http://www.youtube.com/v/pSuCHiK-Xq4"> <param name="movie" value="http://www.youtube.com/v/pSuCHiK-Xq4" /><param name="wmode" value="transparent" /></object></span><!-- end Youtube Brackets insertion --></p>
]]></content:encoded>
			<wfw:commentRss>http://thinkl33t.co.uk/2008/07/r2-project-log-external-interrupts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>R2 Project Log - Battery Monitor Circuit</title>
		<link>http://thinkl33t.co.uk/2008/07/r2-project-log-battery-monitor-circuit/</link>
		<comments>http://thinkl33t.co.uk/2008/07/r2-project-log-battery-monitor-circuit/#comments</comments>
		<pubDate>Sat, 26 Jul 2008 20:58:14 +0000</pubDate>
		<dc:creator>parag0n</dc:creator>
		
		<category><![CDATA[Electronics]]></category>

		<category><![CDATA[Micromouse]]></category>

		<category><![CDATA[R2]]></category>

		<category><![CDATA[Robotics]]></category>

		<category><![CDATA[MicroMouse]]></category>

		<guid isPermaLink="false">http://thinkl33t.co.uk/?p=215</guid>
		<description><![CDATA[After playing with R2&#8217;s circuit, I realized I had left no ADC ports for monitoring my battery!  As it is a LiPo battery, it needs a low-voltage cutoff at 6v, or it will not be chargeable again.  I built a simple circuit with an attiny13 and a potential divider, which will trigger an interrupt on [...]]]></description>
			<content:encoded><![CDATA[<p>After playing with R2&#8217;s circuit, I realized I had left no ADC ports for monitoring my battery!  As it is a LiPo battery, it needs a low-voltage cutoff at 6v, or it will not be chargeable again.  I built a simple circuit with an attiny13 and a potential divider, which will trigger an interrupt on my main processor when the battery voltage gets to 6.2v.</p>
<p><strong>Circuit Diagram:</strong></p>
<p><a href="http://thinkl33t.co.uk/wp-content/uploads/2008/07/schem.png"><img src="http://thinkl33t.co.uk/wp-content/uploads/2008/07/schem.png" alt="R2\&#039;s Cutoff Schematic" title="Schematic" width="346" height="189" class="size-full wp-image-219" /></a></p>
<p><strong>Code:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="c"><span style="color: #339933;">#define F_CPU 10000000UL</span>
<span style="color: #339933;">#include &lt;avr /io.h&gt;</span>
<span style="color: #339933;">#include &lt;util /delay.h&gt;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// delay for up to 65k milliseconds</span>
<span style="color: #993333;">void</span> delayms<span style="color: #009900;">&#40;</span>uint16_t millis<span style="color: #009900;">&#41;</span> 
<span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">// loop, delaying 1ms each iteration</span>
	<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span> millis <span style="color: #009900;">&#41;</span> 
	<span style="color: #009900;">&#123;</span>
		_delay_ms<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>;
		millis<span style="color: #339933;">--</span>;
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// initialise the adc</span>
<span style="color: #993333;">void</span> init_adc <span style="color: #009900;">&#40;</span> <span style="color: #993333;">void</span> <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">//select external (VCC) voltage as the reference voltage (x0xx xxxx) </span>
	ADMUX <span style="color: #339933;">=</span> 0x00;
	<span style="color: #666666; font-style: italic;">//enable ADC (1000 0000)</span>
	ADCSRA |<span style="color: #339933;">=</span> 0x80;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// read the specified adc</span>
<span style="color: #993333;">int</span> adc_read <span style="color: #009900;">&#40;</span> uint8_t n <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">// set the adc to the chosen channel</span>
	ADMUX <span style="color: #339933;">=</span> n;
	<span style="color: #666666; font-style: italic;">// start the ADC conversion, set the ADC clock to cpu clock / 16 (0100 0100)</span>
	ADCSRA |<span style="color: #339933;">=</span> 0x44;
	<span style="color: #666666; font-style: italic;">// wait for the adc conversion to be completed</span>
	<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>ADCSRA <span style="color: #339933;">&amp;</span> 0x40<span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span>;
	<span style="color: #666666; font-style: italic;">// return the adc result</span>
	<span style="color: #b1b100;">return</span> ADC;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span> 
<span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">// set PB0 to output</span>
	DDRB |<span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span>&lt; &lt;PB3;
	<span style="color: #666666; font-style: italic;">// turn on the ADC</span>
	init_adc<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #666666; font-style: italic;">// set up our variables</span>
	<span style="color: #993333;">int</span> reading <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>, prev <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>, temp <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>;
	<span style="color: #666666; font-style: italic;">// loop for ever</span>
	<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// take a new adc reading</span>
		reading <span style="color: #339933;">=</span> adc_read<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span>;
		<span style="color: #666666; font-style: italic;">// average it with the previous reading</span>
		temp <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>reading <span style="color: #339933;">+</span> prev<span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span>;		
		<span style="color: #666666; font-style: italic;">// if the voltage is less than 6</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> temp &gt; <span style="color: #cc66cc;">185</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">// turn the output pin on</span>
			PORTB <span style="color: #339933;">&amp;=</span> ~<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span>&lt; &lt;PB3<span style="color: #009900;">&#41;</span>;
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">// turn the output pin off</span>
			PORTB |<span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span>&lt;&lt;PB3; <span style="color: #808080; font-style: italic;">/* LED off */</span>
		<span style="color: #009900;">&#125;</span> 
		<span style="color: #666666; font-style: italic;">// save the current reading</span>
		prev <span style="color: #339933;">=</span> reading;
		<span style="color: #666666; font-style: italic;">// wait for 20ms</span>
		delayms<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">0</span>;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><strong>Photos:</strong></p>
<p><a href="http://thinkl33t.co.uk/wp-content/uploads/2008/07/p1010212.jpg"><img class="alignnone size-medium wp-image-221" title="Battery Cutout" src="http://thinkl33t.co.uk/wp-content/uploads/2008/07/p1010212-300x232.jpg" alt="" width="300" height="232" /></a></p>
<p><a href="http://thinkl33t.co.uk/wp-content/uploads/2008/07/p1010213.jpg"><img class="alignnone size-medium wp-image-222" title="Battery Cutout" src="http://thinkl33t.co.uk/wp-content/uploads/2008/07/p1010213-300x225.jpg" alt="" width="300" height="225" /></a></util></avr></pre>
]]></content:encoded>
			<wfw:commentRss>http://thinkl33t.co.uk/2008/07/r2-project-log-battery-monitor-circuit/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Blog!</title>
		<link>http://thinkl33t.co.uk/2008/06/blog/</link>
		<comments>http://thinkl33t.co.uk/2008/06/blog/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 17:23:23 +0000</pubDate>
		<dc:creator>parag0n</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://thinkl33t.co.uk/2008/06/blog/</guid>
		<description><![CDATA[Bloggy bloggy blog blog bloggy blog.
iPhone bloggy. Bloggy blog.
]]></description>
			<content:encoded><![CDATA[<p>Bloggy bloggy blog blog bloggy blog.</p>
<p>iPhone bloggy. Bloggy blog.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkl33t.co.uk/2008/06/blog/feed/</wfw:commentRss>
		</item>
		<item>
		<title>R2 Project Log - Soldering complete!</title>
		<link>http://thinkl33t.co.uk/2008/06/r2-project-log-soldering-complete/</link>
		<comments>http://thinkl33t.co.uk/2008/06/r2-project-log-soldering-complete/#comments</comments>
		<pubDate>Sun, 15 Jun 2008 10:13:52 +0000</pubDate>
		<dc:creator>parag0n</dc:creator>
		
		<category><![CDATA[Electronics]]></category>

		<category><![CDATA[Micromouse]]></category>

		<category><![CDATA[R2]]></category>

		<category><![CDATA[Robotics]]></category>

		<category><![CDATA[MicroMouse]]></category>

		<guid isPermaLink="false">http://thinkl33t.co.uk/?p=213</guid>
		<description><![CDATA[I have finished soldering up r2, and have temporarily put him onto a microrobotics gearbox, until i can get round to making his custom aluminium motor mount / odometry harness, to get him as low as possible.

Now to write some software PWM code to get the motors running.
]]></description>
			<content:encoded><![CDATA[<p>I have finished soldering up r2, and have temporarily put him onto a microrobotics gearbox, until i can get round to making his custom aluminium motor mount / odometry harness, to get him as low as possible.</p>
<p><a href="http://thinkl33t.co.uk/wp-content/uploads/2008/06/p1010207.jpg"><img class="alignnone size-medium wp-image-212" title="R2 on a temporary chassis" src="http://thinkl33t.co.uk/wp-content/uploads/2008/06/p1010207-300x232.jpg" alt="" width="300" height="232" /></a></p>
<p>Now to write some software PWM code to get the motors running.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkl33t.co.uk/2008/06/r2-project-log-soldering-complete/feed/</wfw:commentRss>
		</item>
		<item>
		<title>R2 Project Log - It&#8217;s Alive!</title>
		<link>http://thinkl33t.co.uk/2008/06/r2-project-log-its-alive/</link>
		<comments>http://thinkl33t.co.uk/2008/06/r2-project-log-its-alive/#comments</comments>
		<pubDate>Sat, 14 Jun 2008 16:00:28 +0000</pubDate>
		<dc:creator>parag0n</dc:creator>
		
		<category><![CDATA[Electronics]]></category>

		<category><![CDATA[Micromouse]]></category>

		<category><![CDATA[R2]]></category>

		<category><![CDATA[Robotics]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[MicroMouse]]></category>

		<guid isPermaLink="false">http://thinkl33t.co.uk/?p=210</guid>
		<description><![CDATA[I spent Thursday &#38; Friday evenings wiring up enough of the board to flash some LEDs, then set out to program it&#8230; Without success  
After ripping apart the board, replacing the uC, and checking every single connection with a 10x Loupe, i turned to google, and found that the atmega128 is programmed differently to [...]]]></description>
			<content:encoded><![CDATA[<p>I spent Thursday &amp; Friday evenings wiring up enough of the board to flash some LEDs, then set out to program it&#8230; Without success <img src='http://thinkl33t.co.uk/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>After ripping apart the board, replacing the uC, and checking every single connection with a 10x Loupe, i turned to google, and found that the atmega128 is programmed differently to the other AVRs i&#8217;ve used, it has it&#8217;s own PDI and PDO pins connected to the first USART for uploading the program.</p>
<p>I wish someone had told me that before i bought the board!</p>
<p>Luckily, i had brought the USART pins out to their own header on the board, so after wiring up a programming adaptor, i was finally able to get some life!</p>
<p><a href="http://thinkl33t.co.uk/wp-content/uploads/2008/06/r2-light.jpg"><img class="alignnone size-medium wp-image-211" title="R2 With an LED Lit" src="http://thinkl33t.co.uk/wp-content/uploads/2008/06/r2-light-300x210.jpg" alt="" width="300" height="210" /></a></p>
<p><!-- start insertion by YouTube Brackets, robertbuzink.nl --><span class="youtube"><object width="425" height="350" type="application/x-shockwave-flash" data="http://www.youtube.com/v/KsHsp61aN2w"> <param name="movie" value="http://www.youtube.com/v/KsHsp61aN2w" /><param name="wmode" value="transparent" /></object></span><!-- end Youtube Brackets insertion --></p>
]]></content:encoded>
			<wfw:commentRss>http://thinkl33t.co.uk/2008/06/r2-project-log-its-alive/feed/</wfw:commentRss>
		</item>
		<item>
		<title>R2 Project Log - Partially Assembled</title>
		<link>http://thinkl33t.co.uk/2008/06/r2-project-log-partialy-assembled/</link>
		<comments>http://thinkl33t.co.uk/2008/06/r2-project-log-partialy-assembled/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 21:36:49 +0000</pubDate>
		<dc:creator>parag0n</dc:creator>
		
		<category><![CDATA[Electronics]]></category>

		<category><![CDATA[Micromouse]]></category>

		<category><![CDATA[R2]]></category>

		<category><![CDATA[Robotics]]></category>

		<category><![CDATA[MicroMouse]]></category>

		<guid isPermaLink="false">http://thinkl33t.co.uk/?p=209</guid>
		<description><![CDATA[
After waiting for some new parts to arrive ( 1206 resistors dont fit on 0805 pads :/ )  I&#8217;ve sat down to do some assembly tonight.  Hopefully i&#8217;ll  manage to get it lighting those LEDs this week.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://thinkl33t.co.uk/wp-content/uploads/2008/06/p1010192.jpg"><img class="alignnone size-medium wp-image-208" title="R2 - Partially Assembled" src="http://thinkl33t.co.uk/wp-content/uploads/2008/06/p1010192-300x191.jpg" alt="" width="300" height="191" /></a></p>
<p>After waiting for some new parts to arrive ( 1206 resistors dont fit on 0805 pads :/ )  I&#8217;ve sat down to do some assembly tonight.  Hopefully i&#8217;ll  manage to get it lighting those LEDs this week.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkl33t.co.uk/2008/06/r2-project-log-partialy-assembled/feed/</wfw:commentRss>
		</item>
		<item>
		<title>R2 Project Log - Boards are here!</title>
		<link>http://thinkl33t.co.uk/2008/06/r2-project-log-boards-are-here/</link>
		<comments>http://thinkl33t.co.uk/2008/06/r2-project-log-boards-are-here/#comments</comments>
		<pubDate>Tue, 10 Jun 2008 11:31:09 +0000</pubDate>
		<dc:creator>parag0n</dc:creator>
		
		<category><![CDATA[Electronics]]></category>

		<category><![CDATA[Micromouse]]></category>

		<category><![CDATA[R2]]></category>

		<category><![CDATA[Robotics]]></category>

		<category><![CDATA[MicroMouse]]></category>

		<guid isPermaLink="false">http://thinkl33t.co.uk/?p=206</guid>
		<description><![CDATA[Got into work this morning after two weeks sunning myself in Menorca to find my boards have arrived!
I&#8217;ll have to make a start at populating them tonight, see if i can&#8217;t get it flashing some lights or something for UKMM 08!
]]></description>
			<content:encoded><![CDATA[<p>Got into work this morning after two weeks sunning myself in Menorca to find my boards have arrived!</p>

<a href='http://thinkl33t.co.uk/2008/06/r2-project-log-boards-are-here/p1010180/' title='Shrinkwrapped Boards'><img src="http://thinkl33t.co.uk/wp-content/uploads/2008/06/p1010180-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://thinkl33t.co.uk/2008/06/r2-project-log-boards-are-here/p1010181/' title='Shrinkwrapped Boards - Alternate View'><img src="http://thinkl33t.co.uk/wp-content/uploads/2008/06/p1010181-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://thinkl33t.co.uk/2008/06/r2-project-log-boards-are-here/p1010182/' title='Shrinkwrapped Boards - Bottom View'><img src="http://thinkl33t.co.uk/wp-content/uploads/2008/06/p1010182-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://thinkl33t.co.uk/2008/06/r2-project-log-boards-are-here/p1010183/' title='Bottom of Board'><img src="http://thinkl33t.co.uk/wp-content/uploads/2008/06/p1010183-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://thinkl33t.co.uk/2008/06/r2-project-log-boards-are-here/p1010184/' title='Top of Board'><img src="http://thinkl33t.co.uk/wp-content/uploads/2008/06/p1010184-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://thinkl33t.co.uk/2008/06/r2-project-log-boards-are-here/p1010185/' title='Top of Board - uC'><img src="http://thinkl33t.co.uk/wp-content/uploads/2008/06/p1010185-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>

<p>I&#8217;ll have to make a start at populating them tonight, see if i can&#8217;t get it flashing some lights or something for UKMM 08!</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkl33t.co.uk/2008/06/r2-project-log-boards-are-here/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
