User Tools

Site Tools


This is an early draft proposal for a solid, modular and distributed communication/monitoring system shared and operated by communities (not everyone needs his own equipment in a neighboring area). It will offer services locally for community members and the nodes should be interconnected worldwide to create a global network of free-to-access Communication- & Monitoring-Nodes (CMN).

Overview of Argus modular architecture and possible infrastructure

Each node can be configured for individual needs and available budget. A basic node will only provide connectivity features, a fully equipped node will offer complete communication and RF-/Environmental-Monitoring options (distributed com/weather grid). Ideally, the ATMega, a low-power 4-Port USB Hub Controller and the power converters should be assembled together, on a matching daughterboard, to easily combine the Host and the supporting infrastructure.


  • Data Delivery and Tracker Platform for DSpace
  • Data/Pinning node for IPFS (see ipfs-hypercube)
  • Environmental monitoring
  • WLAN mesh networking
    • Possible hosting platform for Freifunk
  • Distributed SDR Grid (combined with RTL/OsmoSDR/HackRF/Rad1O/UmTtrx)
    • Combined Aperture Array Radio Telescope
    • Distributed Cube/PicoSAT monitoring
    • Possible hosting platform for HGG (Hacker Global Grid)
    • APT/NOAA reception
    • ADS-B Grid reception
    • POCSAG broadcasting
    • DVB-T broadcasting :)
  • Open/Free Signal/GEO-Locating
  • Authentication via SpaceFED
  • Data-Sharing (Wireless Dead-Drops) like the PirateBox


After searching a while for a suitable WLAN capable host system the project looked pretty busted since it seemed impossible to find an embedded WLAN system that draws less than 7W. Although 7W might not sound like much, it's the 24/7 operational state that kills the application because it would require at least 50/75W solar panels and big batteries. Even at only 7W, the total power consumption would sum up to 168Wh per day, just for the base system without any modules.

The TP-Link TL-MR3020 by itself consumes a maximum of 1.25W. That totals at 30Wh per day and is, for the moment that is, the perfect choice for an independent, self-sustainable embedded Linux system with built-in WLAN capability. It will be interesting to see, what the RaspberryPi with additional WLAN (USB?) is going to consume, but for now, the MR3020 will be the host of choice.

CPU Atheros AR9330 rev 1
Model MIPS 24Kc V7.4
Board TP-LINK TL-MR3020
PCB Size 58x59mm
Full Assembly Size 60x62x17mm (incl. USB/LAN ports)
Orig. Case Size 67x74x22mm


There is also the GL-Inet-6416a, a HW compatible clone, which offers 64MB RAM (instead of 32MB) and 16MB Flash (instead of 4MB). It also has 5 GPIOs on a PIN header and a secondary network port, available from Deal Extreme. A couple of them have been in use here for quite some time and they've performed equally - while offering more features/flexibility:

If you want to use an external antenna with the 6416, have a look at:

HOWTO - GL-Inet 6416 External Antenna Hack

GL-Inet AR300M

Gl-Inet has released a new model, the AR300M, which is already available with two external RP-SMA connectors. They still connect to only one radio but allow for more throughput and better overall connection stability. If you don't want to hack around and want even more RAM, CPU and storage the AR300M is the perfect choice as of early 2017. 5 of these are running through their tests here and so far they can be definitely recommended. A self deploying mesh firmware is a current work in progress but hasn't been released yet. If you're interested in getting it or help working on it, just leave a comment or join us on IRC.

If you're looking to build your own openwrt for the ar300m, you can use this repo:

Power & Performance Analysis

The following table shows early measurements of the basic TL-MR3020 itself (measuring the 5V DC supply in order to mitigate measurement errors due to AC/DC conversion losses), more measurements with an USB HUB and a HAMA Nano (rtlsdr) will follow soon. The results also show, that the device consumes less power with OpenWRT instead of the original firmware.

Condition TP-LINK FW Open-WRT
Boot 150mA 100mA
Idle 125mA 68mA
Idle + LAN 155mA 108mA
Idle + WLAN 125mA 105mA
Idle + LAN + WLAN 155mA 148mA
Idle + LAN + WLAN + USB 210mA 205mA
Active Download + LAN + WLAN + USB 260mA 255mA
AP + Monitor + Dump on USB + LAN + WLAN + USB N/A 230mA

