Lifelong Learning Knowledge should be uncompromisingly sought after and freely given away.


Tactial Simplex Repeater For 2M HAM Radio Operators

Cell Phone TowerBeing a technology geek for me doesn't stop at writing code or hacking gadgets, it extends to even communications and specifically RF (Radio Frequencies). I'm a licensed HAM radio opeartor and have been for some time now. It's true that I love electronics but dang I hate that they require support from a fragile supply of electrons from the wall. When it comes to HAM radio and it's historical use as emergency communications for our nation, I wanted to build something that would allow my small 2M HTs to communicate over wider distances and be free from mains power. I wanted something portable, tactial, that I could use anywhere anytime I wanted. While this is certaintly not the first tactical simplex repeater built by someone, I think it turned out amazingly and much less expensive than something you would buy off the shelf.

First I had to create set of criteria or goals for the build:

  1. Cheap(ish) cost to build (< $400)
  2. Used for days without intervention
  3. Self contained and portable
  4. Support 2M frequencies
  5. Remotely enabled/disabled
  6. Maximize 2M HT distance
  7. Rugged enough to withstand the outdoors
  8. Ready to use whenever I needed them


My first idea was to use some Pelican 1300 cases I had laying around, free is always better than not. I also wanted to keep the batteries maintained while in the vehicles (these were portable devices I wanted to keep in each car). Unfortunately as you'll read below the original batteries I wanted to use (always do your math first) didn't provide me with the parameters I needed for talk time so I had to get larger batteries and thus had to ditch the Pelican cases and opted for the fatty .50 caliber ammo cans (not the regular .50 cal cans). These boxes are metal, water/air tight, rugged and cheap.


Unfortunately my first idea was to purchase 12AH 6V batteries which did fit in the pelican boxes but really didn't provide me with enough talk time, I was shooting for 12.5% duty cycle which equates to about 3 hours of transmit time a day and 21 hours of receive time a day. I calculated duty cycle using DC=100*(Time On) / (Time On + Time Off). I figure 3 hours of TX time a day would be suffecient in the case of an emergency but I also wanted to build in some padding just in case. Once I had calculated my duty cycle I needed to calculate the power consumption of my system in both TX and RX states. Using my handy dandy multimeter, I measured the power at RX (idle) to be 110mA and TX to be 1.4A. That means that my average power consumption over 24 hours would be 271mA. With this number is was trival to plug in the values to figure out what sized battery I would need, I used an online calculator that used Peukert's formula for calculating battery life. Ulitmately I decided on a 35AH 12V battery which would give me approximately 37 hours of runtime at 25% discharge (higher discharges ultimately shorten the life of the battery).

Now the task was to figure out how to replinish the juice in my battery, solar is the way and I settled on a Renogy 30W solar panel. Why you ask, well the panel gives me about 1.3A of power on a sunny day, it's somewhat portable, and Renogy sells great quality solar panels for outdoors.

Power Conversions

As with any solar setup, I had to purchase a solar charger to ensure my battery was correctly charged by the panel and ensure the battery was never overcharged. The solar charger I picked up is the Renogy 30A model, more than enough for a single 30W solar panel configuration. The solar charger also has another nice feature which is that it has load terminals. These terminals allow you to hook up your load (the radio gear in my case) and the charger will automatically disconnect the load if the battery voltage drops too low. This particular model solar charger has about 20 different modes you can select for how it manipulates the load terminal (dusk till done, dusk then xx hours, etc).

With the battery and solar system figured out, I had a few more power conversions I needed to address. Namely the radio which has a max input voltage of ~8.4v, the repeater module accepted a wide range of voltages so our 12v battery voltage was fine for it. As for the radio, I had to purchase a buck converter that would effeciently drop the 12v to the ~8.4v required. I found a cheap one on Amazon which was rated for way more power than the radio would need and was manually adjustable so I could easily dial it to the voltage I required. I hacked up a battery eliminator cord for my radio and ran it directly to my buck converter, works perfectly and never gets even warm to the touch at 8W TX on the radio.

Radio Gear

As for the radio (the most important part actually), I decided on a Baofeng, more specifically the BF-F9 V2+ HP 8Watt Tri-Power HT. I wanted to keep costs down, but also wanted the little bit extra TX power this version gave over the cheaper 5W models available. Baofeng is a manufacturer of cheap HAM radios (but have been surprisingly reliable) but costs containment is a goal so no Yeasu HTs or the like were an option. The decision of which simplex repeater (voice recorder and playback device) was easy, there are not many available from reputable supplieers so the ADS-SR1 from Argent Systems was my choice. It had great specifications and was easily managed remotely using DTMF tones. Fit all the criteria I needed.

