Introduction: Off-Grid Comm Hub With Geiger Counter, Flashlights, & P-AC

Just the same as the popular expression “it’s not the fall that kills you, it’s the sudden stop at the end!” the majority of people in an Apocalypse scenario won’t falter because of the events that caused the downfall of society, rather they will falter because society has fallen.

With no power, water, transportation, or other critical utilities/services in operation even those with an emergency supply of food and water will evenly succumb to lack of replenishment. Most notably a fall of society will lead to a lack of effective communications which will leave thousands to suffer from starvation while farmers just a few days travel away have fields of rotting crops because they can't find enough help to harvest them. Thus what is essential in preparing for the worst, is not necessarily a closet full of food, water filters, and shotgun shells but an ability to effectively communicate without grid infrastructure.

Intended to be the ultimate booster for the innovative goTenna, this wearable hub comes packed with features usefully for navigating natural disaster zones or a myriad of apocalypses, both providing utility and convenience.

These features being:

Up to 27mile off-grid communications range*

10,000mah Battery Capacity

Geiger Counter (Requires Smart Phone)

Magnetic Phone Mount and Charging Port

Integrated Bluetooth Speaker & Microphone

Standard LED flashlight

Red Light Flashlight/Reading light

Detachable Laser Pointer/Flashlight/Pen

Built in 1W Solar Panel

4ways to Fast Charge**

Bottle Opener

& Last but not Least a Personal AC (P-AC)

.

.

*3-4mile typical reliable range on level terrain

**Recommend to only use one fast charge method at a time

Step 1: Parts List & Solid Model

If you have Solidworks 2013+ or other compatible 3D software the 3D models used to design this concept are included in the attached zip file, the main assembly is named "Personal Comm Hub MK1". They are included as this design is still experimental and I want to make those who want to try a different solution have access to the source materials.

The specific parts I used to build this comm hub are as follows

Core Items:

FT Labs Geiger Counter

Standard goTenna

SoundBot® SB517 Bluetooth Wireless Speaker

Laser Pointer & Flashlight Pen

Hardware Comps:

40mm x 40mm x 11mm Black Aluminum Heatsink

FrogLeggs LED Bottle Opener Flashlight

Magnetic Phone Mount

1.25" Copper Blank

4P Audio Extension Cable

12" Micro USB Cable (comes with Soundbot)

8" USB Recharge Cable (pick per your phone)

Electronic Comps:

LED Toggle Switch
DPDT Switch

Momentary Push Button Switch

1426 8X Neopixles Strip

3A Peltier Cooler (2 needed)

1K Potentiometer with Switch & Knob

Adafruit Solar Module

Arduino Mini Pro & Programmer

JST-PH Cable

TIP41C Transistors

Blue LED & Red LED

2X Fuse Blocks

10Amp Fuse

3Amp Fuse

Dual USB 5V 1A 2A Mobile Power Board Module

5dBi Folding Wifi Antenna, mine was salvaged from an old router

5X 18650 Li-Ion Batteries, mine were salvaged from one of these power units

6V 200ma Solar Panel, mine was salvaged from a solar pack

Step 2: 3D Printing the Frame

To make this comm hub as is, you will need a 3D printer, if you don't have one, see my previous build for a few ideas on how to use alternative frames to make one of these.

Per printing also included in the zip file are the STLs I used to make this prototype, of which the main frame was printed out of ABS in two sections to help prevent cascade warping. The two halves were then glued together with acetone applied by syringe. Once glued together, I used a small brush to apply acetone over all exterior surfaces to both help make all the layers stick together and smooth out the layer lines. When brushing on acetone its normal for parts to have a white residue build up in certain areas, the best way to make them go away I have found is to wait 48-72 hours for the acetone finish to fully dry and then to wipe the part down with an acetone wipe.

Also worth noting is that one trick I have for successful prints is to use a slurry bed and as the first layers is printing use the syringe to drip acetone on all the corners of the part so that they stick extra strong during the printing process thus greatly helping to prevent warping.