The power analysis has shown that the TL-MR3020 is indeed a very suitable platform for this approach since it's within the realm of a solar or wind powered system. Although probably many nodes can/will have access to grid power, the goal of this design should be to draw as little power as possible to keep remote/independent deployment as an option and to make it more attractive for people to deploy a node connected to their grid, since the costs won't be a significant factor.


External WLAN Antenna Hack

The only major drawback of the TL-MR3020 is the lack of an external antenna connector, this however can be easily hacked in a couple of simple steps and takes less than 15 minutes. The OpenWRT-Wiki for the TL-MR3020 has a good manual on how to open the case, it worked well here.

Although it appears as if the AR9330 has two symmetric antenna outputs on-board and the TL-MR3020 has two etched antennas on the PCB, the route to Antenna1 is actually going to Antenna2. The route originally going to Antenna2 is only partly equipped (probably termination) and not connected to any antenna.

The lack of available datasheets for the AR9330 made this a guess and test hack and although the first approach (see below) worked for us, it unfortunately introduced EM related problems for some other people. This is the revisited hack, using a PCB edge RP-SMA connector to either use an antenna directly or connect better coax cable with less loss to the antenna. You should try to get these types of connectors, specifically designed to be attached to the side/edge of a PCB:

Of course there is also an example for a pigtail as well.


  • If you've already done the old hack:

Unsolder the pigtail and re-solder a 0-Ohm resistor at J4 or create a solder bridge.

  • Mechanical PCB modification

Cut/file the edge of the PCB as shown in the image. Make sure that there is no connection left between the two golden strips at the edge.

  • Option A: If you want to use a Pigtail:

Solder the center of RG-174 (or the like) coax cable to the left pad (connected to C43 - see Image) and the braid/shield of the coax to the right strip (GND).

  • Option B: If you want to use a PCB Edge RP-SMA connector:

Solder the center pin (round) to the left pad (connected to C43 - see Image) and the right pin of the connector to the right pad (GND).

  • Finishing Up:

Use hot glue or something like it to fix the cable/connector right in front of the soldered points to prevent the pads from breaking off the PCB due to lift forces from the cable. If you want to use the original case, drill a hole for the RP-SMA connector to stick out.

PCB/Antenna before
Cut/File edge of PCB
Option A: Connect a pigtail
Option B: Mount RPSMA PCB Edge Connector

Special thanks go to cosmo, for donating this device as a guinea pig to make this hack possible.

If anyone has the datasheets and could share some insight on the AR9330's antenna configuration, to enable the 2nd antenna for MIMO/Diversity, please drop a note.

There have been reports of EM related damage to MR3020 routers that have been hacked the way shown below. It seems that the cut off capacitors after J4 were put there for EM protection rather than matching the antenna. Please follow the method shown above to have proper EM protection for your router's external antenna. The following images are only left as a reference for now

Step 1: Remove J4
Step 2 & 3: Connect coax cable
Detail of coax connection
Final Overview


  • ATMega328 based system control/monitoring and SPI/I2C data acquisition.
  • Modularized Firmware in C (one module per tasking option)
  • Serial communication to Host
  • Monitoring & controlling battery supply/low power shut down of Host

RF Tasking

Combined with a cheap USB DVB-T Stick like the HAMA Nano or any other Elonics E4000/RTL2832 based device or better yet an OsmoSDR, the node can offer the raw IQ datastream (maybe even as IPv6 multicast) so that anyone can connect his local GNURadio instance to remote control and source the stream from any distant node. This would also allow more software nerds to hack on SDR software who don't want or can't get the hardware locally.

Environmental Tasking

Temperature & Relative Humidity

WMO guidelines

  • SHT75
  • 19.5 x 5.1 x 3.1 mm
  • 2.4 - 5.5 V
  • 0.15 mW
  • -40 - +125 °C
  • 0 - 100 % rF
  • (0.3 °C) ± 1.8 %


In order to protect the sensor from IR/UV radiation and harsh weather, the sensor must be housed in a special housing that allows airflow but keeps the sensor safe and measurements reliable. For that purpose stevenson screens have served well in the past. A new fully 3D printable stevenson screen has been developed for that purpose:


Ground Temperature

WMO guidelines


5cm above Ground

WMO guidelines



Absolute Pressure

Bosch BMP086 High Precision Sensor




Radius 68mm
Cup-Diameter 30mm
Cup-Depth 15mm
Shaft Diameter 4mm



