100Ah battery box build

Ok, so this is a big one. I wanted to build a battery box that could keep me going a few days without being able to charge while camping and/or operating. I also wanted accurate power accounting and the ability to understand my power consumption and have alarms when usage exceeds specified thresholds, providing the opportunity to either adjust usage or in an emergency not be surprised when I drop out. I also wanted to design the system for maximum flexibility when it comes to charging and connecting loads. Most commercially-available systems that met capacity and power needs were designed around inverters and larger 30+ volt solar panels that were designed to mount on structures or large vehicles like RVs or vans rather than the smaller and more portable 18v open circuit foldable panels that are used more commonly for my purposes. Having a wider range of panels that I can use is better because it would be good to charge from either so not building in charging was ideal. I also found the options for high-amperage DC connectors lacking in many pre-built options. Some units would have one or two 25A outputs, but those are at the max current range some of my radios will draw at full power. I wanted some breathing room current-wise. In the event I wanted to operate one of my bigger radios at full power I’d rather not risk burning a fuse out or damaging my power source – especially in the field while I’m relying on it. It’s also nice to have many connectors available on the source which eliminates the need for a bunch of splitters. None of the commercially-available options I evaluated provided more than two high amperage connectors. Finally, I wanted a couple USB fast chargers for my and my partner’s devices which many commercial options provided, but they’d typically provide a single fast charging port.

I took some inspiration from a Powerwerx box that a fellow ham and NET team member Laura, KI7ZZQ purchased. That battery box was designed to accommodate a 50-70Ah battery which wouldn’t physically fit any of the 100Ah batteries I had been considering during the design phase, but it provided me a rough template I could build from in terms of layout. As with that box just including power distribution and monitoring in the box was a way I could reuse existing systems I have that perform well without having to buy more of those components. Buying a bunch of new parts is pretty expensive so not including more core devices in the box is definitely a plus.

This was not a cheap project, but I think it’ll be worth it.

Theory and design

By selecting a 100Ah battery I get 80Ah of usable power from the system without significantly decreasing the battery’s lifecycle. Using LiFePO4 batteries instead of lead-acid means I get an additional 30% depth of discharge without the destructive effects of discharging to 50%… The LiFePO4 battery I selected also weighs 26lbs. A similar capacity lead acid battery would weigh a lot more and probably require a much sturdier and expensive enclosure. Another advantage of LiFePO4 batteries is the lack of battery memory – that is to say the useful lifetime of a battery isn’t diminished by leaving it in a partially-charged state. Some battery technologies suffer from that problem which is a problem if you’re in a situation where you might not be able to completely recharge the battery completely during use. As far as parts go I wanted to attempt to source the parts I didn’t already have from a variety of vendors… I had a preference for smaller and more local vendors, but that didn’t work out 100% of the time. The enclosure (tool box) and a 1 1/8″ hole saw are two examples of where that didn’t work. The bill of materials will list the source of each component.

So let’s start with the system design itself. There are a few core components that I knew I’d probably want from designing a bigger high amperage system when my partner were considering purchasing and building out a van for camping/touring. The core parts that everything else would be designed around are:

  • 100Ah LiFePO4 battery
  • Reliable battery state and power usage monitoring capability
  • Battery disconnect for safety and preventing parasitic loads from draining the battery
  • Circuit breaker for the battery to prevent damage to components or fires
  • DC subpanel to split out and protect branch circuits
  • Two switched USB rapid chargers.
  • Flexible charging – AC-to-DC chargers (wall socket, generator), solar panels of various types, and DC-to-DC (vehicle, independent DC power supply, DC generator outputs)

Those components are roughly connected and arranged as follows. Chargers can be connected to any of the powerpole connectors listed below, and so can loads. The only loads that wouldn’t be connected to powerpole connectors are devices directly connected to the built-in USB A/C rapid chargers. You’ll notice there’s a power line running from the battery to the 500A shunt resistor and power supply that feeds the Victron BMV-712 through a 100mA fuse, bypassing the circuit breaker which also doubles as a battery disconnect. That’s intentional as the BMV-712 requires constant power to track battery state and if powered off it will lose its zero-point configuration. This is the only parasitic load that isn’t switched in this system apart from the BMS built into the battery, but it’s required to get accurate battery status so I compromised.

Block diagram showing electrical connections between a battery, shunt resistor, circuit breaker, DC subpanel, USB chargers, and power connectors.

Materials / parts

High amperage and distribution components
DescriptionQtyMake and modelVendorLinkNotesTool?
100Ah LiFePO4 battery1Relion RB100LightHarvest SolarHereN
Red #2/0 welding cable, 10′1?HereN
Black #2/0 welding cable, 10′1?N
100 amp circuit breaker *****1Eaton 285100FHereN
6-position 100A DC subpanel1BlueSea 5025HereN
Hammer-type crimping tool1TE(?)HereY
Battery monitor1Victron Energy BMV-712HereN
#2/0 Lug Ring Terminal (5/16″) *3?HereN
#2/0 Lug Ring Terminal (3/8″) *3?N
#2/0 Lug Ring Terminal (1/4″) *5?N
10A LiFePO4 14.6v battery charger1Bioenno Power BPC-1510ABioenno PowerHereDedicated AC-to-DC chargerN
Tool box1Dewalt DWST24082 One Touch Tool Box, BlackHome DepotHereUsed as enclosureN
#10-24 3/4″ cap screws and nuts (x8?)1?HereN
#10-24 1″ cap screws and nuts (x6?)1?HereN
#10-24 Bonded neoprene washer (x4)3?HereN
1 1/8″ hole saw1?HereUsed for Powerwerx panel mount devicesY
Panel mount powerpole socket (x2)2Powerwerx PanelPole2PowerwerxHereN
Panel mount powerpole socket (x1)1Powerwerx PanelPole1HereN
USB A QC + USB C PD charger, panel mount2Powerwerx PanelQCUSBCHereN
Bonded 10GA stranded copper wire, 25′1Powerwerx Wire-RB-10-25HereUsed for 30A branch circuitsN
Bonded 14GA stranded copper wire, 25′1Powerwerx Wire-RB-14-25Used for 15A branch circuitN
Powerpole to “cigarette lighter” adapter1Powerwerx SOC-PPHereStored in the enclosure as an adapterN
4-Way powerpole splitter2West Mountain Radio PWRNodeHam Radio OutletHereUsed as splitters for the 2x panel mount powerpole socketsN
Panel mount rocker switch w/red LED, 15A max1Powerwerx PanelSW-RedHereN
15/30/45A red powerpole housings6Powerwerx PowerpoleCaseHereN
15/30/45A black powerpole housings6N
Powerpole retention clips6N
45A powerpole contacts22N
Powerpole crimper1Powerwerx TRICrimpHereY
F2 blade connectors, 12-10GA3???N
F2 blade connectors, 16-14GA4???N
Lug ring terminal, 12-10GA6???N
Lug ring terminal, 16-14GA2???N
7.5A ATC blade fuse *3???N
30A ATC blade fuse *5???N
Assorted ATC blade fuses6???Included in enclosureN
Packing foam **????N
Electrical tape ***1???N
1 1/4″ bolt and flange nut ****1???N
Zip ties5???N
3/16″ (?) drill bit 1???Used to drill holes in plastic fins in toolbox for zip tiesN
Electric drill1???Used w/hole saws and drill bitsY
2″ hole saw1???Used to drill a hole for the Victron BMV-712 panelY
Phillips screw driver1???Y
Metal shears1???Used to cut #2/0 welding cableY
Diagonal cutters1???Y
Socket wrench1???Y
?mm socket1???Used for shunt boltsY
?mm socket1???Used for battery terminal boltsY
?mm socket1???Used for #10 nutsY
?mm socket1???Used for DC subpanel 100A contacts
Needle nose pliers1???Used to help pull wires, tighten panel mount nutsY
Claw hammer1???Used w/ the TE hammer-type crimping toolY
Pocket knife ******1???Y