Step 3: Wiring Overview & Component Prepping

Though shown here, one last item included in the zip file, and as a separate download, is a high res PDF version of the wiring diagram that above all else is the core design aspect that must always be observed when assembling this comm hub.

To ready components for assembly two tasks need to be done, the first is to use a pipe cutter or hacksaw to cut the Frog light down to size, and then drill a small hole through it so that a ground wire can be secured with solder. The second is to disassemble the Soundbot speaker into its requisite components so it can then be reassembled within the framework of the comm hub.

An optional task to take the male ends of the USB cables, strip off all the insulation, and turn them into right angle power only connectors. This is a trick I often use to make my power draws from USB ports fit into a much tighter space then the USB cable would normally allow.

Step 4: Adding Frame Components Step 1

All components prepped and printed the main frame assembly can begin, following the wring diagram add the battery pack, Soundbot, Solar charger, Frog Light, NeoPixel and USB Power Core. Components were held in place with a combination of GO2 Glue, except for the solar module which was screwed on, applied first to parts and then hot glue hold everything together for convenience while the GO2 sets. Of note is that the speaker does not get glued in place directly because the vibrations would eventually undo all glues, rather the outer rubber rim gets sandwiched between the base and a retaining ring that is glued in place (see solid model). Of note is that the status LEDs fit in the small hole opposite where the red momentary button to turn on the red-light goes, with a small dab of hot glue over the top of the hole used to make an opaque lenses.

On the hardware side add the cover for the speaker after the speaker has been installed, of which the cover shown was not 3D printed, even that file is included in the solid model if needed, rather it salvaged from Gear Head Portable Bluetooth Speaker, as it looks much nicer than a 3D print. Then glue on the magnetic phone mount, per the boss that it fits into, making sure that when the phone is mounted it can swivel without hitting the speaker cover.

Worth noting is that the purpose in the design for the laser pointer pen, that fits into the hole on the underside of the frame just next to where the frog light goes, is both to have a convenient writing utensil available at all times, and also that I have a theory that Zomibes can be lead into traps, just the same as cats, as the majority of mindless critters have a documented tendency to be easily distracted and enticed by them.

Step 5: Adding Frame Components Step 2

Finish the frame assembly by putting together the components for the Geiger Counter and then gluing them to the frame such that the Geiger can be folded outward to better probe potentially irradiated areas.

Worth noting is that while many solutions exist to mount the Geiger Counter on some kind of pivot, a high gain Wifi antenna was used as planned future hardware/software updates will be to add off-grid Wifi device to device connectivity, much like the goTenna, however at much higher bandwidth and shorter range than the goTenna, which will be useful for transferring large files such as apps and media content from one device to another.

As the high gain antenna has a tendency to flip open on its own, a small high strength magnet, was glued into the small hole where the Geiger sleeve fits with super glue, a #6 washer was placed over that and subsequently super glued to the Geiger sleeve so that when the antenna was folded in the metal washer sticking to the magnet would keep the antenna folded in.

Step 6: Finish Wiring & Programming

As everything, aside from the fan, should be in place the finial wiring task is to methodically double check all connections, with the wiring diagram before you start flipping switches, even if you have been checking them as you go. More so given that the utility density of this design creates a high circuit density, which can make mistakes hard spot; as I rather found out the hard way when I smoked a power board and had to get another one because of a reverse polarity issue I missed before powering up!

Once verified, you can upload the program shown below to the Arduino. Of note is that the code was written with the shown three fundamental PCBs in mind and any changes to those might necessitate changes to the program as well. When using the Arduino IDE to upload the program, make sure to download the Adafruit NeoPixle library into the correct folder before trying to upload.