Length 225mm
Dist-Tip-to-Center 90mm
Dist-Center-to-Vane-End 135mm
Cup-Diameter 48mm
Cup-Height 28mm
Shaft Diameter 4mm

Experimental UltraSonic Anemometer



(fast response)

Conventional heated Rain Detection sensor

  • heated surface
  • draws a lot of power

Alternative new Rain Detection sensor

In time the heated sensor should be replaced by a new type of rain detection sensor that matches the following points:

  • no heated elements
  • low power consumtion
  • acurate and fast rain-on and rain-off detection
  • maintenance free


Solar Radiation


PV Reference Module

E-Field Mill

Beta/Gamma Radiation

Having the ability to freely access a global network of distributed ionizing radiation sensors will help to identify areas with elevated radiation levels in case of accidents, catastrophes or natural disasters. This is another step to free ourselves from corporate/governmental media spinning.

Humans will have to continue to use dangerous substances which - if handled poorly - may have devastating effects on the environment habitable to us and of course are also very harmful to our bodies if we come into direct contact. Unfortunately, most of them we simply can't see, touch, hear or smell, which makes them somewhat unreal to our primitive brain when it comes to assessing danger.

Accidents like the Three Mile Island and catastrophes like Chernobyl and Fukushima have shown that official numbers for the radiation levels always seem to be tweaked/faked, to keep people calm.

Counting Tubes

The following alpha/beta/gamma geiger-müller tubes have been obtained and tested:

  • Frieseke & Hoepfner FHZ 76 V 0-1 r/h (low dose beta/gamma counting)
  • Frieseke & Hoepfner FHZ 74 V 0-50 r/h (high dose beta/gamma counting)
  • LND 712 (alpha/beta/gamma counting)

Using the PiGI Interface

PiGI V1.0 Prototype Board

The PiGI - Raspberry Pi Geiger-Müller Interface was designed in such a universal way, that it can be used for Argus as well. It creates the required high voltage for the tubes and inverts the counting impulses of the tube into falling edges, captured by interrupt driven software on the sensor controller.

Other implementations done before

Power Supply

According to WMO guidelines, the external Environmental Monitoring Station (EMS) has to be placed at a specific minimum distance (see WMO guidelines) from any structure that might influence the measurement results (especially wind/temperature). Therefore the unit has to be equipped with its own solar power supply. The following calculations will be a first estimate to design the system at 12V nominal voltage with a 1-day reserve (i.e. no sun at all):

Estimated Power consumption

As of now it seems impossible to me to predict the average power consumption. I can only assume that the base consumption level will have to cover the uC and the fan, the uC will consume 20mA worst case, the fan about 40-50mA, the sensors may not exceed 5mA altogether. The unpredictable part is rain, because the rain detector must heat the plate up, when it's raining and will draw significantly more power (and the sun isn't shining when it rains, so all heating power will be drawn from the battery. My best avg. guess (and slightly skewed downwards in favor of “do it anyways”) will be an average power consumption of about 150mA :) Alternatively it would be wise to come up with a new, reliable scheme for fast and accurate low power rain detection that won't need to burn energy (evaporating the water on the sensors surface in order to detect “no more rain” more quickly) for its basic mode of operation.

Estimated average Power consumption for 24h operation:

12V * 150mA = 1.8W * 24h \approx 44Wh + 10% Losses \approx 50Wh

Calculation for 1-day reserve:

50Wh + 30% reserve margin \approx 65Wh

Estimated Battery capacity:

Due to the cyclic nature of this system, the battery must not be drained more than 50% of its capacity, in order to get at least 800-1k cycles out of it. The goal should be at least 3 years here - batteries take up a lot of resources to get produced - so one should consider giving them a long life. The estimated capacity (6Ah) has to be doubled to 12Ah to accommodate this.

{65Wh}/{12V} \approx 6Ah * 2 = 12Ah

Solar panel estimation:

30Wp * 4h = 120Wh

So, a 30Wp panel should cover the system easily, I got lucky and shot a new mono 30Wp Panel for about 30Eur at ebay, so there should be plenty of capacity for extensions.

MPPT Charge Controller

In order to get familiar with MPPT battery charge controller, it's planned to build an ATmega based controller to handle peak power tracking to suck every mW of obtainable energy out of it.

Basic MPPT Algorithm:

