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

<channel>
	<title>SirLoon</title>
	<atom:link href="http://sirloon.net/feed" rel="self" type="application/rss+xml" />
	<link>http://sirloon.net</link>
	<description>blablablog</description>
	<lastBuildDate>Sun, 04 Sep 2011 12:29:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Face detection with Nokia N900, using ROS and OpenCV</title>
		<link>http://sirloon.net/facedetection?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=facedetection</link>
		<comments>http://sirloon.net/facedetection#comments</comments>
		<pubDate>Tue, 24 Aug 2010 08:17:01 +0000</pubDate>
		<dc:creator>sirloon</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirloon.net/?p=4</guid>
		<description><![CDATA[This post is about a small recipe to perform face detection using Nokia N900 phone. It&#8217;s based on ROS and OpenCV and shows how these components are mixed together and configure. See this OpenCV wiki page about face detection to understand how it works behind the scene. First of all, ROS needs to be installed on N900. I&#8217;ve built several ROS packages, including latest [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="Haar Cascade" src="http://farm7.static.flickr.com/6072/6088364490_37bdbf776b_d.jpg" alt="" width="500" height="200" /></p>
<p>This post is about a small recipe to perform face detection using <a href="http://maemo.nokia.com/n900/">Nokia N900</a> phone. It&#8217;s based on <a href="http://ros.org/">ROS</a> and <a href="http://opencv.willowgarage.com/wiki/">OpenCV</a> and shows how these components are mixed together and configure. See <a href="http://opencv.willowgarage.com/wiki/FaceDetection">this</a> OpenCV wiki page about face detection to understand how it works behind the scene.</p>
<p>First of all, ROS needs to be installed on N900. I&#8217;ve built several <a href="http://code.google.com/p/ros-n900/downloads/list">ROS packages</a>, including latest offical release, code name &#8220;C turtle&#8221;. I assume you know how to ssh to your N900 and gain root access.</p>
<h3>Disclaimer</h3>
<p>Careful while tinkering with your N900, you may &#8220;brick&#8221; it (if you don&#8217;t know what I mean, close this page). And I wouldn&#8217;t be responsible if this would occur, or if anything would turn into something bad. You&#8217;ve been warned.</p>
<h3>Setting up ros-n900 source</h3>
<p>I&#8217;ve created a Google Code project dedicated to N900 ports and package developments. This project can be reached at <a href="http://code.google.com/p/ros-n900/">http://code.google.com/p/ros-n900/</a>. In <a href="http://code.google.com/p/ros-n900/downloads/list">download</a> section, you&#8217;ll find deb packages. You directly download them to your N900, or configure a new APT source pointing to this project:</p>
<pre>$ echo "deb http://ros-n900.googlecode.com/files /" &gt;&gt; /etc/apt/source.list
$ apt-get update</pre>
<p>Now install ROS with apt-get:</p>
<pre>$ apt-get install ros-cturtle-base</pre>
<p>This will install ROS on /opt partition (usually 2GB ext3 space), leaving rootfs untouched. ROS uses ~500MB to install. You can also install it on a (fast) SD-card, formatted using ext3 filesystem (don&#8217;t use FAT32). You&#8217;d then need to create a symlink /opt/ros-cturtle-base pointing to your SD-card.</p>
<h3>Accessing N900 webcams under ROS</h3>
<p><a href="http://code.google.com/p/brown-ros-pkg/">brown-ros-pkg</a> project hosts gscam, a very nice ROS packages used to access camera with <a href="http://www.gstreamer.net/">GStreamer</a>. Since N900 webcams are recognized as <a href="http://www.thedirks.org/v4l2/">V4L2</a> devices, it&#8217;s easy to setup a gstreamer pipeline. First install dependencies. On N900:</p>
<pre>$ apt-get install gstreamer-tools</pre>
<p>This example shows how to send videos to PC host using UDP. Device /dev/video0 is back camera (big one, high resolution), /dev/video1 is the front one (small resolution).</p>
<pre># On N900, assuming 192.168.2.14 is PC's IP address (usually true if following usbnet howto tutorial)
$ gst-launch v4l2src device=/dev/video1 ! videoscale ! video/x-raw-yuv,width=320,height=240 ! ffmpegcolorspace ! smokeenc ! udpsink host=192.168.2.14 port=1234

# On PC computer:
$ gst-launch-0.10 udpsrc port=1234 ! smokedec ! autovideosink</pre>
<p>Here we are! A small window appears broadcasting N900 videos. You may even see your face. Install some more dependencies to build ROS package. On N900:</p>
<pre>$ apt-get install libgstreamer0.10-dev</pre>
<p>Now go to ROS stacks directory.</p>
<pre>$ roscd
$ cd ../stacks</pre>
<p>Install gscam package. Follow instructions here, <a href="http://code.google.com/p/brown-ros-pkg/downloads/list">download</a> gscam archive in download section or install it from sources.</p>
<pre>$ svn co -r 682 http://brown-ros-pkg.googlecode.com/svn/trunk/unstable/gscam gscam</pre>
<p>Once installed, build it using rosmake:</p>
<pre>$ roscd gscam
$ rosmake -i</pre>
<p>(requires quite a lot of time, be patient&#8230;)</p>
<p>gscam requires environment variable GSCAM_CONFIG to be set. It stores gstreamer pipeline definition. I had lots of troubles running the correct pipeline, and finally got <a href="http://ros-users.122217.n3.nabble.com/gscam-segfaults-td1188343.html#a1188343">help</a> from ros-users list. The trick is to convert YUV format (the only N900 cams seem to output) into RGB.</p>
<pre>$ export GSCAM_CONFIG="v4l2src device=/dev/video0 ! videoscale ! video/x-raw-yuv,width=320,height=240 ! ffmpegcolorspace ! video/x-raw-rgb ! identity name=ros ! fakesink"</pre>
<p>You can manually check it&#8217;s working without ROS:</p>
<pre>$ gst-launch-0.10 $GSCAM_CONFIG</pre>
<p>If it pauses, that&#8217;s ok. Now run it using gscam node. It requires to run within &#8220;bin&#8221; directory.</p>
<pre>$ roscd gscam
$ cd bin
$ rosrun gscam</pre>
<p>At this time, gscam should say it&#8217;s &#8220;processing&#8230;&#8221; (of course, a reachable roscore should run somewhere, for instance on PC host). Now back on PC, install n900-cam package.</p>
<pre>$ roscd
$ cd ../stacks
$ svn co http://ros-n900.googlecode.com/svn/trunk/src/n900-cam
$ roscd n900-cam
$ rosmake -i</pre>
<p>Now run n900-cam testcam.py node. It&#8217;ll retrieve images from image_topic subscription, add a circle and display the result in a window (from ROS tutorials).</p>
<pre>$ rosrun n900-cam testcam.py</pre>
<p>So far so good. Let&#8217;s face detect ourself ! This is closed to previous example, except now images are submitted to OpenCV for face detection. Code is coming from OpenCV samples and is glued here to work with a ROS node.</p>
<pre>$ rosrun n900-cam facedetect.py</pre>
<p>If you can see yourself with a red square around your face, that&#8217;s good news. If not, either you&#8217;re not human, either something is wrong with running configuration&#8230;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://sirloon.net/facedetection/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ROS on Nokia N900</title>
		<link>http://sirloon.net/ros-on-nokia-n900?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ros-on-nokia-n900</link>
		<comments>http://sirloon.net/ros-on-nokia-n900#comments</comments>
		<pubDate>Thu, 19 Aug 2010 09:20:10 +0000</pubDate>
		<dc:creator>sirloon</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirloon.net/?p=10</guid>
		<description><![CDATA[I&#8217;ve recently bought a Nokia N900 smartphone. It&#8217;s described as an Internet Tablet with phone capabilities. Interesting thing is 100% linux based, you can have full root access. On paper, this phone is awesome, in reality, it suffers from a lot of half-baked applications, poorly maintained software but, still, this opens to lots of tinkering&#8230; On the [...]]]></description>
			<content:encoded><![CDATA[<div>
<div>
<div>I&#8217;ve recently bought a <a href="http://maemo.nokia.com/n900/">Nokia N900</a> smartphone. It&#8217;s described as an Internet Tablet with phone capabilities. Interesting thing is 100% linux based, you can have full root access. On paper, this phone is awesome, in reality, it suffers from a lot of half-baked applications, poorly maintained software but, still, this opens to lots of tinkering&#8230;</div>
<div>On the other side, I&#8217;ve also discovered <a href="http://ros.org/">ROS</a>. ROS stands for Robotic Operating System. It&#8217;s robotic framework, offers distributed computing over nodes, pubsub architecture for inter-processes message exchanges. It can be programmed using C++, python and other less supported language. It&#8217;s developped by <a href="http://www.willowgarage.com/">Willow Garage</a>, the guys who built robot <a href="http://www.willowgarage.com/pages/robots/pr2-overview">PR2</a>. If you&#8217;ve ever searched a flexible, powerful and fun robotic framework, or even wanted to develop your own (&#8230;), you definitely need to give ROS a try.</div>
<div>There are lots of advantages running a PC based robot. For instance you can easily plug a USB webcam and give vision to your robot. For minimal cost. Doing this with an embedded cam, like <a href="http://www.cs.cmu.edu/~cmucam/">CMUCam</a>, is certainly fun and interesting but in the end, performances can&#8217;t be compared and you&#8217;ll sure need some power computing to process incoming images. There are existing tiny PC, based on <a href="http://en.wikipedia.org/wiki/Pico-ITX">ITX motherboards</a> for instance in order to do this. You can install Linux, put ROS on it and start to build your Linux powered robot. But, wait, I also have a very, very small form factor Linux PC, my N900&#8230; Why not using it as a robotic platform ?</div>
<div>It provides:</p>
<ul>
<li>2 webcams (front, back)</li>
<li>3-axis accelerometer</li>
<li>GPS</li>
<li>high resolution touchscreen</li>
<li>micro-USB connector, can be used as a USB host with some tinkering</li>
<li>Wifi</li>
<li>bluetooth</li>
<li>Infra-red beam</li>
<li>RGB LED</li>
<li>32GB memory, extendable to 64GB with microSD cards</li>
<li>microphone</li>
<li>speaker</li>
<li>ambient light sensor</li>
</ul>
<p>Doesn&#8217;t it sound awesome as your main robotic platform ?</p></div>
<div>The idea is thus to install ROS on N900. Low-level tasks, such as actually activate motors, collecting sensor data, should remain on a microcontroller board, like <a href="http://jaluino.org/">Jaluino</a>. All collected data and actions should go through N900, acting as a hub, performing some pre-processing tasks before delegating more power-consuming tasks to a PC around there, also running ROS.</div>
<div>It&#8217;s been a while since I&#8217;ve already install ROS on N900. There were lots of trials and errors, highly time consuming, but it definitely worth it! I&#8217;ve created a dedicated Google Code project, named <a href="http://code.google.com/p/ros-n900/">ros-n900</a>. You&#8217;ll find ROS packages specific to N900 target, and deb packages to easily install ROS on N900. You can also follow instructions on this wiki page I wrote on ros.org: <a href="http://www.ros.org/wiki/N900ROS">http://www.ros.org/wiki/N900ROS</a>.</div>
<div>Next, we&#8217;ll see how to have fun with N900 webcams, ROS and <a href="http://opencv.willowgarage.com/wiki/">OpenCV</a>!</div>
</div>
<p><a name="more"></a></div>
<div></div>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://sirloon.net/ros-on-nokia-n900/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GUI tool(kit) to view data coming from your PIC</title>
		<link>http://sirloon.net/gui-toolkit-to-view-data-coming-from-your-pic?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gui-toolkit-to-view-data-coming-from-your-pic</link>
		<comments>http://sirloon.net/gui-toolkit-to-view-data-coming-from-your-pic#comments</comments>
		<pubDate>Sun, 15 Feb 2009 09:23:43 +0000</pubDate>
		<dc:creator>sirloon</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirloon.net/?p=13</guid>
		<description><![CDATA[I now have quite a nice base for my SirBot project, highly configurable, and hopefully more stable now implementation is done using Twisted (no threads anymore). With this base, any data coming from the PIC (a request, a response, a message, see SirBot&#8217;s doc for more), can be parsed and objects can be created from them. Then [...]]]></description>
			<content:encoded><![CDATA[<p>I now have quite a nice base for my SirBot project, highly configurable, and hopefully more stable now implementation is done using Twisted (no threads anymore). With this base, any data coming from the PIC (a request, a response, a message, see <a href="http://sirbot.org/documentation/main.html#communications">SirBot&#8217;s doc</a> for more), can be parsed and objects can be created from them. Then spread to whatever application needs them. Now the time has come to build a GUI&#8230;</p>
<p>For instance, I&#8217;ve experimented <a href="http://sirloon.net/loonaweb/sirblog/experimenting-back-emf-motion-feedback">back-emf while trying to control DC motor</a>. This was very fun and produced very nice data and graphs. But those were done after the experiment. I just logged raw data on a file, then process them with a awful python script to build gnuplot graphs. Where is the real-time ? Observing these graphs in real-time is now mandatory. I need to know what&#8217;s going on this bot !</p>
<p><img class="alignnone" title="Back EMF" src="http://farm7.static.flickr.com/6066/6087949939_1f4f7571c2.jpg" alt="" width="392" height="300" /><br />
Yes, I now need to build a GUI, and it really pisses me off <img src='http://sirloon.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  The simple idea I could write</p>
<pre> application.addMenuItem("File","New")</pre>
<p>really gets me sick. It&#8217;s so much waste of time in my opinion. I just don&#8217;t want to design a GUI, selecting the appropriate layout, putting some code for buttons here and there. Maybe I&#8217;d need a graphical GUI builder. But when it comes to deal with real-time graphs, I&#8217;ll need to implement a sort-of canvas, and draw points on it, and&#8230; I just don&#8217;t want to spend my time on this, I just want to see my data coming from my PIC. In real-time. And I&#8217;d like it flexible, with a lot of widgets, like gauges, sliders, knobs, etc&#8230;</p>
<p>I first tried and thought to have a solution with <a href="http://www.adobe.com/products/flex/overview/">Flex</a>. Interestingly enough, Flex can be used to build GUI with real-time data. It&#8217;s quite fun to use, compiler is open-source, documentation is awesome. Lots of widgets are available, for free, like <a href="http://www.fusioncharts.com/free/">Fusion Charts</a>. And it&#8217;s cross-platform since it&#8217;s all about Flash. I prototyped and even wrote a Flash gateway to spread message from the SirBot&#8217;s core, over a Flash XMLSocket. Worked great, nice performance. Then I tried to add some colors and&#8230; you have to sub-class, add callbacks for whatever I don&#8217;t know, etc&#8230; I may have missed something, but it looks too complicated for just what I want to do. And most importantly, I&#8217;ll need to design a layout, add a menu, add a button here, write the code so when to button here is pressed, then it switch on this pane. I just don&#8217;t have time !</p>
<p>So, how can I do this ? How can I build a rich GUI, with real-time widgets, easy and fast to implement ? Which tool(s) to use ? Is there a tool which can do this ?</p>
<p>Though I&#8217;ve never tried it, <a href="http://www.ni.com/labview/">Labview</a> seems to be a solution, but it&#8217;s way, way too much expensive, and there&#8217;s no free-of-charge edition for the &#8220;cheap guy&#8221;&#8230; Looks like I need a Labview alternative. During this &#8220;quest&#8221;, I&#8217;ve found many interesting projects. What can be surprising is most of the time, this is about sounds, videos and artistic related projects.</p>
<p><span class="Apple-style-span" style="font-size: 10px; letter-spacing: 1px; line-height: 26px; text-transform: uppercase;"><a href="http://www.infomus.org/EywMain.html">Eyesweb</a></span><br />
I first found Eyesweb through <a href="http://www.biomobius.org/">BioMobius</a>, which integrates it, adds blocks dedicated to the biomedical field (and also provides an awful GUI builder&#8230;). Eyesweb is free, works on Windows. It looks very powerful, and seems to be a real Labview-alternative. Its first purpose was about to deal with audio and video, in real-time, with motion-capture, for artistic projects. I can remember having read it was used on a opera, to produce nice visual effects according to what&#8217;s going on the scene.</p>
<p>I tried to prototype things, and the cost to enter is quite high (but this is what I expect for these type of tools). I tried to connect it to my SirBot&#8217;s core, via a NetReceiver, but it just crashes. This really is a nice tool, I&#8217;d need to spend more time on it, if others don&#8217;t do the trick. And the motion capture can be interesting when I add a camera to my bot&#8230;</p>
<div><img src="http://www.audiovisualizers.com/toolshak/vjprgpix/eyesweb/eyesweb2.jpg" alt="" width="400" height="300" /></div>
<p><span class="Apple-style-span" style="font-size: 10px; letter-spacing: 1px; line-height: 26px; text-transform: uppercase;"><a href="http://puredata.info/">Pure Data</a></span><br />
Pure Data is an old project. I&#8217;ve seen many incredible videos on youtube about it. Though it has a visual environment, it&#8217;s more like classical &#8220;type&#8221; programming: you have to know objects&#8217; name, and what you can do with them. Runs under Linux.</p>
<p>I did not give a try with this one, but it looks very powerful and fast. It may be too much audio-oriented.</p>
<p><img src="http://upload.wikimedia.org/wikipedia/en/7/78/Screenshot10.png" alt="" width="400" height="300" /></p>
<h3><a href="http://www.cycling74.com/products/max5">MAX/MSP</a></h3>
<p>Max/MSP is derived from Pure Data. Lots of nice widgets. Runs under Mac and Windows. Not Linux.</p>
<div><img src="http://upload.wikimedia.org/wikipedia/en/7/72/Autechremax.jpg" alt="" width="400" height="269" /></div>
<h3><a href="http://opensoundcontrol.org/">OSC</a></h3>
<p>Open Sound Control. Not a GUI toolkit nor a tool by itself, but a specification: &#8220;Open Sound Control (OSC) is a protocol for communication among computers, sound synthesizers, and other multimedia devices that is optimized for modern networking technology.&#8221; Many, many tools I&#8217;ve found, included those listed here (and particularly Eyesweb), can use OSC as input. OSC is used in <a href="http://opensoundcontrol.org/osc-application-areas">many areas</a> other than sounds. I think I&#8217;ll need to implement a OSC output in SirBot&#8217;s core.</p>
<p>Other fun tools&#8230;</p>
<h3><a href="http://www.pawfal.org/fluxus/">Fluxus</a></h3>
<p>From their site: &#8220;Fluxus reads live audio, midi or OSC network messages which can be used as a source of animation data for realtime performances or installations. Keyboard or mouse input can also be read for games development, and a physics engine is included for realtime simulations of rigid body dynamics.&#8221; Looks fun ! While not directly usable for what I want (and from what I understand), it may be interesting to keep this in mind. For instance, it could be used to &#8220;just&#8221; produce a visual&#8230; stuff which globally represents the bot&#8217;s state. No &#8220;scientific&#8221; graphs, or the like. Just&#8230; visual stuff. Fluxus can be programmed in live (see <a href="http://www.youtube.com/watch?v=TrZmB6O_0X0">this video</a> for more). No GUI, no visual programming.</p>
<div><img src="http://www.pawfal.org/fluxus/images/slubfave06c.jpg" alt="" width="400" height="300" /></div>
<p>&nbsp;</p>
<h3><a href="http://supercollider.sourceforge.net/">SuperCollider</a></h3>
<p>SuperCollider seems very similar to Fluxus. Live coding, no GUI, just type and to see/listen to the results. See this <a href="http://www.youtube.com/watch?v=z2Z1Pvt8Poc&amp;eurl=http://supercollider.sourceforge.net/videos/&amp;feature=player_embedded">video</a>, scratching with a WiiMote <img src='http://sirloon.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>There are many other tools, libraries out there, (<a href="http://en.wikipedia.org/wiki/Quartz_Composer">Quartz Composer</a>, <a href="http://vvvv.org/">vvvv</a>, <a href="http://www.csounds.com/">CSound</a>, &#8230;) to deal with real-time data, lots of artistic projects I just discover (and started to discover with <a href="http://www.arduino.cc/">Arduino</a>), and look very, very fun <img src='http://sirloon.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span class="Apple-style-span" style="font-size: 14px; line-height: 22px;">So, which to choose ?</span><br />
I don&#8217;t know yet, but EyesWeb probably fits my needs the best. Others are of interest too, but maybe not right now. I have to spend more time on EyesWeb, and build a real prototype for validation, probably based on a OSC server/gateway.</p>
]]></content:encoded>
			<wfw:commentRss>http://sirloon.net/gui-toolkit-to-view-data-coming-from-your-pic/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Since last post&#8230;</title>
		<link>http://sirloon.net/since-last-post?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=since-last-post</link>
		<comments>http://sirloon.net/since-last-post#comments</comments>
		<pubDate>Sun, 18 Jan 2009 09:29:54 +0000</pubDate>
		<dc:creator>sirloon</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirloon.net/?p=16</guid>
		<description><![CDATA[I&#8217;ve been working on jallib project, which aims to provide standard libraries to use with jalv2 compiler, with some other guys. Jallib is released under BSD and ZLIB licenses, and available on GoogleCode. A Google group is also available, this is where we discuss and debate about jalv2, jallib, etc&#8230; I&#8217;ve written some blog posts on jallib&#8217;s blog I&#8217;ve migrated my SirBot&#8217;s projects and javl2 libraries to [...]]]></description>
			<content:encoded><![CDATA[<div>
<div>
<div>
<ul>
<li>I&#8217;ve been working on <a href="http://jallib.googlecode.com/">jallib</a> project, which aims to provide standard libraries to use with jalv2 compiler, with some <a href="http://jallib.googlegroups.com/web/JallibTeam.html?gda=epCfuUEAAADKLsithIXmUwZj4O5vbmBZCWTEzEVDDLl3vvBsk9pNSore27_YzUKwB0UJ0G84mHhTCT_pCLcFTwcI3Sro5jAzlXFeCn-cdYleF-vtiGpWAA">other guys</a>. Jallib is released under BSD and ZLIB licenses, and <a href="http://code.google.com/p/jallib/downloads/list">available</a> on GoogleCode. A <a href="http://groups.google.com/group/jallib">Google group </a>is also available, this is where we discuss and debate about jalv2, jallib, etc&#8230;</li>
<li>I&#8217;ve <a href="http://jallib.blogspot.com/2009/01/common-pitfall-setting-up-registers.html">written</a> <a href="http://jallib.blogspot.com/2009/01/common-pitfall-digital-pins-arent.html">some</a> <a href="http://jallib.blogspot.com/2009/01/step-by-step-building-i2c-slave-with.html">blog</a> <a href="http://jallib.blogspot.com/2009/01/step-by-step-building-i2c-slave-with_17.html">posts</a> on jallib&#8217;s blog</li>
<li>I&#8217;ve migrated my SirBot&#8217;s projects and javl2 libraries to jallib</li>
<li>I&#8217;ve re-written an important of SirBot communication layer, now based on <a href="http://twistedmatrix.com/trac/">Twisted</a>. This provides a extremely powerful base, without threads, easy to maintain</li>
<li>I&#8217;ve played with <a href="http://www.adobe.com/products/flex/">Flex</a>, Adobe&#8217;s OpenSource RIA framework, and tried to prototype a Flash-based GUI for SirBot&#8217;s monitoring widgets. Quite promising&#8230;</li>
</ul>
</div>
</div>
<p><a name="more"></a></div>
<div></div>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://sirloon.net/since-last-post/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PCB using toner transfer method: video and comparison</title>
		<link>http://sirloon.net/pcb-using-toner-transfer-method-video-and-comparison?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=pcb-using-toner-transfer-method-video-and-comparison</link>
		<comments>http://sirloon.net/pcb-using-toner-transfer-method-video-and-comparison#comments</comments>
		<pubDate>Fri, 01 Aug 2008 09:30:55 +0000</pubDate>
		<dc:creator>sirloon</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirloon.net/?p=18</guid>
		<description><![CDATA[Having recently tested a lot this method, I&#8217;ve finally determine my &#34;easy and cheap&#34; way to build PCB using toner transfer method. I tried a lot of things, different papers. I&#8217;ve also tested the professional photoengraving&#160; method, this one can be considered for the most accurate (but certainly not the cheapest). So, what&#8217;s the recipe [...]]]></description>
			<content:encoded><![CDATA[<p>Having recently tested a lot this method, I&#8217;ve finally determine my &quot;easy and cheap&quot; way to build PCB using toner transfer method. I tried <a href="http://sirloon.net/loonaweb/sirblog/experimenting-pcb-board-creation-using-a-laser-printer">a lot of things</a>, different papers. I&#8217;ve also tested the professional <strong><a title="Photoengraving" href="http://en.wikipedia.org/wiki/Photoengraving">photoengraving</a></strong>&nbsp; method, this one can be considered for the most accurate (but certainly not the cheapest).</p>
<p>So, what&#8217;s the recipe ? This is closed to the <a href="http://sirloon.net/loonaweb/sirblog/pcb-using-toner-transfert-method-another-try">last one</a>, but now way faster, since only ~ 10 minutes are needed. Main difference is you don&#8217;t have to be careful while peel off the paper, toner really sticks firmly, there&#8217;s no risk damaging the tracks.</p>
<ul>
<ul>
<li>I use <span style="font-weight: bold;">glossy photo paper for laser printer</span> (135g/m<sup>2</sup>)</li>
</ul>
</ul>
<ul>
<ul>
<li><span style="font-weight: bold;">wash</span> your PCB board with <span style="font-weight: bold;">soap</span>, then with <span style="font-weight: bold;">window cleaner</span> (or detergent with alcohol).</li>
<li><span style="font-weight: bold;">sandpaper</span> your board with ultra thin paper (600, one used for body car)</li>
<li><span style="font-weight: bold;">wash again the board</span> with soap, then with window cleaner. It must absolutely be <span style="font-weight: bold;">dry</span>.</li>
<li><span style="font-weight: bold;">preheat the board</span>,</li>
<li><span style="font-weight: bold;">place the paper on the board</span>. Be careful, it&#8217;ll instantly stick to the board.</li>
<li><span style="font-weight: bold;">iron the paper</span>., first <span style="font-weight: bold;">smoothly</span> to help paper to sitck firmly, then with a lot of <span style="font-weight: bold;">pressure </span>(~1min)</li>
<li><span style="font-weight: bold;">continue with the iron tip</span>, and redraw all the circuit (black tracks will appear through the paper), for ~4/5min.</li>
<li><span style="font-weight: bold;">Ironing time: ~4/5min</span></li>
<li>then <span style="font-weight: bold;">place the board on hot water</span>, no soap. Wait for ~ 3/4 minutes, watching the paper beeing <span style="font-weight: bold;">soaked</span>.&nbsp;</li>
<li><span style="font-weight: bold;">peel-off the paper</span>. Most can easily be removed, only the last layer, where the toner sticks, will mostly remain on the board.</li>
<li><span style="font-weight: bold;">peel-off again</span> <span style="font-weight: bold;">the paper with a toothbrush</span>.&nbsp; Don&#8217;t hesitate, it won&#8217;t damage your PCB.<span style="font-weight: bold;"><span style="font-weight: bold;"></span></span></li>
<li>once done,<span style="font-weight: bold;"><span style="font-weight: bold;"> </span>dry the board</span>. Check if you&#8217;ve missed some paper.</li>
<li><span style="font-weight: bold;">clean the board with window cleaner</span>. While it won&#8217;t remove toner, it&#8217;ll help to remove paper residue and get an accurate board.</li>
<li><span style="font-weight: bold;">you&#8217;re done</span>. You&#8217;ll then need to <span style="font-weight: bold;">etch the board</span>. Once done, <span style="font-weight: bold;">remove the toner</span> using acetone (nail polish remover works well)</li>
</ul>
</ul>
<p>This video shows the whole recipe:</p>
<div style="text-align: center;">
 <object width="640" height="390"><param name="movie" value="http://www.youtube.com/v/QQupRXEqOz4&#038;hl=en_US&#038;feature=player_embedded&#038;version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/QQupRXEqOz4&#038;hl=en_US&#038;feature=player_embedded&#038;version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="390"></embed></object> </div>
<p>Now, as a <span style="font-style: italic;">conclusion</span>, here&#8217;s a comparison of different PCB creation techniques:</p>
<table cellspacing="1" cellpadding="1" border="1" align="center" summary="" style="width: 620px; height: 149px;">
<tbody>
<tr>
<td>&nbsp;</td>
<td style="background-color: rgb(51, 51, 153); color: rgb(255, 255, 255); font-weight: bold; text-align: center;">Photoengraving</td>
<td style="background-color: rgb(51, 51, 153); color: rgb(255, 255, 255); font-weight: bold; text-align: center;">Toner transfer with transparency</td>
<td style="background-color: rgb(51, 51, 153); color: rgb(255, 255, 255); font-weight: bold; text-align: center;">Toner transfer with photo inkjet paper</td>
<td style="background-color: rgb(51, 51, 153); color: rgb(255, 255, 255); font-weight: bold; text-align: center;">Toner transfer with photo laser paper</td>
</tr>
<tr>
<td style="background-color: rgb(255, 102, 0); font-weight: bold; color: rgb(255, 255, 255);">Ease</td>
<td style="text-align: center;"><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" />&nbsp;</td>
<td style="text-align: center;"><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" />&nbsp;<img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /></td>
<td style="text-align: center;">&nbsp;<img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /></td>
<td style="text-align: center;"><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /> </td>
</tr>
<tr>
<td style="background-color: rgb(255, 102, 0); font-weight: bold; color: rgb(255, 255, 255);">Repeatable</td>
<td style="text-align: center;"><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /> </td>
<td style="text-align: center;"><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /> </td>
<td style="text-align: center;"><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /> </td>
<td style="text-align: center;"><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /> </td>
</tr>
<tr>
<td style="background-color: rgb(255, 102, 0); font-weight: bold; color: rgb(255, 255, 255);">Accuracy</td>
<td style="text-align: center;"><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /> </td>
<td style="text-align: center;"><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /> </td>
<td style="text-align: center;"><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /> </td>
<td style="text-align: center;"><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /> </td>
</tr>
<tr>
<td style="vertical-align: top; background-color: rgb(255, 102, 0); font-weight: bold; color: rgb(255, 255, 255);">Fast</td>
<td style="vertical-align: top; text-align: center;"><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /> </td>
<td style="vertical-align: top; text-align: center;"><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /> </td>
<td style="vertical-align: top; text-align: center;"><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /> </td>
<td style="vertical-align: top; text-align: center;">&nbsp;<img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /></td>
</tr>
<tr>
<td style="vertical-align: top; background-color: rgb(255, 102, 0); font-weight: bold; color: rgb(255, 255, 255);">Cheap</td>
<td style="vertical-align: top; text-align: center;"><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /></td>
<td style="vertical-align: top; text-align: center;">&nbsp;<img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /></td>
<td style="vertical-align: top; text-align: center;"><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /> </td>
<td style="vertical-align: top; text-align: center;">&nbsp;<img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /></td>
</tr>
<tr>
<td style="vertical-align: top; background-color: rgb(255, 0, 0); font-weight: bold; color: rgb(255, 255, 255);">Total</td>
<td style="vertical-align: top; text-align: center; background-color: rgb(204, 255, 255);"><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /> </td>
<td style="vertical-align: top; text-align: center; background-color: rgb(204, 255, 255);"><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /> </td>
<td style="vertical-align: top; text-align: center; background-color: rgb(204, 255, 255);"><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /> </td>
<td style="vertical-align: top; text-align: center; background-color: rgb(204, 255, 255);"><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /><img src="http://farm7.static.flickr.com/6081/6087961565_30f46850d8_t.jpg" alt="" /> </td>
</tr>
</tbody>
</table>
<p>[EDIT 2009-09-10] : here are some photos of the glossy paper I use, hoping it&#8217;ll help choose the correct type.</p>
<p><a target="_blank" href="http://farm7.static.flickr.com/6192/6087971353_a035957d7e.jpg"><img alt="" style="width: 395px; height: 527px;" src="http://farm7.static.flickr.com/6192/6087971353_a035957d7e.jpg" /></a></p>
<p><a target="_blank" href="http://farm7.static.flickr.com/6066/6087971361_5a1f2a133f_d.jpg"><img width="584" height="438" alt="" src="http://farm7.static.flickr.com/6066/6087971361_5a1f2a133f_d.jpg" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://sirloon.net/pcb-using-toner-transfer-method-video-and-comparison/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New boards available from SirBot</title>
		<link>http://sirloon.net/new-boards-available-from-sirbot?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=new-boards-available-from-sirbot</link>
		<comments>http://sirloon.net/new-boards-available-from-sirbot#comments</comments>
		<pubDate>Mon, 16 Jun 2008 09:46:11 +0000</pubDate>
		<dc:creator>sirloon</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirloon.net/?p=24</guid>
		<description><![CDATA[Two new boards are available from SirBot Modules. Both are using a new bus cable connector, and were designed using Eagle. a new version of the mainboard: with an integrated i2c bus, better design a DC motor controller board: can be drive existing h-bridges, such as those found in RC toys. Extremely configurable and extensible, highly documented. Many months (about six) [...]]]></description>
			<content:encoded><![CDATA[<div>Two new boards are available from <a href="http://sirbot.org/">SirBot</a> <a href="http://sirbot.org/sirbot-modules">Modules</a>. Both are using a new <a href="http://sirbot.org/sirbot-modules/buscable">bus cable</a> connector, and were designed using Eagle.</div>
<ul>
<ul>
<li>a new version of the <a href="http://sirbot.org/sirbot-modules/main_board">mainboard</a>: with an integrated i2c bus, better design</li>
<li>a <a href="http://sirbot.org/sirbot-modules/dc-motor-controller-board">DC motor controller board</a>: can be drive existing h-bridges, such as those found in RC toys. Extremely configurable and extensible, highly documented.</li>
</ul>
</ul>
<div>Many months (about six) have passed since the last <a href="http://sirbot.org/download">Sirbot release</a>, it&#8217;s now time for a new one. Just need to finish the ChangeLog&#8230;</div>
<div><img class="aligncenter" title="Mainboard" src="http://farm7.static.flickr.com/6080/6088534600_24880e447f_m_d.jpg" alt="" width="240" height="180" /><img class="aligncenter" title="DC motor controller" src="http://farm7.static.flickr.com/6065/6087990297_6bfe17d3fe_m_d.jpg" alt="" width="240" height="180" /></div>
]]></content:encoded>
			<wfw:commentRss>http://sirloon.net/new-boards-available-from-sirbot/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I2C com. with two 16F88 (master/slave) using Jal v2</title>
		<link>http://sirloon.net/i2c-com-with-two-16f88-masterslave-using-jal-v2?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=i2c-com-with-two-16f88-masterslave-using-jal-v2</link>
		<comments>http://sirloon.net/i2c-com-with-two-16f88-masterslave-using-jal-v2#comments</comments>
		<pubDate>Tue, 29 Apr 2008 06:07:19 +0000</pubDate>
		<dc:creator>sirloon</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirloon.net/?p=31</guid>
		<description><![CDATA[Weeks ago, while I was trying to interface my mainboard with a DC motor controller board, I had to dive into the i2c protocol. Serial com. couldn&#8217;t make the deal, as I plan to connect several daughter boards, thus need to address them. Although RS485 was also possible, it implied a lot of changes, particularly on the PC side [...]]]></description>
			<content:encoded><![CDATA[<div>Weeks ago, while I was trying to <a href="http://sirloon.net/loonaweb/sirblog/driving-dc-motors-with-a-pic-16f88-first-draft">interface my mainboard with a DC motor controller board</a>, I had to dive into the <a href="http://en.wikipedia.org/wiki/I%C2%B2C">i2c protocol</a>. Serial com. couldn&#8217;t make the deal, as I plan to connect several daughter boards, thus need to address them. Although <a href="http://en.wikipedia.org/wiki/Rs485">RS485</a> was also possible, it implied a lot of changes, particularly on the PC side where I&#8217;d need an adaptor&#8230;</p>
<p>Anyway, just as blinking a LED, i2c is a must-have protocol. Several links helped me a lot, like <a href="http://www.esacademy.com/faq/i2c/index.htm">this one</a> explaining the whole theory, step-by-step, message-by-message. But the most helpful documentation still remains <a href="http://sirbot.org/sirbot-modules/datasheets/PIC16F88.pdf/view">PIC 16F88 datasheet</a>, and the <a href="http://sirbot.org/sirbot-modules/datasheets/AN734A.pdf/view">Application Note AN734A</a> which explains quite well how to implement an i2c slave as a <a href="http://en.wikipedia.org/wiki/State_machine">state-machine</a>. An <a href="http://www.astrosurf.com/soubie/pic_as_an_i2c_slave.htm">interesting post</a> is also explaining this very same App. note has a lot of bugs. I wouldn&#8217;t say &#8220;a lot&#8221;, still there&#8217;s a little bug about clock stretching: CKP must be set to high when receiving a NACK. Anyway&#8230;</p>
<p>So, this time, this is about setting an i2c communication bus between two PIC 16F88, using <a href="http://en.wikipedia.org/wiki/JAL_%28compiler%29">Jal v2</a>. The first thing to note is 16F88 implements SSP (Synchronous Serial Port), but not MSSP (Master Synchronous Serial Port). This means 16F88 can&#8217;t be just configured to act as a i2c master, all of this must be done in software. Good news is jal v2 standard libraries come with an i2c module, which can handle all the i2c protocol subtleties, from a master point-of-view&#8230;</p>
<p>This jal v2 master implementation isn&#8217;t based on interrupts: since it&#8217;s the master which decides to take control of the bus, there&#8217;s no need to react to external event&#8230; except when using Multi-Master i2c bus. To help this, 16F88 can be configured to generate interrupts on START/STOP bits (which defines when the bus is available or not). A Multi-Master i2c bus seems great but I didn&#8217;t give a try, regarding all the debugging time it took me to set a &#8220;simple&#8221; 1-Master/1-Slave bus.</p>
<p>So, the master part is ok, now the slave part. This is where things are getting tough. Particularly without any oscilloscope or digital probe/analyzer. 16F88 can be configured as a hardware slave i2c. An IC address must be set, it must be the same as the one the master is using&#8230; This is what I&#8217;ve first thought, but it&#8217;s not actually exactly true ! Actually, SSP must be configured so SSPADD contains a 8-bit address, that is, with the 8th bit setting read/write address type. Whereas in Jal, IC address is coded on 7-bits. This means, for instance:</p></div>
<p>&nbsp;</p>
<table summary="" width="60%" border="1" cellspacing="1" cellpadding="1" align="center">
<tbody>
<tr>
<td valign="top">
<div>Jal slave i2c master<br />
(declared slave address)</div>
</td>
<td valign="top">Hardware i2c slave address</td>
</tr>
<tr>
<td valign="top">0x2E = 0b00101110</td>
<td valign="top">0x5C = 0b1011100</td>
</tr>
</tbody>
</table>
<div>That is, if the slave is declared to have 0x5C address, the master will have to talk to 0x2E as jalv2 is actually shifting 1-bit while building a write- or a read-address. As usual (and as everyone seems to report), i2c com. problems mainly come from address issues.</p>
<p>Setting a i2c bus is quite easy, from a hardware point of view. SDA and SCL pins must be connected on each side, on a bus using pull-up  resistors to +5V. Different values can be used, they&#8217;re determining the stability and the bus speed. I&#8217;ve successfully tried 2.2K and 3.3K, these are standard values.</p></div>
<div><a href="http://flic.kr/p/ahkEP3"><img class="alignnone" title="Schematic" src="http://farm7.static.flickr.com/6086/6092112536_d19be4d223_d.jpg" alt="" width="500" height="201" /></a></p>
<div>
<div>Finally, here&#8217;s a two small Jal programs to test this i2c bus. The master 16F88, also connected via UART, gets a character from serial (from a PC), echoes it and send it to slave 16F88. This ones gets this char, process it (char = char + 1&#8230;). The master then gets the result and send it back to the PC. So, if you type &#8220;a&#8221;, you&#8217;ll get &#8220;a&#8221; as echo, then &#8220;b&#8221; as the slave&#8217;s results.</div>
<table summary="" width="50%" border="1" cellspacing="1" cellpadding="1" align="center">
<tbody>
<tr>
<td>PIC 16F88 i2c Master</td>
<td>PIC 16F88 i2c Slave</td>
</tr>
<tr>
<td><a href="http://sirloon.net/loonaweb/sirblog/stuff/simple_i2c_master.jal">simple_i2c_master.jal</a></td>
<td><a href="http://sirloon.net/loonaweb/sirblog/stuff/simple_i2c_slave.jal">simple_i2c_slave.jal</a></td>
</tr>
</tbody>
</table>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://sirloon.net/i2c-com-with-two-16f88-masterslave-using-jal-v2/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PCB using toner transfert method, another try</title>
		<link>http://sirloon.net/pcb-using-toner-transfert-method-another-try?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=pcb-using-toner-transfert-method-another-try</link>
		<comments>http://sirloon.net/pcb-using-toner-transfert-method-another-try#comments</comments>
		<pubDate>Tue, 22 Apr 2008 06:11:24 +0000</pubDate>
		<dc:creator>sirloon</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirloon.net/?p=33</guid>
		<description><![CDATA[I&#8217;ve just build another board, using toner-transfert-system (TTS). Last try required lots of trials/errors, still leaving unanswered questions&#8230; This time, the first try was perfect. Here&#8217;s my ultimate recipe: &#160; I use glossy photo paper for laser printer (135g/m2) wash your PCB board with soap, then with window cleaner (or detergent with alcohol). sandpaper your board with ultra thin paper (600, one used for body [...]]]></description>
			<content:encoded><![CDATA[<div>I&#8217;ve just build another board, using toner-transfert-system (TTS). <a href="http://sirloon.net/loonaweb/sirblog/experimenting-pcb-board-creation-using-a-laser-printer">Last try</a> required lots of trials/errors, still leaving unanswered questions&#8230; This time, the first try was perfect. Here&#8217;s my ultimate recipe:</div>
<p>&nbsp;</p>
<ul>
<ul>
<li>I use glossy photo paper for laser printer (135g/m<sup>2</sup>)</li>
</ul>
</ul>
<ul>
<ul>
<li>wash your PCB board with soap, then with window cleaner (or detergent with alcohol).</li>
<li>sandpaper your board with ultra thin paper (600, one used for body car)</li>
<li>wash again the board with soap, then with window cleaner. It must absolutely be dry.</li>
<li>preheat the board, with your iron (max temperature, mine doesn&#8217;t heat a lot)</li>
<li>place the paper on the board. Be careful, it&#8217;ll instantly stick to the board.</li>
<li>iron the paper. Apply a lot of pressure, all over the board, for ~15min (yes a long time, but it may depend on your iron)</li>
<li>continue with the iron tip, and redraw all the circuit (black tracks will appear through the paper), for ~5min.</li>
<li>Ironing time: ~20min</li>
<li>then place the board on hot water, no soap. Soak it for 30min.</li>
<li>peel-off the paper. Most can easily be removed, only the last layer, where the toner sticks, will mostly remain on the board.</li>
<li>soak it again for 1h</li>
<li>peel-off again the paper. You may need to remove very small portion of paper, between the tracks. Leave the paper on  the tracks, it won&#8217;t bother while etching since tracks remain accurate. This can be time-consuming, but be precise. Also don&#8217;t be paranoid, the toner really stick well to the board and won&#8217;t be removed easily</li>
<li>once done, dry the board. Check if you&#8217;ve missed some paper.</li>
<li>clean the board with window cleaner. While it won&#8217;t remove toner, it&#8217;ll help to remove paper residue and get an accurate board.</li>
<li>you&#8217;re done. You&#8217;ll then need to etch the board. Once done, remove the toner using acetone (nail polish remover works well)</li>
</ul>
</ul>
<p>Here&#8217;s some pictures:</p>
<table summary="" width="50%" border="0" cellspacing="1" cellpadding="5" align="center">
<tbody>
<tr>
<td valign="top"><img class="alignnone" title="pcb" src="http://farm7.static.flickr.com/6071/6092124598_8d6ba791f2_d.jpg" alt="" width="267" height="200" /></td>
<td valign="top"><img class="alignnone" title="pcb" src="http://farm7.static.flickr.com/6082/6091585557_ac6b2d1537_d.jpg" alt="" width="267" height="200" /></td>
</tr>
<tr>
<td valign="top">Once all paper has been peeled-off, here&#8217;s the global result: tracks are still covered with paper, but the whole seems accurate.</td>
<td valign="top">Zooming shows tracks are perfectly accurate, even holes in pads. Text is too fuzzy won&#8217;t be rendered well if left as is. Using window cleaner can help removing extra paper residue.</td>
</tr>
<tr>
<td valign="top"><img class="alignnone" title="pcb" src="http://farm7.static.flickr.com/6088/6092124600_555e51e88c_d.jpg" alt="" width="267" height="200" /></td>
<td valign="top"><img class="alignnone" title="pcb" src="http://farm7.static.flickr.com/6088/6092124604_fbb099d9b9_d.jpg" alt="" width="267" height="200" /></td>
</tr>
<tr>
<td valign="top">Paper on tracks is clearly visible here. Important is the way limit between tracks and copper is clean, accurate.</td>
<td valign="top">After etching, here the result. Everything looks nice. There are two pen traces which I&#8217;ve added. The big trace on top of the board isn&#8217;t consistent at all. Using a PCB pen is definitively not reliable&#8230;</td>
</tr>
<tr>
<td valign="top"><img class="alignnone" title="pcb" src="http://farm7.static.flickr.com/6192/6092124606_d9f6649c66_d.jpg" alt="" width="267" height="200" /></td>
<td valign="top"><img class="alignnone" title="pcb" src="http://farm7.static.flickr.com/6198/6092124608_e4483385f7_d.jpg" alt="" width="267" height="200" /></td>
</tr>
<tr>
<td valign="top">Once cleaned&#8230; Great&#8230;</td>
<td valign="top">Even text is readable <img src='http://sirloon.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://sirloon.net/pcb-using-toner-transfert-method-another-try/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Experimenting PCB board creation using a laser printer</title>
		<link>http://sirloon.net/experimenting-pcb-board-creation-using-a-laser-printer?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=experimenting-pcb-board-creation-using-a-laser-printer</link>
		<comments>http://sirloon.net/experimenting-pcb-board-creation-using-a-laser-printer#comments</comments>
		<pubDate>Tue, 15 Apr 2008 18:44:00 +0000</pubDate>
		<dc:creator>sirloon</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirloon.net/?p=35</guid>
		<description><![CDATA[Tired of using a PCB pen to build my boards&#8230; Too time-consuming, not really repeatable, dirty&#8230; So, I&#8217;ve tested this method and here some results and thoughts.This method consists in printing circuit using a laser printer. The paper is then ironed on the copper side of a board. The toner is transferred: you have a nice [...]]]></description>
			<content:encoded><![CDATA[<div>Tired of using a PCB pen to build my <a href="http://sirloon.net/loonaweb/sirblog/building-the-mainboard-as-a-pcb">boards</a>&#8230; Too time-consuming, not really repeatable, dirty&#8230; So, I&#8217;ve tested this method and here some results and thoughts.This method consists in printing circuit using a laser printer. The paper is then ironed on the copper side of a board. The toner is transferred: you have a nice circuit drawn on your board. Because the toner is composed by small plastic particles, it protects tracks while etching the board. Results: a amazing PCB board, easy, cheap, fast.That&#8217;s theory&#8230;Originally, this method seems to be first used by <a href="http://www.fullnet.com/~tomg/gooteepc.htm">Thomas P. Gootee</a>. While it exists commercial and expensive paper doing this (<a href="http://www.techniks.com/">Press&#8217;n Peel</a> for instance), he observed he could get the same results using some glossy photo paper, used for inkjet printers. The kind of paper is the key factor. And the iron temperature too. And also the ironing time. And the way you peel off the paper. And how you prepare you board. And also how you soak your paper. Lots of parameters, few data&#8230;</p>
<p>I&#8217;m not comfortable using glossy paper for inkjet on a laser printer. It can stick on the fuser and ruins the printer. Some people mention<a href="http://www.users.on.net/~endsodds/pcb.htm">this</a>. Others pretends to nice results using normal, <a href="http://www.diyaudio.com/forums/showthread/t-2764.html">standard paper</a>. Some also have amazing results using <a href="http://www.spambutcher.com/art7/900117/">mailing label backing paper</a>, or <a href="http://www.instructables.com/id/Two-sided-PCB-using-toner-method/">glossy photo paper for laser printer</a>. For now, I have tried standard paper, label paper and glossy photo paper for laser printer(see following results, except for label paper: I didn&#8217;t even managed to print on it&#8230;).</p>
<p>Everyone seems to report it. The board has to be clean. Very clean. Some are saying it&#8217;s important to prepare it using sand paper (or the like) so the toner has something to grip to. I&#8217;m always following those advices: clean the board with soap, use very thin sand paper, clean it again with soap, then clean it again with window cleaner to help drying it. It&#8217;s ready.</p>
<p>About my iron, it&#8217;s an old one. It doesn&#8217;t heat a lot. I tend to iron a lot of time, while I&#8217;m not sure it&#8217;s a good idea. I think it depends on how the toner has been fixed onto the paper.</p>
<p>While I was trying to build a new <a href="http://sirbot.org/">SirBot</a> <a href="http://sirbot.org/sirbot-modules/main_board/">Mainboard</a>, I took several pictures to report what I&#8217;ve done, what failed and what has been quite a success&#8230;</p>
</div>
<p>&nbsp;</p>
<table summary="" width="100%" border="1" cellspacing="1" cellpadding="1" align="center">
<tbody>
<tr>
<td><img class="alignleft" title="pcb" src="http://farm7.static.flickr.com/6065/6093993064_43dd2fc1d7_d.jpg" alt="" width="320" height="240" /></td>
<td valign="top">My first attempt was using standard paper. This was a on very small testing board, and results were amazing. Then I tried on a real PCB (photo). Several times. At least 4 times (maybe 5). And it always failed&#8230;Anyway, whatever the paper type is, the board has to be a little bit larger than the paper. Ironing will be easier and everywhere the same (hopefully).</td>
</tr>
<tr>
<td><img class="alignnone" title="pcb" src="http://farm7.static.flickr.com/6065/6093993146_e8c7507c8c_d.jpg" alt="" width="320" height="240" /></td>
<td valign="top">Again, whatever the paper, the board has to be cleaned and prepared usingsandpaper. I use very thin sand paper, one used to sand body car. I clean it using soap and ultimately using window cleaner (or something with alcohol): it helps to get a dry board.</td>
</tr>
<tr>
<td><img class="alignnone" title="pcb" src="http://farm7.static.flickr.com/6061/6093993214_eacf4518a5_d.jpg" alt="" width="320" height="240" /></td>
<td valign="top">The paper is then put down on the board, toner side on copper side. Pre-heat the board (using another paper, without any dust or the like). While you stick the paper to the board, be sure you&#8217;re right because the toner will instantly grip the board.</td>
</tr>
<tr>
<td><img class="alignnone" title="pcb" src="http://farm7.static.flickr.com/6201/6093993314_202dbdf363_d.jpg" alt="" width="320" height="240" /></td>
<td valign="top">Iron the paper. Use a lot of pressure, everywhere. For this board, I&#8217;ve tested different ironing times: 5min to 12min, all attempts have failed&#8230;Iif you&#8217;re not ironing enough, some tracks won&#8217;t stick to board (I&#8217;ve observed). If you iron too much, tracks will get fuzzy (I&#8217;ve never observed it). I think ironing this board (10cm x 10cm) for at least 10min is ok.</td>
</tr>
<tr>
<td><img class="alignnone" title="pcb" src="http://farm7.static.flickr.com/6084/6093993396_31b0356062_d.jpg" alt="" width="320" height="240" /></td>
<td valign="top">So far so good&#8230; One ironed, put the board on water. Hot, cold ? With ot without soap ? Some say putting the board a cold water help the toner to fix the board. I&#8217;ve experimented it: the toner also seems to diffuse on the paper, make it harder to remove. But remember, that&#8217;s a standard paper, so it may be ok for other type of paper. Soap can also help to remove the paper. I tend to put the board on medium hot water (same temp as for dishes), with a little soap&#8230;</td>
</tr>
<tr>
<td><img class="alignnone" title="pcb" src="http://farm7.static.flickr.com/6193/6093456819_20ceed412e_d.jpg" alt="" width="320" height="240" /></td>
<td valign="top">After 15min, the board shows bubbles on its surface: every piece of paper without toner gets unstuck (remember, standard paper). This clearly shows how well the toner has fixed the board. That&#8217;s promising&#8230; You may not observe those bubbles using glossy papers.</td>
</tr>
<tr>
<td><img class="alignnone" title="pcb" src="http://farm7.static.flickr.com/6062/6093993604_9b02512ef0_d.jpg" alt="" width="320" height="240" /></td>
<td valign="top">You can then start to gently rub the paper. You should be able to easily remove most of the paper. Only the last layer will cause problems (and still cause problems&#8230;).</td>
</tr>
<tr>
<td><img class="alignnone" title="pcb" src="http://farm7.static.flickr.com/6089/6093457031_34f7710e63_d.jpg" alt="" width="320" height="240" /></td>
<td valign="top">You should not doing this, but who could resist&#8230; Just be sure not to damage any tracks.</td>
</tr>
<tr>
<td><img class="alignnone" title="pcb" src="http://farm7.static.flickr.com/6061/6093993776_4900606dec_d.jpg" alt="" width="320" height="240" /></td>
<td valign="top">Finally, after 30-45min, you can get this type of results. Some paper is still stuck onto the board. And won&#8217;t be removed, even after soaking it overnight.Now, 2 options:</p>
<ul>
<li>you used standard paper: the remaining paper makes tracks fuzzy, dirty. You can&#8217;t remove it without damaging them. Like the paper, you&#8217;re stuck&#8230;</li>
<li>you used glossy paper for laser printer: there&#8217;s also remaining paper (less, though), but tracks still look thin. That&#8217;s ok, you can probably etch the board <img src='http://sirloon.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
</td>
</tr>
<tr>
<td><img class="alignnone" title="pcb" src="http://farm7.static.flickr.com/6068/6093457227_10ea87f14d_d.jpg" alt="" width="320" height="240" /></td>
<td valign="top">This picture shows tracks covered with paper, using standard paper. Some tracks are damaged, but the most important thing here is tracks are fuzzy, due irregular paper residues. If etched, you won&#8217;t get a workable result&#8230;Now, may I iron the board too much ? Not enough ? Some tracks did not stick to the board. I tend to say &#8220;not enough&#8221;. This is plausible as my iron doesn&#8217;t heat a lot. Next time I&#8217;ll try ironing it at least 20min&#8230;</td>
</tr>
<tr>
<td><img class="alignnone" title="pcb" src="http://farm7.static.flickr.com/6182/6093993974_261b0ec1c6_d.jpg" alt="" width="320" height="240" /></td>
<td valign="top">Another one&#8230; this time using glossy photo paper for laser. While there&#8217;s still paper on tracks, those are accurate, well limited and quite consistent. Having paper residue is not a problem, it&#8217;s the way it sticks that is important.</td>
</tr>
<tr>
<td><img class="alignnone" title="pcb" src="http://farm7.static.flickr.com/6199/6093457387_0398a4ef0c_d.jpg" alt="" width="320" height="240" /></td>
<td valign="top">Some tracks were damaged (still). I needed to double-check the board andcorrect those errors with a PCB pen. Note, on this pictures, one pen trace doesn&#8217;t mean one error: I redraw some of the tracks too make them larger. There were maybe 3 errors for the whole board. I think µI didn&#8217;t iron enough.Once ready, put the board into etchant. I continually move the board into the etchant (for 18min for this one), to be sure the board is etched everywhere, equally (hopefully).</td>
</tr>
<tr>
<td><img src="http://farm7.static.flickr.com/6080/6093457453_8a47330fd3_d.jpg" alt="" width="320" height="240" /></td>
<td valign="top">Tadaaaa ! Nothing to say except tracks are nice&#8230;</td>
</tr>
<tr>
<td><img class="alignnone" title="pcb" src="http://farm7.static.flickr.com/6194/6093994266_654082e760_d.jpg" alt="" width="320" height="240" /></td>
<td valign="top">Clean the remaining toner. People say it cannot be removed without acetone. I use nail cleaner without acetone, and it works perfectly.</td>
</tr>
<tr>
<td><img class="alignnone" title="pcb" src="http://farm7.static.flickr.com/6206/6093457615_3ca365ac7f_d.jpg" alt="" width="320" height="240" /></td>
<td valign="top">Tadaaa (again) ! Ready for soldering !</td>
</tr>
<tr>
<td><img class="alignnone" title="pcb" src="http://farm7.static.flickr.com/6196/6093994442_9b6c543fc8_d.jpg" alt="" width="320" height="240" /></td>
<td valign="top">A nice looking result. I can even read &#8220;SirBot Project   Mainboard&#8221; and the very small date &#8220;2008-04-08&#8243;.</td>
</tr>
</tbody>
</table>
<div>So, what to say ? Using standard paper won&#8217;t produce good results ? For sure, at least for me. A glossy photo paper for laser printer is the minimum required. This is also a very first result. I needed a lot of attempts and I&#8217;m not even sure this is all repeatable. Probably the tricky ironing step needs for experiments. For now, I need to solder components on my new &#8220;half-professional looking&#8221; PCB&#8230;</div>
]]></content:encoded>
			<wfw:commentRss>http://sirloon.net/experimenting-pcb-board-creation-using-a-laser-printer/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to create boards with vias and straps with Eagle ?</title>
		<link>http://sirloon.net/how-to-create-boards-with-vias-and-straps-with-eagle?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-create-boards-with-vias-and-straps-with-eagle</link>
		<comments>http://sirloon.net/how-to-create-boards-with-vias-and-straps-with-eagle#comments</comments>
		<pubDate>Sat, 05 Apr 2008 19:58:37 +0000</pubDate>
		<dc:creator>sirloon</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sirloon.net/?p=41</guid>
		<description><![CDATA[Eagle is a great tool to design PCB board. I&#8217;ve used it to design my new mainboard. In its non-profit version, you can build board with two layers (bottom, top). But I only have single sided copper boards. So I used to deactivate, declare as forbidden the top layer. Often, Eagle can&#8217;t create 100% routes, so I [...]]]></description>
			<content:encoded><![CDATA[<div>
<div>
<div><a href="http://www.cadsoftusa.com/">Eagle</a> is a great tool to design PCB board. I&#8217;ve used it to <a href="http://sirloon.net/loonaweb/sirblog/designing-the-mainboard-using-eagle">design my new mainboard</a>. In its non-profit version, you can build board with two layers (bottom, top). But I only have single sided copper boards. So I used to deactivate, declare as forbidden the top layer. Often, Eagle can&#8217;t create 100% routes, so I manually creates vias and straps (straps are wires, not tracks, maybe not the correct english word). Quite annoying, time consuming&#8230;</div>
<div>Following is a simple tutorial to let Eagle build its own vias and straps to reduce manual actions. This is a two steps approach</div>
<ol>
<ol>
<li>Since I want to have the minimum straps, I declare the top layer as forbidden. This forces Eagle to create as tracks as possible on the bottom layer.</li>
<li>Then (and if not 100% routing done), I activate the top layer, but declare it as costly. Eagle will finish its work, still creating bottom tracks, and adding small top tracks through vias, which I can then convert (consider as) to straps.</li>
</ol>
</ol>
<table summary="" width="607" border="1" cellspacing="5" cellpadding="1" align="center">
<tbody>
<tr>
<td colspan="2">
<div><img class="alignleft" src="http://farm7.static.flickr.com/6061/6093723339_7b4c56e22a_z_d.jpg" alt="" width="486" height="167" /></div>
</td>
</tr>
<tr>
<td colspan="2">Just a reminder here. Since I use a PCB pen, which can&#8217;t produce accurate results (because of the pen and I), I configure Eagle to create quite large tracks. 32mil works for me. This constraint will help while actually drawing tracks.</td>
</tr>
<tr>
<td colspan="2"><img class="alignleft" src="http://farm7.static.flickr.com/6201/6094261366_9b439d898b_z_d.jpg" alt="" width="486" height="134" /></td>
</tr>
<tr>
<td colspan="2">Same things while drilling holes. <a href="http://sirloon.net/loonaweb/sirblog/building-the-mainboard-as-a-pcb">Drilling is quite critical</a>, it can easily destroy your board.</td>
</tr>
<tr>
<td><img src="http://farm7.static.flickr.com/6082/6093723419_feaf2653dd_m_d.jpg" alt="" width="220" height="153" /></td>
<td valign="top">So, first, top layer is deactivated. This is defined in the Design rules menu entry.</td>
</tr>
<tr>
<td><img src="http://farm7.static.flickr.com/6187/6094261456_57119a7572_d.jpg" alt="" width="299" height="268" /></td>
<td valign="top">One eagle has done its job, 79.8% routing is done. Not one top tracks is created. Still several routes need to be created. Here&#8217;s the second step&#8230;</td>
</tr>
<tr>
<td><img src="http://farm7.static.flickr.com/6201/6093723529_89e5f05997_m_d.jpg" alt="" width="213" height="153" /></td>
<td valign="top">This time, the top layer is activated&#8230;</td>
</tr>
<tr>
<td><img src="http://farm7.static.flickr.com/6195/6094261538_4a33c232b8_d.jpg" alt="" width="276" height="138" /></td>
<td valign="top">&#8230; but it has a high cost compared to the bottom. Without this setting, Eagle will long top tracks, which can&#8217;t considered as short straps. [Edit: cost value on top layer must also be set to 99 -- or the like -- for all Optimize tabs, otherwise Eagle will create long route during optimisation]</td>
</tr>
<tr>
<td><img src="http://farm7.static.flickr.com/6072/6093723651_aab733ceb6_d.jpg" alt="" width="299" height="266" /></td>
<td valign="top">Now 100% routing is done. Several short top tracks were created (red). Most can be considered as straps.</td>
</tr>
<tr>
<td> <img src="http://farm7.static.flickr.com/6181/6093723697_c661485ac0_d.jpg" alt="" width="304" height="268" /></td>
<td valign="top">And some definitively can&#8217;t&#8230; This is where I still need manual work. For instance, few top tracks are going under components here. Since wires (straps) are quite thick, there&#8217;re problems here. This occurs when Eagle directly connect tracks with pads. I didn&#8217;t find yet where to forbid this.</td>
</tr>
<tr>
<td><img src="http://farm7.static.flickr.com/6087/6093723745_5c9aaf5bd4_d.jpg" alt="" width="295" height="256" /></td>
<td valign="top">I need to move the bottom tracks outside of components, and recreate the straps. There&#8217;s still manual intervention, but let Eagle optimizing routing produces better results than humans can do (as least me&#8230;).</td>
</tr>
</tbody>
</table>
</div>
<p><a name="more"></a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://sirloon.net/how-to-create-boards-with-vias-and-straps-with-eagle/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- www.000webhost.com Analytics Code -->
<script type="text/javascript" src="http://stats.hosting24.com/count.php"></script>
<noscript><a href="http://www.hosting24.com/"><img src="http://stats.hosting24.com/count.php" alt="web hosting" /></a></noscript>
<!-- End Of Analytics Code -->