Speaking of the Arduino and its code, the core components of the design, notably all those that run off of the Arduino, can be found in the following open source Autodesk Circuits Simulator project, if you want to experiment with the code before uploading. Of note is that as the simulator does not exactly have the all components I used, a buzzer is used in place of the peltiers, the diodes are fuses, the 5V power supply is the Dual USB 5V Board, a 12 NeoPixel ring is the 8 NeoPixel strip so only the first 8 NeoPixels actually light up, and lastly the DPDT switch is actually two SPDT switches on top of each and thus both have to be switched at the same time properly to simulate changing the DPDT switch from the cold to the hot setting.

At this point if the batteries are too low to test with, and you don't want to leave the unit in sunlight+ for 1.5days, you can fast charge by either use a 2.1mm 5-6V DC jack or USB mini cable with the solar charger, or the 3.5mm USB audio jack with the SoundBot charging port, or a USB micro cable with the Dual USB 5V Board (fastest). However, as previously stated don't use more than one fast charging method at once.

Worth noting about the solar charging unit, should you be planning extensive off-grid use, is that the 2.1mm jack is positioned such that a cable running down the arm from a solar backpack, with a large 5Watt+ cell should be sufficient to keep the unit fully powered through the day, so long as all systems are not used constantly, leaving plenty of juice to last the night.

#include <Adafruit_NeoPixel.h<adafruit_neopixel.h></adafruit_neopixel.h><adafruit_neopixel.h></adafruit_neopixel.h><adafruit_neopixel.h></adafruit_neopixel.h><adafruit_neopixel.h>><br>
int pinPot = A0;       //Potentiometer
int pinLightBTN = 10;  //Momentary Button
int pinRunPels = 11;   //Activate Peltier Coolers
int pinStatusLED = 13;<br><p>int iLightMode = 0;<br>int iSensorValue = 0;
int iRunTime = 5000;
int iOffTime = 10000;
int iCountDelay = 0;
int iLastTemp = 0;</p><p>#define PIN 12   //Activate NeoPixles
// Parameter 1 = number of pixels in strip
// Parameter 2 = pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(8, PIN, NEO_GRB + NEO_KHZ800);</p><p>void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600); // set up Serial library at 9600 bps
  Serial.println("Debug Mode");
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
  
  pinMode(pinLightBTN, INPUT);
  pinMode(pinRunPels, OUTPUT);
  pinMode(pinStatusLED, OUTPUT);  
}</p><p>void loop() {
  // put your main code here, to run repeatedly:</p><p>  iSensorValue = analogRead(pinPot);   // reads the value of the potentiometer (value between 0 and 1023)
  Serial.println(iSensorValue);
  iSensorValue = map(iSensorValue, 0, 1023, 8, 0);     // scale it between 0 and 8
  Serial.println(iSensorValue);
  Serial.println("--");</p><p>  if (iSensorValue == 8) {
    iRunTime = 15000;
    iOffTime = 5000;
  }
  else if (iSensorValue == 7) {
    iRunTime = 10000;
    iOffTime = 5000;
  }
  else if (iSensorValue == 6) {
    iRunTime = 5000;
    iOffTime = 5000;
  }
  else if (iSensorValue == 5) {
    iRunTime = 5000;
    iOffTime = 10000;
  }
  else if (iSensorValue == 4) {
    iRunTime = 4000;
    iOffTime = 10000;
  }
  else if (iSensorValue == 3) {
    iRunTime = 3000;
    iOffTime = 10000;
  }
  else if (iSensorValue == 2) {
    iRunTime = 20000;
    iOffTime = 10000;
  }
  else if (iSensorValue == 1) {
    iRunTime = 1000;
    iOffTime = 10000;
  }
  else {
    iRunTime = 0;
    iOffTime = 1000;
  }
  
  if (iSensorValue != iLastTemp) {
     iLastTemp = iSensorValue;
     DispalyTempCount();
  }
  
  
  
  digitalWrite(pinStatusLED, HIGH);
  RunPeltiers();
  digitalWrite(pinStatusLED, LOW); 
  
  if (digitalRead(pinLightBTN) == HIGH) { 
    iLightMode += 1;
    delay(600);
    if (iLightMode >= 4) {
      iLightMode = 0;
    } 
  }
  
  if (iLightMode == 1) {       //Red Half
    TurnLightsRedHalf();
  }
  else if (iLightMode == 2) {  //Red Full
    TurnLightsRedFull();
  }
  else if (iLightMode == 3) {  //Red Full
    TurnLightsWhiteQuarter();
  }
  else {                       //Else Off
     TurnLightsOff();
  }</p><p>}</p><p>///////////////////////////// P-AC Subroutines ///////////////////////////// 