void FindMPP(void) 
   newpower = rawW; 

   if(newpower == oldpower){ 
      PWM = PWM-INC; 
   if(newpower > oldpower && direction == UP && PWM < MAX){ 
      PWM = PWM+INC; 

   else if(newpower > oldpower && direction == DOWN && PWM > MIN){ 
      PWM = PWM-INC; 

   if(newpower < oldpower && direction == UP){ 
      PWM = PWM-INC; 
      direction = DOWN; 

   else if(newpower < oldpower && direction == DOWN){ 
      PWM = PWM+INC; 
      direction = UP; 

   oldpower = newpower; 

Work on the new, extremely efficient and reliable maximum-power-point tracking, buck/boost solar charge controller has finally begun: NinjaSCC

Power Converter

5V System Supply

Based on LM-2672M5.0 (1A Simple Switcher Buck Converter) with >90% efficiency.

Supply for MR3020 Wireless LAN Node

3.3V System Supply

For ATmega and Sensors


Atmega 328p

Fuses: low=0xFF high=0xD9

read fuses: avrdude -pm328p -cavrisp2 -Pusb -v -U hfuse:r:-:i
write fueses: avrdude -p m328p -c stk500v2 -P /dev/ttyUSB0 -v -U lfuse:w:0xFF:m


2013/04/11 10:41

Nice Hack you doing there. Found an other blog Post about the Antenna thing.

There is a little tricky Problem when you unsolder th J1 resistor. Then you break up connection to C29, C31. This will result in a really poor signal quality. Hope this helps a bit improving your nice Project.

so far… m0e

2013/04/11 22:04

Thanks for the feedback, it was certainly the other way around when I tested it back then and I didn't encounter any problems or inferior performance with this hack. However, a long time has passed since then, so maybe alternative hacks may even perform better, so I'll have a look into it and try to take another one apart, so that we can compare both approaches directly.

The only components that are cut off by this hack are C42 and C43 (for the TL-MR3020) directly at the “foot-point” of onboard-antenna 2. So I guess you're referring to the config of the WR703 (C29,C31)?

One question still remains: What is the purpose of these capacitors? I presumed these were to match the impedance of the onboard-antenna to the 50 ohm stripline which wouldn't be necessary when connecting to an external 50 ohm antenna with coax.

Time to compare! :)

2013/07/24 11:27

Hello What s the type of coax cable to antenna? Thanks for article.

2013/07/24 12:28

This one is RG-316 but you can also use RG-174. If you keep the length below 25cm the loss is less than 0.5dB in both cases.

Ben West
2013/09/12 18:53

Those two caps are probably used for tuning impedenace on the patch antenna integrated into the PCB. It should be noted that dead-bugging on the coax pigtail to accommodate an external antenna is not going to have as ideal of impedance control as the integrated antenna. In effect, this mod is expecting the increased gain of the external antenna to compensate for signal loss occurring from the reduced impedane matching.

I've modded a couple TL-MR3020's as shown to support external 7dB dipole duck antennas. However, one of the APs does seem to have noticeably less receive sensitivity, despite the mods being identical.

2013/10/15 08:29

Yeah, my guess exactly. The SoC has 50 ohm impedance and should present those 50 ohms to the antenna connector. I am not sure how good modern PCB antenna simulators have become so that it might be possible to design the antenna directly to match 50 ohm at the feedpoint.

At the moment I am using this particular setup productively with a simple external 1/4 dipole antenna. There is a solid 72MBit RX/TX 802.11n link to another 3020 (Hacked 3020 + external ANT (Client Mode) → Regular 3020 (AP Mode).

        rx bytes:       4156061
        rx packets:     52615
        tx bytes:       22038702
        tx packets:     44138
        tx retries:     185
        tx failed:      140
        signal:         -49 [-49] dBm
        signal avg:     -48 [-48] dBm
        tx bitrate:     72.2 MBit/s MCS 7 short GI
        rx bitrate:     72.2 MBit/s MCS 7 short GI
        authorized:     yes
        authenticated:  yes
        preamble:       short
        WMM/WME:        yes

However, of course this hack only really makes sense if you want to use a directional or stocked omni antenna, either for backhauling or specific targeting in a noisy environment when the system gain outweighs the losses introduced by the additional connection.

2014/01/19 23:35

Comment from Adrian on on the mailing list concerning AR9330 (

The AR9330 is a 1×1, single radio chain device. It's not doing MIMO. It's doing classic fast diversity and antenna signal mixing, rather than MIMO.

That is, there's an antenna switch that selects antenna A or antenna B. The software can program which one to default to, and if it has time it'll try sampling the preamble signal level on both antenna A and antenna B before choosing which is “better”.

The slow diversity (slowdiv / antcomb in the ath9k source) is where the LNA inputs can be mixed in certain ways before being sent to the baseband for RX processing. The configurations (from memory) are A, B, A+B, A-B. It's not doing MIMO - there's only one radio chain and the mixing is done via a real bonafide analog mixer. (MIMO here is where there's much more signal analysis and correlation done in the digital domain.)

You can actually do both on the AR9330 if you know what you're doing and if the board is wired up the right way.

Yes, if someone pops up on the ath9k-devel mailing list and asks, I'll do my best to make it happen.

2014/01/20 11:00

Sweet, thanks for sharing, if you're on the ML, why don't you ping Adrian about it, otherwise I'll join the ath9k and ask him myself :) I'd also be willing to send one of our 3020 to him to have a specific board to tinker with. Since we've got a surplus board after cosmo sponsored one more 3020 we can easily afford to give one away for research in this direction.

2014/01/20 17:47

I think it would be best if I would not be a messenger here. :-)

2014/02/09 09:43

Fair enough :)

2014/02/09 09:25

I don't understand, J4 and the ground that you've said is connected actually, then connected antennas core and the shield like you've said is same as make them short, please explain

2014/02/09 09:36

How is J4 connected to GND? I mean, is it on your particular board? When I look at the picture above, I can see J4 clearly being routed in between the groundplane, left side coming from the AR right side going to the PCB antenna but no actual connection. The only thing I think I could imagine you mean is that the onboard pcb antenna itself provides a connection to GND again. When you remove J4 and solder the coax cable to the left part of J4 it's not a problem anymore since you disconnected the rest of it by removing J4. Also, although it might look funny, in terms of HF/antennae it's a valid construct and not a simple short circuit :)

2014/02/09 22:32

I have removed my J4 but both of its land still connected, that's why I confused, is my board wrong or J4 has no use. Both of pcb antennas still connected with or without J4. Anyway thanks :)

Ben West
2014/02/10 00:06

Do note that the “inverted-F” patch antennas on the MR3020 circuit board are actually extensions of the ground plane. So, with the J4 0ohm resistor still populated, the traces for the antenna signal will appear to be shorted to ground when measured with an ohmmeter, which is normal.

You would need to cut traces forming the two arms of the antenna's “F” shape to remove that connection to the ground plane.

Ben West
2014/02/10 00:18

I modified a couple MR3020's per these instructions, i.e. de-popping J4 resistor and soldering the inner conductor of a pigtail to the exposed pad. However, this appears to expose the device to excessive electrical discharges that can damage the transmit power amplifier inside the Atheros chip. On two occasions, a couple MR3020's so modded and placed at indoor locations appeared to lose ~50% of their transmit power after a lightning storm passed over.

I've since modded a MR3020 and also a WR703N per these instructions below, which involved cutting the “arms” of the interted-F patch antenna and attaching the pigtail there. No removal of J4. This approach does preserve the filtering / matching components on the antenna's circuit, which could have an additional effect of blocking electrical discharges from external sources. So far, no more apparent losses to lightning.

2014/02/10 09:14

Thanks for coming back with this analysis even though it is unfortunate. It seems the modded routers here have been lucky and never had to withstand strong EM so it never appeared as a problem. I'll put up a warning so that others know. This mod had the charm of not having to mechanically alter the PCB but the purpose of the capacitors that were cut off remained unclear. So although it might work flawlessly we're putting our MR3020's at a higher risk of EM related bricking. According to your comment I'd conclude they're not for matching, but filtering/protecting. I wanted to come up with a more simple approach anyways so I'll update the howto and pics as soon as possible. Just cutting of the long part of the F and using an RP-SMA PCB connector (not even a pigtail) soldered in place should come out nicely and leaving the protective circuit also in place :)

Ben, I am not familiar with this capacitor only based filter/protector design, do you know anything about it and if so, could you elaborate a bit? :)

Ben West
2014/02/10 16:39

I'm afraid I can't shed much light on the precise nature of the various passive components on the antenna path between J4 and the actual patch antenna (or pigtail). The PDF I linked to, which was written by a nice (and thorough!) gentleman in Australia, does show a reverse-engineered schematic for the antenna circuit on a WR703N. That schematic shows in detail the filtering / matching components on the WR703N, so I'm assuming it is very similar on the MR3020.

As for filter components, there is a PI impedance-matching circuit immediately before the F (also shown on the WR703N schematic above), and likely also various inductors and resistors scattered about. They just all look the same at such small-scale SMD. :)

2014/02/24 10:07

Thanks again for supplying more information about this issue. It wouldn't be fun if it wasn't a learning experience as well :) I've put the revisited MR3020 antenna hack online now. Hopefully, this will do much better :)