Legend
? Can’t remember/unknown
— Same as above
* Includes spare(s) or extra(s)
** This is small-cell plastic foam used as packing to keep the battery from moving around a lot
*** Used mostly to bind wires and as extra insulation on the #2/0 ring terminals. Also used to physically shore connections up due to gaps in wire jacketing or potential stress points from bends.
**** Used as insurance to hold the toolbox closed in case the latch is opened unintentionally
***** Doubles as a battery disconnect switch
****** Used to clean plastic burrs left from the hole saws and to cut the jacketing on the #2/0 cable in preparation for crimping

Assembly

This was done in a a couple phases – in part because I was waiting for things to come in the mail, and in part because I sort of “winged it” building this out in terms of mounting components to the enclosure. The first thing I did was pick locations for each of the high amperage components: the battery, BMV-712’s 500A shunt, 100A circuit breaker, and the DC subpanel. I made sure to allow for enough space to run cables to and from each component before drilling holes for them. The battery was pushed to the left side of the tool box. This makes it a bit awkward to carry but creates enough space in the right side to mount everything.

Once I found a good placement for the components that required mounting I just drilled holes in the enclosure using the components as a template. For each component I drilled an initial hole and inserted one of the #10-24 cap screws in the hole to hold it. I then drilled out a second mount and placed another bolt in it. After I’d placed all the components and got the holes drilled for them I added the #10 bonded washers with the neoprene side on the outside of the enclosure. To minimize jagged edges from threads on the outside of the enclosure I put the phillips end of the cap screws on the outside as well. The nuts and lock washers were placed on the inside.

The next step was to route, measure, and cut the high amperage #2/0 welding cable between each component. I did a dry run of the cable from component to component and cut each piece to length. I ran a piece of from the negative battery post bolt to the BMV-712 shunt battery terminal, cut it, ran another piece from the shunt to the negative terminal of the DC subpanel to the BMV-712 shunt load terminal, and cut it. I then took the red #2/0 welding cable and ran it from the positive terminal on the DC subpanel to the 100A circuit breaker, cut it, and then ran another piece from the circuit breaker to the positive battery terminal, and then cut it.

For each piece of #2/0 welding cable I cut I stripped enough jacketing off of the end to fix the appropriate #2/0 lug ring terminal to the wire. Make sure the hole on each lug ring terminal matches the post you’re planning to connect it to. It’s worth double-checking before you crimp since each section of wire is cut to length. After verifying that I was using the right ring terminal for each connection I crimped them to the #2/0 welding cable. I then wrapped the bare metal parts of the lugs that might be prone to shorting with electrical tape since I didn’t have any heat shrink tubing. I also used the tape to shore the joint between the jacketing of the welding cable and crimp-on connector.

The next step is to hook the high amperage wire up to each component. This will help us figure out where to run the legs from the DC subpanel and to help us properly place the panel mount components without interfering with the high amperage wire runs and components mounted inside the enclosure. Before making the connections between components verify the polarity of the connections and break the circuit by pressing the reset button on the circuit breaker. The connections should be made according the the simplified wiring diagram above.

Completed mounting of all components in the lower portion of the enclosure
Completed mounting of all components in the lower portion of the enclosure

The next step is to place and mark each panel mount component. I chose to mount the BMV-712’s meter on the front of the tool box to the right of the latch since I mounted the DC subpanel on the flat part of right end of the toolbox. I mounted the 1x powerpole panel mount component on one of the angled surfaces on the right end of the enclosure so I could connect a charger easily when it’s stored on a shelf. I picked spots for the panel mount components on the lid because I think that’s going to be the easiest spot to make connections in the field. All the panel mount components were placed in such a way that the panel mount nuts cleared the plastic “fins” on the inside of the enclosure. Special care should be taken when placing components in the lid. There are a lot of plastic fins on the inside of the lid. Use the 2″ hole saw to cut the hole for the Victron BMV-712’s meter, and for all the other Powerwerx panel mount components use the 1 1/8″ hole saw. You might need to shave the decorative raised lines on the lid down with a pocket knife to ensure that the panel mount components mate to the outside of the lid properly.

Photo showing placement of all panel mount components

At this point it’s time to start making the connections from the subpanel to the panel mount powerpole connectors. Since I used 10GA wire capable of handling 30A it’s hard to daisy chain between ports so I opted to use some PWRNode splitters to make the connections to the 2x panel mount powerpole sockets. I made some shorter 2″ stubs of 10GA wire and crimped 45A powerpole conductors on both ends of each stub. Connecting all 4 ports requires 8 2″ stubs. Once I crimped the 45A conductors on I added the powerpole housings to one side of each stub. The other side of the stub was inserted into the panel mount connector. Each panel mount socket is connected to a single run of cable from the DC subpanel with powerpole connectors on the end of it. The idea is that each socket can support up to 30A of total current draw. Once that was complete the side with the housings were connected to the PWRNodes and powerpole retention clips were installed to keep all the powerpole connectors in place. The 1x powerpole connector was run directly to the DC subpanel. Each leg was then fused in the DC subpanel with a 30A fuse. I used some electrical tape to support the “joints” between the powerpole connectors that lead to the DC subpanel and the powerpole connectors themselves.

The next step in wiring the system is to connect the panel mount chargers in parallel and switch them with the rocker switch using the 14GA wire. This is accomplished using the connections as detailed in the simplified electrical diagram. The brass connector on the switch connects to the ground, the middle connector connects to the DC subpanel, and the silver connection on the end connects to the USB chargers wired in parallel. The photo below details how the connections to the panel mounted devices and sockets. I drilled a hole in one of the fins on the lid of the toolbox and wire tied the wires coming from the DC subpanel to the lid to keep the wires from migrating a lot during transport. I also used wire ties to hold some of the wires together coming out of the individual parts.

