Friday, July 12, 2013

Smaller, more elegant Mesh Extender prototype

(Please check out our crowd-funding campaign at http://igg.me/at/speakfreely to help us turn the Mesh Extender into a product that can be used to help people communicate in difficult circumstances.)

There is nothing like being busy to increase the incentive to just get something done in spite of the things that make it impossible.

So today I decided that I would actually get around to making a Mesh Extender prototype out of a TP-Link MR3020 wireless router.

These have an Atheros 9k chipset, so they have the good Wi-Fi chip that we need, which is usually the tricky bit. They have a USB port for the mass storage that Rhizome needs to run.  So far so good.

The previous TP-Link (WR703N) routers we used didn't have an easily accessible serial port -- they just had a couple of tiny points on the PCB you could solder to.

In contrast, the MR3020 has real hole-through pins that can take a standard 0.1" single-inline header, and some of the earlier builds actually have the connector installed.

With the help of a work-experience student we put OpenWRT on several of the MR3020s and got them about half-way to working as Mesh Extenders, able to mesh over Wi-Fi.

That just left the serial connection to the UHF packet radio, which is what I attacked today.

The serial port normally has a login and is used to log kernel messages.  After figuring out how to turn off as much of that as possible short of recompiling the kernel, I then set about connecting up one of the packet radio modules and getting some holes drilled so that we could put the RFD900 packet radio in the little case.  Well, mostly in the case, because the heat-sink sticks out a bit.

The following pictures show how this makes a neat little unit:





We have some Verbatim nano USB memory sticks on order so that we can replace the big USB drive on the side with a little tiny bump, which will further stream line the shape.

That leaves only the battery to consider, and we have a few options for those.

Importantly, we have shed the USB hub and USB to serial adapter, which between them were consuming perhaps 20% of the total power budget, and made the resulting prototypes frustratingly large.

Indeed, compare the images below of the older prototypes to the images above, where the only missing component is a battery connected to the USB port of the MR3020.




Once we cut a hole for the heat-sink and get the lid fitting back on, and install the nano USB sticks, we should have a nice pocket-sized prototyping platform from which to refine.

13 comments:

  1. You should try get this done and out there as quick as possible. Eventually slow moving Telcos and Govt's will react by sneaking in regulations to try make these illegal.

    Using history as a guide that is exactly what they will try do. They will find some technical excuse saying it interferes with the licensed spectrum or whatever. The real motivation will be to shut this down before it has a chance to take hold and cut into their revenue.

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. Hi Dr Paul,

    Trying to understand the factors that limit the Mesh Extender's data rate. Is it the RFD 900's limited bandwidth (max air data rate only 250kbps). Or is it the maximum speed of the MR3020's serial port? Other than a wider bandwidth radio (perhaps on a different frequency), what other things can be done to increase the Extender's data rate (e.g. get it into the megabits/sec ballpark)?

    Thanks.
    Dan
    K6DPY

    ReplyDelete
    Replies
    1. Hello,
      While it would be great to get back into the megabit range, we find that the 128kbit air-speed we are using on the RFD900 (there have been some synchronisation issues when we have tried 250kbit) is okay. This is partly because we can use things like David Rowe's CODEC2 to keep voice really tight, and we have written the best-performing open-source short message compression library, and generally planned for low-bandwidth. Also, using store-and-forward protocols means that the real issue is aggregate throughput over longer time periods. It might be possible to use more complex modulation compared with GFSK to push the bandwidth up, but I suspect that any such effort will reduce the range considerably, and it is the range rather than the speed that we want to increase.
      Paul.

      Delete
    2. Keeping the antennas portable is probably important. Other than antennas, is transmit power the remaining variable to increase to get more range? RFD900's spec says transmit power is 1 watt. How much more power do you think you can use?
      Thanks.
      Dan

      Delete
    3. We are currently using only 1/4 W, and so we could increase the power somewhat. But then the battery would need to be bigger, and likely much bigger than what it might save in antenna size. We will look at some more compact antennae than the ones we are using. I half-wave dipole rubber-duck antenna should be a few cm shorter than the one we are using now. An all in one PCB would also allow us to place the antennae in a more compact configuration.
      Paul.

      Delete
  4. Hey Paul,
    First off, I really like you project. Nice work so far. I had started looking into something with batman-adv when the piratebox first came out on these little routers. I plan on contributing and doing some work on this and have ordered a bunch of stuff that should get me started.

    My question was around the need to add a usb hub to the wr703n routers. I understand getting a serial console up is a little pita but I assume it's still doable yeah? What did you tweak in in openwrt to get that part working?

    ReplyDelete
  5. I assume you set it in here somewhere:
    https://github.com/gardners/mesh-extender/blob/master/mr3020/2.install_mesh_extender#L86-L88

    ReplyDelete
    Replies
    1. Hello,
      The source is now at https://github.com/servalproject/mesh-extender, and the files you are after are mr3020/mr3020-files/stage-1/etc/config/system (disabling console logging once booted) and mr3020/mr3020-files/stage-1/etc/inittab (to disable console login). That leaves the console serial port free for connecting a radio (or anything else). But note that the kernel still outputs boot messages there. A kernel recompile is needed to fix that, which we have yet to get around to doing.

      Delete
  6. Dr. Paul, I have been following your teams work and I'm impressed to say the least in all of your efforts, especially when considering the motivation. I plan to buy the mesh extender kits, or things needed to build some in the near future.

    I do have a few questions that I was hoping you could help me with that I have not been able to track down by following through your wiki with certainty:

    I know the overall goal has been stated for the RFD links to handle a mesh network, but in their current state do they handle a mesh network? I have only seen one-to-one demos.

    For the extender, if the MR-3040's are in range of one another, will they communicate directly or still go through 900MHz comms?

    Thanks in advance!

    ReplyDelete
    Replies
    1. The RFD900 radio doesn't support real ad-hoc communications yet. We would love a volunteer (or wealthy benefactor ;) to help us fix this. We have some ideas on how it can be done.

      If the Mesh Extenders are in Wi-Fi range of each other, they will use the Wi-Fi instead of the 900MHz radio -- which can mesh with many units. This has been in place for a while.

      We expect to have a nice new release of the Mesh Extender firmware out soon, and possibly the option to buy experimental units from us as well.

      Paul.

      Delete
    2. Thanks for the reply!

      That's good to hear I'm looking forward to seeing the latest kits/firmware.
      I've proceeded with buying the supplies for a few extenders to test out its functionality.

      Okay, since the radios do not handle real ad-hoc communications, do the radios currently serve as repeaters for phones that might be more than one radio hop away where they would broadcast to other radios what phones are in their routers network?

      For example if I have 3 radios, and Phone A is two radio hops away from Phone B, would I be able to send a file to it with current firmware? I can think of possible options for handling that but was wondering if some current functionality for this was already in place.

      Delete
    3. Right now to do multi-hop 900MHz radio you need multiple pairs of mesh extenders, where each pair is on a different hopping pattern. To do two hops you would need to have one of each pair in the middle. Without this only the Wi-Fi will do multi-hop. You could of course also do some duty-cycling of the radios so that over time the messages will be delivered, even though you don't have an end-to-end link.

      Paul.

      Delete