public service

Math Saves Time! Or It Doesn’t!

As noted in my bio, I’ve been involved in public service and amateur radio for decades. Fortunately, I happen to live in Ham Radio Central — Cedar Rapids, IA. We have (last I heard) the second-highest number of hams per capita of anyplace in the world, due primarily to the presence of what used to be Collins Radio. As of this year, about 1000 licensees in my county. This means I have a large pool of people who are willing to be involved in public service, which has led to some very solid and well-vetted protocols we’ve applied to various situations.

Linn County’s plans (you can find them here) have long included pre-assigned frequencies for both repeater and simplex operation, two each. If we have a large-scale emergency, everyone knows what frequencies to check first. It’s a simple thing that works remarkably well when the chips are down.

I’d mentioned this to my state-level leader. He felt it would be good to define that for all counties within a district, but we didn’t want neighboring counties to use the same frequencies. I puzzled for a bit on how to make that happen — and then it hit me. I was trying to solve the “four color map problem.”

In graph theory, a map coloring problem asks how one can color all the areas on a map so no two neighboring areas have the same color. Two areas are considered neighbors if they share part of a border. Meeting at a POINT doesn’t count…there has to be a line. The four color map theorem states that it is possible to colorĀ any two-dimensional map this way using no more than four colors. This was proven in 1976, and was the first theorem to be proven by computer. (I’ve read that some doubts remain, but it’s not important to the story.) Bear in mind this is true of ANY map, from the simple and familiar

Map is a derivative work from Dbenbenn, CC BY-SA 3.0 license.

Map is a derivative work from Dbenbenn, CC BY-SA 3.0 license.

to the complex

Image from Wolfram Alpha.

Image from Wolfram Alpha.

I was trying to do something similar, except instead of using colors, I was using frequencies. Same problem, different labels. I found some Python code on the web that solves constraint problems like this generically, then focused on setting it up to get all 99 Iowa counties assigned. This was fairly straightforward, if a bit labor-intensive on the typing. I had to set up a map of the counties with their neighbors (the code lets me do this efficiently), and then I told it to solve the problem using eight frequency pairs. (Note: due to a lesson learned at an event this summer, the pairs include one simplex frequency in the 146.xxx range, and one in 147.xxx.) The result came less than a second later, and it used only five pairs. I also ran it for four pairs, and it worked, but it took a bit longer.

Originally, we wanted things so that no neighboring counties had the same assignments, but I realized it would be good if we added the constraint that no two counties thatĀ have a common neighbor have the same assignment. I reasoned that this is equivalent to setting up a new map where your neighbors’ neighbors are also your neighbors….

Yeah, you guessed it. That took longer than expected. In the amount of time it took me to generate the second setup from the first, I could probably have typed it all in by hand. This would have bored me to the point that I gave up on it. And it turns out the constraint solver is not very forgiving of doing stupid things like having a county be its own neighbor. It turns out that the code will work on the three-dimensional maps my modifications apparently created, but that “can be done with four” thing doesn’t apply in three dimensions. Five pairs wouldn’t cut it. The final solution ended up using all 12 available pairs.

[Side note: if you start at the bottom edge of the simplex range on the two meter band plan, and go up in 15 kHz increments, you can fit 12 147 MHz frequencies, and 13 146 MHz frequencies. The latter includes 146.52, which is not to be used for general purposes, so I very conveniently get 12 pairs out of it.]

I’m not done working things out yet, as I know a few of our larger counties have frequencies already that they’d like to keep. I have not figured out how to pre-assign pairs to certain counties as additional constraints, and that may take a while. I’m also going to see if I can get this down to nine pairs, and use the remaining three to assign as district-wide for the six districts. (This will require simplifying the map for the sparsely populated parts of the state.)

All in all, a fun foray into math, and I built some Python chops in the process.

Working Events from a Bicycle

Ham operators in my area work a lot of drills and events over the course of a year. (We have well over 1000 hours in on events, and that does NOT include Field Day.) We conduct a “hot wash” after every event to see if we can improve on anything. Remember, just noting what went wrong isn’t a “lesson learned,” it’s a “lesson identified.” You haven’t learned anything until you do something to fix it, and it works. You can’t do that without some sort of after-action review.

We’ve learned that bikes are very useful for the larger events. They provide more mobility than automobiles, use less fuel, and are often less intrusive and disruptive. Of course, they also take longer to get from A to B, and believe me, the weather isn’t always entirely conducive to being in the open. But the advantages outweigh the disadvantages in most cases, so we include them in our event plans.

Let’s use a recent marathon as an example. This event actually combined a 13.1 and 26.2, and it was a qualifying event for the Boston marathon, so we had thousands of runners and supporters on site. It was less than a week after the bombing at the Boston run, so things were a little more tense than usual. There was a lot of focus on situational awareness — knowing where the walkers and runners were at any given moment.

Tracking the lead runners is actually not hard. There is normally a lead vehicle (truck or car, I’m not sure something like a Gator will keep up). Because the lead runners for both the half and full runs are pretty fast, that works well. Unfortunately, that’s less true for the other end. The trailing walkers/runners are a lot slower and stop more often. We decided to have two bikes equipped with APRS gear at the end of each of the runs to track the trailing edge. Bikes seemed the best choice for several reasons. First, we have a few local hams who are dedicated bikers who have reliable installations on their rides. Second, a reasonably skilled biker can ride VERY slowly — I can drop under 2 mph on my mountain bike without a second thought, and the other bike was a tricycle recumbent (the fabled Wheeled Barcalounger). Third, they are allowed on sidewalks and walking trails, which turned out to be important for this particular event.

