Lifelong Learning a blog of all the things I've learned about…


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.


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 (101 clicks)
Size: 1 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 (682 clicks)
Size: 682 kB


Closed Loop Monitoring For Motorola Paging System


Finished monitors looking sharp in their enclosures.

In my last post I talked about an issue my company had. We couldn't monitor our paging infrastructure from end-to-end and we couldn't find anybody selling anything that could. Before folks start yapping about pagers, you will see them in the healthcare sector for many more years to come when it comes to contacting a doctor for a life safety issue (cardiac arrest, etc) there is nothing currently sold that is as reliable and timely in the crowded RF world of a hospital.

I had built a prototype monitoring system using one of our pagers and an Arduino paired with a Windows Service. Well, it works and it works wonderfully so I was asked to build three more. Using multiple devices ensures we don't get false positives regarding a system outage due to the device or computer failing.

I've long been a fan of Adafruit and they were my first choice when I had my company order the parts needed to build out the rest of the monitoring devices. I leveraged the Arduino enclosure and the protoshield they sell and everything worked out wonderfully. I must say for a home-built gadget, they look pretty darn good and they perform wonderfully.



My apologizes for the quality of the pictures, had to use the cell....


This is the back side of the Motorola pager (after the being removed from the case). The two larger wires on the battery leads and the smaller is the signal wire from the positive side of the beeper on the pager.


This is the protoshield from AdaFruit. Getting ready to finish wiring up the battery leads to my 1.5v regulator on the protoshield and the signal wire to the analog pin. The pager is now powered from the 1.5v regulator.


Finished the wiring. All three wires! This is a much simpler setup than the original prototype.



Healthy Habitats For Home Labs

iStock_000015238547XSmallI've slowly been able to expand my home lab to include the type of equipment that allows me to continually improve my technical skills as well as experiment with home automation and DIY electronics. As my home lab has grown so has the need to ensure it's kept healthy. One way to ensure it stays healthy is to make sure it's got a nice  comfortable habitat in which to work and live.

My first feeble attempt to monitor the environment where I keep my server rack was to buy a cheap-o temp and humidity meter from eBay.  It worked in so much as I could tell what the temperature and humidity was if I bothered to go down to the basement and look. I'm lazy, heck I have IP KVMs so I don't have to go downstairs to reboot a server, I'm not going to go down there to check the environmental conditions. Something better had to be implemented....

I started looking for environmental monitors/sensors on eBay thinking I could pick something up cheap from one of the numerous companies that sell used computer equipment. Data centers are always upgrading such things and I was confident I'd get something to meet my needs for less than $100USD. Wow, I was ever so wrong. I found some things around the $100USD range but they typically required other pieces or sensors that costs as much or more. This was starting to suck.

Not sure why it took so long, but I finally remembered I had purchased a temperature and humidity sensor from many months back for a project I hadn't completed. I also remembered I had an Ethernet shield and I always have a few Arduinos on hand. I had struck gold, I'll build my on networked environmental sensor and I can do it for FREE (as I already owned all the pieces).

Thanks to's learning site, I was able to get my DHT22 temperature and humidity sensor working in just a few minutes but I needed some way to get to the data remotely over the network. I hooked up my Ethernet shield and started messing about with building a HTTP client and after a bit realized there had to be someone who had done this already. I found this article which leveraged the Ethernet shield to log the data to a cloud service which had a nice user interface for making sense of the data points I was capturing. Exosite was going to be a great, no fantastic solution! I downloaded the Arduino library for Exosite and I was done in about 30 minutes.

20130213-164324.jpgThis is why I love Arduinos and the community of Arduino users. I was able to build an environmental sensor that was networked, captured historical data points and even has alerting features (via email) in about an hour and for about $75USD in parts.

Check out my Exosite portal here.

Now I've just got find a nice way to mount this in my rack and add a display for local viewing of the temperature and humidity for those times I actually am standing in front of the rack. But I'll save that for another post....

My example code and high resolution pictures can be downloaded below.

Title: LabSensor (1007 clicks)
Size: 2 MB


Great read for battery powered projects!

iStock_000015833126XSmallI've had many a project lately that needed to use batteries rather than being powered from the mains. I've been reading lots lately about saving power in AVR chips and general concepts for power conservation in my projects. It's made me a better engineer in general and I think all my future projects will benefit from the knowledge regardless of their power source. During all my research I did stumble upon this article that I thought would be useful to the masses and thought I'd share it with everyone.






Filed under: AVR, Electronics No Comments
Page 1 of 912345...Last »