2014/05/11 21:04

Thanks for the guides. Actually there is a datasheet link for AR9331 chipset under Hardware Summary Section.

2014/05/16 14:23

Thanks a lot for your post!

I want to ask you how put router in idle mode (or is it just doing nothing?)

2014/05/16 16:55

Yeah, idle is just the basic hardware/network/operating system online, with all mandatory services running but no “active” sessions on the router and no traffic going through it.

2014/08/22 07:37

You mention low power ARM CPU, and embedded ARM, but actually the mr-3020 uses a MIPS CPU (which is lower power that the ARM equivalent). It's also worth mentioning the MR3040 which is the same SoC but has a battery pack built in. Simple portable projects this gives about 5 hours of battery life.


2014/08/22 08:48

Fixed. Thanks. The original draft was on a different (ARM) platform which later became just a meta term for “The embedded SoC I picked because it was available/cheap/best suited for my use case and I really don't care whether it's ARM or MIPS since GNU/Linux and everything else relevant can be compiled to run on both” and I forgot to change it in the text. But yeah, talking a lot about ARM and then listing a MIPS device makes no sense at all. The MR3040 sounds sweet, I'll have to have a look :)

2015/05/18 15:57

Hi There,

just modded my MR3020 as follow, on my board, what was strange is that I did not had the J4 0ohm populated, but instead the J1 (the one on the other antenna) I removed J1 but should not do anything since C28 was not populated. In fact I did a mistake 1st time I plugged my antenna on J1 instead of J4 (why I removed J1 0 Ohm). So Plugged back antenna on J4 (leaving J1 unpopulated), now got better range.

