====== Argus ====== 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). [{{:lab:argus_architecture_overview.png?640|Overview of Argus modular architecture and possible infrastructure}}] ~~CL~~ 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. ===== Use-Cases ===== * Data Delivery and Tracker Platform for [[lab:dspace|DSpace]] * Data/Pinning node for [[https://ipfs.io/|IPFS]] (see [[https://github.com/yangwao/ipfs-hypercube|ipfs-hypercube]]) * Environmental monitoring * WLAN mesh networking * Possible hosting platform for [[http://global.freifunk.net/|Freifunk]] * Distributed SDR Grid (combined with RTL/OsmoSDR/HackRF/Rad1O/UmTtrx) * Combined Aperture Array Radio Telescope * Distributed Cube/PicoSAT monitoring * Possible hosting platform for [[http://shackspace.de/wiki/doku.php?id=project:hgg|HGG (Hacker Global Grid)]] * APT/NOAA reception * ADS-B Grid reception * POCSAG broadcasting * DVB-T broadcasting :) * Open/Free Signal/GEO-Locating * Authentication via [[https://spacefed.net/wiki/index.php/SpaceFED|SpaceFED]] * Data-Sharing (Wireless Dead-Drops) like the [[http://daviddarts.com/piratebox-diy-openwrt/?title=PirateBox_DIY_OpenWrt|PirateBox]] ===== Host ===== 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. ==== TP-Link TL-MR3020 ==== 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. ^ Specs ^ ^ ^ | CPU | Atheros AR9330 rev 1 | {{:lab:tp-link-tl-mr3020.jpg?190|}} | | Model | MIPS 24Kc V7.4 |:::| | Board | TP-LINK TL-MR3020 |:::| | RAM | 32MB |:::| | NAND | 4MB |:::| | PCB Size | 58x59mm |:::| | Full Assembly Size | 60x62x17mm (incl. USB/LAN ports) |:::| | Orig. Case Size | 67x74x22mm |:::| ==== GL-Inet-6416 ==== 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: * [[http://www.dx.com/p/gl-inet-6416a-micro-usb-powered-smart-router-w-16m-rom-white-335418|GL-Inet-6416a - with Case]] * [[http://www.dx.com/p/gl-inet-wi-fi-router-openwrt-ssh-usb-64mbyte-ram-wireless-repeater-pcb-board-green-346531|GL-Inet-6416a - PCB only]] If you want to use an external antenna with the 6416, have a look at: [[mission:log:2016:09:12:howto-external-antenna-mod-gl-inet-6416]] ==== GL-Inet AR300M ==== Gl-Inet has released a new model, the [[https://www.gl-inet.com/product/gl-ar300m/|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: https://github.com/apollo-ng/openwrt-cc-gl-ar300m ==== 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. ==== Modifications ==== === 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 [[http://wiki.openwrt.org/toh/tp-link/tl-mr3020|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: {{:lab:pcb-edge-rpsma-connector.jpg|}} Of course there is also an example for a pigtail as well. **HOWTO:**\\ * **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. [{{:lab:mr3020-antenna-premod.jpg?295|PCB/Antenna before}}] [{{:lab:mr3020-antenna-baremod.jpg?295|Cut/File edge of PCB}}] [{{:lab:mr3020-antenna-pigtailmod.jpg?295|Option A: Connect a pigtail}}] [{{:lab:mr3020-antenna-rpsmamod.jpg?295|Option B: Mount RPSMA PCB Edge Connector}}] ~~CL~~ 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** [{{:lab:tl-mr3020-wlan-antenna-hack1.jpg?295|Step 1: Remove J4}}] [{{:lab:tl-mr3020-wlan-antenna-hack2.jpg?295|Step 2 & 3: Connect coax cable}}] [{{:lab:tl-mr3020-wlan-antenna-hack4.jpg?295|Detail of coax connection}}] [{{:lab:tl-mr3020-wlan-antenna-hack3.jpg?295|Final Overview}}] ~~CL~~ ===== Microcontroller ===== * 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 % 40EUR http://www.mikrocontroller.net/mc-project/Pages/Projekte/Wetterstation/sensors/SHT75/SHT75.html http://www.mikrocontroller.net/topic/145736#1705005 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: {{:lab:model-complete-cutview.jpg|}} Source: https://github.com/apollo-ng/DIY-Stevenson-Screen ==== Ground Temperature ==== WMO guidelines DS18S20 ==== 5cm above Ground ==== WMO guidelines DS18S20 ==== Pressure ==== Absolute Pressure Bosch BMP086 High Precision Sensor ==== Wind ==== === Wind-Speed === Anemometer |Radius | 68mm | |Cup-Diameter | 30mm | |Cup-Depth | 15mm | |Shaft Diameter | 4mm | === Wind-Direction === Arrow-Fin |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=== http://www.sander-electronic.de/be00007.html ==== Rain ==== === Rain-Detection === (fast response) ** Conventional heated Rain Detection sensor ** * heated surface * draws a lot of power {{:lab:projects:rain_detection_surface.png?200|}} ** 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 === Rain-Volume === ==== Solar Radiation ==== === Pyranometer === http://www.umnicom.de/Elektronik/Projekte/Wetterstation/Sensoren/Pyranometer/Pyranometer.htm === PV Reference Module === ==== E-Field Mill ==== http://www.qsl.net/dh1stf/ ==== 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 === {{:lab:pigi-prototype-board-v1.0.jpg|PiGI V1.0 Prototype Board}} The [[lab: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 === * https://sites.google.com/site/diygeigercounter/software * http://www.dc3yc.homepage.t-online.de/geigersensor.htm * http://www.umnicom.de/Elektronik/Projekte/Wetterstation/Sensoren/GammaDetektor/GammaDetektor.htm ===== 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. {{:lab:projects:argus_solar_panel.jpg?140|}} {{:lab:projects:argus_solar_charge_controller.jpg?316|}} {{:lab:projects:argus_solar_battery.jpg?162|}} ==== 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) { PWM++; 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; } {{:lab:projects:mppt_flow.jpg?300|}} Work on the new, extremely efficient and reliable maximum-power-point tracking, buck/boost solar charge controller has finally begun: [[lab: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 ==== Controller ==== 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 {{tag>wlan tp-link tl-mr3020 argus research antenna hack network openwrt node drone}} {{keywords>Apollo-NG hackerspace hacker space development makerspace fablab lab community open-resource open resource mobile hackbus freifunk frei funk global grid hdd argus weather station monitoring TP-Link TL-MR3020 mr3020 wlan external antenna sensors openwrt open-wrt hack sdr osmosdr rtlsdr pocsag ads-b dvb-t}}