The PRO-2052 is RadioShack's* version of the Uniden BC235XLT.
[*RadioShack: You've got questions? We've got blank stares!]
There is a news group alt.radio.scanner.
There is also an active discussion group for the PRO-2052 at http://groups.yahoo.com/group/pro2052owners/
The purpose of this page is to help owners of the PRO-2052 to write custom software to control the scanner with a computer. I started out getting it to work with Windows before shifting it over to Linux so the code is Windows centric. I assume Linux users will have an easier time converting from Windows code than Windows users would have converting from Linux.
RadioShack will sell you a cable and MS Windows software package from Pozilla Software, for 29.99 plus 4.50 S/H. Mine arrived in 9 days, minus the cable. A standard serial cable works just fine (straight through, not a null modem cable), and you can experiment with the commands and responses with HyperTerminal or any communications software that will let you make a direct connection to the serial port. You don't need a high powered computer either. A Tandy Z-80 Model 4 will work just fine, as will a Palm Pilot. The default connection is 9600/N/8/1 with no flow control, and the scanner sends a carriage return character to terminate any codes it sends. Your software should terminate any command to the scanner with an ASCII Carriage Return. (^M is 13 decimal, 0x0D hex. A line feed is ^J (10 decimal), 0x0A hex.) It helps to set the communications software to add a line feed to the scanner's responses so that each response is on a new line. After connecting the cable, turn on the computer and the scanner and then press and hold the Remote/Hold button on the scanner until you see "SFT" flashing on the right side of the LCD. You should now be communicating with the scanner. If it doesn't work, check all the normal stuff for whatever it was you overlooked. NOTE: You can change the scanner's default baud rate by holding down the Remote/Hold button while turning on the scanner.)
Here is a simple sample interactive communication method to get a feel for
what you can do. Assuming you are running some kind of MS Windows operating
system you should have an aplet named HyperTerminal already on your computer.
Look for it. In Windows 95 it is in Start | Programs | Accessories. If you
don't have it, put your Windows CD in the tray, click on Start | Settings |
Control Panel | Add/Remove Programs and click on the "Windows setup" tab.
Double click "Communications" and click on the empty box next to
"HyperTerminal". If it already has a check mark, then you have it installed
already and will have to go look for it. It's named hypertrm.exe.
Start HyperTerminal and a "new connection" dialog box will pop up asking you to name the connection. Name it something such as PRO2052 and click "OK". In the next dialog box open the "Connect using" dropdown box and select something appropriate such as "Direct to com 1" and click "OK". In the next dialog box set the communication parameters to 9600 bits per second, 8 data bits, no parity, 1 stop bit and no flow control and click "OK" (After you have gone through this drill, the next time you start the program you can bypass the "new connection" box by clicking "cancel". Then use file | open to select the pro2052 profile). Now click file | properties, select the "settings" tab and click "ASCII setup". check "send line ends with line feeds", "echo typed characters locally" and "append line feeds to incoming line ends" and then click "OK" twice.
Linux users already know about minicom which will work just fine
Now configure the scanner for communication as discussed above and type QU and press Enter. The scanner should respond with QUF or QUN. If the response is QUF type QUN and press Enter. then type QU and press Enter and the scanner should respond with QUN. Now, turn down the squelch until it breaks and you should see a +. Turn the squelch back up and you should see a -.
Everything is working as it should. Experiment with some other commands and also observe the terminal when the scanner intercepts transmissions.
Of course the really neat stuff can only be done under program control combined with some kind of data base containing information about each frequency.
If you have any 2052 software that you wish to share, let me know and I will provide a link to it or make it available here for download.
Here's a QBASIC skeleton to demonstrate how to construct a program:|
Note: If you don't have QBASIC and want it, look in the other\oldmsdos directory of a W95 or W98 CD
If you are familiar with any other programming language, it will work as well; the programming required is not very high tech. I picked QBASIC for this how-to because almost anyone can read it and figure out what's going on. If the program can send and receive data from a serial port, read and write to a file, and read from the keyboard and write to the screen, you're all set. You just have to listen to the serial port for either of the two characters "+" and "-". That tells you when the scanner starts or finishes receiving a signal. Then you (or preferably your program) query the scanner to find out what just happened or what the settings are, etc. Save what you want to a file, send information to the screen, build a few subroutines to do whatever it is you want to do and you're all set to enjoy your scanner.
OPEN "COM1:9600,N,8,1,CD0,CS0,DS0,OP0,RS,TB100,RB100" FOR RANDOM AS #1 CLS PRINT "PRO2052 Scanner Program - Press any key to abort" PRINT #1, "MD" ' get mode from scanner FOR x = 1 TO 20000: NEXT x ' insert some delay. This for a 233 Mhz WHILE LOC(1) = 0: WEND 'WAIT FOR DATA r$ = INPUT$(LOC(1), #1) 'READ DATA IF MID$(r$, 1, 4) = "MD00" THEN PRINT "Scanning" ELSE PRINT "Manual": END DO WHILE LOC(1) = 0 KB$ = INKEY$ ' STROBE KEYBOARD FOR KEYPRESS IF KB$ <> "" THEN CLOSE : PRINT "CLOSED": END WEND 'WAIT FOR DATA r$ = INPUT$(LOC(1), #1) 'READ DATA IF r$ = "+" THEN PRINT "RECEIVING" FOR x = 1 TO 10000: NEXT x PRINT #1, "MA" 'GET CURRENT CHANNEL STATUS FOR x = 1 TO 10000: NEXT x ELSEIF r$ = "-" THEN PRINT "Scanning" ELSE IF LEN(r$) > 1 THEN PRINT "CHAN "; MID$(r$, 3, 3); " Freq "; MID$(r$, 8, 4); "."; MID$(r$, 12, 4) END IF LOOP
Download this code I am offering no support because I don't have time. This code is an exact copy of a working model using QBASIC Version 1.1
Click here to download a sample I/O program. This program demonstrates one way to do disk Input/Output.
Here's a tip for those trying to use Tcl/Tk to control the scanner (A good choice). Set the translation for MacIntosh. i.e. -translation cr. This will convert the cr that the scanner sends to a linefeed, and convert the linefeed that your program sends to the scanner to a carriage return. The scanner wants only a carriage return after the data. Anything else will cause an error. This will also work if you are using a Windows platform with Cygwin and Tcl/Tk
|The key to real-time monitoring of the scanner is the Squelch Monitor. It's status can be checked with the QU command. If it is on, the scanner sends QUN and if it's off the scanner sends QUF. To turn the squelch monitor on, send the QUN command. After that, the scanner will return a + (plus sign) when squelch is broken (i.e. a transmission is being received) and will return a - (minus sign) when the transmission ceases. Your software will monitor the serial port for these two characters.|
Everything else is obvious, especially if you have the owner's manual which lists the commands and responses. You can also download the pc/remote documentation from Radio Shack or dial their FAX retrieval system at (800) 323-6586 and get document # 58689. For other documentation on the scanner visit here or get FAX document 57915.
If you are a programmer, there is nothing else here that you need. What follows is just the same stuff that's either in the manual or the docs mentioned above.
The main reason I wrote my own software to control the scanner is to go beyond the functionality of the Pozilla program, and to do it with Linux. The Pozilla program is buggy, but it works and it's cute.
|This table is for emulating the physical
pressing of a button. For example, say you wanted to walk over
to the scanner and press the "Priority" button. Instead of doing
that, just send the Characters|
K E Y 0 5 <CR>
and it will have the same effect.
|ERR||Command format error|
|Scanner Mode Code Responses|
|03||Limit Search Hold|
|05||Service Scan Hold|
|10||ID Search Hold|
|13||ID Lockout Review|
|14||Search Control Channel|
|15||EDACS ID Search|
|16||EDACS ID Hold|
|17||EDACS ID Scan|
|18||EDACS ID Manual|
|19||EDACS ID Lockout|
|20||EDACS Search Control Channel|
|Computer to Scanner Functions|
|Check the scanner's mode||MD|
|Clear the scanner's memory||AC|
|Check scanner modulation setting||RM|
|Check if Squelch Monitor is on||QU|
|Turn Squelch Monitor on/off||QUN/QUF|
|Check if Squelch is open||SQ|
|Check a bank's priority channel number||PC[A-T]|
|Set a bank's priority channel||PC[A-T]###|
|Check if Priority is on||PR|
|Turn Priority on/off||PRN/PRF|
|Check if Priority Monitor is on||RI|
|Turn Priority Monitor on/off||RIN/RIF|
|Check which banks are active||SB|
|Select banks for scanning||SB[A-T]|
|Tune scanner to a specific frequency||RF########|
|Go to a specific channel||MA###|
|Check the status of the current channel||MA|
|Add a frequency to a channel||PM### ########|
|Check a frequency stored in a channel||PM###|
|Check if Delay is on||DL|
|Check if Data Skip is on||DS|
|Check if Lockout is on||LO|
|Set the lower limit frequency||LL########|
|Check the lower limit frequency||LL|
|Set the upper limit frequency||LU########|
|Check the upper limit frequency||LU|
|Check for a frequency in search skip memory||SS##|
|Enter a frequency in search skip memory||SS########|
|There are an additional 28 Trunk mode commands|
|Frequency Coverage (29 - 1300 Mhz)|
|10 Meter Amateur||29.0000-29.6950||5 kHz|
|VHF Lo||27.7000-49.9950||5 kHz|
|6 Meter Amateur||50.0000-54.0000||5 kHz|
|2 Meter Amateur||144.0000-147.9950||5 kHz|
|VHF Hi||148.0000-174.0000||5 kHz|
|VHF TV||179.7500-215-7500||6 MHz|
|1 Meter Amateur||216.000-224.995||5 kHz|
|VHF Aircraft||225.0000-399.9875||12.5 kHz|
|70 cm Amateur||420.0000-449.9875||12.5 kHz|
|UHF Standard||450.0000-469.9875||12.5 kHz|
|UHF "T"||470.0000-512.0000||12.5 kHz|
|Public Sevice||806.0000-823.9375||12.5 kHz|
|Public Service/Trunking Repeater||851.0000-868.9875||12.5 kHz|
|Public Service||896.1125-956.0000||12.5 kHz|
|25 cm Amateur||1240.0000-1300.0000||12.5 kHz|
Send mail to the Webmaster
|This site best viewed with a browser|
|Warning: This is a Debian centric site and MAY contain peanuts.|
|Many thanks to Debra Lynn and Ian Murdock for making Debian possible|
|First created Apr 22, 2008 ~ Last revised March 22, 2010|