Thanks for this very good tuto ;-)

2015/05/18 16:10

Well, just in doubt, soldered back 0 Ohm on J1, range is again better ;-)

So to resume as 0Ohm on J4 was not populated on my board, just soldered cable with pigtail as the tutorial, and voila ;-)

2015/06/13 12:23


I like to add an external antenna to the MR and place the antenna outside of my motor caravan. My Question: Are both antennas are active? I like to use the WISP Mode for using the CPs WLAN.



2015/10/08 08:41

It seems they are not. Although there are secondary antenna feeds on all boards with this chip, they all seem to terminate the 2nd antenna on the PCB. Until now I haven't even been able to see options for 2nd antenna for either diversity or MIMO modes in wifi/kernel settings :/

Since I've needed a similar setup, I've just added a USB Wifi Stick with an external antenna connector to give it a second radio for more flexibility. You can also use this setup to have your local WLAN inside and sniff/track/map available Wifi Networks while you're moving :)

2016/08/08 18:44

Hey, So I'm looking to add a USB wifi dongle to my MR3020 routers. Basically, I'm living in a rural part of South Africa and I'm busy getting really excited about starting a WISP focussing on the poorer areas of the country.

So, with that in mind, I'm looking at the MR3020 as they are cheap, easy to programme with OpenWRT and make a hardware modification to add a directional antenna which will pickup the backhaul signal from a school (where we are about dos set-up free WiFi -funded by corporates) and then the USB WiFi dongle/adapter to act as the 2nd 'local' radio.

Essentially, I want to create a WLAN that spans whole communities, get the IGs up and running at schools and distribute the signal direct to the poorer homes. We're planning to pay for the IG from an existing WISP using ad revenue and use an API for the captive portal (advert).

I might have given more detail than necessary, but really, what I'm asking is: how easy is it to use the USB port on the MR3020 to create a 2nd radio? how do I go about customising the FW to allow for that? Are there pages on the OpenWRT forums which I've missed? Maybe I've been smoking too much and dreaming beyond the MR3020's capability, but my gut tells me it should be possible. Also you [Chrono] said “I've just added a USB Wifi Stick with an external antenna connector to give it a second radio for more flexibility” ;)

To recap, the first (onboard) radio would be hacked to replace it with an external, directional antenna, which in this case would point directly to the schools (90-120*)sector antenna (ergo the whole community would be connected through one or a series of PTMP). The USB port would be used with WiFi USB dongle to act as an AP.

