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:

chmod +x

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/

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!