APRS coverage was provided by a local digipeater set to the event frequency — we didn’t want to use the standard frequency due to the high number of packets sent during the day. The local digi also gated the packets to the APRS-IS backbone so that it was available to race officials and public service by smart phone. In addition, we used HSMM-MESH(R) to make sure that a dedicated display was available in the EMA mobile command post. NCS had a digital position that made sure that all water stops and other labelled points were beaconed as objects regularly.

The tricky part was getting the bike rigs set up. Signals were chiefly good, even with just a rubber duck — but only if the radio was NOT right next to the rider’s body! But we did have trouble with some of the more subtle settings, which caused some problems for NCS. The digi was able to receive all packets, so race officials didn’t share this problem. (That was rather serendipitous.)

Here are my recommendations for APRS settings for these events. They apply primarily to the bikes and lead vehicle, but they will work for the more stationary operators as well.

  • Turn SmartBeaconing (R) (or GeniusBeaconing (R), whatever you’re using) OFF. You’ll actually want to ping at a regular rate. This is especially true for the chase bikes. SmartBeaconing bases its ping times primarily on speed and “corner pegging.” GeniusBeaconing seems to work mostly from position error. In both cases, your chase bikes are going too slowly for this to provide any reasonable update rate. Even if you change the algorithm parameters, you’re not going to get a good result. Two to five minutes between pings works very well. We used three minutes at one event.
  • You must turn off both proportional pathing and the decay algorithm, if any. Both were created to reduce traffic in crowded areas, back before we had sophisticated algorithms. Unfortunately, that’s the opposite of what you want at these events! Proportional pathing actually changes the path setting between pings. So if you are set to WIDE2-1, you’ll get a ping for WIDE2-1, then one for RFONLY, then a WIDE1-1, then RFONLY…then the cycle repeats. Our problem was that NCS wasn’t getting all the RFONLY signals. A decay algorithm actually increases the ping time if you aren’t moving…this is less critical, but turn it off anyway.
  • If your infrastructure supports it, move large events to an alternate frequency. We used 144.990 (+600 kHz from the national standard). This will keep non-event pings off everyone’s displays, and doesn’t flood non-participants with irrelevant packets.

Here are some other considerations:

  • WEAR A BLOODY HELMET. Seriously, there is no excuse for not having one. I know a lot of people consider them too restricting, or too hot, or even too “not cool, man.” I’ve even heard one addle-pated twit suggest that they make bikers less safe. Trust me, they work, and you’re not likely to find circumstances at these events where they won’t.
  • I highly suggest a mirror. You’ll hear apocryphal stories about how mirrors are dangerous because shards might fly into your eye or pierce your brain or vote Communist…ignore them. I couldn’t find a single, documented case of a small mirror being a problem that didn’t involve someone mounting it particularly stupidly. You can live without one, but it sure helps.
  • Dress in layers. The first marathon event was bloody cold! It eventually warmed up, but holy carp…it was nasty. Layers will help you stay warm AND dry.
  • Bring your own water and snack bars. We’re usually nicely supported by the race staff, but we don’t depend on it.

We’ve had a lot of success with this at recent events. I encourage you to give it a try.

 

 

 

 

The power of public goodwill

I fielded an interesting call today from a gentleman we’ll call JB. He called some public service folks about some interference he thought might be from ham radio, and they sent me his number.

JB is 80-ish, and seemed like a pretty cool guy. We had a great talk about his situation, which involved very odd behavior from his “touch lamps” (the ones that turn on and off when you touch them), usually in the dead of night. He thought it might be ham radio or perhaps RF from Local Big Employer (the latter being very possible, he lives right across from the plant). I realized this wasn’t likely, but I talked him through it:

  • It’s very unlikely to be RF from any source. The RF is much higher there during the day than at night, which doesn’t match the data, and it would be causing a lot of problems for his neighbors as well.
  • Those touch devices are, oddly enough, touchy. It doesn’t take much of an electrostatic change to set one off. The cheaper ones are quite sensitive to noise on the power line.
  • Those touch devices are also Part 15 devices, meaning a) they can’t cause interference, and b) there’s no legal recourse if something interferes with them.
  • He’s a block away from a 700-foot tower with Ceiling Cat-knows-what on it…much more likely to be the culprit.
  • We agree the Billboard of Death next to that tower deserves to die, even if it’s not at fault. MAN, that thing is annoying, and noisy on RF.

Short version is that I did not fix his problem, but he went away happy because we at least looked into it. The local ham community takes good operating practice seriously — if it’s us, we fix it. So we do investigate, and we try to help people understand what is going on. In short…we are helpful.

All too often, ham operators (or other volunteers, for that matter) take the “that’s not my job” approach to things. We got into ham radio because…well, we want to do radio stuff! But not every job that needs done involves radios. If you work public service or emergency events, you can be asked to do nearly anything. And you SHOULD, unless that means leaving your primary task uncovered. For example, a ham was asked to assist with setting up a small commissary at an EOC. Why? The comm room only needed one operator at the time, and they could not pull anyone else from their primary tasks…so off he went. The job was done, he got back to the radios, and the operation was not disrupted.

As public service volunteers, we don’t have the luxury of seeming unhelpful. Even just being willing to lend a hand goes a long way toward building trust and good relationships. We’re there to serve, not to be served.