Any help would be much appreciated, it will all fit into my dream of creating a generation of programmes and hackers in disadvantaged communities in South Africa - smart phones are getting big, especially at <$25!! The reason I'm thinking about this and not just having the simpler option of having two routers is mainly down to cost. I have started to accept that there is simply not enough money to make this a big profitable company, but if it can function sustainably as a non-profit Company - that's good enough for me! I believe if we can make the hardware as cheap and simple as possible, we will be able to cover a lot of the growth and expansion costs with the users.

P.s. dear admin, I can make this a new post in itself if that would be better..?

Much love and sun from South Africa Peter

2016/08/08 18:53

At this point, you can buy very similar, reasonably priced units made by GL.iNet, and with the pigtail for the external antenna already mounted. The GL.iNet products in particular have at least double the flash space as the TP-Link MR3020, plus they don't lock out flashing OpenWRT like TP-Link is doing now.

2016/08/09 10:12

Thanks Ben. Looking at it now, the only thing is delivery time sadly, but I guess it'll have to do. This could save us a significant amount of time and money, and stress which my ubuntu guy has been having with the flash space!


2016/08/09 19:34

If you don't want to spend time learning the skill or that kind of hardware hacking to get the external antenna going, by all means, go for the ready made thing. I also second Ben's opinion about the Gl-Inet and had them linked above as alternatives as well, due to the fact that you get more more ram, way more flash and a second wired lan port (very handy for wired guest/mgmt/backhaul/upstream VLAN setups when you may need more port flexibility).

All in all, all these features make these little ones very handy, not to mention that they also provide a couple of GPIOs that I currently use to control a stepper motor for software controlled antenna rotation (crude PoC).

Usually OpenWRT already packs a lot, but if you really want to get the most out of it I'd recommend setting up your own build environment so that you can tweak kernel and packages to match your desired use case:

When you plug-in a supported USB WiFI dongle, it'll be just another wifi interface you can assign to any configuration you want, being it STA mode to tap into some other upstream WiFi as a client or to do your own backhaul links or just mesh.

You might also want to have a look into - There is already a lot of community and a ready-to-use software stack for mesh & infrastructure, operated and linked by people.

Here's how it currently looks in/around Munich:

Non-profit FTW.

2016/08/10 08:43

Thanks buddy! I emailed the manufacturer of the router I was linked to and both recommended. They do offer bulk discounts, but I think it might be at least 6-12 months before we can reach numbers in order to achieve bulk discounts. Without the pre-supplied radio antenna you save $0.50… I was quoted a $2 saving, but that was without the external antenna adapter. Just FYI.

When you're talking about our own build environment, does that just mean getting all the config files correct once and compelling them into the one file? If so, the guy working with me has just worked out to do that a few days ago, and thinking about updating our MR3020s to that single file. That should help solve our flash problems on the MR3020s.

The extra ethernet port also proved exciting. I'm assuming that if were to get say 5 or 6 of these units within 1 or 2 sqKm (pointing towards a central highpoint - school, clinic, etc.) we would be able to use one of those lan ports to increase the ubiquity of the connection within that 1 or 2 sqKm by adding an additional router which could have more 'potent' omni-directional antennas? That way, off the backs of the existing infrastructure in the communities we could be adding extra layers to the network topography? There will obviously be limitations to the number of connections possible through this router or would potentially require stronger/more durable/more powerful backhaul unit at schools… that's an assumption and I think in reality it will have to be a 'wait and see what happens' kind of judgement. I might be wrong/over simplifying the scenario. but my point is, having the flexibility of the extra ethernet port would make expansion easier in future. yes?

Thanks for the encouraging news RE: when you plug the WiFi adapter into it just becomes another interface. That's certainly made clear what i thought would be the case. And thanks for the link to what's going on in Munich!

Another FYI: There is lots of talk in South Africa at the moment about WiFi/internet as a utility, and with the high costs of mobile data and the shockingly low line availability (forget about speed!); WISPS are gradually becoming the norm. The big players in the country are publishing scare stories about how free wifi can't be sustainable, esp. in rural areas. I don't buy it and believe this IS an essential part of eroding the legacy of inequality from Apartheid, and before. Non-Profit for the win, yes, and skills in open source programming, hacking, networking and community: YESSSS!

Anyway, maybe I should start a page somewhere about the project. As we're still a young organisation, there isn't much hardware in the field at the moment but I hope that will change in the coming few months.