Now that all those connections are complete we can re-connect the battery, and while we’re at that we’ll hook the BMV-712 up. The BMV-712’s box has a handy connection diagram. In this step we’ll connect the battery and the BMV-712. First connect the BMV-712’s red (positive) wire connected to the temperature sensor lug to the battery using the ring terminal along with the terminal on the #2/0 welding cable. Both should connect directly to the positive battery terminal. Take care not to short the pin end of the BMV-712’s red power cable while connecting it. Once that’s connected to the positive battery terminal connect it to the B1 pin on the BMV-712’s shunt, and connect the black temperature monitor cable to B2 on the BMV-712’s shunt. The BMV-712’s manual will detail how that connection should be made. Now connect the gray 6-pin modular data cable from the shunt to the BMV-712’s panel mount meter. Once that’s been hooked up you can connect the negative battery terminal to the black wire leading to the battery side of the BMV-712 shunt. When properly connected the panel should light up blue and the display should become active. [Note: this was updated to include directions to connect a BMV-712 temperature sensor.]

Once all these connections are made and the battery is re-installed make sure you install a 7.5A fuse in the subpanel on the leg that connects to the USB chargers. If the 7.5A fuse blows during testing one or both of the USB chargers are wired backward. Use the + and – on the bottom to properly wire the positive and negative sides of the charger. Install 30A fuses on each leg that leads to powerpole panel mount sockets.

Now we’ll pull the yellow reset bar on the breaker back in to energize the DC subpanel. Once the subpanel is energized we can test the USB charger leg of the circuit by activating the toggle switch. The red LED should activate on the toggle switch, and both USB chargers should show their voltage with blue numerical LED displays. If all three of those work that’s wired correctly.

As a bonus I added some scraps of plastic closed cell packing “foam” around the battery to dampen vibration and shock to help hold the battery in place.

The installation is complete we can move onto programming the Victron BMV-712.

Configuring the Victron BMV-712

At this point we should set up the battery monitor. Some of the instructions in this section come in part from instructions provided to me by LightHarvest Solar. I modified some of the values in the configuration to better fit my use-case. The instructions in this section assume you’ve charged the battery completely using an appropriate LiFePO4 battery charger. I used the Bioenno charger listed in the bill of materials to fully charge the battery before configuring the BMV-712. To begin you’ll want to install the VictronConnect app on a device that it supports which also has Bluetooth. There are versions for IOS and Android.

After opening the app you’ll want to select your BMV-712 and pair with it. I also recommend changing the BMV-712’s pin to make sure someone doesn’t pair with it and modify its settings, especially if you’re around RVs or others with a Victron battery monitor. You can then modify the settings on the device. The major configuration tasks to do are configuring the parameters for your battery and doing a zero-point reset once your battery has been fully charged. To begin with we’ll configure the battery monitor with the properties of the Relion RB100. You can leave all the settings as defaults unless they’re specified below. I got the initial values and instructions to configure the battery monitor from LightHarvest Solar. It was provided with the purchase of the BMV-712. After opening settings and choosing “Battery” set the following:

  • Battery capacity: 100Ah (this is a 100Ah battery)
  • Charged voltage: 13.9V
  • Discharge floor: 20% (This is the lowest capacity you want the battery at)
  • Peukert exponent: 1.00
  • Charge efficiency factor: 99%
  • Current threshold: 0.10A
  • Time-to-go averaging period

Optionally, you can configure alarms for the system. I turned on the alarm buzzer and set the “Low SOC alarm” to go off at 40% and clear at 45%. Since you don’t want to draw the battery down lower than 20% I picked 40% to give me a warning well before I draw it down. If you draw the battery down below the discharge floor it can be damaged. You can also optionally configure a temperature alarm if you have the BMV-712 battery temperature sensor. See the “updates” section at the bottom of this post for details.

Once the battery has been configured and ALL loads and chargers except the BMV-712 have been disconnected you can then click the “synchronize” button, and then click “calibration”. Synchronize sets the battery state-of-charge to 100%. Calibration zeroes out the current measurement on the shunt resistor. If you disconnect the battery monitor you’ll need to redo this part of the process starting with a full charge.

Using the BMV-712

While this post is mostly focused on the app the display panel on the BMV-712 can display the status information using the arrow keys on the front panel. Navigating that is pretty easy, but I’d also recommend reading the manual as there’s more to the panel than just displaying data. The most common screens I use in the app are the device list which is used to manage Victron devices. They have an entire ecosystem of devices that can be managed and monitored from this app. I go through this to connect to my battery box. The battery box has been renamed in the settings (gear icon seen in the other screens). The status page shows you all the current stats for your battery – state of charge, voltage levels, current, and power. There’s one thing that’s cut off at the bottom which is the status of the control panel’s relays. For my configuration the relay is open since it’s not really doing anything. The history tab shows you stats for your battery over time. This data can be cleared, but it’s nice to understand what you’ve done with your battery over time so I probably won’t be clearing that until I replace the battery in the system. The trends tab is really nice to use when you’re watching your battery in real time from within the app. You don’t get data points when your app isn’t connected unless you get a Victron Cerbro GX or similar device but that’s overkill for my use-case.

Problems left to solve

There are still some problems to solve. I need to install some sort of barrier that prevents the battery from moving to the right inside the enclosure. I’m thinking about bolting a barrier into the enclosure to prevent too much movement. The toggle switch on the top isn’t weather resistant either. The toggle switch comes with a plastic cover but it’s impossible to install without the rocker switch popping out of the panel mount.

Updates

I decided to add a temperature sensor to the BMV-712 in order to make sure I’d get an alarm if the battery was out of the appropriate range to charge which is a more narrow range than the discharging temperature. The changes I made to connect the battery temperature sensor was to purchase a temperature sensor for $25. I disconnected the old wire running from the positive battery terminal to the current shunt, connected the new one, and connected the new larger lug to the battery terminal. I then connected the black wire for the temperature sensor to the open input on the shunt. After that I configured the BMV-712 to use the second input as a temperature sensor using the web application. Then I configured my high temperature trip temp to 55C and the high temperature clear to 53C. The alarm will go off 5C before the battery’s charge limit of 60C. The low temperature alarm was set to -15C and the low temperature clear was set to -13C. -15C is 5C above the battery’s minimum charging temperature limit of -20C. The connection diagram has been updated to reflect the new temperature sensor connection. This post talks about recently implemented changes to the battery box.

Coping with the heat wave

Hello all, while this isn’t actually a post about amateur radio I wanted to post about how we (my partner and I) decided to deal with the June 2021 heatwave in the Pacific Northwest. While this isn’t directly related to ham radio I think it’s worth discussing as the temperatures in this region don’t typically reach the levels they were at and most homes and people aren’t prepared to cope with those temperatures. Some folks will probably laugh at this post and the situation in its entirety, but you have to remember that homes, businesses, animals, and people in what is typically a fairly temperate climate aren’t used to these sorts of temperature spikes. Some of us will mostly be uncomfortable and maybe inconvenienced but for others this is a deadly situation. There are large numbers of unhoused folks sleeping rough and stuck outdoors during this time. It is easy to die of exposure in situations like this even in a city. In nature you might be better or worse off depending on where you are. When operating in the field it’s important to keep yourself and your equipment cool, and I don’t think this is the last time we will have unseasonably hot weather. Next time it could be during another disaster or trigger secondary problems like power outages. This post is mostly about optimizing a solution for a problem with cheap and easily available materials to decrease misery and help alleviate a situation that could lead to an emergency.