int RunPeltiers(){
  
  //On Cycle
  iCountDelay = 0;
  digitalWrite(pinRunPels, HIGH); 
  do {
    if (digitalRead(pinLightBTN) == HIGH) {
      iCountDelay = iRunTime + 1000;
      Serial.println("Skip 1");
    }
    delay(100);
    iCountDelay += 100;
  } while (iCountDelay <= iRunTime);
  
  //Off Cycle
  iCountDelay = 0;
  digitalWrite(pinRunPels, LOW); 
  do {
    if (digitalRead(pinLightBTN) == HIGH) {
      iCountDelay = iOffTime + 1000;
      Serial.println("Skip 2");
    }    
    delay(100);
    iCountDelay += 100; 
  } while (iCountDelay <= iOffTime);
  
  return 0;
}</p><p>int DispalyTempCount(){
  //strip.setPixelColor(n, red, green, blue); --> 0 = Off 255 = Full
  
  if (iLastTemp >= 1) {
  strip.setPixelColor(7, 0, 25, 0);    
  }
  
  if (iLastTemp >= 2) {
  strip.setPixelColor(6, 0, 25, 0);    
  }
  
  if (iLastTemp >= 3) {
  strip.setPixelColor(5, 0, 25, 0);    
  }</p><p>  if (iLastTemp >= 4) {
  strip.setPixelColor(4, 0, 25, 0);    
  }
  
  if (iLastTemp >= 5) {
  strip.setPixelColor(3, 0, 25, 0);    
  }</p><p>  if (iLastTemp >= 6) {
  strip.setPixelColor(2, 0, 25, 0);    
  }
  
  if (iLastTemp >= 7) {
  strip.setPixelColor(1, 0, 25, 0);    
  }
  
  if (iLastTemp >= 8) {
  strip.setPixelColor(0, 0, 25, 0);    
  }
  strip.show();
  delay(1000);
  TurnLightsOff();
  return 0;
}</p><p>///////////////////////////// Lighting Subroutines ///////////////////////////// 
int TurnLightsOff(){
  //strip.setPixelColor(n, red, green, blue); --> 0 = Off 255 = Full
  strip.setPixelColor(0, 0, 0, 0);
  strip.setPixelColor(1, 0, 0, 0);
  strip.setPixelColor(2, 0, 0, 0);
  strip.setPixelColor(3, 0, 0, 0);
  strip.setPixelColor(4, 0, 0, 0);
  strip.setPixelColor(5, 0, 0, 0);
  strip.setPixelColor(6, 0, 0, 0);
  strip.setPixelColor(7, 0, 0, 0); 
  strip.show();
   
  return 0;
}</p><p>int TurnLightsRedHalf(){
  //strip.setPixelColor(n, red, green, blue); --> 0 = Off 255 = Full
  strip.setPixelColor(0, 50, 0, 0);
  strip.setPixelColor(1, 50, 0, 0);
  strip.setPixelColor(2, 50, 0, 0);
  strip.setPixelColor(3, 50, 0, 0);
  strip.setPixelColor(4, 50, 0, 0);
  strip.setPixelColor(5, 50, 0, 0);
  strip.setPixelColor(6, 50, 0, 0);
  strip.setPixelColor(7, 50, 0, 0);     
  strip.show();
  return 0;
}</p><p>int TurnLightsRedFull(){
  //strip.setPixelColor(n, red, green, blue); --> 0 = Off 255 = Full
  strip.setPixelColor(0, 200, 0, 0);
  strip.setPixelColor(1, 200, 0, 0);
  strip.setPixelColor(2, 200, 0, 0);
  strip.setPixelColor(3, 200, 0, 0);
  strip.setPixelColor(4, 200, 0, 0);
  strip.setPixelColor(5, 200, 0, 0);
  strip.setPixelColor(6, 200, 0, 0);
  strip.setPixelColor(7, 200, 0, 0);      
  strip.show();
  return 0;
}</p><p>int TurnLightsWhiteQuarter(){
  //strip.setPixelColor(n, red, green, blue); --> 0 = Off 255 = Full
  strip.setPixelColor(0, 25, 25, 25);
  strip.setPixelColor(1, 25, 25, 25);
  strip.setPixelColor(2, 25, 25, 25);
  strip.setPixelColor(3, 25, 25, 25);
  strip.setPixelColor(4, 25, 25, 25);
  strip.setPixelColor(5, 25, 25, 25);
  strip.setPixelColor(6, 25, 25, 25);
  strip.setPixelColor(7, 25, 25, 25);      
  strip.show();
  return 0;
}</p><br></adafruit_neopixel.h>

