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:


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 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:

<x 14>12V * 150mA = 1.8W * 24h \approx 44Wh + 10% Losses \approx 50Wh</x>

Calculation for 1-day reserve:

<x 14>50Wh + 30% reserve margin \approx 65Wh</x>

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.

<x 14>{65Wh}/{12V} \approx 6Ah * 2 = 12Ah</x>

Solar panel estimation:

<x 14>30Wp * 4h = 120Wh</x>

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