Tuesday, December 27, 2016

Experienced my First Escape Room

As my Christmas gift from my sister, she booked the two of us a session in an escape room today. Escape rooms are a live-action puzzle experience where you get locked in a room and have one hour to solve the series of puzzles provided to try and find the final key which unlocks the exit so you can escape from the puzzle.

Extra Credits has also made a video on escape rooms:

The room that we did was "Secrets in the Attic" from Beat the Lock. The room's story is that your grandmother has died and you have an hour to find your inheritance before the greedy relatives arrive. Beat the Lock also has a "Spy Room" scene which my sister has done before. Since we only made our appointment as the two of us, there was an additional eight participants grouped with us who we didn't meet until we checked in. They turned out to be a very cheerful extended family, so we were able to integrate with the rest of the team relatively quickly and they certainly had a big bearing on the overall experience since these rooms are primarily built around teamwork.

The Good

When we first arrived in the lobby, our moderator greeted us and made a point during the room briefing to make sure we all got to know each other and got a good grasp of the scope of the puzzles we were getting ourselves into.

Once we all understood the rules about being able to ignore the scenery tagged with the "no clues here" stickers and how we as a team can wave at the surveilance cameras at any time to spend one of our hints if we all get stuck, we were lead into the room and "locked" in. I say locked in quotations since they didn't actually lock the door like is traditional but simply closed it and we simply treated it as locked until we found the winning key. I very much appreciate their motivations for moving to this format, and I did find the experience a bit less stressful knowing that we weren't really locked in.

Once we got started, we had one hour to assemble associated clues and solve the presented puzzles to open locks and activate mechanisms which all got us closer to finally finding the victory key. Since this was my first escape room experience, I can't speak to how these puzzles ranked against other escape rooms, but it was pretty clear that Beat the Lock has an in-house puzzle development team and isn't buying an off-the-shelf escape room kit. The puzzles has a good variety of formats, and they were good about not expecting you to bring any outside trivia to the table.

Between the ten of us (my sister, the random extended family of eight, and myself) the puzzles were big and multi-faceted enough that we all got to contribute to the final solution. There wasn't much time during the hour when not everyone was busy working on something.

One thing that I did really appreciate about our moderator was that she did get on the room intercom a few times in excess of us spending our hints to keep us from veering wildly off-course. At one point during the experience we had the dialog:
Me: "Ok, well try the combination XXXX"
Other participant: "Nope, that didn't work..."
[About a minute of us brainstorming and trying other combinations]
Moderator on the intercom: "Someone has said the right combination; try them again"

Turns out we were right on our first combination, but the padlock just hadn't opened. Per the rules, she didn't have to have gotten on the intercom and told us we had already gotten it, but it saved us several minutes of fumbling around on a few of the puzzles during the hour. Which brings us to...

The Bad

On most days these escape rooms are booked for six to eight sessions across the day. That's possibly 80 people a day coming into a very physical experience and having an hour to tear apart the room to find their way out. The room certainly did show some wear and tear; everything was a little broken and a bit ajar.