One obvious issue with the house we live in during this specific situation is that it has a very large single-paned south-facing window, which definitely heats the house up during the summer. We were fortunate enough to have a single window-mounted AC unit for the whole house but it was only able to keep the house in the high 80s to low 90s which is definitely better than 110+ degrees, but I wasn’t sure if the power grid would hold up under additional load and the heat itself. My partner and I decided we’d take some steps to cool the house further for our comfort and our dog’s safety. The most obvious thing we could do to limit solar gain would be to cover windows that we could with blankets, etc. which helped, but we didn’t have a big enough blanket to cover the window. I wanted to actually keep the heat outside rather than heating a blanket that was already on the inside of the house and having it radiate that heat into the living space. A cheap reflective shield with an air gap between the shield and the house would be a possible solution to the problem.

Problems to solve:

  • Keeping as much heat out of the house as possible
  • Shielding a large area
  • Keeping it simple
  • Passive cooling (a plus)
  • Temporary mounting
  • Not wanting to put tape on paint
  • Keeping it cheap
View of the outside of a house with a mylar blanket suspended in front of a large window supported by paracord. There are lots of plants.
Hastily constructed mylar “heat shield”

A quick trip to the grocery store yielded the following materials: a roll of duct tape, 50′ of paracord, and 4 mylar blankets (we only needed 3 it turns out). The entire solution cost less than $20, some moderate burns, and sweat. We taped the edges of the mylar blankets on both sides to hold them together and taped across the gap intentionally leaving holes that would be left to ensure the wind loading was lower since this was in part just held up by tape. Our first attempt at the solution was to run paracord from the fence to the gutter, but it required too much paracord and the angle the mylar blanket would be at would be less-than-optimal so I ran the paracord from the ground and weighed the ground ends and center point down with rocks. The end of the paracord attached to the gutter was run between the gutter nails and didn’t require tying or taping. I did, however, end up taping the corner of the mylar blanket to the inside of the rain gutter because there wasn’t a suitable anchor point for paracord near the corner of the house that I wanted to cover. We weighed down one corner with some rocks and were back inside within 35 minutes. Ouch note: ladders get hot in intense sun and gloves are a good idea.

The photos I’m including were taken after day 2. We had to go back out and shore parts of the heat shield up because some of the spots I taped to the paracord slid down. To combat that I just did extra-long wraps of duct tape around the paracord and attached it to the edges of the mylar blankets. I also taped the inside of the shield to the paracord at the bottom to prevent the heat shield from riding up the paracord. The end of the mylar blanket that was weighed down by rocks also tore in the wind/breeze so we coated the corner we stuck the rocks in with duct tape as a protective pad for the mylar. All the photos are this setup are shown below. The air gap between the window and mylar also served as a nice passive cooler. As the breeze and wind blew between the mylar and window it carried some of the heat away. After installing the mylar heat shield the temperature in the house dropped by 10-15 degrees over the next 30 minutes!

View from the inside of the window showing hanging plants, art work, and the mylar heat shield. Paracord is duct taped to the blakent to keep it off of the window and in position.
View of the back of the heat shield through the window.
One corner of a mylar blanket duct taped to the inside of a rain gutter. The tape is coming off the gutter in spots and the blanket is precariously attached.
Duct taped corner two days after installation. This is the weakest part of the installation.
Paracord tied around two rocks being used as a center point anchor with two "wings" going two directions. Mint and raspberry plants are behind the rocks.
Rocks anchoring the center point of the paracord running from the ground to the gutter. Both ends of the paracord were held down by rocks as well.
One corner of a mylar blanket being covered in duct tape and weighed down by three pieces of broken concrete sitting on a piece of wood in front of some siding.
The duct tape re-enforced corner of the mylar blanket is held down with broken concrete.

Pros:

  • Cheap materials that are readily available
  • Relatively fast to set up on the fly
  • Minimal tooling required to put it up
  • Removable
  • No tape used where it could remove paint
  • Effective at reducing temperature and quickly

Cons:

  • One-time use
  • Will require cutting to get it down
  • Required some maintenance after a day of being up
  • Needs a ladder to set up
  • Required two people to be outside in the heat on the south face of the house for 35 minutes
  • Kinda ugly
  • Dealing with duct tape on top of a ladder in wind wearing gloves is a PITA

Lessons learned

  • I burned myself on the ladder before getting gloves. Don’t get burned.
  • I got sunburned, but when I sweat it dissolves sunscreen so that was expected.
  • I should build something prettier ahead of time that’s easy to take up and down but also cheap to build.
  • Putting a ladder in the middle of a garden bed without absolutely destroying the (very thorny) plants is hard but doable.
  • The mylar blankets in this configuration worked very well!

Modified Ed Fong roll-up dual band J-pole antenna kit

Plastic bag containing a roll-up J-pole antenna and various adapters
Ed Fong roll-up J-pole kit

Howdy y’all! This is my second post for today. I wanted to explain my modified Ed Fong roll-up J-pole antenna and kit. This is the stock Ed Fong DBJ-2 (ham) dual band roll up antenna kit with a twist and an extended adapter pack. The antenna itself is pretty great, but I noticed while using it that there were a couple issues regarding setup. I had trouble hanging it in bushes and trees without carrying some extra materials like paracord. In addition to that sometimes the antenna would snag and you’d need to pull on the attached feed line to get it down which could damage the antenna by weakening connections between the feed line and ladder line or separating them entirely! The antenna comes with a wire tie attached to the end which could be used to hang it from a small object, but it didn’t work well because unless you were hanging it from a small metal object like a nail. Using a J-pole with metal objects near them and above the bottom of the antenna can detune them, and likely increasing the the SWR of your setup. Here’s how I solved both of those problems and set the kit up for a number of radios I and other friends have just in case we needed to hook something different up to it. It has come in handy already.

Unrolled j-pole antenna on a wooden table
Unrolled J-pole antenna

Solving the ease-of-hanging and snagging issues turned out to be the same solution – creative use of inexpensive paracord and heat shrink tubing. The ladder line that serves as the antenna’s radiator has convenient slots that one can weave paracord through. If you tie the paracord to the top of the antenna and weave the paracord through the slots in the antenna you can take a long end and throw it over a branch or tie it to some overhead structure, and also use it as a more rugged line to pull a stuck antenna down with. My initial setup didn’t have enough paracord on the bottom to pull the antenna down when it was up higher and stuck so I added the bright red line to give it more length to retrieve it from a higher location. The bright red length of paracord with a reflective 3M strip woven in also makes it more visible in low light or when you’re looking for the end with a flash light. We can now hang and retrieve our antenna easily and prevent damage to it if there’s a snag you need to apply more pulling force. Here are some more detailed pictures of how the paracord is tied on, woven, and secured by heat shrink tubing.

