Information on the BC895XLT I/O port and data format | From: A. Giammarino (agia@ix.netcom.com) | Last Update: 01-03-1999:1830 hrs | *** View with a mono-proportional font *** | ============================================= | I wish to thank all the contributors who have | added to this list. | ------------------------------------------------------ ============================================================================== Discriminator (baseband audio output): Here is that information (from Greg Knox ): "To get at it, remove the bottom cover of the radio. Orient the radio so that the rectangular silver shielded box is at the top of the radio and the rotary VFO knob is at the lower right hand corner. The tap point is a solder pad at the lower terminus of a vertical trace about an inch long. The pad is located at a point 3.6" from the top edge of the circuit board and 2.6" to the left of the right edge of the circuit board." ------------------------------------------------------------------------------ ============================================================================== Data format: The BC895XLT communicates at 9600 baud, 8 bits, no parity, 1 stop bit. Using a shareware scanner program I found on the internet, I monitored the raw data between the computer and the scanner with a second computer. That coupled with some guesswork yielded the following so far: Note: You will need to put the scanner in the remote mode. Press and hold the ALRT/RMT button until the radio beeps twice. Also, the scanner is case sensitive - USE UPPER CASE LETTERS. ============================================================================== AC: Clears all memory and resets the radio. AR: status of LINE for AUX OUT ARN: turns LINE on ARF: turns LINE off CC: responds with N - meaning unknown. CD: CTCSS search function. Causes CTCSS in display to flash. Responded with 23 when it found a PL of 146.2. CDN: function on CDF: function off CS: responds CSxx; xx two digit number representing CTCSS tone CSxx: sets CTCSS tone xx 00 - 000.0 01 - 67.0 02 - 71.9 03 - 74.4 04 - 77.0 05 - 79.7 06 - 82.5 07 - 85.4 08 - 88.5 09 - 91.5 10 - 94.8 11 - 97.4 12 - 100.0 13 - 103.5 14 - 107.2 15 - 110.9 16 - 114.8 17 - 118.8 18 - 123.0 19 - 127.3 20 - 131.8 21 - 136.5 22 - 141.3 23 - 146.2 24 - 151.4 25 - 156.7 26 - 162.2 27 - 167.9 28 - 173.8 29 - 179.9 30 - 186.2 31 - 192.8 32 - 203.5 33 - 210.7 34 - 218.1 35 - 225.7 36 - 233.6 37 - 241.8 38 - 250.3 CT: CTCSS function - Tone Squelch. CTN: function on CTF: function off DL: responds with status of DELAY function - N for on, F for off DLN: turns DELAY on DLF: turns DELAY off DS: Toggles the DATA button (data skip) DSN: function on DSF: function off IC bn: While in the trunk scan mode, this command stops the radio at trunking scan bank 'b', channel 'n'. For example: IC A1 responds with 001456. To access channel 10, let 'n' equal 0. Issue a scan (KEY00) to resume. See page 45 of user's manual for details. ID: Turns on/off trunk ID number being sent to data port while trunk tracking. IDN: Sends ID number to port. Format is: ID s nnnnnn; s=S while receiving, s=E at end of transmission. nnnnnn=trunk ID number. IDF: turns function off. IL: Responds with list of locked out trunk IDs. ILR nnnnnn: While holding a trunk ID, locks trunk ID nnnnnn out. IS: While trunk tracking, responds with trunking scan list bank that is being scanned (assuming you're in that mode.) IS b: stores b into IS function. Passes bank letter to IS function. LL: read lower limit (for searching between frequencies). LLffffffff: set lower limit. LU: read upper limit. LUffffffff: set upper limit. LO: L/O (channel lockout) status LON: lockout channel LOF: restore channel MA: reads data from current channel. Similar to above. Does not work while trunk tracking or scanning, only manual. MAccc; ccc=channel number (e.g. 001): Puts radio to channel ccc and responds with data (e.g. C001 F04535000 TF DF LF AF RF N00). Will halt scanning. Note: F=off, N=on TF=freq. was entered as trunked (shows off) DF: DELAY status (shows off) LF: L/O status (shows off) AF= Unknown RF= LINE status (shows off) N00=reflects CS number (CTCSS not set) MD: status command that returns a two digit number (there's more unsolved MDxx codes). 00 while scanning 01 is returned after a write to a memory channel or in manual mode. 02 limit search mode 03 limit search hold mode 04 weather search 05 weather hold 06 mode radio is in after TRUNK key is activated (KEY13, not KEY13H) 07 when in trunk tracking mode. 08 monitoring a held trunk ID (condition MD08 and HOLD is pressed) 09 scanning trunk IDs 10 occurs if manual is pressed during condition MD09 12 searching for trunking control channel 13 CTCSS mode 14 WX alert mode 15 a KEY18 was sent 16 auto store mode 17 after a write through the RFnnnnnnnn command. MU: Mute AUDIO Responds A - seems to be default MU setting. MUA: Un-mutes audio, returns squelch to normal MUF: Un-mutes audio, opens squelch MUN: Mutes audio PC b: Shows priority channel for bank b. Example: PC A returns PC A001, channel 1 is the priority channel on bank A. PMccc: read contents of memory channel ccc. Does not halt scanning. Similar to MAccc function. PMccc ffffffff; ccc=channel, ffffffff=freq.; Programs channel ccc with freq. Note there is a space (ASCII 32/20 hex/SPACEBAR) between the last c and the first f. PR: status of PRIORITY scan function. PRF: sets function off PRN: sets function on QU: Receive activity indicator. Used to signal computer program QUN: causes data port to output + if receiving a signal and - if not. QUF: turns off QU RI: responds with status of unknown function - N for on, F for off RIN: turns unknown function on RIF: turns unknown function off RF: responds with freq. in format ffffffff only if this frequency is set by the RFnnnnnnnn command. If the frequency is already in memory assigned to a channel then the scanner responds NG. Does not work while trunk tracking. RFnnnnnnnn; nnnnnnnn=freq. (e.g. 470.5875 MHz -> 04705875): Dials up the freq. in the radio (like the VFO mode) but does not program it into channel memory. Scanner replies OK after command. RM: Reads mode (e.g. NFM, AM, etc.) SB: responds with bank letter(s) SB b: goes to/turns on bank b. Multiple letters can be used. Works while scanning. Does not work while trunk tracking. Also see KEY21 command below. SG: S-meter reading and frequency (e.g. S014 F04535000). No signal responds S014 for me while a strong NOAA weather station returns S026. SQ: responds - when squelch is closed and + when open or receiving signal. SS: List of frequencies that were locked out while in the frequency search mode. See page 31, channel skip, in the manual. ST: step size. 0000000 indicates default step size for frequency radio is currently on. ST0005000 places radio in 5 kHz step mode. 00125000=12.5 kHz, 00250000=25 kHz, 00000000=default for that frequency. ST by itself will return the new step size if it is changed. Also see KEY15 command below. WI: returns Wnnn Fffffffff; nnn=three digit number of unknown significance and Fffffffff where the lower case f is the frequency. Works in MANUAL or SCAN mode (example output: W084 F01541750). This number can change even though the same channel/frequency is held on the radio. The number seems to vary slightly. ============================================================================== KEY functions. Just type KEYxx and carriage return; xx=number below. Acts the same as pressing front panel buttons. KEY functions with H at the end simulate pressing and holding the key. Note: Some of the KEY functions producing errors are likely because the command is issued out of context. They probably are valid functions. KEY00: functions SCAN button KEY01: functions MANUAL button KEY02 t:Functions numeric keypad (numbers only) Example #1: entry of trunk ID numbers while trunk tracking: To enter a trunk ID of 1776, the following sequence would be used: KEY02 0, KEY02 1, KEY02 7, KEY02 7, KEY02 6, KEY07 For 368: use 0,0,3,6,8 (maintain a five digit number for these IDs!) For 25808: use 2,5,8,0,8 Example #2: enter a frequency Enter 39.600 MHz KEY02 3, KEY02 9, KEY03, KEY02 6, KEY04 KEY03: Decimal point on numeric keypad. Also serves to enter a "-" in a talkgroup ID. KEY04: E key on numeric keypad. KEY05: Toggles PRIORITY (same as PR) KEY05H: Same as holding down PRIORITY button (assigns channel as PRI channel) KEY06: Toggles L/O (same as LO) KEY06H: Same as pressing and holding the L/O button. While trunk tracking, enters into restoring Single ID mode. See page 42 of the users manual. KEY07: HOLD button. Steps up through channels (will not put radio into manual from scan). ID hold mode while trunk tracking. KEY07H: Same as holding down HOLD button KEY08: LIMIT button. Steps down through channels KEY08H: Same as holding down LIMIT button KEY09: SRC button KEY09H: ID Monitor Mode (See page 44). KEY10: Turns on WX KEY11: Toggles DATA skip function While trunk tracking, shows which bank is being scanned KEY12: Toggles DELAY (same as DL) KEY13: Toggles TRUNK button. KEY13H: Same as holding down TRUNK button (trunking programming mode). KEY14: Functions DIM button KEY15: Functions STEP button. To get step size issue a KEY15 and then issue a ST command. KEY16: Toggles AUX (LINE in display) function KEY17: disconnect radio from computer (activated ALRT/RMT button) KEY18: bank letters began flashing or ERROR. Perhaps the SEND button? KEY19: Toggles AUTO button. KEY20: Toggles CTCSS (same as CT) KEY20H: Same as holding down CTCSS button (Enter CTCSS search mode) KEY21 b:Specify a bank to trunk track. Do after a KEY13 or KEY13H. Also selects/deselects a bank during normal scanning. KEY22: Toggles FREQ/CHAN KEY23: Toggles LOCK ============================================================================== I have been successful in programming the radio by creating a text file and sending it to the scanner. I had to introduce a small delay between characters so the data wouldn't overflow the scanner. Each channel and frequency is on a separate line followed by a carriage return (hex 0D) and line feed (hex 0A). Update: My error, but my terminal program strips off the line feed (hex 0A). Apparently sending the line feed causes the radio to reject the data. TERMINAL.EXE from Windows 3.X has to have the 'Strip LF' enabled under the 'Following CR:' option. This is accessed by 'Send Text File' from the top memu. In BASIC, I just send a CHR$(13) which is just a carriage return. For example: (the is invisible - don't type it. Using a simple text editor, the editor will actually append where is a line feed) PM001 04537250 PM002 04535000 PM003 00459400 etc... ============================================================================== Software Update: Visual Basic version development has been halted. It is primarily a virtual scanner, however, I have had some programming difficulties with it. Current version of BCTRUNK.EXE is V 1.85 which now allows selection of either COM1 or COM2. Here's a snippet of the text file BCTRUNK.EXE uses: 000848 SDPD Tac 6 000912 SDPD Tac 7 001008 City Tac 1 001072 City Tac 2 001104 City Tac 3 001296 Southern Dispatch Another beta program, ScanStat, allows you to create a virtual scanner with up to 20 channels. Each channel has an activity counter. Useful to see which frequency is busiest in your area (e.g. FRS, packet, or business itinerate frequencies). This is a DOS freeware program and can be requested via e-mail. --------------------------------------------------------------------------- If anybody finds more commands or any other pertinent information let me know. I'll update this list as I find out more. A. Giammarino San Diego, CA agia@ix.netcom.com