The room had a slightly cheap feel to it. Many of the props felt like they had been bought from a thrift store or put together from plywood and 2x4s. The padlocks were all very cheap and sloppy combination locks bought from the local hardware store. (Remember how we dialed in the right combination and it didn't open?) There was certainly a level of effort put into the ambiance of the room, but you could still tell that this was an office in an office suite with some wood paneling screwed into the walls. The experience was enjoyable and I had a good time, but it wasn't what I'd call immersive.

I don't know how the $30/person price here ranks with other escape rooms, but I will admit I ultimately found the pine instead of hardwoods and overhead office lighting instead of mood lighting forgivable at this price point for the experience.

I feel like if they brought in a good woodworker to tighten up their boxes and panels, a painter to make their artistic elements a little less "hand-drawn", and an engineer to tie together their interactive elements a little better with some sort of programmable logic controller, it would have taken away my only real disappointment with the room in that it felt a little cobbled together.

Final Thoughts

I carried a lot of anxiety into the room, but between the moderator and everyone else on the team the experience ended up being very low pressure and enjoyable. Compared to what I've read about other escape room experiences online, Beat the Lock is clearly a much more comfortable and laid-back environment to get introduced to the medium than others, and for that I am very grateful. The experience wasn't entirely immersive and had some loose threads around the edges, but coming for the hour of frantic puzzle solving and not the roll playing, I still very much had a good time. I'd say the room's strengths were where it mattered.

I had fun! We solved the room in 55 minutes, albeit needing to cash in all three of our hints. I would do a puzzle room again. I will likely come back and try Beat the Lock's other current room or their future rooms as well.

Disclaimer: This was a Christmas gift from my sister. I have no business relationship with Beat the Lock, but simply enjoyed their service.

UHF Amateur Repeater Test Pair

Repeaters are expensive and time-consuming systems to build and deploy. Because of this, the frequencies that repeaters operate on are actually afforded a special level of protection in title 47 part 97 that normal amateur radio operations are not. When two groups come up on a simplex channel, everyone is obligated to sort it out among themselves as to how to resolve the issue, but when it comes to repeaters, they're allowed to defer to centralized regional coordination bodies to mediate which repeater gets to stay on a frequency and which one has to close up shop and move to a different frequency pair or go off the air.

In California, the relevant organization is NARCC. Any time that you set up a new repeater, you should ideally go to them and follow their policies to get your repeater into a state of "coordinated" so you can fall under their protection from future interference. Unfortunately, when it comes to high density urban areas like the bay area, we are essentially out of free repeater pairs, so unsurprisingly the politics involved in getting a new repeater on the air is eye-watering for "just" a hobby.

While I do work on a few permanent repeater systems coordinated under NARCC, I'm not the formal trustee for any of them, so I have relatively little interaction with the coordination committee. Where I do often end up being the trustee is for temporary repeaters which are deployed for only a matter of days for special events such as the Wildflower Triathlon or the Bay Area Maker Faire. Getting coordination for these events wouldn't work out, since the coordination process is so slow and labor intensive, so I often get challenged by other amateurs for "how dare I set up a repeater without NARCC coordination."

When it comes to UHF repeaters, I actually kind of do technically have NARCC coordination. At least in the 440 band, NARCC was kind enough to set aside one of the repeater pairs to be designated as a "test" pair. This pair is designated as a free-for-all, and presumably meant primarily for use at new repeater sites for evaluating range to assist in getting a new repeater coordinated. I've been having great success using it for these small weekend deployments in much the same way that you would select a simplex frequency for an event and just pray that no one else needs the frequency.

At least in California, the best pair to use for temporary or portable repeaters is:

I didn't know about this pair until last year when I stumbled upon it in a band plan graphic on the NARCC and the Santa Clara County websites.

Unfortunately, it doesn't seem that there is a likewise allocation on any of the other repeater bands, which is understandable since 2m repeater pairs are in such greater demand than UHF pairs (at least a longer waiting list beyond there being none left?). I know of some groups who will just pick a repeater pair that's not locally used much and try and fly it in under the radar, but if I were to ever need a 2m pair for a temporary deployment, I plan to follow essentially the same protocol I use for utilizing an existing repeater, only for just their frequency pair instead of their actual machine:

  • Identify a repeater within the area where I need communications resources.
  • Reach out to them before the event to seek permission to use their repeater pair.
  • Set up a repeater on their pair with a different PL tone. Possibly have them disable their box for the hours of operation.
  • Thank them profusely after the event
  • Nudge the hosting organization to donate $100-$750 to the repeater trustee for the use of their repeater pair and dealing with us for the weekend.
Many repeater trustees take the coordination process very seriously, and it's a relatively tight-knit community of repeater operators across California, so you will make a bad impression on a lot of people very quickly if you get known for setting up random repeaters on other people's repeater pairs, even if just for a special event.

Sunday, December 25, 2016

Mastr III Repeater Teardown Video


I recently purchased a pallet (!) of Mastr III repeaters for some parts. These are really unique radio systems since they're so modular, so I thought you'd enjoy a video where I tear one apart and talk through its basic theory of operation.

I mention the video I've previously done on phase locked loops.

Repeater Builder has a prohibitive amount of information on the Mastr line of radio, including a giant list of datasheets on each module which I really enjoy.

Saturday, October 29, 2016

Digipeater Hardware Build Video


This is the hardware build of a new digipeater one of my friends asked me to put together for him. The transceiver is a GM300, with a KAM plus TNC modulating it. If we didn't happen to have a KAM+ on hand, I would have probably used an OT3m from Argent Data.

He'll provide the computer, but for testing I have it hooked up to a Qotom Q310G4 running Aprx.

As mentioned in the video, when I'm working with CAT5 cable, I love using the GreenLee 4908 toolkit.

Friday, July 1, 2016

Driving LEDs on a Raspberry Pi via MQTT

MQTT is essentially an Internet of Things protocol which is designed to pass single short messages between a set of devices publishing messages to a set of devices which are subscribed to that topic.

A fantastic example of where you might use MQTT is an Internet-connected light switch plus light bulbs. You would first define a topic for your room (i.e. home/livingroom/lights/ceiling) and then configure all the appropriate light bulbs to subscribe to that topic and listen for any messages published to it. You could then configure a light switch on the wall to publish "ON" when you flip it up, and "OFF" when you flip it down. Flip the switch up, it publishes the message to the MQTT broker, which forwards it to all the lightbulbs subscribed to the home/livingroom/lights/ceiling topic, which would all respond accordingly. BOOM! IoT paradise! What could possibly go wrong?!

I've been meaning to do something with MQTT for several years, but the recent (outstanding) series on MQTT published on HaD has finally kicked me into action. This post is documenting the low-voltage half of a project I'm working on to upgrade my status lights at work.
Stack lights, or Andons, are traditionally used in industrial settings to alert tool operators/management to issues on the factory floor. I instead have one mounted on my cubicle at work which I use to show when I'm in the office, in the lab, off-site, etc. It is... a little conspicuous in the middle of a cube farm, but my coworkers have learned to appreciate its utility.

Until now, I've controlled mine via three toggle switches on my desk, but why use toggle switches where you can use technology?


On the Raspberry Pi, I'm running a few dozen lines of Python to subscribe to the MQTT topic using the Paho-MQTT library and write to the GPIO pins using the RPi.GPIO library (which comes pre-installed in Raspbian)

To set up the Raspberry Pi, install Raspbian, then install paho-mqtt by running this in a terminal:

sudo pip install paho-mqtt

The source code consists of defining a call-back function for the MQTT library to call when it connects to the server, and a second call-back function to call to process each incoming message. Once the callbacks are defined, the GPIO pins are configured as outputs and control is handed off to the MQTT library to process messages forever.

Running the script would look like this:

wget https://gist.github.com/PhirePhly/5eda4214788429e9d09c060cca10971f/raw/8696da1520b76fee9c2213503a4e125d9ce1bfdd/mqtt_led_client.py
chmod +x mqtt_led_client.py

There are a dozen different ways to have programs automatically run on boot in Linux systems, but my tool of choice is to add a line to my cron table (via running crontab -e):
@reboot /home/pi/mqtt_led_client.py

All that's left to do at this point is have the Pi's GPIO's drive transistors instead of LEDs to light up the 24V stack light I managed to find in a debris pile at work and button the whole project up enough to sit on my desk at work.

Monday, June 13, 2016

Pacific Grove Triathlon

This past weekend I worked staff for the Pacific Grove Triathlon, put on by TricCalifornia, which is the same company that puts on Wildflower. Unlike Wildflower, this triathlon doesn't build out an entire communications network, so I had the luxury of not needing weeks to prepare for the event and wasn't needed as a dedicated communications staff member. I got recruited to work the run course instead.

Preparations for the event on-site started around Tuesday or Wednesday, but the majority of us only show up Friday, the day before the event. Slipping out of work an hour early made for a luxurious drive down highway 17 and 1 with my friend Charm and arriving in Pacific Grove with plenty of time before the 9PM staff meeting to go have dinner in town. A quick stop by headquarters to pick up our hotel keys, dropping off our stuff and claiming beds at the hotel, and it's back to HQ for the 9PM staff meeting. Typical introductions and event planning logistics, and it's out to the course to do some last-minute setup by 10PM.
For the run course, we shut down about a mile of Ocean View Blvd. The TriCal Rentals crew had already dropped barricades at all the intersections for us, but the cones were all still in in the yard on pallets, so our first task was loading 250 cones in our pickup to be ready to roll out the next morning. Once that was done, we wandered over and helped with some final tweaking of the bike turn-around moving barricades around. After as much prep as possible, it's back to the hotel. A quick beer with the guys and I'm in bed by 1AM.


Wake up call is at 4:30AM.
Questioning my life decisions which got me here is at 4:31AM.
The next two hours is spent working our way down Ocean View Blvd closing intersections and setting up cones to make it clear where the course is and where the runners need to turn around at the end. Thankfully, there isn't much traffic before 6AM so closing the roads isn't too difficult.
Pacific Grove is certainly a scenic little town. Very cute. No way I could ever live here and take myself seriously enough to fit in, but it's still a very cute little town.

After getting the run course all set up, it's our very important job as the run course team to stop at Carls Jr and pick up enough breakfast stuffs for the rest of staff. You haven't lived until you've walked out of a Carls Jr with an entire case of hot hash rounds.

This gets us to 7AM, and this is where working on the run course team gets interesting. The run course is set up, and doesn't need to get taken down until 2PM, which leaves this conspicuous seven hours where we don't technically have anything to do. We can just stand around and be available if someone else needs some extra hands for any unforeseen issues that crop up.

The standing around thing lasted about 12 minutes.
We did manage to sneak away from putting out fires for a few minutes to catch the race start. After that, it was back to solving problems:
  • Emptying trash cans
  • Delivering X meals to location Y
  • Running to the store and buying 100 of something for somebody
  • Filling in for volunteers so they can go take their lunch breaks.
That last one is pretty funny. We were stretched a bit thin on volunteers this year, so it wasn't unexpected when the volunteer coordinator for the local cheer squad came up to us and asked us to figure out some way to get her cheerleaders a lunch break. We didn't have any spare volunteers to rotate in, so we grabbed the nearest few TriCal staff members and headed out to do an hour of crossing guard duty.  
When we got there to relieve them, it was clear what needed to be done: "Enjoy your lunch, but leave the pom-poms"

After the race finished, it was out to run course to open the streets again. Opening the streets was a bit dicier than closing them since there's a bit more traffic at 2PM than at 5AM. Drivers didn't much like that we were the end of the road and that the road in front of us wasn't open yet until we opened it. They just have to follow our directions to turn left and figure out how to get where they're going from there. Several of them decided to just ignore our directions and pull around our truck instead; the police cruiser escorting us didn't much like that either.
After we all finished opening up the roads, it was a run to the store for more beer and back to the hotel for a staff BBQ and celebrating a day well spent.
We were thinking that Coors would be a great sponsor for the Pacific Grove Triathlon next year. Right? Right? :)