Step 7: Create the P-AC Wrist Mount

A definite optional step as the peltiers used to make the P-AC tend to draw quite a bit of power, for only a marginal gain of utility, since unfortunately they can't actually change your body temperature like a real AC. However, what the P-AC can do* which unlike my previous version of the concept is also now a P-Heater** too, via a flip of the switch, can do is make someone notably more "comfortable" in environments that are between sweating and shivering temperatures.

While the peltiers are optional the brace is not, of which note the photos for how to cut the brace apart and then glue it back together to make the wrist brace Velcro flap starp work in reverse of how in normally does, otherwise such a heavy unit rather notably be constantly rocking back and forth on your wrist when walking.

If you do want to do add the P-AC/P-Heater use thermal epoxy to glue two peltiers to the heat sink with a copper pad in between said peltiers. Of note is that only one peltier is strictly need, though I used two plus the copper pad to achieve the correct height for the unit to be able to be constantly pressed against my skin, but no tighter. Either way use a bit of epoxy to coat the sharp edges of the upper most peltier so that it does not scratch your skin when inserting your hand into the brace.

.

.

*More testing needed but results with this more powerful peltier system in prototype 2.0 seem to defiantly indicate that P-ACs can have a definite mind/over matter effect, and that goes even more so for P-Heaters.

**Only use the P-Heater on the lowest settings as it can become hot enough to give mild burns if left too long on the higher settings.

Step 8: Finally Assembly

Feed the wires from the P-AC wrist mount into the frame and then with careful positioning attach both halves together with a very generous amount of hot-glue set to high heat or other equivalent adhesives.

If assembled Correctly, the front of the comm hub should halfway overlay your fingers with should provide optimal balance of the unit while still allowing for free grasping of items, such as my Apocalypse Mechanics Machete ;) Once verified that everything fits and works install the final component which is the 5v fan, that is last to go on as it greatly hinders installing everything else, I found. By carefully being bent back a few fins of the heat sink I found that #6-32x.75" machine screws could be used to securely mount the fan to the heat sink.

.

Conclusions:

While still an experimental design, that admittedly needs a slimmer shape on the next design iteration. This design greatly improved on its predecessor and is now what I use as my GPS mount & Bluetooth audio booster for road trips. More importantly, however, having a way to keep in contact with no-grid infrastructure plus having a myriad of way to keep everything charged built in, will see me use this current protopye, as is, should I ever get chance to help in a natural disaster area, or get caught in a Zombie Apocalypse!

Survival Ready Contest

Participated in the
Survival Ready Contest

Circuits Contest 2016

Participated in the
Circuits Contest 2016

Design Now: 3D Design Contest 2016

Participated in the
Design Now: 3D Design Contest 2016