paracord tied to the antenna with the knot covered by heat shring tubing.
Paracord tied to the top of the antenna and the knot is covered by paracord
View of the paracord woven through the antenna and secured by intermittently placed pieces of heat shrink tubing.
Paracord woven through the antenna and intermittently secured by heat shrink tubing
The bottom of the antenna secured with heat shrink tubing and the two sections of the recovery end are tied together

At this point we should probably talk abut the kit in its entirety. The modified antenna is obviously a critical component, but being able to connect the antenna to various radios is also very important. For that we’ll start with an exploded view of the kit.

Plastic bags, cables, adapters, and the cable arranged on a wooden table.
All components of the kit arranged on the table

This kit isn’t anything really fancy. It comes with the stock antenna and male-to-female extended BNC cable. The antenna itself has a BNC end, but not every radio has a BNC connector. I’ve used this antenna with a number of radios including dual-band Kenwood mobile radios, a Baofeng UV-5R, a Yaesu FT3DR, and a Yaesu FT-857D. The two of those radios have a PL-239/SO-239 connector, one has a male SMA, and one has a female SMA connection. This adapter kit allows an operator to connect any radio with a BNC, SMA male, SMA female, or a PL-239/SO-239 connector to the antenna… additionally you can connect one or more pieces of coax with PL-239/SO-239 cables as well. This can be handy if the antenna is up high or if the radio is far from the antenna. Here’s a list of the parts in the graphic top to bottom, left to right:

  • Medium sized heavy plastic zip-loc bag to hold the kit
  • Small heavy plastic zip-loc bag to hold small adapter parts
  • 6′ BNC male to female extension cable (originally came with the antenna)
  • 2x PL-239/SO-239 barrel connectors for both “changing the gender” (I’m not a fan of this terminology, but it’s what’s used broadly) of the BNC to PL-239/SO-239 adapter and for connecting two pieces of feed line together.
  • BNC to PL-239/SO-239 adapter
  • BNC to SMA male adapter with a wide-flanged connector (for my Yaesu HT)
  • BNC to SMA male adapter with a narrow spinning connector
  • BNC to SMA female adapter with a wide-flanged connector
  • BNC female barrel connector for use with the narrow spinning connector to adapt it to a male port
  • Rolled up J-pole antenna

With this set of adapters and cables we can connect this antenna to a wide variety of radios which might be handy in an emergency, or if you happen to forget another antenna. It’s also worth mentioning that this method could also be applied to other roll-up J-pole antennas, not just for ham bands.

Lab599 TX-500 QRP radio kit and friends

Ammo can, two solar panels with a cloth pouch stacked on top, and a carabiner holding assorted items together on a wood table.
HF QRP radio kit, solar charging kit, antenna hanging kit

Howdy all! This is a new post about my portable QRP radio kit and it supporting kits based around my Lab599 TX-500. Its a fairly self-contained kit but doesn’t have a couple key elements included in the actual box. It doesn’t have any equipment to hang the included trail friendly end-fed half wave dipole or battery charging equipment. I’ll include those elements in this post as well, but they don’t live in the HF radio kit itself. This will be a long post so strap in!

The QRP radio kit

Let’s start with how the HF radio kit is built out. It’s based around a small ammo can I got at a discount store. I wanted to have a fairly self-contained kit that was water resistant and durable and I also wanted the ability to charge and use the battery with the ammo can lid closed to protect against water and dust and ingress. This is by no means waterproof but I wanted to make sure it was at least splash and rain resistant since I do a lot of operating in the Pacific Northwest region of the US which is notorious for its rainy weather.

DC barrel jack with wire hanging off and a DC barrel connector with screw terminals on a wood table.
DC barrel connectors
DC barrel jack connected to a AC to DC charger on a wood table.
Testing charger and connector fit

The kit’s battery is a 4.5Ah Bioenno LiFePO4 pack. In order to make sure I can leave that battery in the kit I had to devise a way to connect it to an external charger through the can. After calling the folks at Bioenno I was able to determine the barrel connectors included on their batteries are 5.2 x 2.1mm connectors. The panel mount water resistant connectors I used have 18 gauge wire that supports a max of 10A at 12V DC. I was also able to track down a pack of screw-on terminal barrel connectors as well to connect the battery inside the ammo can. This setup also allows the battery can stay inside the case while the radio is being operated which is good for water and dust resistance. I recommend testing your connections before you drill for both polarity and appropriate voltage levels. In my case they worked fine so I proceeded…

Inside view of an ammo can with barrel connector jack mounted on the front and the DC barrel connector connected to the wire coming from the jack. The barrel connector end's wires are hot glued to the barrel connector. The ammo can is sitting on a wood table and some wires and connectors are sitting on the table in the background.
DC panel mount connector installed in case and insulated screw terminal connector installed

The first consideration in installing the connector is making sure the connector doesn’t interfere with the mechanism on the case that opens/closes it. After that you have to worry about the connector and wire on the inside of the case interfering with items in the case when it’s packed. I decided to place the connector in such a way that the radio laying on its side against the wall of the case would rest against the installed connector. Using a simple metal drill bit I was able to make a hole big enough for the panel mount connector just below the latch mechanism. I then removed any metal burs from the drilled hole and any turnings from the inside of the can to prevent rust, scratching, and short circuits. After installing the panel mount jack and the rubber water/dust cap I just screwed the positive and negative wires into the barrel connector that will hook up to the battery. To ensure no small metal parts caused a short I used hot glue to insulate and strengthen the connection points on the screw terminal barrel connector.

Interior view of an ammo can with a Bioenno battery mounted inside on a wooden table. There are also some wires and connectors sitting on the table in the background.
4.5Ah battery installed in the corner of the ammo can
Interior view of an ammo can with a battery affixed inside and connected to DC barrel connector. A powerpole connector is visible in someone's hand. A wooden table with various cables and connectors is visible in the background.
Battery connected to external DC barrel connector

The next step is adding the battery to the ammo can. I wanted the battery to be semi-permanently mounted in the box so I opted to use 2 x 4″ Velcro strips to secure the battery to two surfaces in the box. the link for those strips is to Amazon but similar strips are available at many stores and websites. The optimum position for the battery seemed to be in a corner where I could install Velcro strips on two of the faces of the corner making it removable without drilling more hols in the can or dealing with metal and glue. Fit testing your equipment is also important when deciding where the battery will be installed. I did that by attaching the loop side of the 2 x 4″ Velcro strips I cut to size to the battery but not removing the plastic that would go on the hook side of the Velcro intended for the inside of the can. Once I was satisfied with the location of the battery and my ability to pack the kit I removed the plastic backing from the hook side of the Velcro and stuck the battery in against the back and corner of the can. I was then able to connect the pass through electrical connection and make sure everything worked properly including polarization of the battery connection. Failing to test the polarity could result in damage to equipment or even potential issues that would compromise the battery. It should also be noted that the radio’s rubber feet make the fit against the battery very tight.

Ammo can and its lid as well as several cables and devices are laid out on a wooden table.
Kit contents + Bioenno 2A AC-DC charger

