Friday, May 25, 2012
Thunderbirds Practice
We got to watch the Thunderbirds practice today at Hill Air Force Base in preparation for the open house and airshow - Warriors Over the Wasatch - that begins tomorrow. It was fun to snap some pictures and snag some audio of their practice.
Thunderbirds Audio
Monday, May 7, 2012
Motorola Maxtrac 5-pin Accessory Jack
My latest hardware project was to add a mono audio jack to the back of my Maxtrac 800 radio. I have wanted a way to finally be able to record audio from the radios. I added a couple of crimp pins to the plastic housing and ran wires from Pin 1 (ground) and Pin 4 (external speaker) to a female 1/8" audio jack. I got the crimp pins from a DB-25 connector kit from Radio Shack.
Monday, April 30, 2012
UniTrunker Logfile Merging
The program UniTrunker uses XML files to output data pertaining to Systems, Groups, Users, Sites, etc. It stores call log files in Unicode format with just User numbers and Group numbers, but not text labels associated with them. I wrote a C program to merge the User and Group data with their respective numbers in the call log file. This is a multiple step process to extract information from the System.xml file into text files for Users, Groups, and Sites; followed by converting those Unicode files to ascii files for handling with the C code; and then running them to created a merged logfile with both User and Group lables appended. For this I created a batch file to complete the process with 2 inputs from the user during the process.
Prior to running the batch file, all of the needed files need to be placed in the same directory. These include:
msxsl.exe (which can be downloaded from Microsoft's website)
UTC.exe (the program file which I wrote to perform the merge)
UTMerge.bat (the batch file which calls all the programs and converts files to correct filetypes)
UTxsl.bat(the batch file which calls the msxsl.exe to apply the xsl stylesheets)
UTlog.bat(the batch file which calls UTC.exe program to create a merged log file)
System.xml (this file is exported by going to the systems tab in UniTrunker and exporting the desired system)
users.xsl, groups.xsl, sites.xsl which I have created/modified based on the example from the UT website
UniTrunker-********.LOG file (created daily by UniTrunker and archived to a gzip file)
-Note this file needs to be unzipped in order for the batch file to work
Once all the files are in the same directory, simply change directories to the location of the files, and then type "utmerge" to call the batch file.
The user will be prompted to enter the name of the .xml file. Case doesn't matter, but be sure to type it correctly. After a few seconds of processing the user will be prompted for the date of the logfile to be merged. After a few more seconds a text file with the merged data will be created in the same directory.
A zip file of the required files can be found here:
UniTrunker Merge Program files
Download and extract the UTMerge.zip file to an accessible location. Then extract a system.xml file from UniTrunker. Copy or move a .LOG file from UniTrunker's logfiles to this same directory. You can go to Run...and type CMD to open a DOS window. Then change directories to the location of your UTM files and type utm to run the batch file.
An easier way is to use windows explorer to browse to the directory and double click on UTM.bat. The program will run in a popped-up DOS window. Carefully type in the information required when prompted, and VOILA, a merged log file will be created!
UPDATE:
I created 2 additional .bat files:UTxsl and UTlog. The UTmerge file can still be used successfully. However, each time it runs it creates the same users.txt, group.txt, and sites.txt files. This does no harm, but is redundant and takes time. I spilt the processes into 2 batch files. The first to be run should be UTxsl. This will apply the xsl stylesheet once and create the necessary .txt files. After these are created, there is no need to run this batch file again unless changes are made in UniTrunker to your system files and subsequently exported.
The second batch file to be run is UTlog. This simply prompts for the date of the log file you would like to merge with the users and groups files. It can be run multiple times on logs for different dates without recreating the users.txt and groups.txt files.
UPDATE 2 (February 23, 2013)
After looking for a way to further process the merged log files, I realized the Linux grep command was perfect for looking through logs to isolate individual users or groups or both. This means I either have to run a grep program on my Windows computer, or move the files to my Linux computer to further process them. It is a little cumbersome to have to move files to a different platform, but the power to sort the data makes it worth doing.
The power of the the grep command in dissecting the large amount of information in one days' log file is impressive. For example, after a recent fire department response to a building fire, I sorted the log files based on the fire departments operations channel to see just the calls for the fire separate from the 1000's of other calls on the TRS for the day.
For a better explanation of the grep command see:
http://en.wikipedia.org/wiki/Grep
A sample output from a TG sort using the command:
Prior to running the batch file, all of the needed files need to be placed in the same directory. These include:
msxsl.exe (which can be downloaded from Microsoft's website)
UTC.exe (the program file which I wrote to perform the merge)
UTMerge.bat (the batch file which calls all the programs and converts files to correct filetypes)
UTxsl.bat(the batch file which calls the msxsl.exe to apply the xsl stylesheets)
UTlog.bat(the batch file which calls UTC.exe program to create a merged log file)
System.xml (this file is exported by going to the systems tab in UniTrunker and exporting the desired system)
users.xsl, groups.xsl, sites.xsl which I have created/modified based on the example from the UT website
UniTrunker-********.LOG file (created daily by UniTrunker and archived to a gzip file)
-Note this file needs to be unzipped in order for the batch file to work
Once all the files are in the same directory, simply change directories to the location of the files, and then type "utmerge" to call the batch file.
The user will be prompted to enter the name of the .xml file. Case doesn't matter, but be sure to type it correctly. After a few seconds of processing the user will be prompted for the date of the logfile to be merged. After a few more seconds a text file with the merged data will be created in the same directory.
A zip file of the required files can be found here:
UniTrunker Merge Program files
Download and extract the UTMerge.zip file to an accessible location. Then extract a system.xml file from UniTrunker. Copy or move a .LOG file from UniTrunker's logfiles to this same directory. You can go to Run...and type CMD to open a DOS window. Then change directories to the location of your UTM files and type utm to run the batch file.
An easier way is to use windows explorer to browse to the directory and double click on UTM.bat. The program will run in a popped-up DOS window. Carefully type in the information required when prompted, and VOILA, a merged log file will be created!
UPDATE:
I created 2 additional .bat files:UTxsl and UTlog. The UTmerge file can still be used successfully. However, each time it runs it creates the same users.txt, group.txt, and sites.txt files. This does no harm, but is redundant and takes time. I spilt the processes into 2 batch files. The first to be run should be UTxsl. This will apply the xsl stylesheet once and create the necessary .txt files. After these are created, there is no need to run this batch file again unless changes are made in UniTrunker to your system files and subsequently exported.
The second batch file to be run is UTlog. This simply prompts for the date of the log file you would like to merge with the users and groups files. It can be run multiple times on logs for different dates without recreating the users.txt and groups.txt files.
UPDATE 2 (February 23, 2013)
After looking for a way to further process the merged log files, I realized the Linux grep command was perfect for looking through logs to isolate individual users or groups or both. This means I either have to run a grep program on my Windows computer, or move the files to my Linux computer to further process them. It is a little cumbersome to have to move files to a different platform, but the power to sort the data makes it worth doing.
The power of the the grep command in dissecting the large amount of information in one days' log file is impressive. For example, after a recent fire department response to a building fire, I sorted the log files based on the fire departments operations channel to see just the calls for the fire separate from the 1000's of other calls on the TRS for the day.
For a better explanation of the grep command see:
http://en.wikipedia.org/wiki/Grep
A sample output from a TG sort using the command:
~$ more UT20130220merged.txt | grep 10848
20130220210159,2,Call,I,32092,Engine 85,G,10848,Davis Ops 6 - South Davis Metro Fire (Bountiful fire response),488, -
20130220210242,2,Call,I,32014,Ambulance 83,G,10848,Davis Ops 6 - South Davis Metro Fire (Bountiful fire response),525, -
20130220210247,2,Call,I,32014,Ambulance 83,G,10848,Davis Ops 6 - South Davis Metro Fire (Bountiful fire response),497, -
20130220210256,2,Call,I,32031,Engine 85,G,10848,Davis Ops 6 - South Davis Metro Fire (Bountiful fire response),498, -
20130220210300,2,Call,I,32014,Ambulance 83,G,10848,Davis Ops 6 - South Davis Metro Fire (Bountiful fire response),498, -
Friday, April 20, 2012
Great Utah Shake Out Mock Disaster Audio
I managed to capture some audio from the Davis County EOC during the mock earthquake drill on April 17, 2012 as part of the State of Utah's Great Utah Shakeout Disaster Drill.
Davis County Disaster Talkgroup Audio
Davis County Disaster Talkgroup Audio
Great Utah Shakeout 2012
This Tuesday was the Great Utah Shakeout earthquake drill. I was looking forward to the opportunity to review our family's preparedness at home and then participate in the drills that were to take place in the community. It was fun to have the chance to go to the Davis County EOC and work in the Amateur Radio room. We got to pass mock traffic and interact with the county officials in the mock disaster. Afterwards, the debrief was also informative and reminded me that we always need to look for ways to improve our plans to become prepared for whatever type of disaster that may occur.
The county has a nice radio setup with capabilities on many different modes from CW to packet and band capabilities from HF to UHF. Area repeater coverage was also excellent with contacts from the North end of the state to the South end. Seeing how a good station like K7DAV is put together even gave me some ideas for improvements for my own shack.
The county has a nice radio setup with capabilities on many different modes from CW to packet and band capabilities from HF to UHF. Area repeater coverage was also excellent with contacts from the North end of the state to the South end. Seeing how a good station like K7DAV is put together even gave me some ideas for improvements for my own shack.
Wednesday, November 16, 2011
Maxtroller and Maxduino
After learning about the Arduino microcontroller and hearing how it had been used to turn an old Motorola Maxtrac radio into a trunking scanner, I wanted to try it out for myself. It's a project that combines both hardware and software aspects. I would have an opportunity to practice my soldering skills as well as some programming skills. It had been years since I took a C programming class in college, so I was looking forward to dusting off some of the things I learned.
Instructions for the project written by GroundLoop can be found here:
Instructions Update
Original Unmodified Code
Code Modified to Use Maxtroller Squelch
Code for Maxtroller Discrimator Audio Parking
I won't repeat these instructions here since they are well-written. There were a few differences between my 5-pin Maxtrac radios and the 16-pin Maxtrac radios used in the instructions, but the differences were resolved by comparing my radio's board and the pictures of the16-pin's board. The biggest software change I made was to wire the CSQ "squelch" circuit to the Arduino and use it to mute and unmute the Maxtrac. Without this change I was getting very long squelch tails (up to 2 seconds) that were fairly intolerable. Now the squelch tail is fairly tight and a lot less noticeable.

For my first attempt at building the Maxdunio, I crudely cut a slot in the back of the radio and ran the wires out to the Arduino. The second time I placed an RJ-45 jack in the side of the front cover next to the speaker. This allowed for an easy, clean connection to the Arduino or my homebuilt Maxtroller with an ethernet cable.
Instructions Update
Original Unmodified Code
Code Modified to Use Maxtroller Squelch
Code for Maxtroller Discrimator Audio Parking
I won't repeat these instructions here since they are well-written. There were a few differences between my 5-pin Maxtrac radios and the 16-pin Maxtrac radios used in the instructions, but the differences were resolved by comparing my radio's board and the pictures of the16-pin's board. The biggest software change I made was to wire the CSQ "squelch" circuit to the Arduino and use it to mute and unmute the Maxtrac. Without this change I was getting very long squelch tails (up to 2 seconds) that were fairly intolerable. Now the squelch tail is fairly tight and a lot less noticeable.
For my first attempt at building the Maxdunio, I crudely cut a slot in the back of the radio and ran the wires out to the Arduino. The second time I placed an RJ-45 jack in the side of the front cover next to the speaker. This allowed for an easy, clean connection to the Arduino or my homebuilt Maxtroller with an ethernet cable.
The original intent of the Arduino code is to interface the Arduino with Unitrunker software to receive tuning commands, process them, and forward them to the Maxtrac. I also wanted to be able to manually tune an second Maxtrac with an Arduino and use it to feed discriminator audio to my PC and Unitrunker software. In order to do this I built a small box using a Radio Shack project box. It allows me to press a button and toggle through various control channel frequencies and output the audio from the Maxtrac to my computer. I modified the Arduino code to not look for external tuning commands from Unitrunker, but cycle through a set of predefined frequencies when a button is pushed.

Here is the base of my Maxtroller box with a Radio Shack "Dual General-Purpose IC PC Board." I used this for both the button circuit and the discriminator audio circuit to add a resistor and capacitor inline with the audio.
Here is the base of my Maxtroller box with a Radio Shack "Dual General-Purpose IC PC Board." I used this for both the button circuit and the discriminator audio circuit to add a resistor and capacitor inline with the audio.
For the connection between the Maxtrac and the Arduino I used an ethernet cable. It was readily available, contained just the right number of wires, and was a neat solution which allowed for easily connecting and disconnecting the box and radio. Since this box is a stand-alone box without need to interface with the computer, I mounted the Arduino with the USB connection away from the edge of the box for ease of fitting. A 9v battery fits underneath the Arduino for power. Since this photo was taken, I have added an external power jack through the side of the box.
Here is my completed "Maxtroller"with the controller box connected to the Maxtrac via ethernet cable. The discriminator audio passes through an onboard resistor and capacitor and out of the box via a mini audio jack.
This was a fun project to put together. I had frustrations and success in making both the hardware and software work. I love having the capabilities of an expensive scanner wrapped in a couple of very inexpensive business radios and a couple of microcontrollers. The audio of the Maxtracs is superior to my other scanners. And the ability to prioritize talkgroups in Unitrunker provides a lot of functionality in monitoring.
Radio Shack Parts List:
Project enclosure 5x2.5x2 - #270-1803
Dual general-purpose IC PC board - #276-159
1/4-watt 10K ohm resistors - #271-1335
10 μF tantalum capacitor -#272-1436
Size M panel-mount power jack - #274-1582
1/8" Mono panel-mount audio jack - #274-251
Metal standoffs - #276-195
Push button - #275-1566
9v snap connectors - #270-324
Thursday, September 22, 2011
Uniden BC890XLT Discriminator Tap
Last week I bought a used Uniden BC890XLT scanner and added a discriminator audio tap. Here's how I did it:
The first thing to do was open the case. The outer sleeves come apart on the top and the bottom. There are 2 screws on each side and one screw on the back that I removed. I took both the top and bottom sleeves off to explore the inside, and discovered I only needed to remove the top to tap the discriminator audio. Once inside I found the location of the discriminator audio which is pin #10 of IC #3, 3359DA. Pin #10 is on the top right corner of the chip:
Rather than solder to the chip, I preferred to solder to the lead to the resistor at TP3 which is connected directly to PIN #10 of the IC. I put a 10K ohm resistor in series with a 10 μF tantalum capacitor.
I wanted this modification to be removable so I didn't drill a hole in the case. Rather, I ran a connected wire to the outside of the case through an opening in the side of the case.
I then ran the wire in the space between the case and the outer sleeve on the side. I then ran it around the corner to the back of the scanner. I connected the ground wire to the chassis via the screw that holds the accessory RCA jack. I put heat shrink tubing on the outside of the wires and connected them to a 1/8" mono phone jack.
Radio Shack Part Numbers:
1/4-Watt 10K ohm resistors - #271-1335
10μF Tantalum Capacitor - #272-1436
1/8" Mono In-line Phone Jack - #274-0333
Assorted Heat Shrink Tubes - #278-1627
Subscribe to:
Posts (Atom)