I reportedly passed out remarkably early (11:45PM?), and the rest of staff had a good chortle over my vigorous snoring.


Wake up is at 6AM. Later than Saturday since the Sunday course is shorter and quite a bit easier to set up.

Same morning routine; close the roads, pick up Carls Jr, and take a break watching the race kick off. This time we went over to the announcers booth and got to watch the first wave from the dock.
I cannot express how amazing our announcers are; they stand there with their microphones and a fact sheet and they need to fill eight hours of dead air, and they do a really good job. I could never do their job - Thankfully, there will always be plenty of radios and orange cones which need my attention instead.
Another day of solving squirrely issues and doing random off-the-wall things during the event itself. Once the race was over, it was several frantic hours of picking up cones and delineators and loading everything onto pallets and into box trucks and trailers. A quick lunch break around 2PM when a pile of pizzas arrive, and it's on the road by 4PM.

Home by 6PM and it's the end to a hard-earned 50 hours as staff for another triathlon.

Monday, May 30, 2016

Hand Signal Training Video

Since it's Memorial Day weekend, I would normally be volunteering at the Western Pacific Railroad Museum, if it weren't for me being home sick with a head cold (One of my souvenirs from Maker Faire). I don't write about my work at the WPRM on here much, mainly because railroads tend to be unkind to photography equipment, but this museum has always been a big part of my community service schedule and technical education.

