<?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>Village Telco &#187; Prototype</title>
	<atom:link href="http://villagetelco.org/tag/prototype/feed/" rel="self" type="application/rss+xml" />
	<link>http://villagetelco.org</link>
	<description>an easy-to-use, scalable, standards-based, wireless, local, do-it-yourself, telephone company toolkit</description>
	<lastBuildDate>Sun, 20 May 2012 19:20:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Voice Over B.A.T.M.A.N.</title>
		<link>http://villagetelco.org/2009/06/voice-over-b-a-t-m-a-n/</link>
		<comments>http://villagetelco.org/2009/06/voice-over-b-a-t-m-a-n/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 02:13:59 +0000</pubDate>
		<dc:creator>drowe</dc:creator>
				<category><![CDATA[Mesh Potato]]></category>
		<category><![CDATA[Village Telco]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[VoIP]]></category>
		<category><![CDATA[WiFi]]></category>

		<guid isPermaLink="false">http://villagetelco.org/?p=213</guid>
		<description><![CDATA[Bringing up WifiOn Friday I set about testing Wifi on the two Mesh Potato prototypes. The N-type antenna connectors attach to the MP PCB via a pigtail with a tiny&#8230;]]></description>
			<content:encoded><![CDATA[<p><strong>Bringing up Wifi</strong></p><p>On Friday I set about testing Wifi on the two Mesh Potato prototypes.  The N-type antenna connectors attach to the MP PCB via a pigtail with a tiny Hi-rose style connector.  This looks a bit fragile so I decided to mount the two MPs in some weatherproof boxes so I had a firm mounting for the antenna pig tail.  I chose one metal and one plastic, to see if the case material makes any difference to the Wifi performance.  They wont be completely weatherproof (I&#8217;ll just run the phone power, and Ethernet cables through holes), but enough to take outside for some tests and withstand some handling.</p><p>I mounted both the PCB and the antenna connector in the lid, so the whole assembly can be removed without putting any strain on that tiny PCB antenna connector.  Only problem is I can&#8217;t see the LEDs &#8211; will need to make a little window on the bottom of the box.</p><div id="attachment_214" class="wp-caption aligncenter" style="width: 460px"><img src="http://villagetelco.org/wp-content/uploads/2009/06/mp_box_lid.jpg" alt="Mesh Potatoes mounted on box lids" title="mp_box_lid" width="450" height="338" class="size-full wp-image-214" /><p class="wp-caption-text">Mesh Potatoes mounted on box lids</p></div><p>Having secured the antenna connector I brought Wifi up.  I thought I would take the small, sensible step of trying to associate with my home Wifi network first.  It was all looking good until my MP seemed to slow down then stop responding entirely.  Then my laptop (also connected via Wifi) started to slow down and lost Internet connectivity.  Oops, routing loop between Ethernet and Wifi on the Mesh Potato!  Didn&#8217;t know you could bring down a whole network that way.</p><p>As Wifi was coming up automatically on boot it was hard to stop, so I ended up re-flashing the router and going straight to <a href="http://www.open-mesh.org/" onclick="urchinTracker('/outgoing/www.open-mesh.org/?referer=');">Batman</a>.  This came up straight away and I had two MPs and a Nanostation happily meshing with each other.</p><p>The blinking of the two Wifi lights as batman sends out messages every second is mesmerising <img src='http://villagetelco.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p><p><strong>Voice Over B.A.T.M.A.N.</strong></p><p>After a bit of messing around with Asterisk conf files I made a MP-MP phone call over Batman and the Mesh Network.  The audio in one direction was fine but a little distorted in the other direction.  After a break of a few days I took a look at this bug.  The problem ended up being the Asterisk channel driver, it was accidentally sending both RTP audio and ring tone to the FXS driver during a call, i.e. ring tone wasn&#8217;t being switched off when the call was answered.  This was overloading the FXS driver FIFO and causing distorted audio.  Curiously, it worked OK until I tried a call over Wifi.  </p><p>Anyway I have fixed this bug now and tested a few different codec configurations over the mesh including ulaw, gsm with 20ms frames, and GSM with 80ms frames.  We can also make calls between a MP and a SIP phone connected to the Ethernet port of the MP.  The load av is around 0.5 during a call (using the GSM codec). </p><p>Here is a block diagram of the test setup.  The Laptop is used for monitoring.  It&#8217;s cool that I can ssh to the remote MP over the mesh network and mess with Asterisk conf files, run top etc.</p><div id="attachment_216" class="wp-caption aligncenter" style="width: 436px"><img src="http://villagetelco.org/wp-content/uploads/2009/06/mp_first_mesh_calls.png" alt="MP tests for first calls over the mesh" title="mp_first_mesh_calls" width="426" height="422" class="size-full wp-image-216" /><p class="wp-caption-text">MP tests for first calls over the mesh</p></div><p>The audio sounds great.  We can&#8217;t hear any echo, thanks to the <a href="http://rowetel.com/ucasterisk/oslec.html" onclick="urchinTracker('/outgoing/rowetel.com/ucasterisk/oslec.html?referer=');">Oslec</a> echo canceller which seems to run fine on this platform.  To stress the system a bit I tried ping flooding from my laptop.  This affected the audio quality but the call was still very intelligible.  Like driving under a bridge with a cell phone.  This is interesting &#8211; perhaps a mesh potato network will have a &#8220;soft&#8221; degradation of quality as network traffic increases.  Call quality will drop a little, but the network may not fall over.</p><p>The reliability of the Mesh Potato hardware has been remarkably good so far.  I left the prototypes running for about 5 days, and when I came back the mesh was still running, and picking up a phone gave me dial tone.  Can&#8217;t complain about that on hardware where the solder has barely cooled!</p>]]></content:encoded>
			<wfw:commentRss>http://villagetelco.org/2009/06/voice-over-b-a-t-m-a-n/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>First Mesh Potato Phone Call</title>
		<link>http://villagetelco.org/2009/06/first-mesh-potato-phone-call/</link>
		<comments>http://villagetelco.org/2009/06/first-mesh-potato-phone-call/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 06:50:26 +0000</pubDate>
		<dc:creator>drowe</dc:creator>
				<category><![CDATA[Mesh Potato]]></category>
		<category><![CDATA[ATA]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[VoIP]]></category>
		<category><![CDATA[WiFi]]></category>

		<guid isPermaLink="false">http://villagetelco.org/?p=201</guid>
		<description><![CDATA[Since the boot loader bugs have been tamed we have been making steady progress. Today I brought the FXS module drivers up, closely followed by Asterisk and the first Mesh&#8230;]]></description>
			<content:encoded><![CDATA[<p>Since the boot loader bugs have been tamed we have been making steady progress.  Today I brought the FXS module drivers up, closely followed by Asterisk and the first Mesh Potato phone call at 3:43pm today.</p><p><object width="425" height="344" data="http://www.youtube.com/v/bwn8RgKKbxk&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/bwn8RgKKbxk&amp;hl=en&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /></object></p><p>Almost exactly 1 year since the Mesh Potato project was kicked off at the first Village Telco workshop in June 2008.</p><p>Alen from Atcom has been closely following our steps, which has encouraged Elektra and I to write a <a href="http://wiki.villagetelco.org/index.php/Mesh_Potato_Firmware_How_To" onclick="urchinTracker('/outgoing/wiki.villagetelco.org/index.php/Mesh_Potato_Firmware_How_To?referer=');">Mesh Potato How To</a> on the <a href="http://wiki.villagetelco.org" onclick="urchinTracker('/outgoing/wiki.villagetelco.org?referer=');">Village Telco Wiki</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://villagetelco.org/2009/06/first-mesh-potato-phone-call/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://rowetel.com/images/mp/mp_first_call.avi" length="3612184" type="video/x-msvideo" />
		</item>
		<item>
		<title>Escape from Boot Loader Hell</title>
		<link>http://villagetelco.org/2009/06/escape-from-boot-loader-hell/</link>
		<comments>http://villagetelco.org/2009/06/escape-from-boot-loader-hell/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 18:27:18 +0000</pubDate>
		<dc:creator>drowe</dc:creator>
				<category><![CDATA[Mesh Potato]]></category>
		<category><![CDATA[AR2317]]></category>
		<category><![CDATA[Atheros]]></category>
		<category><![CDATA[Prototype]]></category>

		<guid isPermaLink="false">http://villagetelco.org/?p=183</guid>
		<description><![CDATA[Since my previous post I have been stuck in &#8220;boot loader hell&#8221; for 3 days! On day 1 I placed the ap61.rom file and had the MP boot loader working&#8230;]]></description>
			<content:encoded><![CDATA[<p>Since my previous post I have been stuck in &#8220;boot loader hell&#8221; for 3 days!  On day 1 I placed the ap61.rom file and had the MP boot loader working but flash support was missing.  So i took the redboot-ap61 code that Elektra had prepared and tried to flash it.  Clunk &#8211; a dead Potato.  Nothing from the RS232 serial and no signs of life.</p><p>So I carefully retraced my steps and tried to re-flash the MP from JTAG.  Still dead.  Huh?  There followed several days of futzing about, looking at the jtagspi code, trying this, trying that, and getting more and more confused and not a little upset!  I just didn&#8217;t make sense &#8211; if ap61.rom worked the first time why not now?<br /><div id="attachment_194" class="wp-caption alignleft" style="width: 460px"><img src="http://villagetelco.org/wp-content/uploads/2009/06/mp_lab_sm.jpg" alt="Mesh Potato Maternity Ward" title="mp_lab_sm" width="450" height="338" class="size-full wp-image-194" /><p class="wp-caption-text">Mesh Potatoes Maternity Ward</p></div><br />On Friday morning I took Elektra&#8217;s advice and had a break for a few hours, pedaling my bike into town and back.  This cleared my head a bit and I tried a new tack.  Prior to receiving the first MP, I had practiced flashing an AR2317 design using an off the shelf DIR-300.  So I tried this again and no probs &#8211; the ap61.rom code fired straight up on the DIR-300.  This told me my flashing procedure and the ap61.rom code was OK.</p><p>Then I noticed something funny in the ap61.rom boot log from the DIR-300:<br /><code><br />a) RedBoot(tm) bootstrap and debug environment [ROMRAM]<br />production release, version "2.1.3" - built 18:43:19, Sep 20 2007<br /></code><br />compared to the first, miraculous boot of the MP01 on Monday:<br /><code><br />b) RedBoot(tm) bootstrap and debug environment [ROMRAM]<br />Non-certified release, version UNKNOWN - built 00:32:22, Aug  7 2007<br /></code><br />Different dates!</p><p>So this idea popped into my head:</p><p>1/ What if Alen (from Atcom) had flashed a boot loader before sending me the MP01?</p><p>2/ From my records on Monday, and examining the jtagspi code, I know that my write address for my initial MP01 flash on Monday was wrong: 0x1fc00000</p><p>The jtagspi software discards the top 8 bits, leaving 0xc00000.  Now on a DIR-300 with 4M the top 2 bits get discarded leaving 0&#215;00000, or the first three blocks of flash.  As you would expect.</p><p>However when I used the same 0x1fc00000 address on a MP01 with 8M flash, I you get 400000, or half way through the 8M flash.  So on Monday I think I flashed ap61.rom half way through the 8M flash.</p><p>When I booted, it ran code from the first 3 sectors, which was whatever was in the SPI flash <strong>before</strong> I flashed it!</p><p>So I checked with Alen, and yes he had programmed the SPI flash chips before soldering!  So I had been following a blind alley all week &#8211; the idea that ap61.rom boots OK on the MP01!</p><p>4/ I continued to chat with Alen via IM.  Guess what?  The MP01s have 8M flash chips fitted &#8211; as that is what the reference design had!  That also explains why ap61.rom won&#8217;t boot &#8211; it was compiled for 16M!  The mp01.bin Alen used was set up for a 2M flash/8M ram router.  You can even see it in the boot log RAM reports:</p><p>MP01:<br /><code><br />Board: ap61<br />RAM: 0x80000000-0x80800000, [0x80040760-0x807f1000] available<br />FLASH: 0x00000000 - 0x00000001, 0 blocks of 0x00000000 bytes each.<br />RedBoot&gt;<br /></code><br />DIR-300:<br /><code><br />Board: DLINK DIR-300<br />RAM: 0x80000000-0x81000000, [0x80040580-0x80fe1000] available<br />FLASH: 0xbfc00000 - 0xbfff0000, 64 blocks of 0x00010000 bytes each.<br /></code></p><p>So with my 3 yrs old in tow I ran down to my soldering tools guy and bought some &#8220;chip quick&#8221;, a special low-melting-point solder than can be used to remove surface mount chips with just an ordinary soldering iron.  Here is a <a href="http://www.curiousinventor.com/store/product/102" onclick="urchinTracker('/outgoing/www.curiousinventor.com/store/product/102?referer=');">30 second video of how Chip Quick works</a>.  It&#8217;s actually good fun to use, and the low melting point is very kind to the PCB.  It also saved me a couple of days finding some one with proper SM rework tools (it&#8217;s Friday afternoon before a long weekend here).  No way I wanted to wait until Tuesday to fix this bug!</p><p>Now I am pretty geeky, but even I don&#8217;t have 16Mbyte SDRAM chips just laying about.  So it was time for some open-heart surgery.  I removed a 16M flash chip from the &#8220;donor&#8221; DIR-300, and soldered it onto MP001-001 (the first prototype). I powered up and no power LED &#8211; there was a short circuit between 3V3 and GND!  Bloody Hell &#8211; some days you just can&#8217;t win!  I looked for the elusive short for one hour then gave up on MP001-001 for now.  Instead I turned my attentions to the second prototype, MP01-002.  I carefully removed the same precious 16M chip from MP01-001 and soldered it onto MP01-002.  No shorts this time.  I applied 12V and the boot loader comes alive. YAaaaaayyyy!!</p><p>As an encore I tried to get Linux to boot&#8230;.however I had displeased the Gods of embedded systems  this week and it was not to be &#8211; the Linux image we use for the DIR-300 is stopping part way.  For some reason available memory is reported as 32Mbyte rather than the correct 16MByte.  However I am going to work on <strong>that</strong> problem later &#8211; time for a few days break!</p>]]></content:encoded>
			<wfw:commentRss>http://villagetelco.org/2009/06/escape-from-boot-loader-hell/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>First Phone Call on MP Architecture</title>
		<link>http://villagetelco.org/2009/05/first-phone-call-on-mp-architecture/</link>
		<comments>http://villagetelco.org/2009/05/first-phone-call-on-mp-architecture/#comments</comments>
		<pubDate>Sat, 23 May 2009 04:47:54 +0000</pubDate>
		<dc:creator>drowe</dc:creator>
				<category><![CDATA[Mesh Potato]]></category>
		<category><![CDATA[Prototype]]></category>

		<guid isPermaLink="false">http://villagetelco.org/?p=153</guid>
		<description><![CDATA[Yesterday we made the first phone call using the Mesh Potato (MP) Architecture &#8211; a very important moment in the life of any telephony project! The Prototype Mesh Potato hardware&#8230;]]></description>
			<content:encoded><![CDATA[<div id="attachment_154" class="wp-caption alignright" style="width: 310px"><a href="http://villagetelco.org/wp-content/uploads/2009/05/mp_dir300_fxs_first_call_sm.jpg"><img class="size-medium wp-image-154" title="mp_dir300_fxs_first_call_sm" src="http://villagetelco.org/wp-content/uploads/2009/05/mp_dir300_fxs_first_call_sm-300x225.jpg" alt="Hardware for First Mesh Potato Phone Call" width="300" height="225" /></a><p class="wp-caption-text">Hardware for First Mesh Potato Phone Call</p></div><p>Yesterday we made the first phone call using the Mesh Potato (MP) Architecture &#8211; a very important moment in the life of any telephony project!  The Prototype Mesh Potato hardware isn&#8217;t available yet, so we connected a DIR-300 router to a <a id="aptureLink_GvIyhZguS9" href="http://en.wikipedia.org/wiki/Foreign%20exchange%20station" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Foreign_20exchange_20station?referer=');">FXS</a> Interface PCB.  The DIR-300 router is based on the same chip set as the MP (<a title="Atheros" href="http://www.atheros.com/pt/AR5007AP-G.htm" target="_blank" onclick="urchinTracker('/outgoing/www.atheros.com/pt/AR5007AP-G.htm?referer=');">Atheros AR2317</a>) so it&#8217;s as close a a real MP as we can get.</p><p>This gives us a development environment almost identical to the MP which allows us to work on the <a id="aptureLink_Gr74Mv25YO" href="http://en.wikipedia.org/wiki/Firmware" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Firmware?referer=');">firmware</a> prior to having the actual MP hardware.  This allow for faster development compared to waiting for the prototype MP hardware.  When the prototype MP hardware arrives we will have tested firmware to use on the untested prototype MP hardware &#8211; greatly reducing the scope for bugs.</p><p>The firmware consists of several <a id="aptureLink_qsvJTMWUJ5" href="http://en.wikipedia.org/wiki/Device%20driver" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Device_20driver?referer=');">device drivers</a> (8250mp.ko, mp.ko) and an <a title="Asterisk home page" href="http://www.asterisk.org" target="_blank" onclick="urchinTracker('/outgoing/www.asterisk.org?referer=');">Asterisk</a> Channel Driver (chan_mp).  To test we connected a <a id="aptureLink_drtlEXPCnc" href="http://en.wikipedia.org/wiki/Session%20Initiation%20Protocol" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Session_20Initiation_20Protocol?referer=');">SIP</a> phone to Asterisk running on the DIR-300.  Asterisk then routes the call to chan_mp, and via the device drivers to the FXS interface hardware.  The audio samples actually flow through the AR2317 RS-232 <a id="aptureLink_MLCCDoqxk2" href="http://en.wikipedia.org/wiki/UART" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/UART?referer=');">UART</a>, before being converted to <a id="aptureLink_czrRDSZmHW" href="http://en.wikipedia.org/wiki/Time-division%20multiplexing" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Time-division_20multiplexing?referer=');">TDM</a> bus samples by a <a id="aptureLink_Yk3GUasAFX" href="http://en.wikipedia.org/wiki/Complex%20programmable%20logic%20device" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Complex_20programmable_20logic_20device?referer=');">CPLD</a> and Atmega microcontroller.  Control and signaling is handled by a <a id="aptureLink_NABOcrKg9z" href="http://en.wikipedia.org/wiki/Serial%20Peripheral%20Interface%20Bus" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Serial_20Peripheral_20Interface_20Bus?referer=');">SPI</a> port constructed from the AR2317 <a id="aptureLink_EY4bFTcijq" href="http://en.wikipedia.org/wiki/General%20Purpose%20Input/Output" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/General_20Purpose_20Input/Output?referer=');">GPIO</a> lines.</p><p>After a bit of tweaking the <a id="aptureLink_U5JLefzbkf" href="http://en.wikipedia.org/wiki/Duplex%20%28telecommunications%29" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Duplex_20_28telecommunications_29?referer=');">full duplex</a> audio quality sounded just fine, CPU load was less than 1%.  This was really just a basic Channel Driver designed to test the most important feature (full duplex audio) first.  The next step is to add a bunch of other functionality like dial tone, echo cancellation, ringing and on/off hook detection.</p><p>We are very happy with this step &#8211; it&#8217;s a big chunk of firmware written and electronics tested.</p>]]></content:encoded>
			<wfw:commentRss>http://villagetelco.org/2009/05/first-phone-call-on-mp-architecture/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>A Phone Mesh</title>
		<link>http://villagetelco.org/2009/05/a-phone-mesh/</link>
		<comments>http://villagetelco.org/2009/05/a-phone-mesh/#comments</comments>
		<pubDate>Wed, 06 May 2009 20:47:46 +0000</pubDate>
		<dc:creator>steve</dc:creator>
				<category><![CDATA[Mesh Potato]]></category>
		<category><![CDATA[Village Telco]]></category>
		<category><![CDATA[afrimesh]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[Meraki]]></category>
		<category><![CDATA[Open-Mesh]]></category>
		<category><![CDATA[Phone]]></category>
		<category><![CDATA[Prototype]]></category>

		<guid isPermaLink="false">http://villagetelco.org/?p=142</guid>
		<description><![CDATA[A couple of months ago, Antoine Van Gelder (pictured below), announced a new project called Afrimesh.  Afrimesh is a web-based, mesh network management interface.  Having a simple GUI for network&#8230;]]></description>
			<content:encoded><![CDATA[<p>A couple of months ago, Antoine Van Gelder (pictured below), announced a new project called <a title="Afrimesh Home Page" href="http://code.google.com/p/afrimesh/" target="_blank" onclick="urchinTracker('/outgoing/code.google.com/p/afrimesh/?referer=');">Afrimesh</a>.  Afrimesh is a web-based, mesh network management interface.  Having a simple GUI for network management and monitoring is critical for the Village Telco, thus I was overjoyed to find out about Antoine&#8217;s work, which is being supported by the <a title="Meraka Institute Home Page" href="http://www.meraka.org.za/" target="_blank" onclick="urchinTracker('/outgoing/www.meraka.org.za/?referer=');">Meraka Institute</a> at the <a title="Council for Scientific and Industrial Research (South Africa)" href="http://csir.co.za/" target="_blank" onclick="urchinTracker('/outgoing/csir.co.za/?referer=');">CSIR</a>.<a href="http://villagetelco.org/wp-content/uploads/2009/05/antoine_at_cafe_neo.jpg"><img class="alignright size-medium wp-image-144" style="margin-left: 4px; margin-right: 4px;" title="antoine_at_cafe_neo" src="http://villagetelco.org/wp-content/uploads/2009/05/antoine_at_cafe_neo-300x150.jpg" alt="antoine_at_cafe_neo" width="300" height="150" /></a></p><p>Originally, we had imagined having a management interface for the Village Telco very similar to the <a title="Meraki Services Page" href="http://meraki.com/products_services/" target="_self" onclick="urchinTracker('/outgoing/meraki.com/products_services/?referer=');">Meraki</a> and/or <a title="Open Mesh Dashboard" href="https://www.open-mesh.com/dashboard.php" target="_blank" onclick="urchinTracker('/outgoing/www.open-mesh.com/dashboard.php?referer=');">Open-Mesh</a> network management &#8220;dashboards&#8221; which are  graphically-intuitive and easy for anyone to understand at a glance what is going on in the network.  However, Antoine introduced a new twist which opens up interesting possibilities.  He has designed the Afrimesh software so that it can run on any <a title="OpenWRT Home Page" href="http://www.openwrt.org" target="_blank" onclick="urchinTracker('/outgoing/www.openwrt.org?referer=');">OpenWRT</a>-based device.  It is written entirely in JavaScript. Actually Afrimesh will run on just about anything but, for me, the interesting new possibility is have a dashboard interface that runs on the mesh devices themselves.  I didn&#8217;t initially appreciate initially the potential that this opens up.</p><p><a href="http://villagetelco.org/wp-content/uploads/2009/05/afrimesh.jpg"><img class="alignleft size-medium wp-image-146" style="margin-right: 16px;" title="afrimesh" src="http://villagetelco.org/wp-content/uploads/2009/05/afrimesh-300x206.jpg" alt="afrimesh" width="300" height="206" /></a>You can see at the left here what the management interface currently looks like.  As things currently stand, Afrimesh is designed to:</p><ul><li>monitor the health of the network and display connectivity information for each mesh node and connections between the nodes in a visually intuitive manner;</li><li>provide an interface for the configuration of a <a title="Home page for B.A.T.M.A.N. mesh software" href="https://www.open-mesh.org/" target="_blank" onclick="urchinTracker('/outgoing/www.open-mesh.org/?referer=');">B.A.T.M.A.N.</a>-based mesh network; and,</li><li>be an extensible GUI framework for interfacing with a mesh network.</li></ul><h4>From self organising data networks to self-organising phone networks</h4><p>So here is where my minor epiphany came.  What is great about mesh networks is that you just plug them in and they work.  They self-organise in terms of upstream connectivitity, redundant routing, etc.  They are a very, very clever way of quickly establishing a pervasive, reliable IP-based network.</p><p>With the Mesh Potato, we are trying to leverage the power of mesh networks to set up a phone network.  Each Mesh Potato access point will have an RJ11 port, into which an everyday phone can be plugged.  However, to use the Mesh Potato, some configuration of the phone network detail is still required.  People need to have phone numbers to dial and a phone number themselves that people can call.  More than that, people have to have a way of finding out other people&#8217;s phone numbers.</p><p>I began to think of the Mesh Potato in different environments to that which we originally conceived.  For instance, would Mesh Potatoes work in an crisis environment where there was a need to set up a instant phone network?  Could they be designed to self-configure out of the box as a phone mesh?  Conversations with David Rowe and Antoine have encouraged me to think so.</p><p>Imagine you power up your Mesh Potato and an interactive voice response system says:</p><table border="0"><tbody><tr><td align="right"><em>Mesh Potato</em></td><td>&#8220;Welcome to the Mesh Potato network.  Please speak your name after the tone.&#8221;</td></tr><tr><td align="right"><em>User</em></td><td>&#8220;Steve Song&#8221;</td></tr><tr><td align="right"><em>Mesh Potato</em></td><td>&#8220;Thank you.  Please key in the letters of your last and first name so that other users can find you in the directory&#8221;</td></tr><tr><td align="right"><em>User</em></td><td>&#8220;S-7777, T-8, E-33, etc, etc&#8221;</td></tr><tr><td align="right"><em>Mesh Potato</em></td><td>&#8220;Thank you.  You are now registered on the Mesh Potato network.  Your extension is 2005.  Please select from the following menu:</p><ul><li>To look up a Mesh Potato Network user, Press 1</li><li>To dial a national or international number, Press 2</li><li>To obtain assistance, Press 3</li><li>You may dial an extension at any time by dialing 9 plus the extension of the user you wish to reach&#8221;</li></ul></td></tr></tbody></table><p>This is quite a reasonable scenario.  We could set up the Mesh Potatoes to do something like the above and the impact would be that you could unpack a box of 24 Mesh Potatoes, power them up (battery or solar), and within minutes have a working phone network.  This would work with or without upstream connectivity.  It would mean you could immediately start delivering value with a Village Telco even before you have a server, billing, and upstream connectivity set up.</p><h4>The Afrimesh Potato</h4><p><a href="http://villagetelco.org/wp-content/uploads/2009/05/afrimesh_a_phone_mesh2.jpg"><img class="alignright size-medium wp-image-150" title="afrimesh_a_phone_mesh2" src="http://villagetelco.org/wp-content/uploads/2009/05/afrimesh_a_phone_mesh2-300x197.jpg" alt="afrimesh_a_phone_mesh2" width="300" height="197" /></a>But it gets better.  With the Afrimesh software, you could conceivably combine data network information with phone network information.  Consider an enhanced version of the Afrimesh interface which not only provided network information but also voice call information.  The image at the right is my mock-up but it conveys the sense of how Afrimesh could show you who was on the phone network, what their extension is, whether they&#8217;re &#8220;available&#8221;, etc.</p><p>I think that having a plug-and-play Mesh Potato that will allow people to start talking with no initial technical configuration would substantially increase the take-up rate of the Mesh Potato.  I also think the Afrimesh interface offers opportunities for interesting voice/data/presence/twitter/jabber cross-over innovation on the MPs.  Love to hear thoughts from others on this.</p><p>P.S. For those waiting patiently to hold a Mesh Potato in your hand, David and Elektra are in the final stage of PCB design with Atcom.  I don&#8217;t have a date but we should have prototypes very shortly.</p>]]></content:encoded>
			<wfw:commentRss>http://villagetelco.org/2009/05/a-phone-mesh/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Kicking off Phase 2 with some hardware design</title>
		<link>http://villagetelco.org/2009/02/kicking-off-phase-2-with-some-hardware-design/</link>
		<comments>http://villagetelco.org/2009/02/kicking-off-phase-2-with-some-hardware-design/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 13:52:15 +0000</pubDate>
		<dc:creator>drowe</dc:creator>
				<category><![CDATA[Mesh Potato]]></category>
		<category><![CDATA[IP04]]></category>
		<category><![CDATA[Nanostation 2]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[Verilog]]></category>

		<guid isPermaLink="false">http://villagetelco.org/?p=113</guid>
		<description><![CDATA[A few weeks ago Elektra and I started Phase 2 of the Mesh Potato project. In Phase 2 we are working with Atcom to build the prototype Mesh Potato hardware.&#8230;]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago Elektra and I started Phase 2 of the Mesh Potato project. In Phase 2 we are working with Atcom to build the prototype Mesh Potato hardware. The first work package is hardware design.</p><p>Elektra is working on hardening the various ports of the Mesh Potato against environmental and accidental damage. For example making sure the power port is robust to reverse DC connection, and protecting the Antenna and Ethernet ports from static. She is also taking particular care to ensure that the power supply is as efficient as possible; saving a few watts really matters in solar powered applications.</p><p>I am working on the <a title="Wikipedia entry for Foreign Exchange Station (FXS)" href="http://en.wikipedia.org/wiki/Foreign_exchange_station" target="_blank" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Foreign_exchange_station?referer=');">FXS</a> interface hardware. The <a title="Atheros Home Page" href="http://www.atheros.com/" target="_blank" onclick="urchinTracker('/outgoing/www.atheros.com/?referer=');">Atheros</a> <a title="What is a System on a Chip (SoC)" href="http://www.wisegeek.com/what-is-a-system-on-a-chip-soc.htm" target="_blank" onclick="urchinTracker('/outgoing/www.wisegeek.com/what-is-a-system-on-a-chip-soc.htm?referer=');">SoC</a> chips have a lot of functionality, but unfortunately don&#8217;t have a <a title="Wikipedia entry for Time Division Multiplexing" href="http://en.wikipedia.org/wiki/Time-division_multiplexing" target="_blank" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Time-division_multiplexing?referer=');">Time Division Multiplexed (TDM)</a> bus peripheral which is required to connect to the FXS chipset. The current plan is to make a <a title="Wikipedia entry for RS-232" href="http://en.wikipedia.org/wiki/RS-232C" target="_blank" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/RS-232C?referer=');">RS232</a> serial to TDM adaptor, using some programmable logic. Speech samples will flow through the Atheros SoC RS232 serial port to and from the TDM bus.</p><p>The software side of the FXS interface involves modifying the serial driver (8250.c in the kernel), to store speech samples in buffers that are then uploaded to user mode for Asterisk. It is important that the interrupt service routine is really fast, so I am bypassing much of the standard serial code and writing a custom ISR.</p><p>Over the last few weeks I have written the modified driver and tested it using RS232 signals from a PC. This week I have been designing and testing the hardware side of the interface. This involves writing a bunch of <a title="Wikipedia entry for Verilog" href="http://en.wikipedia.org/wiki/Verilog" target="_blank" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Verilog?referer=');">Verilog</a> code, then testing it using a PC based simulator. I am using the (open source) <a href="http://www.icarus.com/eda/verilog/" onclick="urchinTracker('/outgoing/www.icarus.com/eda/verilog/?referer=');">Icarus</a> and <a href="http://www.geda.seul.org/tools/gtkwave/" onclick="urchinTracker('/outgoing/www.geda.seul.org/tools/gtkwave/?referer=');">GTKwave</a> programs to simulate and visualise the waveforms. It&#8217;s much easier to test and debug all this complex logic in simulation form before firing up any hardware.</p><p>Over the last few days I have been testing all this logic using a prototype jig:</p><p align="center"><img src="http://rowetel.com/images/mp_fxs_proto.jpg" alt="" /></p><p>Two <a title="David Rowe's IP04" href="http://www.rowetel.com/ucasterisk/ip04.html" target="_blank" onclick="urchinTracker('/outgoing/www.rowetel.com/ucasterisk/ip04.html?referer=');">IP04</a>s are used. IP04s happen to have a Xilinx <a title="Wikipedia entry for Complex Programmable Logic Device (CPLD)" href="http://en.wikipedia.org/wiki/CPLD" target="_blank" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/CPLD?referer=');">CPLD</a> chip on board that is suitable for running the FXS Interface logic. So on the LH IP04 I reprogrammed the CPLD with the FXS Interface logic. The right hand IP04 in the picture above is used as &#8220;life support&#8221; for a FXS module. The FXS module runs as per normal on the IP04 but we tap off the various TDM bus signals we need to drive the CPLD on the IP04 on the left. So to test I can speak into a phone connected to the IP04 and the CPLD does it&#8217;s thing with the signals, converting them to and from RS232 serial.</p><p>So far I have tested both the receive and transmit side of the FXS Interface by connecting the serial signals to a PC. I managed to sample my own voice by capturing the RS232 bytes to a file and playing it back on my PC&#8217;s sound card. So far so good.</p><p>Today I have started connecting the FXS Interface to a Nanostation 2. My first tests crashed the Nanonstation! I guess due to something I changed on the serial driver. So time for some debugging&#8230;&#8230;</p><p><strong>Links</strong></p><p><a href="http://www.rowetel.com/blog/?p=13" onclick="urchinTracker('/outgoing/www.rowetel.com/blog/?p=13&amp;referer=');">Verilog Tutorial</a><br /><a href="https://villagetelco.svn.sourceforge.net/svnroot/villagetelco/david/cpld" onclick="urchinTracker('/outgoing/villagetelco.svn.sourceforge.net/svnroot/villagetelco/david/cpld?referer=');">FXS Interface Verilog source and test benches</a><br /><a href="https://villagetelco.svn.sourceforge.net/svnroot/villagetelco/david/sch/README.txt" onclick="urchinTracker('/outgoing/villagetelco.svn.sourceforge.net/svnroot/villagetelco/david/sch/README.txt?referer=');">README documenting FXS Interface design</a><br /><a href="https://villagetelco.svn.sourceforge.net/svnroot/villagetelco/david/sch/fxsinterface.sch" onclick="urchinTracker('/outgoing/villagetelco.svn.sourceforge.net/svnroot/villagetelco/david/sch/fxsinterface.sch?referer=');">FXS Interface timing diagrams in gschem format</a></p>]]></content:encoded>
			<wfw:commentRss>http://villagetelco.org/2009/02/kicking-off-phase-2-with-some-hardware-design/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: basic
Object Caching 931/989 objects using disk: basic

Served from: villagetelco.org @ 2012-05-22 02:51:34 -->