The last tiddly bit was the connectors for the radio and the antenna selection. A female SMA connection is more common now that these chineese radio manufactures are using them but eBay was still the only source I could find that had them with various other ends. I chose a female SMA to BNC pigtail. The reason for BNC was simply because the antenna I wanted came in a BNC type connector and I really wanted a stronger attachment point that SMA. I wanted as good gain as I could but also try to maintain my goal of portability. It took me several days to find what I was looking for and I finally decided upon the MFJ-1714 telescoping antenna from MFJ. It's got great gain and works better for this setup than any others I could find. It collapses down and can easily fit inside the can but reaches ~40" when fully extracted. I'm really loving this antenna!


The build on this project was actually lots of fun. I was able to leverage my favorite tool, the hand riveter which I used to build a cradle for the battery which prevents it from moving around and damaging the other components. Other than that, it was a pretty simple process of drilling a couple of holes, one for the antenna and the other for the 12V cigarette lighter socket which is how the solar panel plugs into the box. A box of super strong Velcro from Lowes finished off my build, I simply secured the radio and other components to the sides of the interior. I'll post some pictures of the build later this week once I get a chance to get my new shack setup.

Final Thoughts

I've tested the range of this repeater on 147Mhz with it sitting on the top of my house. I'm able to clearly transmit and receive on a Waesu 5W HT from about 8 miles away with the repeater sitting on my back patio, elevation to remove any obstructions would clearly extend the range significantly but that's for another day. Overall I'm very happy with the build and the results, once I have an opportunity to get this thing higher in the air and perform a more extensive range test, I'll update this post.


Find Inspiration…

Fantastic LEGO commercial and as a father of two I can only hope my children learn the love of biggest fear is to raise childern who can't think for themselves and have no love for learning. Thanks for creating a positive, inspiring commercial LEGO.


Filed under: Uncategorized No Comments

DSC Alarm + Envisalink3 + DSCServer + SONOS = Alarm Announcements!

Electricty Chaos

Image courtesy of antpkr at

Long title and a large degree of entropy? Nah! This is a system that was built in layers but the components are largely used and fairly niche in their use. I've just decided that I'd use them to provide something even more niche, an alarm zone announcer for my house. Sounds cool to you then keep on reader, otherwise go back to your other boring business reading materials...

This all started when my wife and I decided to buy our "forever" home. A wonderful home on a bit of land in the city where our families lived, thus, the "forever" home label. The problem with our forever home is that it's a 2 and 1/2 story home and I'm always concerned with security, mainly the security of my family while we are home. I could really care less about someone stealing my junk as long as my family is safe. I wanted a way to ensure we would be aware if someone entered our home while we were home, awake or sleeping.

Long story short, I purchase a DSC Powerseries PC1864 system and the wireless sensors to put on each door and window. After we moved in and I got the system operational I realized the hectic process of leaving each morning would likely result in the alarm not getting armed so I sought out a way to remotely view and control it. I found the Envisalink3 card for my system. Nice little tool but the software is massively lacking in both features and security (no SSL for goodness sakes). That led me to the DSCServer software written for Android and Linux by MikeP. Great product and was the last piece to the puzzle for me....

Well, that was until I noticed my in-laws ADT system had a cool feature which would verbalize the zones that get opened...I loved that so much more than the beep...beep...beep my system made when a door was opened while the alarm was disarmed. Searching the interwebs left me empty, nothing was available to plug into my security system to give me that same awesome feature, I guess I'd have to roll my own. That's where my SONOS system (a total of 5 speakers) comes into play, it's got a wonderful full-featured API and it only took a few minutes to find a full-featured PHP library to control my system.

I leveraged the same raspberry pi that I was using for DSCServer to run apache2 and fixed up a nice PHP page which would announce which zone was opened based on a query string parameter passed to it. I then added an action for each zone in DSCServer to call the URL with the correct query string value for each zone. Volia! My SONOS speakers will quickly pause, a nice British lady will announce which zone was opened, and then the speaker goes back to whatever it was doing before the announcement.

I'm hard to please and this solution while dependent on layers of technology, works exceedingly well. There is a 2-4 second delay in the announcement which I'm strongly suspecting is the lack of power on my Raspberry Pi running DSCServer. I'm going to upgrade it to a Raspberry Pi 2 and see if I can reduce the lag time some. Otherwise, this project is complete.

As always, I believe knowledge should be free and freely shared. The PHP page I wrote is attached to this post for all to use. I've also linked below to the components I used (I'm not endorsing any retailer, it's just where I purchased).

