<?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>Madox.NET &#187; Microcontrollers</title>
	<atom:link href="http://www.madox.net/blog/tag/microcontrollers/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.madox.net/blog</link>
	<description>Perversions of an Engineer</description>
	<lastBuildDate>Mon, 12 Jul 2010 12:16:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Schnellboot $100 (S-100) – Part 2.2 Bathtub Test</title>
		<link>http://www.madox.net/blog/2009/11/04/schnellboot-100-s-100-%e2%80%93-part-2-2-bathtub-test/</link>
		<comments>http://www.madox.net/blog/2009/11/04/schnellboot-100-s-100-%e2%80%93-part-2-2-bathtub-test/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 13:00:06 +0000</pubDate>
		<dc:creator>Madox</dc:creator>
				<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[Perverse Applications of Science...]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Toys]]></category>

		<guid isPermaLink="false">http://www.madox.net/blog/?p=568</guid>
		<description><![CDATA[Yup I&#8217;ve jumped to a bathtub test and bypassed the lovely soldering and coding&#8230; will revisit later but here&#8217;s the video :-]]></description>
			<content:encoded><![CDATA[<p>Yup I&#8217;ve jumped to a bathtub test and bypassed the lovely soldering and coding&#8230; will revisit later but here&#8217;s the video :-</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/imbhNlIZOtQ" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/imbhNlIZOtQ"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.madox.net/blog/2009/11/04/schnellboot-100-s-100-%e2%80%93-part-2-2-bathtub-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mChumby &#8211; Mazda/Madox Chumby</title>
		<link>http://www.madox.net/blog/2009/03/23/mchumby-mazdamadox-chumby/</link>
		<comments>http://www.madox.net/blog/2009/03/23/mchumby-mazdamadox-chumby/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 11:38:11 +0000</pubDate>
		<dc:creator>Madox</dc:creator>
				<category><![CDATA[Perverse Applications of Science...]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[CAN Bus]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Mazda]]></category>
		<category><![CDATA[Microcontrollers]]></category>

		<guid isPermaLink="false">http://www.madox.net/blog/?p=271</guid>
		<description><![CDATA[It&#8217;s taken me a while to officially start this project.  When I first bought my Mazda 3 I had envisaged making my own speedometer based off the Mazda CAN Bus but somehow never quite got around to it. I even ended up buying 2 Chumbies for the purpose of hacking one and developing the same [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s taken me a while to officially start this project.  When I first bought my Mazda 3 I had envisaged making my own speedometer based off the Mazda CAN Bus but somehow never quite got around to it.</p>
<p>I even ended up buying 2 <a href="http://www.chumby.com/" target="_blank">Chumbies</a> for the purpose of hacking one and developing the same speedo (The chumby is such a great alarm clock I couldn&#8217;t live without one&#8230;).</p>
<p>There has been quite a bit of interest in the comments for source code/information etc etc.  So now I&#8217;m officially starting the mChumby project!  This first post is basically a brainstorming session write-up or a mini requirements specification on myself.  Feel free to comment on any ideas/improvements you think I can make.</p>
<p>(This post seems too wordy without a photo but I&#8217;m just too lazy)</p>
<h1><span id="more-271"></span>The concept</h1>
<p>A Chumby will connect via CAN Bus to the Mazda to offer an alternative &#8216;GUI&#8217; to the car.  Information such as fuel consumption that has been removed from the Australian Mazda&#8217;s will be displayed.</p>
<p>Since a chumby doesn&#8217;t have native CAN Bus connections, a custom daughter board with dual CAN controllers and transceivers will be built to replace the native Chumby power board.</p>
<h1>The hardware</h1>
<p>In addition to the Chumby mainboard, there will be a custom daughter board to be made to handle the car interface.  The Chumby has multiple SPI interfaces brought out through the &#8216;Chumbilical&#8217;, as well as on-board voltage regulators that will take up to 15V.  So a quick brainstorm on the daughter-board components leads me to :-</p>
<p>CAN Controller : MCP2515 &#8211; Has SPI interface, great for Chumby.<br />
CAN Transceiver : TJA1041 or whatever it is I have in my box of electronics &#8211; Because I have them already<br />
USB Connectors + Associated electronics&#8230;<br />
Automotive Voltage Suppressor : Vishay had a few good ones</p>
<p>Luxuries like accelerometers are too much of a pain to hand solder <img src='http://www.madox.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h1>The software</h1>
<p>I&#8217;m going to try use completely open source software in the development.  This will be discounting the Flash Lite 3 player that ships with the Chumby.  I debated much about developing a QT app or a flash widget, what I decided was undecided and I switched back and forth.  In the end, I&#8217;m sticking with Flash (for now).</p>
<p>There are two main pieces of software required, the GUI and the CAN Bus drivers.</p>
<p>The GUI as decided before will be Flash targetting the Flash Lite 3 on the Chumby.  For this I decided to use <a href="http://www.haxe.org/" target="_blank">HaXe</a>, which will happily compile to Flash 8 bytecode.  It is not as popular in open source flash developement as say ActionScript 2 with <a href="http://tech.motion-twin.com/mtasc.html" target="_blank">mtasc</a> but I figured I&#8217;ll use the newer language.  Unfortunately there is a severe lack of HaXe examples on the net and when you find them, you&#8217;ll find that its based on Flash 9 API&#8230; GAH.  However a little bit of experimentation and googling around made me see how easy it is to actually use HaXe.  More on this later.</p>
<p>The driver&#8217;s for the MCP2515&#8242;s I haven&#8217;t really looked at yet but I hope that it&#8217;ll be a simple matter of adapting MCP2515 code from elsewhere and merging it with hopefully some SPI driver&#8217;s in the Chumby kernel source (did I mention how great the Chumby is? Source code is made available!).</p>
<p>There is a bit of other software that&#8217;ll be used to create this project.  I&#8217;m planning on learning how to use <a href="http://http://iut-tice.ujf-grenoble.fr/kicad/" target="_blank">KiCAD</a> to generate the PCB where as I&#8217;ve only previously used<a href="http://cadsoftusa.com/" target="_blank"> Eagle</a> on my hobby projects.  While I&#8217;m sure Eagle will get the job done, I really want to give a try in learning how to use the open source KiCAD.  Let me know if you have any hints.</p>
<p><a href="http://www.geany.org/" target="_blank">Geany</a> will be my lightweight editor/IDE of choice, its so simple to use and amazing.  (I like <a href="http://notepad-plus.sourceforge.net/" target="_blank">Notepad++</a> in Windows but I haven&#8217;t booted Windows at home for a while&#8230;)</p>
<h1>The HMI</h1>
<p>I like easy to use and simple user interfaces.  This is especially true when I&#8217;m driving, I definitely do not want this thing distracting me.  My initial idea was to organise it such that all the &#8216;buttons&#8217; are on the corners of the screen but on second thought even trying to touch that while driving may be a bit difficult.</p>
<p>Current idea is to use some simple swipe gestures to control the screen.  The idea is to have minimal interaction with my mChumby as possible while driving.  I intend to have 2 screens, one to display a large speedo and the main displays and a second screen to display a smaller speed with alot of additional potentially useless information (I haven&#8217;t figured out what yet).  I will also need brightness control to avoid getting a super bright screen at night.  So simply, swipe left-right will allow me to change screens and wipe up-down will allow me to adjust backlight brightness.</p>
<h2>Below is just an embarassing sample of the HaXe code I was experimenting with&#8230;</h2>
<h3></h3>
<h3>Mchumby.hx</h3>
<blockquote>
<pre>//MChumby GUI - HaXe code targetting Flash 8

class Mchumby{
  //Gesture Variables
  static var fGestureStartX:Float;
  static var fGestureStartY:Float;
  static var fGestureEndX:Float;
  static var fGestureEndY:Float;
  static var fGestureDeltaX:Float;
  static var fGestureDeltaY:Float;

  //MovieClips (Screens)
  static var mcMain : flash.MovieClip;

  static var mcD100 : flash.MovieClip;
  static var mcD101 : flash.MovieClip;
  //MovieClips (Buttons/Other Elements)

  //Text Fields
  static var tfText : flash.TextField;

  static var tfSpeedo : flash.TextField;
  static var tfAccelX : flash.TextField;
  static var tfAccelY : flash.TextField;
  static var tfAccelZ : flash.TextField;  

  //Text Format/Styles
  static var ts = new flash.TextFormat();
  static var tsCenter = new flash.TextFormat();

  public function new(){
    //Constructor - Most items are moved to main();
    fGestureStartX=0;
    fGestureStartY=0;
  }

  static function main(){
    //Setup main MovieClip
    mcMain = flash.Lib.current;

    //Set up some font styles
    ts.font = "Arial";
    ts.size = 24;
    ts.color = 0x00FFFF;

    tsCenter.font = "Arial";
    tsCenter.size = 24;
    tsCenter.color = 0xFF0000;
    tsCenter.align = 'center';

    //Set up screens the new way
    //var m100 = new M100(mcMain);
    //var m101 = new M101(mcMain);

    //Set up screens
    mcD100 = mcMain.createEmptyMovieClip("D100", mcMain.getNextHighestDepth());
    mcD101 = mcMain.createEmptyMovieClip("D101", mcMain.getNextHighestDepth());

    //Set up text fields
    tfText = mcMain.createTextField("tfText", mcMain.getNextHighestDepth(), 20, 20, 280, 100);
    tfText.setNewTextFormat(tsCenter);

    //Set up text fields (D100)
    tfSpeedo = mcD100.createTextField("speedotext", mcD100.getNextHighestDepth(), 20,50,280,100);
    tfSpeedo.setNewTextFormat(ts);
    tfAccelX = mcD100.createTextField("accelx", mcD100.getNextHighestDepth(), 20,80,280,100);
    tfAccelX.setNewTextFormat(ts);
    tfAccelY = mcD100.createTextField("accely", mcD100.getNextHighestDepth(), 20,110,280,100);
    tfAccelY.setNewTextFormat(ts);
    tfAccelZ = mcD100.createTextField("accelz", mcD100.getNextHighestDepth(), 20,140,280,100);
    tfAccelZ.setNewTextFormat(ts);

    //Set up text fields (D101)

    //Initialise text
    tfText.text = 'Hello World!';

    tfSpeedo.text = 'Accelerometer Values...';

    //Set up event handlers
    mcMain.onMouseDown = startGesture;
    mcMain.onMouseUp = endGesture;
    mcMain.onEnterFrame = update;
  }

  static function update(){
    tfAccelX.text = Std.string(ChumbyNative.getAccelerometer(5));
    tfAccelY.text = Std.string(ChumbyNative.getAccelerometer(6));
    tfAccelZ.text = Std.string(ChumbyNative.getAccelerometer(7));
  }
  static function startGesture () {
    fGestureStartX = flash.Lib.current._xmouse;
    fGestureStartY = flash.Lib.current._ymouse;
  }

  static function endGesture () {
    fGestureEndX = flash.Lib.current._xmouse;
    fGestureEndY = flash.Lib.current._ymouse;
    fGestureDeltaX = Math.round(fGestureEndX - fGestureStartX);
    fGestureDeltaY = Math.round(fGestureEndY - fGestureStartY);

		//Rather than else-if, the following if's are deliberately done to allow compound gestures
		//e.g. Up &amp; Left, Down &amp; Right etc.
    if (!Math.isNaN(fGestureDeltaY) &amp;&amp; (fGestureDeltaY &gt; 100)) {
      gestureDown();
    }

    if (!Math.isNaN(fGestureDeltaY) &amp;&amp; (fGestureDeltaY &lt; -100)) {
      gestureUp();
    } 

    if (!Math.isNaN(fGestureDeltaX) &amp;&amp; (fGestureDeltaX &lt; -200)) {
      gestureLeft();
    }

    if (!Math.isNaN(fGestureDeltaX) &amp;&amp; (fGestureDeltaX &gt; 200)) {
      gestureRight();
    }
  }
  static function gestureRight () {
    tfText.text = "To the right!";
    mcD100._alpha = 0;
    //tfText.setTextFormat(ts);
  }
  static function gestureLeft () {
    tfText.text = "To the left!";
    mcD100._alpha = 100;
  }
  static function gestureUp () {
    tfText.text = "Bright!";
    ChumbyNative.setLCDMute(0);
  }
  static function gestureDown () {
    tfText.text = "Dim!";
    ChumbyNative.setLCDMute(1);
  }
}</pre>
</blockquote>
<h3>ChumbyNative.hx</h3>
<blockquote>
<pre>class ChumbyNative{
  public static function getLCDMute():Int{
    return flash.Lib._global.ASnative(5,19);
  }
  public static function setLCDMute(x:Int):Void{
    flash.Lib._global.ASnative(5,20)(x);
  }
  public static function getAccelerometer(x:Int):Float{
    return flash.Lib._global.ASnative(5,60)(x);
  }
}</pre>
</blockquote>
<h3>Mchumby.hxml</h3>
<blockquote><p>-swf mchumby.swf<br />
-main Mchumby<br />
-swf-header 320:240:12:000033<br />
-swf-version 8</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.madox.net/blog/2009/03/23/mchumby-mazdamadox-chumby/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Compiling a toolchain for ARM7 under Ubuntu</title>
		<link>http://www.madox.net/blog/2008/11/26/compiling-a-toolchain-for-arm7-under-ubuntu/</link>
		<comments>http://www.madox.net/blog/2008/11/26/compiling-a-toolchain-for-arm7-under-ubuntu/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 22:55:35 +0000</pubDate>
		<dc:creator>Madox</dc:creator>
				<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Software Tips & Tricks]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[Crosscompiling]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.madox.net/blog/?p=54</guid>
		<description><![CDATA[Well this chronicles my first attempt at compiling a toolchain for programming ARM&#8217;s in ELF code. Why do I need a toolchain for programming ARMs? I found a LPC2378-STK development board in my room I want to give ARM programming a try (PS WinAVR is great for programming AVRs) I found I have some spare [...]]]></description>
			<content:encoded><![CDATA[<p>Well this chronicles my first attempt at compiling a toolchain for programming ARM&#8217;s in ELF code.</p>
<p>Why do I need a toolchain for programming ARMs?</p>
<ol>
<li>I found a <a href="http://www.google.com.au/url?sa=t&amp;source=web&amp;ct=res&amp;cd=1&amp;url=http%3A%2F%2Fwww.olimex.com%2Fdev%2Flpc-2378stk.html&amp;ei=2XYsSdLNB5S48ATzw_26BA&amp;usg=AFQjCNEMrqCur9EzTwEAWo7Xr2y93wepgw&amp;sig2=484jqe6-NCOgdYedM5Yd7Q" target="_blank">LPC2378-STK development board</a> in my room</li>
<li>I want to give ARM programming a try (PS WinAVR is great for programming AVRs)</li>
<li>I found I have some spare ARM7 LPC2378&#8242;s lying around (WTF?) and thought I&#8217;ll actually complete my Chumby Speedometer on my car project!</li>
</ol>
<p><span id="more-54"></span>The compile process should be pretty straight forward, but I made a few stuffup&#8217;s along the way.</p>
<ul>
<li>I had originally wanted to keep it neat and install to a new directory, then the PATH annoyance thing hit me.  Setting the path under my user shell didn&#8217;t carry over when using sudo which is required to make install.  Solved using <em>sudo -s</em>, but then in the end i just redid it all and installed to <em>/usr/local/</em>.</li>
<li>Realised (should have known) that you need &#8216;GMP&#8217; and &#8216;MPFR&#8217; to compile GCC.  Available as packages <em>libgmp3-dev</em> and<em> libmpfr-dev</em> in Ubuntu.</li>
<li>Did my usual of forgetting to set up the prefix install location when configuring&#8230;minor boo boo</li>
</ul>
<h2>Setting it all up</h2>
<p>Install any packages you need&#8230; <em>build-essential</em> is probably essential&#8230; GMP and MPFR could be got by using</p>
<blockquote><p>sudo apt-get install libgmp3-dev libmpfr-dev</p></blockquote>
<p>Set-up some directories&#8230;I opted to use create an &#8216;arm-elf&#8217; directory in my home to hold both the source and build directories&#8230;</p>
<blockquote><p>cd ~<br />
mkdir arm-elf arm-elf/src<br />
cd ~/arm-elf/src</p></blockquote>
<h3>Get the latest sources&#8230;</h3>
<p>Get the latest sources for <a href="http://www.gnu.org/software/binutils/" target="_blank">binutils</a>, <a href="http://gcc.gnu.org/" target="_blank">gcc</a>, <a href="http://sourceware.org/newlib/" target="_blank">newlib</a>, <a href="http://sources.redhat.com/insight/" target="_blank">insight</a> (click the links if you need).  The versions I used should be obvious from the filenames below.  Just be wary that the insight front page is not kept up to date but you&#8217;ll find the latest if you follow any of the release links anyway.</p>
<blockquote><p>wget http://ftp.gnu.org/gnu/binutils/binutils-2.19.tar.bz2<br />
wget http://gcc.releasenotes.org/releases/gcc-4.3.2/gcc-4.3.2.tar.bz2<br />
wget ftp://sources.redhat.com/pub/newlib/newlib-1.16.0.tar.gz<br />
wget ftp://sourceware.org/pub/insight/releases/insight-6.8.tar.bz2</p></blockquote>
<h3>Unpack the sources&#8230;</h3>
<blockquote><p>tar -xvjf binutils-2.19.tar.bz2<br />
tar -xvjf gcc-4.3.2.tar.bz2<br />
tar -xvzf newlib-1.16.0.tar.gz<br />
tar -xvjf insight-6.8.tar.bz2</p></blockquote>
<h3>Tweak the gcc source config&#8230;</h3>
<p>Make a minor config tweak to the gcc source.  Edit gcc-4.3.2/gcc/config/arm/t-arm-elf and append <em>mno-thumb-interwork/mthumb-interwork</em> after MULTILIB_OPTIONS and <em>normal interwork</em> after MULTILIB_DIRNAMES.  I used nano, see the screenshot below if I haven&#8217;t been too clear <img src='http://www.madox.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.madox.net/blog/wp-content/uploads/2008/11/screenshot-madoxmadox-laptop-armelf-src-gcc-432-gcc-config-arm.png"><img class="aligncenter size-full wp-image-55" title="src-gcc-432-gcc-config-arm" src="http://www.madox.net/blog/wp-content/uploads/2008/11/screenshot-madoxmadox-laptop-armelf-src-gcc-432-gcc-config-arm.png" alt="" width="500" height="331" /></a></p>
<blockquote><p>nano ~/arm-elf/src/gcc-4.3.2/gcc/config/arm/t-arm-elf</p></blockquote>
<h3>Start building with fingers crossed&#8230;</h3>
<p>Now we can start building the toolchain.  Note my prefix is <em>/usr/local</em>.  First off binutils!</p>
<blockquote><p>cd ~/arm-elf/<br />
mkdir build build/binutils-2.19 build/insight-6.8 build/gcc-4.3.2 build/newlib-1.16.0</p>
<p>cd ~/arm-elf/build/binutils-2.19<br />
~/arm-elf/src/binutils-2.19/configure &#8211;target=arm-elf &#8211;prefix=/usr/local &#8211;enable-interwork &#8211;enable-multilib &#8211;with-float=soft &#8211;disable-werror<br />
sudo make all install</p></blockquote>
<p>Next just the gcc part of gcc&#8230;note we configure the newlib src headers here&#8230;</p>
<blockquote><p>cd ~/arm-elf/build/gcc-4.3.2<br />
~/arm-elf/src/gcc-4.3.2/configure &#8211;target=arm-elf &#8211;prefix=/usr/local &#8211;enable-interwork &#8211;enable-multilib &#8211;with-float=soft &#8211;disable-werror &#8211;enable-languages=&#8221;c,c++&#8221; &#8211;with-newlib  &#8211;with-headers=~/arm-elf/src/newlib-1.16.0/newlib/libc/include<br />
sudo make all-gcc install-gcc</p></blockquote>
<p>Now newlib&#8230;</p>
<blockquote><p>cd ~/arm-elf/build/newlib-1.16.0<br />
~/arm-elf/src/newlib-1.16.0/configure &#8211;target=arm-elf &#8211;prefix=/usr/local &#8211;enable-interwork &#8211;enable-multilib &#8211;with-float=soft &#8211;disable-werror<br />
sudo make all install</p></blockquote>
<p>Coming back for the rest off gcc (needed newlib)</p>
<blockquote><p>cd ~/arm-elf/build/gcc-4.3.2<br />
sudo make all install</p></blockquote>
<p>&#8230;and finally insight gdb</p>
<blockquote><p>cd ~/arm-elf/build/insight-6.8<br />
~/arm-elf/src/insight-6.8/configure &#8211;target=arm-elf &#8211;prefix=/usr/local &#8211;enable-interwork &#8211;enable-multilib &#8211;with-float=soft &#8211;disable-werror<br />
sudo make all install</p></blockquote>
<p>Voila done!  I should now have all my arm-elf tools!  Just a check&#8230;</p>
<blockquote>
<pre>madox@madox-laptop:/usr/local/bin$ ls arm*
arm-elf-addr2line  arm-elf-gcc        arm-elf-insight  arm-elf-run
arm-elf-ar         arm-elf-gcc-4.3.2  arm-elf-ld       arm-elf-size
arm-elf-as         arm-elf-gccbug     arm-elf-nm       arm-elf-strings
arm-elf-c++        arm-elf-gcov       arm-elf-objcopy  arm-elf-strip
arm-elf-c++filt    arm-elf-gdb        arm-elf-objdump
arm-elf-cpp        arm-elf-gdbtui     arm-elf-ranlib
arm-elf-g++        arm-elf-gprof      arm-elf-readelf</pre>
</blockquote>
<p>Yup all there and runs <img src='http://www.madox.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   Now the search for the LPC header files&#8230; argh</p>
<p>PS : If you copy and paste my commands, be wary of line breaks&#8230; I didn&#8217;t put \&#8217;s anywhere&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.madox.net/blog/2008/11/26/compiling-a-toolchain-for-arm7-under-ubuntu/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