Since I'm not getting to spend the weekend working on historical railroad equipment, I figured I could instead tell you about the training video I've been helping with over this past winter which covers the hand signals and lantern signals we use when operating railroad equipment there:


Shameless plug: If getting to run a historic diesel locomotive sounds sufficiently interesting, we do offer you the chance to come drive one of ours for an hour.

Thursday, May 19, 2016

W6KWF Repeater at Maker Faire Bay Area

This weekend is the Bay Area Maker Faire! For once, I'm actually attached to a booth; I'll be helping the Bay-Net group show off their Software Defined Radio themed booth, so make sure to come find us if you're at all interested in SDR.

It isn't SDR related, but I will be setting up a UHF analog repeater, so if you're coming to Maker Faire and happen to have an amateur radio license, make sure to bring your radio and have 441.875MHz programmed with a +5MHz offset and 100.0Hz PL and Tone Squelch.

This is the first time I've set up a repeater at Maker Faire (and I'm not aware of it happening before). I'm really interested to see how many users an ad-hoc repeater collects at an event like Maker Faire. If you do get on it, make sure to say hi!

Tuesday, May 10, 2016

Talk on Wildflower Communications


Last Friday I drove up to the Marin Amateur Radio Society to give a talk on my involvement with the Wildflower Triathlon and how we build their communications network out in the middle of nowhere. The slides are also available.

As always, if you're a club in the bay area or central coast, let me know if you'd like me to come speak on this or one of my other amateur radio related projects.

Somewhat related, we managed to get custom boot screens on our HTs this year!

Monday, April 11, 2016

Wildflower Triathlon Lake Visit #3

Since it's now April, most of my free time is being dedicated to preparing for the Wildflower Triathlon. Of course, I'm nowhere near crazy enough to actually attempt to run a triathlon; I'm on the communications team, so my triathlon experience involves more radios inside a dispatch center than running or swimming out on the course.

This weekend was the last of several big work weekends before the event, where we worked to get all of the communications systems and plans ready, as well as cleaning up the whole park in general. When we weren't out setting stuff up or cleaning, we were sitting in meetings going over the event timelines or crisis plans for if anything happens (rain, heat, major injuries, etc).

My weekend started a day early; I took Friday off from work so I could beat the rush out of the bay area, and managed to get to Lake San Antonio around 1PM. First thing I did was stop by our radio site and turn on one of our UHF commercial repeaters, which is solar powered before the event and used to coordinate the pre-event logistics. Once that was sorted, I pulled into the committee campground and was immediately put to work unloading food and supplies to keep the committee fed and happy all weekend while working around the park. The majority of committee (~70 people across all the functional groups this weekend) showed up around 6PM, at which point we had dinner, a couple hours of presentations, and a scavenger hunt to familiarize the new volunteers with all the important locations around the course. The day concluded with some well-earned drinking, and it's off to bed at 2:30AM.

My Saturday started at 6:00AM, by which point the hospitality team had already made breakfast available, so a quick bagel and Greek yogurt for breakfast before it's off to work. Rumor had it there was a "tree issue" down at Beach City where all the Cal Poly volunteers camp event weekend, so I drove down there and showed up to this:
A tree had fallen over, and needed to be cut up into firewood/chipped before the event. Normally, the park rangers take care of issues like this, but since the San Antonio park was shuttered last year that work load has fallen on us to get the park ready for the event. A few hours of cutting wood, and it was time to go work on getting our dispatch center set up with the rest of the communications committee.
Normally, we run our dispatch center out of the park visitor center, but the building was recently condemned, so we've been getting creative with where we set up all of our radios.
Thankfully, the next building over happened to have an office available, so the rest of the morning was spent setting antennas up on this wooden frame we built last year, running coax, and reorganizing the inside of the office to how we'll need it event weekend. It's hard to see, but the unistrut has three commercial UHF antennas, two VHF commercial antennas, and an amateur X-50 dual band antenna. As you can imagine, needing six antennas means it can sometimes get a little fast and heavy in dispatch.
We also needed to set up a few lines of lathes for marking off the communications campground to afford our volunteers some separation from the event when we're off-duty. I left the communications committee with a pile of 50 lathes and a mallet, and later came back to discover their creative solutions on how to all pound lathes at the same time. Sticks and stones may drive our lathes, but something something something...

Having made it to lunch time, it was cold cuts for lunch, and then I reported to Race Command for a 90 minute meeting on planning EMS response event weekend. During the event, we're usually juggling several ambulances, a few fire response trucks, and a med-evac helicopter, so there's a lot of moving parts which we need to make sure all move in concert.
After the EMS meeting, it was back to Beach City to work on that fallen tree more, and have a meeting with the operations committee on how we were doing on the master to-do list. These are the great guys which you never see during the event, but who all make the entire event possible.
Chris and I caught the action item to go do more wood cleanup around the park. Various branches have fallen off trees, so we went out and Chris cut them up while I loaded them in my pickup to deliver to our firewood piles. My Ford Ranger may be the smallest truck of everyone on committee, but it pulls its weight.