Here’s the contents of the kit. Left to right, top to bottom.

  • Ammo can body with battery and pass through DC cable installed.
  • Plastic bag to hold small adapters and connectors.
  • Ammo can lid
  • Bioenno 2A AC to DC charger for LiFePO4 batteries
  • Lab599 TX-500 speaker mic and Raspberry Pi 4 dedicated to the kit
  • West Mountain Radio PWRnode (4-way Anderson power pole connector in a right-hand-red configuration)
  • Lab599 TX-500 power connector w/Anderson powerpole connector installed in right hand red configuration
  • 2x Powerwerx USBbuddies (12v to 5v USB power converter)
  • 2x 25′ RG-174U cables w/BNC ends (multiple segments of shorter cable allow me to make the shortest connection possible for a given deployment)
  • 15′ RG-174U cable w/BNC ends
  • DIY REM/DATA GX12-7 connector for the TX-500 with a 1/8″ TRRS end connected to a Millso TRRS USB sound card
  • TX-500 USB CAT cable (stock cable that comes w/radio)
  • Par EndFedz trail-friendly EFT-10/20/40m antenna on winder w/BNC connector. This has some red paracord loops attached at each end of the antenna for easier connection to support lines and for visibility.
  • Powerwerx USBbuddy w/spliced-on USB-C connector for the dedicated Raspberry Pi 4. The splice minimizes cable length for less voltage drop and excess cable.
  • TX-500 radio w/3D printed GX-12 series connector dust caps caps installed
  • 2x DIY 5.2 x 2.1mm barrel connector to Anderson Powerpole adapter cables
  • 2x 6″ USB A to MicroUSB cables to connect devices for charging
  • 2x 6″ USB A to USB C cables to connect devices for charging
  • TX-500 morse code (CW) key connection cable (GX12-2 to 1/8″ TS)
  • W2ENY headset adapter wired for a dynamic mic. (The included adapter with the TX-500 was defective from the start in such a way that I’d have to significantly shorten the cable, and I also wanted to use a different PTT button and my existing Heil headset with a dynamic mic element)
  • 2x BNC barrel connectors to connect feed line segments together
  • 1/4″ to 1/8″ TS adapter for PTT switches
  • 1/8″ to 1/8″ TRS to TS adapter for ear buds connected to the speaker mic
  • 90 degree male to female PL-239/SO-239 connector (convenience)
  • BNC to PL-230/SO-239 male adapter (for connecting to most of my other antennas)
  • DIY 1/8″ TS PTT button made from spare parts I had lying around

Putting the kit together layer-by-layer is pretty easy. The below photos illustrate how the kit is packed in 3 layers – bottom to top.

Equipment packed into an ammo can.
The first layer at the bottom of the kit – battery, radio, Raspberry Pi, RPi USB C power converter, adpater/connector bag, radio power cable, Powerpole to barrel connector adapters, TX-500 data and CAT cable.
Equipment packed into an ammo can.
The middle layer of the packed kit – 2x USB buddies, all coiled feed line
Equipment packed into an ammo can.
The top layer of the packed kit – Speaker mic and its cable coiled around the trail-friendly antenna

Solar power kit

Now that we’ve covered the kit contents let’s talk field charging with solar power! The solar charging system I typically bring with this radio uses one or two 20W Goal Zero Nomad 20 folding solar panels. Those attach to a Buddipole PowerMini charge controller and power meter. Much of this solar charging kit is composed of cables, but it’s designed to be used with a number of my radios, batteries, portable lights, and USB device chargers.

Two small folded solar panels, one facing up, and the other facing down and a cloth pouch sitting on a wooden table.
Two solar panels and the charger kit

Depending on the deployment I may bring one or both solar panels with the charger kit, or sometimes I’ll just bring the charger kit for power metering to understand how much I’ve drawn my batteries down and at what rate I’m using power. You can check the Buddipole PowerMini’s product page to learn more about it and ways it can be used. In some cases with good sunlight a single 20W panel can provide around 1A (typical max power I’ve gotten from the panels), but in overcast conditions I might use both panels to get 1A peak power. It also might be a good idea to bring both panels to charge at about 2A. It’s especially nice if I expect to charge a phone/tablet and run a radio with a Raspberry Pi if I’m using data modes.

In the above photo you can see the two Goal Zero Nomand 20 solar panels. One of them is staged to show the top view of the panel and the other the bottom view. Each panel has a kick stand to hold itself up at various angles on the ground, cable with an 8mm plug, a USB charging port, and holes in the corners of the panel to suspend them. The Nomad 20s fold open to reveal three solar cells.

An opened cloth pouch open revealing devices and cables secured to the inside with paracord and elastic bands.
Charger kit opened
An empty cloth pouch, a velcro-backed sleeve, various cables and devices laid out on a wooden table.
Disassembled charger kit

The solar charger kit consists of a Condor MOLLE compatible pouch that has a detachable main pocket which allows you to install and remove the pocket without disconnecting the MOLLE part from the webbing, and also has a loop for easily suspending hanging the kit from something. The kit contains the following items:

  • Condor MOLLE compatible pouch w/ paracord loops to hold and suspend the Buddipole PowerMini
  • Condor MOLLE compatible pouch attachment platform. This comes as a single unit with the pouch listed above.
  • West Mountain Radio PWRNode (4-way Anderson Powerpole connector)
  • DIY MC-4 to Anderson Powerpole connector (for a 100W solar panel not pictured here)
  • BuddiPole PowerMini
  • DIY 2.5″ Anderson Powerpole jumper cable w/10 GA wire (rated for 30A @ 12V DC)
  • DIY 6″ Anderson Powerpole jumper cable w/10 GA wire (rated for 30A @ 12V DC)
  • DIY 4″ Anderson Powerpole to Goal Zero male 8mm connector pigtail.
  • DIY 4″ dual Goal Zero female 8mm plug to Anderson Powerpole pigtail. This allows the two Goal Zero solar panels to be used simultaneously.
  • DIY 3′ Female Goal Zero 8mm to Anderson Powerpole cable.

You’ll probably notice there are a lot of seemingly redundant connectors and pigtails in this kit. There’s a reason I carry so many adapters around, and that is to make sure I can run as little cable as possible to achieve connections between system components. Being able to use shorter cables help limit voltage drop, but having the option to use a longer cable to connect the solar panels might mean I can stay in the shade and keep my solar panels in the sun. The short Anderson Powerpole jumpers included in the kit can help me connect to the battery or connect a PWRNode to the PowerMini. The Anderson Powerpole connectors on the side of the PowerMini don’t allow you to connect the PWRNode directly to it, and even if they did you’d lose two of the four connections on the PowerMini side of the PWRNode. In most cases this kit powers the entire radio doing phone and data, a phone and tablet, etc. Most of the time the equipment barely uses the battery while operating during the day and I have a full battery to use at night for the radio and lights.

Antenna hanging kit

Two hanks of paracord, a throwing weight, and tent stakes mounted to a carabiner sitting on a wooden table.
Antenna hanging kit