2016/09/16 07:46

Great that you could make progress. As for the build environment, exactly, you just clone the openwrt build repo and the feeds (which hold more packages you can install into your firmware) and then it will automagically cross-compile the code for the architecture we find on our embedded wireless devices (MIPS in case of the 3020/6416/AR150). You end up with one file you can then simply flash the node with, like “openwrt-ar71xx-generic-gl-inet-6416A-v1-squashfs-factory.bin”.

I'm currently building something similar to Argus but way more mobile and smaller so that they could be dropped with small parachutes into emergency areas that run on makita power tools batteries for about a week and create an autonomous mesh network. AEON nodes (Autonomous Emergency Operations Network) are also based on the 6416, with external antenna mod and a second USB wifi adapter so that people can communicate and organize rescue and logistics if essential infrastructure is gone after natural- or woman-made disaster.

So far it's coming along well and the nodes can be used for either emergency cases or just to have a swiss army knife of wlan tools in an autonomous package without any grid power dependency. Hopefully I'll find enough time to document and share more of it in the near future as well as the repo with the custom modifications and the binaries stripped from the pineapple-nano, since Hak5 doesn't seem to share their source code.

2015/10/08 02:55


interesting project about mr3020 and OpenWRT. I'm interested about power consumptions test on mr3020. Can you describe method or instructions how to measure power consumptions on mr3020?

Thanks for read dan reply my comment Regards


2015/10/08 08:35

Have a look at this Mission-Log entry, there is a picture of a similar test setup, showing the USB Power meter used for this test as well.

If you don't want to invest into such a device, you can also easily hack your own USB measurement adapter by sacrificing just a USB cable: Cut away a part of the insulation then cut the red wire (5V) and feed it through a multimeter on DC current setting, like this

2015/10/26 17:01

Thanks for your reply.

How your opinion if I using usb current voltage meter like this ( ). Maybe you have suggestions for me

Sincerely Riyadi

2015/10/26 17:08

Sure, this would be the most cost effective approach if you don't want to hack your own. It's probably not as accurate as the Portapow but it will be more than enough to give you a ballpark number to work with :)

2015/11/20 14:59

when I saw ar9331 datasheet I think it's support receiver diversity since according to datasheet this SoC can transmit one spatial stream and receive tow spatial stream.

I don't know if on this atheros chip is wired for only one antenna but this link is interesting (and this link (

If we look pcb from mr3020 we can see that there is (maybe) 3 ground antenna connected to J1, J4 and J2. i think maybe we can use it.

does anyone has used athk9 driver instead of a mac80211 on mr3020 ?

sincerely riyadi

2015/11/24 05:32

Thank you so much for everyone who puts that much effort to provide all the links and proper instructions to MR3020 and now I am in project to work on my MR3040 which given away to me as a bricked and it also had missing J1 conductor in order to make the external to work.

Would someone be able to identify the right kind of conductor for a replacement at the location J1 ? Please double clicks the image below for the closed-up.

2016/10/04 11:52

Hello everyone I would need a clarification on the TP-Link TL-MR3020. I saw that inside has two antennas but one of them seems to be not working …. (and it would be a shame for my problem). I would like to accomplish this: I want to connect to the TP-Link TL-MR3020 with an amplified external antenna ( to snort a wifi several meters away from me … it comes with a vERY wEAK signal, and I would like to use the TP-Link TL-MR3020 (without changing the firmware) to amplify the weak signal and send this in my house. to do this I have already ordered the two RP-SMA connectors where I connected to one of the estena amplified antenna and the other a simple duck antenna wifi to increase the range of the device tp-link. I thought that the two antennas serve one for input and one for signal output wifi but this seems not to be so … you advise me how to proceed?

2016/10/04 12:09

Unfortunately, the second antenna isn't available and would also not help with what you want to do. However, it's easy to build this kind of repeater to extend range or to beam a signal around corners without DLOS by using a second radio with an USB Wifi Stick. I've built a couple of these by hacking the external antenna port and selecting an USB wifi stick with external SMA port. Then you can use any antenna you'd like, see:

Comment text

Please type the letters you see on the left into the box on the right:

   ___    ____  _   __  _____  _   __
  / _ |  /  _/ | | / / / ___/ | | / /
 / __ | _/ /   | |/ / / (_ /  | |/ / 
/_/ |_|/___/   |___/  \___/   |___/