After a few hours of branch cutting, it was time for dinner, and then more well-earned partying for the committee. Thankfully, I managed to get to bed sooner on Saturday: an opulent 1:30AM.

It's remarkable how well trained my body is after a few years of helping with this event; even after a day and a half of hard work and hard partying, Sunday I'm still up at 6:00AM sharp without an alarm.

Just as I'm sitting down to breakfast (again magnificently ready when I got up thanks to our wonderful hospitality volunteers), word comes in that one of the committee members is stranded a few miles outside the park where her car just died. A few of us load up in a truck and head out to see what we can do. We didn't manage to get the car re-started, so we hitched it to the truck and I got to steer the car back into the park while getting towed.

After grabbing a few bites of what was left of breakfast, it was back to dispatch to continue with some fit and finish there. Things were going smoothing, so Chris, Casey, and I loaded up to go attack another branch laying in the middle of one of the camp grounds.
This branch had clearly fallen a few years ago and been simply dragged off the road. We had need for the firewood, so the challenge was to see if we could again fit such a large branch in my pickup.
This was about when Chris looked over and saw a very young rattlesnake coming towards him in the grass. One point on the board to Casey for dealing with it.
Success! And working on it didn't even run over into lunch. We may have gone a little past my truck's load limit, but thankfully I only needed to limp it back to our volunteer campground. After dropping the wood, it was back to the committee campground for lunch.

After lunch, we started cutting volunteers loose as they finished up their final prep for before event week. Most of my afternoon was spent discussing our policies for using the computer aided dispatch system that I spin up for the event, and lots of cleanup around the committee campground. By 4:00PM, pretty much everything was cleaned up, so I dug deep and braced myself for the three hour drive home and rolled out.

At this point, the next three weeks for me will be spent in the bay area configuring and testing radios to be ready to drop in event weekend, which for me starts the Tuesday night (April 26th). Most of the rest of the volunteers show up Friday (April 29th), and work through Sunday afternoon (May 1st).

If you're interested in volunteering on the communications committee, we're still looking for more signups until this Friday (April 15th). It's best if you have your amateur radio license, but even if you don't we can still put you to good use in places where an amateur license isn't required.

Tuesday, March 22, 2016

Tower Climbing on Mt Toro

This Saturday was a nice change of pace; I got to climb a 180' radio tower.

Starting several months ago, my buddy Marcel and I decided to get serious about our amateur tower climbing and started putting out feelers for anyone in the bay area/northern California looking for volunteer tower climbers. This got us in touch with the WB6ECE repeater group and the Salinas Valley Repeater Group, which are both extensive repeater networks which inevitably have some tower work in their queues which we can get in on.

I had actually encountered the architect of the WB6ECE network before (Matthew Kaufman), when he gave a talk on simulcast repeaters at Pacificon in 2014. He had a project where he needed to move one and add another antenna to the Mt Toro radio site, which is south of Salinas.
The subjects for the day are the two black folded dipole arrays on the left of this picture. The four bay UHF set was already on the tower, but needed to be moved up to make room for the VHF pair which we added right below it. We also needed to run new 7/8" hardline for both antennas.