Last but not least we have the antenna hanging kit. It’s great to have a radio and a way to power it, but if you can’t get your antenna where it needs to be it’s all for nothing. This part of the kit rounds off the portable radio station. It’s designed to work with a number of wire antennas I have – a Par EndFedz 6m antenna, the Chameleon EMCOMM III Portable, and the Par EndFedz EFT-10/20/40 trail friendly antenna that lives in the HF radio kit. In the case of the trail friendly antenna we require two points of suspension for horizontal dipole operation – the end of the wire antenna and the transformer component. Being in Oregon and setting up my radio station in the region quite a bit I frequently rely on trees as antenna supports, and thus also pack an arborist’s weight as part of my equipment to assist in hanging the line. It adds a lot of weight but is definitely worth it. Using rocks and other tree branches works but definitely comes with snagging risks and the possibility your line will come off of the wight you’re using to get the line up… especially when it comes to rocks. I carry 4 aluminum tent stakes with paracord loops and quick links for attaching line. Those are bound during transport by a piece of paracord I tied together to make the clanking of the tent stakes go away and to keep them from flopping everywhere. There are four aluminum tent stakes in the kit because I might want to anchor my Chameleon EMCOMM III in 3 or 4 spots depending on antenna configuration. I have two 75′ high visibility paracord hanks wound around Chameleon wire winders that can support two ends of antennas that are in a horizontal dipole configuration. Each hank of paracord has a quick link attached for connecting to the ends of an antenna or suspension point, and the arborist’s weight for deployment. I can leave one of the paracord hanks behind if I want to set an antenna up in a configuration that only requires one suspension point like an inverted V. I added a small loop of paracord to the Chameleon wire winders in one of the corner holes to take the weight of the assembly off of the elastic band that wraps the paracord when the hank is being stored or transported. The locking carabiner is used to hold everything together, clip the kit onto something like a backpack, or hang it from a pocket during setup. The specific carabiner I’m using is probably overkill but I had it laying around so I used it. There’s also another loop of paracord attached to the carabiner which acts as a more comfortable carrying handle and for storage by hanging from a door knob.

Antenna hanging equipment laid out on a wooden table.
The antenna hanger kit broken down to (most) of its individual components