DSC Powerseries Alarm & Envisalink3

DSCServer Software For Envisalink3

SONOS Speakers (I have several Play3s and Play1s)


Title: zoneOpened (457 clicks)
Size: 1 KB


Overlapping Subnets is never a good thing…

Cartoon Crowd, Network ProxiesRecently I had an issue that I couldn't find a solution for using the power of Google. My company has a wonderful tool from BMC called ADDM. It's an enterprise tool that allows you to scan your network and discovery the things that live on the network. One of the configuration tasks is to provide the tool with a set of subnets to scan and when to scan. Unfortunately I can't do subnetting in my head and the list of subnets I did have were of all sizes. What I found out quickly was that I had overlapping subnets supplied to the application, this meant that some subnets were getting scanned multiple times a day which isn't ideal in the enterprise. I could get a simple CSV extract of all the scans I had configured and what subnets were in each but I couldn't find any tools that would allow me to load up that CSV file and identify the overlaps.

Thankfully I have a rather long background in development and after spending about an hour building it in Visual Studio 2013, I had a self-made tool that would load the extract of scans and subnets from ADDM and tell me where I had overlap. It took me about five minutes to remove the overlaps and I was done! All in, I had invested more time searching for a solution than it took to make my own! Just goes to show you how limited life can be if you don't have the ability to find your own solutions to life's problems.

For those who may use ADDM at work, or really anyone who has a list of subnets and wants to identify overlaps. The CSV file was a simple select all and extract to CSV from ADDM. I removed the header and made user all lines had quotes around the subnets. Format is below and I've attached the code to this post, you can find the .exe in the bin folder after you extract the zip. As always this is open to the world but unsupported, use at your own risk. Requires .NET 4 framework.

Each line should look like this (scan or subnet name a comma and then a comma delimited list of subnets in CIDR format with quotes around the list):

Subnet or Scan name,"one or more subnets comma deliminated in CIDR format,"

Title: SubnetOverlapTester (573 clicks)
Size: 258 KB


blink(1) mk2 for the win…

blink(1) mk2 by ThingM

Last week I finally received my two new shiny blink(1) mk2 USB RGB "things"; these were rewards for helping fund the KickStarter project from ThingM. The mk2 is the second generation and even cooler version of thier RGB blink(1) devices. They are hackable USB powered indicators and I had a project in mind for one my mine which I jumped on right away. I wanted a way to indicate to cube mates when I was on the phone and shouldn't be disturbed (folks are always interrupting as they can't tell I'm on the phone before they barge in asking questions, awkward for all involved really). These blink(1) devices are the perfect fit for such a problem. I taped one up on my monitor, fired up Visual Studio and build myself a quick system tray applcation that will allow me to change the indicator color with a single click. The application also automatically switches the indicator when it detects I'm idle for 5 minutes. As soon as I interact with my computer again, the indicator automatically switches the indicator back. Super quick project and couldn't have been possible without the .Net library for the blink(1) by Jean-Francois Talbot and the great hardware from ThingM. As always source code is below and I've even recorded a quick video of the system working. Now to find a project for the other blink(1).....

Title: blink(1)SysBarCTRL (925 clicks)
Size: 682 KB


Dynamic DNS Updates For Multiple Hosts On A Synology

Need to update multiple hosts on your Synology? Frustratingly you can't update multiple hosts with the GUI on a Synology. Once you select as your provider you'll see there is only the option to enter a single host to be updated. After you add that host, the option to select in the dropdown for the providers so you could add another record is gone. I was able to accomplish this with little effort and here's how you can to.

Since I'm attempting to host a few personal blogs on my Synology, I needed several different domain hosts to get updated. I only tested this using the same credentials with different hosts targets. You may very well be able to do this for different accounts if needed.

First, you need to make sure you have SSH enabled on your Synology (if not, google it). SSH into your box as root and type in the following command:

vi /etc/ddns.conf

Now you should see the contents of the ddns.conf file on the screen. You'll want to copy all the values exactly except for the "hostname" line which should be changed to match the additional hostname you wish to have updated. You must also add a number the the block the update "[]" should become "[]" and if you wanted a third hostname updated, "[]", etc.

All done, go back to the GUI and open the DDNS service and you should see entries for all the hosts you manually entered. Hope this helps someone else who has a similar need as I did...

Example of what your ddns.conf file will look like.

Example of what your ddns.conf file will look like.


Filed under: Computers, Software 2 Comments
Page 2 of 1512345...10...Last »