The UHF antenna feeds one of the several WB6ECE 441.300+100.0Hz nodes, which are all on a single frequency and use simulcast magic to allow you to wander up and down the whole coverage area while using the same frequency. The new VHF antenna was to bring up the 147.270MHz repeater, which will eventually be linked into the Salinas Valley network (which I often monitor from the bay area via KE6STH).
So the site details: The site is shared between MBARI and the department of education (for Santa Cruz county? Monterey county? I don't remember). The Monterey Bay Aquarium Research Institute had some really interesting radio systems on the site; particularly the two tracking microwave dishes (in the big white spheres) which point themselves at the MBARI research vessels out on the water so they can still have high speed Internet and HD video, etc.

The tower is 180 feet tall, and Matthew's mounting bracket was at the 110 foot mark. Moving one antenna, adding another, and hanging some coax may not sound like much, but that really is a full day's work on a tower like this. Marcel and I spent about five hours on the tower, and climbing 110' is tough enough that we opted to have our lunches delivered to us up on the tower. We were both rudely reminded that we don't do this on a regular basis, so hand cramping was a major concern (as was my ability to move at all on Sunday; my back is still complaining).
This was our view during lunch. This is why I'm willing to drive 1.5 hours to climb a tower for free.
When you're a radio nerd, Saturdays don't get much better than this.

Do you live in the bay area/Northern California and have a tower in need of climbing? Are you interested in tagging along and working on the ground crew for one of these visits? Drop me a line and we can talk.

Wednesday, March 2, 2016

Saturday, February 27, 2016

Lehigh ARKnet Site Install

Today was a big day. After nearly a year of searching for a radio site, we were finally able to move forward on the Cupertino ARKnet project, which I last blogged about last January.

The Cupertino ARKnet is a project that my friend Marcel and I decided to support with the city of Cupertino to build a point to multi-point microwave network across the city to provide resilient network connectivity between the city Emergency Operations Center (EOC) and various critical sites around the city. This network is designed to stay up in the event of a major disaster and still provide a suite of useful services, even if Internet connectivity is entirely cut off.

What has proven to be the largest challenge so far has been getting access to a site where we have line of sight for most of our sites of interest. This challenge was finally overcome when we signed a site agreement with Lehigh Southwest Cement to build a sector site on an abandoned water tower on the northern edge of their property, which is on the western edge of Cupertino.
The day started off bright and early at 8:30am. We all met up at Marcel's apartment and loaded up all the staged equipment and supplies between Marcel's car and my pickup. This radio site isn't the most difficult site to get to, but there are dirt roads involved, which are normally only used by heavy quarry equipment.
The site is an abandoned water tank on the side of the waste pile for the Permanente Quarry. Lehigh Cement wasn't able to provide us power this far from their plant, so it looks like we need to run the site off-grid.
The first order of business for the day was clearing and leveling a location for the solar panels. Lehigh was not able to provide us with power and our site agreement didn't include pouring concrete (the irony was not lost, considering that this is a cement plant), so the site is powered by a free-standing solar panel array on pavers.
Marcel did an amazing job designing and building the panel frame out of unistrut. You'll notice that we've got the panels angled unusually high. For angling solar panels, the rule of thumb is that for maximum power generation across the year you want to match your panel angle to your latitude. This is technically correct, but is only true for power generation averaged across the entire year. This is fine for grid-tied solar systems since any excess generation during the summer can be dumped onto the grid, and shortfalls in the winter can be covered by buying energy from the local utility company.
Since our system is off-grid and only has 100Ah of batteries, we're much more concerned with the minimum daily power generation (in the middle of winter) than the total available power across the whole year. During the summer, there's going to be so much power available that our battery bank is going to be fully charged half way through the morning, and then the rest of the power for the day is going to do nothing but keep the batteries topped up.  Instead of the 37 degrees elevation based on our latitude, we built the frame to hold the panels at 50 degrees elevation. Now our winter power is as high as possible, at the expense that we're leaving a bunch of power on the table during the summer, which wouldn't be put to any use anyways.
Once we got a good start on the solar panel install, I turned to the issue of mounting the access point on the top of the water tank. For our initial roll-out, we're only using a single 10MHz wide channel in the 5.8GHz unlicensed band. As our network grows and we find needs for greater bandwidth, we plan to add additional sector antennas here or at additional sector sites (the network routing has been designed with multiple sites/antennas per sector in mind).

As for the hardware up the tower, we're using a Mikrotik SXT SAr2. (Yes, it's really there; it's tiny!) This gives us a relatively wide 90 degree beam width, which for this site covers all of Cupertino with a single radio. All wisdom about deploying point-to-multi-point says that trying to cover this much of this area is going to be a bad time. Frankly, I'm going to be relatively shocked if we make it very far with just this one sector antenna, but getting to the site and adding more radios is so easy that I figured we would give this a wag and see how far it gets us. We're not looking for a huge amount of bandwidth (~5Mbps), so we can tolerate lower levels of quality than if we were trying to operate a consumer WISP.
While I was up the tower playing around with hose clamps and zip ties, the rest of the team installed the solar panels and electrical system.  The solar panels are four 80W CdTe thin film solar panels (BP Solar 980L). You might say 320W of solar panels for a single 5W router might be a little over-kill, and I wouldn't disagree with you. We are going to have a very comfortable power budget (which is going to keep our batteries really happy), and this leaves us plenty of room for growth as this site gains additional sectors, point-to-point links, etc over time without us needing to revisit the power system.

I deeply, deeply regret having gotten frameless thin film solar panels for this project. It's the timeless story: guy finds guy on Craigslist. Guy offers guy solar panels at $0.75/W. Guy gets great deal on solar panels before entirely appreciating what a pain it is sourcing 6mm frameless panel clamps.  Getting the edge clamps for these panels to mount them to the unistrut was a huge pain, and I'm never dealing with it again.
The electrical cabinet for this site was graciously donated to us by the Cupertino maintenance department (synergistically transferred, really?), and again is set up for growth. The bottom shelf holds two 100Ah 12V deep cycle lead-acid batteries, wired in series to make a 100Ah 24V bank for the solar charge controller.

The middle shelf holds an EPSolar Tracer 2215BN solar charge controller, a 24V-12V DC-DC regulator to provide some 12V power for the network switch and fan, and an unmanaged workgroup switch with a PoE injector for the access point on the tower.  The solar controller warrants some particular attention: this is by far the least expensive solar controller I've seen which actually uses Maximum Power Point Tracking (MPPT), which is a big deal. Lots of $20 charge controllers on eBay will claim that they are MPPT, but they simply aren't. MPPT means that the controller is going to make an effort to hold the panel array at the correct voltage/current to extract the maximum amount of power available from it given the current solar conditions, which isn't a trivial task since this magic point moves throughout the day based on the amount of sunlight and temperature, and the fact that the panels are wired as an 80V array while trying to charge a 24V battery bank. This takes a serious DC-DC buck converter, which is why MPPT controllers need such a beefy heat sink compared to the cheaper PWM controllers.

The top shelf is currently mostly empty, waiting for more equipment or a second battery bank. The only thing there now is an MT-50 control head for the solar controller. This is another feature of the EPSolar Tracer series controllers that I absolutely love: their user interface is over RS-485 MODBUS, so you can mount your controller as close as possible to your batteriy bank and load, and all you need to do is run CAT-5e to wherever you want your nice user interface to the controller. The control head lets you set the battery charge mode, etc, as well as review all the collected statistics like current panel/battery/load voltage/current and cumulative power generated/consumed in kWh.

SHAMELESS PLUG: I'm giving a talk on solar panels and designing these sorts of solar power systems next month in San Jose on April 13th, 2016 at the West Valley Amateur Radio Association. If you're in the Silicon Valley and interested, I encourage you to come see.
Last points of order for the day were fit and finish on the cabling and adding weights to the array frame.
I will freely admit that it is possible that two T-posts, three cinder blocks, and 20 sandbags are maybe overkill for keeping this panel array from blowing away, but we really don't want it to blow away, and the sandbags were free (thanks city of Cupertino!). In an ideal world, we'd have poured concrete and/or had a much better idea what our worst case weather conditions would be on this hill. Barring both of those, we decided to just make a good wag at "really heavy."
As for the question of how well the site is working, that's a question I can't answer yet. The next step in the project now that we have the first access point up is deploying client sites to connect to this one. The first 90% of the work is done, so now we just need to get the next 90% done and see where it takes us.

Of course, a huge thanks again to our great team of volunteers, the city of Cupertino for supporting us on this project, and a HUGE thanks to Lehigh Southwest Cement for entertaining some random group of volunteers setting up some equipment on their property. The Cupertino ARKnet wouldn't be possible without everyone's help.

(Thanks to Marcel AI6MS and Jim KN6PE for letting me use their photos in this blog post)

Tuesday, February 23, 2016

Thursday, February 18, 2016

UHF RICK Repeater with Auto ID and Teardown

I had previously mentioned that the RICK doesn't meet FCC requirements on its own due to its lack of automatic identification. What it does have is an accessory port where you can plug in some other device which can generate the ID for you. In this case, I used an Argent Data simplex repeater controller with the actual repeating feature turned off. (I covered using it as a simplex repeater previously)


Things I missed in the video:

  • The CallAlert signalling on the MaxTrac isn't a built-in feature. You need an optional DTMF decoder board which I was recently gifted by one of my friends. It's a relatively rare part, and I should have emphasized that more.
  • Even though the simplex repeat feature is turned off on the ADS-SR1, it does still retain all of its other features like voicemail and stored voice beacons. This is actually a remarkably featureful repeater now, considering it's built around a RICK.

Tuesday, February 16, 2016

Sandpaper Cutting Jig

I was out working in my father's woodshop this evening, and realized that I've never written about this simple tool that I use practically every time I'm using sandpaper for a project.  It's a simple jig for tearing sandpaper into strips that are the correct size for half sheet and quarter sheet electric sanders.
Sandpaper comes in sheaves of 9"x11" sheets, and many electric sanders are designed to accept either halves or quarters of these standard sheets. This jig consists of a 1/4" piece of plywood nailed to two pieces of 1x2 as feet (shown in the second photo), with three lines drawn on the top and a hacksaw blade screwed down with some shims underneath the screws.

The hacksaw blade is shimmed up with very thin pieces of wood just enough that you can easily slide coarse sandpaper underneath the blade. The teeth are pointed out, or to the right in the first photo.

The first line is drawn 4.5" away from the cutting edge of the blade, and is used to place the sandpaper so you can tear it into two parts longwise.
The second vertical line is drawn 5.5" away from the blade, so the halves can be easily quartered for the smaller electric palm sanders. Here's a photo showing how I fold the sandpaper over before tearing it against the hacksaw teeth.

The third line is drawn perpendicular to the blade so I can easily tear off odd-sized rectangles while keeping the cut square to the sheet. If I'm only doing a small amount of touch-up work, I'll only tear off a gum stick sized piece. If I later pick up the odd-sized leftover and want to use it in my palm sander, all I need to do is line it up with the 5.5" line and tear off whatever's left.

The pencil lines aren't ideal, and tend to wear off after heavy use. Making more permanent markings with a deep cut + black ink or burning the lines with a soldering iron or wood burning pencil would be a possible improvement if you make one yourself.

Saturday, February 13, 2016

I Got a New Callsign! WQXE668

As you likely know from reading my blog, I'm an active and very dedicated amateur radio operator (under the callsign W6KWF). Amateur radio has been a huge educational experience giving me opportunities to learn about RF communications, DC power systems, OSHA tower climbing, event and crisis management, the list goes on.  The amateur venue is an absolutely huge venue for exploring the facets that you're interested in, and I will never discourage someone from at least getting their technician level license (Link to ARRL site)

One of the tenets of the amateur radio license is in its name: it is a license specifically designed for interested individuals who may not be paid or compensated for their work using this license. There are tons of advantages to this limitation, and I will always adamantly defend the unpaid nature of amateur radio activities.

That being said, there comes a point when I can no longer work within the limitations of the amateur ticket, so I decided to spend the time and money and get myself a part 90 commercial license, which was just granted to me this week! WQXE668 (It doesn't really roll off the tongue, does it?)


Let us start with the what. The part 97 amateur radio licenses granted me the privileges to operate radio stations under my control on lots of little slices of frequencies. A little around 4MHz, a little around 7MHz, a little around 146MHz, a little around 440MHz, etc. As I passed the tests for higher level licenses (technician to general to extra) the FCC allowed me access to larger slices of frequencies to do with as I pleased.

This new part 90 license is a "commercial itinerant" license, which lists a specific set of frequencies and modes which I am allowed to use in a designated area. Being a commercial license means these privileges don't come with the strings attached preventing me from getting paid. Being itinerant means I'm limited to a subset of the business pool frequencies which are uncoordinated, so the FCC makes no guarantees that I won't have to deal with other stations on the same frequencies. I opted to get some frequencies in the VHF highband around 150MHz, some up in the UHF band around 460MHz, and even some VHF low-band frequencies around 30MHz, because who knows which ones I'll ever want?

This license also no longer only covers me. I am ultimately legally responsible for this license, but when I applied for it, I asked to be licensed for two repeaters and 500 mobile stations on every repeater pair. 500. This license doesn't just cover me, but myself and 499 of my closest friends.


It's not that I mind volunteering my time on weekends providing communications support to events, but there's some problems with trying to provide a strictly amateur communications network for an event:

  • Everyone HAS to be volunteers. It gets hard getting enough volunteers when the deployments aren't pleasant or convenient. Using a commercial license, payment is now an option for event staff. I've been paid as much as $1400 for working a weekend as a communications volunteer, and that's specifically disallowed using my W6KWF license.
  • Everyone HAS to be licensed. The amateur radio license isn't hard. It's 35 multiple choice questions. The thing is, it's a barrier that limits who can pick up a radio and talk into it. Using a commercial license frees us from having to have two sets of volunteers; those who need to run the radios, and those who need to run the event. It is a common complaint from event organizers that amateurs show up to play with their radios and little else. With a commercial license, we can now hand radios to our regular volunteers, and communications doesn't need to be the focus of their responsibilities.
This second point can be controversial. There are those who will argue that hams have spent more time practicing using radios and passing information through them, so hams should be more effective operators of the radio than some random volunteer who has been given a 20 minute introduction to which button to press and which part to point up.  I'll agree that there are some rare instances where this is true, but comparing hams running their weekly practice nets where they are completely unable to handle anything unexpected vs total novices figuring it out during event setup, I won't back up hams as the superior communications force.


Getting my part 90 license wasn't prohibitively hard, but after getting it, I appreciate why most people opt to use third party licensing firms who will fill out all the paperwork and deal with the FCC for you. They cost a little more money, and save a lot of time, but in the end you end up with the same license.

I instead opted to do the research myself, figuring out what the different station codes and modulation codes mean, and which frequencies I can pick from, and what forms I need to fill out. I figure I spent about 10 hours researching how to fill out the 601 license application form, two hours filling it out, and $165 to turn the crank.

$165 and two hours to fill out a form on a horrendous Java application. I was able to do it during my lunch break at work, with no test, and after a day of engineering review the FCC granted me the license less than 48 hours after I pressed submit.

Before you ask, I've thought long and hard about offering my assistance or posting a detailed blog post on exactly how to get a part 90 itinerant license, and I've decided to not get into that at this point for a number of reasons. There is a lot of ignorance coming from hams in the forums about getting part 90 licenses, and the vast majority of it has proven to be false, but I don't feel that I'm yet qualified to try and refute it.

I am also always interested in any special events you're involved with in Northern California which need either paid or volunteer communications support. My docket for this spring is just about full, but I'll always consider it, and have some friends to whom I would gladly pass the info.

Wednesday, January 27, 2016

Microwave Transceiver Teardown

I was recently gifted a microwave transceiver with essentially no info about it other than a vague comment about "it might have fallen off a pole somewhere." Having no immediate use for it, and with a premium on storage space in my life these days, I figured I'd tear it apart and see how it works.


I took apart the down-converter section that's fed by the Rx Gunn diode, but I'm afraid the exact mechanism of the ring hybrid in it has left me a bit flummoxed.
The Rx signal comes in through the feedline on the top left. The top and left holes were grounding screws, the Gunn cavity is the top right feedline, and the bottom right goes through the block to an amplifier on the other side before leaving via an MCX connector. My lack of training in RF systems is starting to show...

Monday, January 4, 2016

Building a Simplex Repeater


In this installment of the "How to Build a Repeater" series, I explain the concept of a simplex repeater and how to assemble one out of an Argent Data ADS-SR1 and a Motorola Maxtrac. Thanks again to Argent Data for providing me with an ADS-SR1 to play with; it's a fun little controller.

Pinout diagram for the interface cable, including the color code assuming that you crimp the ADS-SR1 side as if it were a standard T568B Ethernet cable (or started with an Ethernet cable and cut it up). This pinout depends on you correctly programming the MaxTrac to output SQL + PL/DPL decode on pin 14. Pin 8 is another popular option, in which case you should modify your cable accordingly.

The same cable should work with any other Motorola radio which has the same 16 pin (or 20 pin in newer radios) accessory connector, which is why I love working with Motorola radios so much.

A couple mistakes in the video:

  • I forgot to account for the addition 800Hz deviation caused by the transmitter's PL encoder. I should have set the repeater gain looking for 3.8kHz output deviation, not 3.0kHz
  • I said the station was part 97 legal, but that's without me checking that the default morse code speed from the controller isn't greater than 20 words per minute, which is an ID requirement for part 97. A bit unfortunate that the setting in the ADS-SR1 is on a unitless 0-99 scale and not just in words per minute.