Kit parts list below:

  • Notch 14oz arborist’s weight
  • Camp locking carabiner
  • Black paracord cut small into smaller pieces for use as a handle, 2x wire winder strain relief loops, and a keeper for the tent stakes (don’t ask me how I figured out how to tie that. I can’t really tell you how I did it except that I did a lot of experimentation.
  • 2x Chameleon wire winders
  • 6x threaded quick links (4 on stakes, 2 on the 75′ paracord)
  • 2x high visibility 75 ft paracord hanks w/ 3M high visibility strip included for working on the antenna suspension at night
Detailed view of tent stakes secured in a paracord sleeve.
Tent stake holder assembled

Note the paracord attachment point run through the quick links that make sure they don’t come out of the holder or make a bunch of noise. Both loops of black paracord go through the carabiner, but if you remove the attachment point with the quick links from the carabiner it’s easy to just pull the quick links off.

Chameleon wire winder with bright yellow paracord wrapped around it and secured to the wire winder by an elastic band. The paracord and wire winder are connected together with a quick link.
75′ high vis paracord wrapped around Chameleon wire winder and set up for transport

This is a more detailed view of one of the two paracord hanks. Both are set up the same way. The paracord is wrapped around the Chameleon wire winder and is held on the winder using the built-in elastic band which is wrapped around the paracord and secured with the pictured notches. The quick link is attached to the throw/attachment end of the paracord, and the quick link is also attached to the small black loop of paracord to take strain off of the elastic band during transport. This design uses the quick link, black paracord loop, and plastic wire winder plate to take the weight of the assembly when attached to the carabiner.

Connecting it all

While this isn’t necessarily directly related to the composition of the kits I described above I decided to diagram out how the station is wired up for my typical use and add this section after I wrote the original post. You’ll note that some components are only used in data operations, and some are only hooked up when needed. For example, I won’t need the light unless it’s dark, I won’t want to use the Raspberry Pi unless I’m doing data comms or using the documentation server. In addition I won’t have any of the USB buddies that I don’t need hooked up at any time because they draw power, and unless I want that power to go to something I just won’t use it. If I’m deploying at night and don’t expect to stick around until morning I won’t deploy the solar panels and add the hassle of managing those additional cables and connections. In any case, this is basically how it’s all wired up for my typical deployments. Sometimes I’ll use different components such as a 100W solar panel instead of the 20s, or add a travel router and a USB buddy to the data deployment depending on my situation and available power/battery.

Diagram showing interconnection of components with various colored lines.

Wrapping it up

So, this is the kits! I don’t always use the trail-friendly antenna with this radio, but it’s what I include in the kit by default. I also use a Samsung Galaxy tablet and sometimes a customized travel wireless router in conjunction with this kit when I do data mode work to interact with the Raspberry Pi 4 in this kit and / or one of the other ones I have set up, but that’s a whole other post.

Operating from a park for a couple hours

After a bit of a posting hiatus I thought I’d post a bit about some impromptu radio operation from a park on a fairly sunny weekend day. My partner had a meeting with some folks in our pod in Ladd’s Addition, a Portland neighborhood with a central park so I decided to set up my portable radio station and do some UHF/VHF work locally to see who I could reach from said park. The station I brought is based on a Kenwood TM-V71A and fits in a single bag along with a battery and a 20W folding solar panel. This is essentially the same setup I’d use for emergency communications with a larger antenna or solar panel.

Roll-up J-Pole antenna hung in a rose bush
Ed Fong roll up j-pole deployed in bush
A radio sitting on top of a backpack connected to a solar charger, solar panel, and battery.
Portable UHF/VHF radio and power setup.

I ended up putting my modified Ed Fong DBJ-1 roll-up j-pole antenna in a large rose bush and hooking it up to my TM-V71A, and hooking the battery, solar panel, and charge controller up. I started operating at medium power (10W) and was able to reach Roger, W7RC, in Battleground, WA without issue on the 2M calling frequency (146.520MHz). This is pretty typical as he runs a beam antenna with the capability of transmitting at 1.5KW and is something of a local fixture. He reported me coming in with full quieting at 10W, and when I dropped to 5W (low power) he heard me with a little static. I also made some additional contacts including one in the Council Crest area: Ed, WB2QHS. He was out for a walk with an HT and we were able to talk with perfect clarity and then some static as he moved around with me running 5 and 10W. His elevated position helped facilitate communications. In about 2.5 hours I used somewhere around 1.3Ah of battery power, but was able to recharge the battery completely from the solar panel by the time I left. Not bad! The radio draws about 0.6A idling, and the solar panel charged at a maximum rate of ~1.1A in more intense sunlight. When I was transmitting at 10W the radio drew ~5A and at 5W ~3.5A. All these power figures are as measured by my Buddipole Power Mini. The current model features a USB port where the one I’m running doesn’t. I should also mention I topped up my phone charge from the battery as well.

If the solar panel provides more power than is required for the radio’s operation and the battery is charged the radio doesn’t draw from the battery. In the event the solar panel isn’t providing enough power to cover the radio’s power needs it dips into the battery, and when the radio consumes less power than the solar panel provides the battery is charged with spare current.

Closed backpack on the groud with a folded solar panel in the attached cargo net.
UHF/VHF setup packed up in a single backpack.

As shown above the whole station packs into my backpack without issue. Were I not on call for my job and carrying a hotspot and laptop there would be some additional room in the bag.

Diagram depicting a solar panel and battery attached to a controller, the controller to a radio, and a radio to an antenna.
Portable radio station block diagram depicting the connections between various station components.

A new CLI utility and daemon for JS8Call!

Hello all, I wrote a new utility for JS8Call. It can be found at https://github.com/ThreeSixes/js8cli. JS8CLI has been in the works and moving slowly for the last couple months. This new utility replaces the some of the functionality of the JS8CallTools GUI with command line functionality and can run as a daemon in the background. I also added a few features to this that probably should already be in JS8Call such as automatic GPS location support and the ability to update APRS position information via JS8Call automatically and periodically. This utility also allows you to send SMS messages via APRS from the console over JS8Call.

JS8Call sending a text message driven by js8cli being run in a command line window.
Screenshot of the CLI utility feeding JS8Call

This utility leverages JS8Call’s API and can run in either TCP or UDP mode. I also wrote a Python 3 class that can be used to interface with JS8Call’s API which isn’t really documented though it’s fairly simple to use (see mainwindow.cpp). It’s mostly just JSON sentences sent over a network stream to the application.

The JS8CLI application is also a good citizen and leverages GPSD to share the GPS with other applications rather than bogarting the serial port. This also makes it possible to get position information from another host on a network. This could be useful in fixed or networked applications or cases where a GPS needs to be remote. The SMS functionality doesn’t require GPS capabilities at all.

Thinking about off grid / grid down networking and ham radio

Hello all, I wanted to talk a bit about the subject of off grid networking and digital ham radio communications that leverage modern technologies that we use and rely on every day. I’ve been doing a number of experiments that leverage Raspberry Pis, phones, tablets, and laptops in the shack, in the field, and while traveling to operate one or more ham radios.

I’ll go through the ways I’ve configured my field computers to operate in: as a single device, as two or more devices, as devices connected to a $25 travel router running OpenWrt, and as equipment connected to a home network. The reality of this setup is that all my off grid computers work in one of two ways given any situation, but with some subtle differences.

The broad scenario 1 is when one of my Pis detect a wireless network they’re configured to connect to. This can mean they’re connected to a familiar Internet-connected wifi network at the QTH or elsewhere as a client, OR they’ve connected as a client to a wifi network generated in the field by another device designed to operate off grid. This means the device is acting as a standard wifi client.

The second broad scenario that one of my Pis supports is that it does not detect a recognized wireless network and generates its own. Only one device should be in this mode in any scenario. Once a single device generates a network any additional Pis, laptops, tablets, phones, etc. should connect to this Pi which will also automatically serve DHCP, DNS, NTP (in some cases), etc. This host then becomes responsible for handling basic network services as well as its ham radio related functions. There is, however, a drawback to this scenario with my current setup. For some reason my Raspberry Pi 4s and Raspberry Pi Zero W will stop passing network traffic after a few minutes. The solution to this problem is just to re-connect to the wireless network and things work again, but reliability is an issue. If you can’t simply log in and reconnect a Pi you have to reboot it. I address my solution in one of the more specific scenarios discussed later.

By supporting these two broad ways of handling connectivity we can create effective on and off grid networks. This makes sense because the first host that gets powered up has the chance of becoming the master of the wireless network. By coordinating the name of your off grid or standalone wireless network and its pre-shared keys you can create a network that can be formed on the fly, and that can have at least some self-healing properties in the event of a device failure. If all the nodes are capable of becoming an access point with all necessary network services in the absence of another we can ensure our services are available, or are as available as possible.

Let’s start with the five very specific scenarios we mentioned earlier. Notice that these five scenarios are mostly combinations of the two very broad ways our devices are configured to behave.

First let’s say that things are normal and we’re doing some digital HF or UHF/VHF work in the shack. Our local infrastructure is working fine, our Internet connectivity is fast and working well. Because all of our devices are clients on our home network we can use any device to access VNC, SSH, HTTP, or Winlink services on our Pis without issue while watching our favorite streaming service. All the Pis we have powered up are clients to an established network.

Secondly let’s talk about a scenario where we’re on battery but no configured wireless networks are available. Maybe we’re in an emergency scenario, camping, or on the road. Our Pi attached to our radio generates a new wireless network that you can connect to and starts the necessary DNS, DHCP, or even NTP service to allow wireless clients to connect and use provided services. Maybe this Pi is running JS8Call/FlDigi or Pat Winlink. You just connect your phone, tablet, or laptop to this network and access the documentation web server, Winlink web page, or use VNC/SSH to control the Pi. We’re now able to communicate using our radio via digital modes and read any documentation we stored on the Pi. It should be pointed out that none of my field-portable Pis have keyboards, displays, or monitors of any kind when in normal use. I rely on other devices for those functions to cut down on power consumption and bulk.

Our third scenario assumes one operator with no configured wireless networks, but is running two radios. Maybe we have one Raspberry Pi attached to a UHF/VHF radio that’s set up for packet Winlink, and another HF rig running JS8Call. The Raspberry Pi that booted first is serving our wireless network and basic network infrastructure services that allow subsequent devices to connect. The operator is now able to connect to to the generated wireless network and use Pat Winlink as well as JS8Call or FLDigi. One person and one device can now manage two radios set up for different purposes! The trick is that we might not have 100% due to the connection issues with Pis when they’re in access point mode.

For our fourth scenario we’ll modify the last scenario a bit. We have one operator with one device connecting to two radios over the wifi connection. This time we’ll introduce our modified $25 wireless access point. It’s now generating the wireless network, serving DHCP, DNS, and NTP if one of our Pis with GPS units is connected. All Raspberry Pis are now in wifi client mode so we no longer have the connection reliability issues in our second and third scenarios! What’s even better is that if we have a wired Internet connection we can now plug that into the travel router and have full Internet connectivity for our Pis and operator’s device. Sweet!

Our fifth scenario builds on the fourth, but we’ll introduce one or more operators using one or more devices. This could also apply to the third scenario with a Pi hosting the wireless infrastructure without an access point but we’ll ignore that. Every radio operator connected to the wireless network can now queue up e-mail on Winlink or take turns using VNC to control our HF rig. All the operators on the network now have access to the documentation server because it’s just a web page that serves files. We now have a field network that can serve more than one radio operator, and we can be more efficient sending email over Winlink by batching, and we can also decide to create an APRS server that allows multiple instances of APRSDroid or some other KISS over TCP client to connect if we’d like.

I hope you came away from this thinking about different ways we can build resilient and flexible systems even when working off grid or in emergency situations. A minimal amount of additional hardware combined with some preparation ahead of time can allow us to use more efficient or sometimes required digital technologies off grid and can even allow a group of operators to save power by sharing radios and batching messages rather than dealing with the overhead of connection setup for modes like Winlink!