All commands are sent is ASCII in the format: Command + CR + LF CR = chr$(13) LF = chr$(10) Some responses from the PCR1000 have an added character at the end of the response string. It is usually a duplicate of the last character of the string and can be discarded. (A bug, I suppose) DTR and RTS set high by software. When radio is first turned on, the software send the following commands: initial boot up at 9600 Baud. H101 Turn Radio ON G105 Set Baud rate to 38400 Baud G300 Set Autoupdate to OFF H1? Is radio still ON? Responds H100 for OFF, H101 for ON H101 Radio ON command G4? Possible Inquire Country Code. US version returns G410 G301 Auto Update ON GE? Not Known but returns GE09 in US version GD? Is DSP Installed? Returns GD00 if NO, GD01 if Yes K00857937500050200 Set Frequency J4100 Set Squelch J5100 See Tone Squelch J5000 Set VSC off J4380 Set IF Shift to mid range J4500 Set AGC OFF J4600 Set Noise Blanker OFF J4700 Set Attenuator OFF J4A80 Not known LD8200 Not known J8001J8101J8200J8301 DSP Packet. See DSP commands below J4000 Set Volume ME0000120050100012500 Set Bandscope ON to +- 200 Khz and 12.5 Khz step ' This is returned when Bandscope first turned ON NE100000000000000000000000000000000000 NE110000000000000000000000000000000000 NE120000000000000000000000000000000000 NE130000000000000000000000000000000000 NE140000000000000000000000000000000000 NE150000000000000000000000000000000000 NE160000000000000000000000000000000000 NE170000000000000000000000000000000000 NE190000000000000000000000000000000000 NE1A0000000000000000000000000000000000 NE1B0000000000000000000000000000000000 NE1C0000000000000000000000000000000000 NE1D0000000000000000000000000000000000 NE1E0000000000000000000000000000000000 NE1F0000000000000000000000000000000000 _____________________________________________________ Command Status: G0xx where xx = 00 when command is Good, 01 when command is Bad Signal Update: G3xx 00 = off (Program needs to Poll status) See I1? to I3? below 01 = on (Radio sends Status when a parameter changes) See Ix? commands 02 = binary mode (Update off) 03 = binary mode (Update on) Inquire signal information. These commands can be Polled or are returned as a packet if Autoupdate is ON (See G301) and one of the values changes. I0? Squelch Status returns 04 = Closed, 07 = Open I1? Signal Strength returns 00 to FF I2? Signal Centering returns 00 = Low, 80 = Centered, FF = High I3? DTMF Tone returns I300 if NO DTMF tone present returns I31 + ASCII digit 0 to F (* = E, # = F) Alive: H1? Is radio alive? Radio responds H101 (on) or H100 (off) Volume: J40xx xx Range 00 to FF Squelch: J41xx xx Range 00 to FF IF Shift: J43xx xx Range 00 to FF AGC: J45xx xx = 01 for ON, 00 for OFF NB: J46xx xx = 01 for ON, 00 for OFF Attenuator: J47xx xx = 01 for ON, 00 for OFF VSC: J50xx xx = 01 for ON, 00 for OFF T Squelch on = J51tt (tt=tone , 01=67Hz, 33=254.1Hz) T Squelch off = J5100 Frequency: K0GMMMKKKHHHmmff00 where K0 G MMM KKK HHH mm ff 00 G=GHz MMM=MHz KKK=KHz HHH=Hz mm = mode ff = Filter 00 = Padding Bytes (always there) Mode Settings: 00 = LSB 01 = USB 02 = AM 03 = CW 04 = Not used or Unknown 05 = NFM 06 = WFM Filter Settings: 00 = 3 Khz (actually 2.8 Khz) 01 = 6 Khz 02 = 15 Khz 03 = 50 Khz 04 = 230 Khz Radio Replies I000 TBD I1ss ss is Signal Strength 00 to FF I200 Signal Frequency < Display Frequency I280 Signal Frequency = Display Frequency I2FF Signal Frequency > Display Frequency I300 No DTMF Present I31t t is DTMF tone (* = E, # = F) Baud Rate G1xx where xx is: 00 = 300 01 = 1200 02 = 4800 03 = 9600 04 = 19200 05 = 38400 Signal Update G3xx 00 = off (Program needs to inquire signal strength, DTMF tone, Center, etc) 01 = on (Radio sends signal strength, DTMF tone, etc as needed) 02 = binary mode (Update off) 03 = binary mode (Update on) __________________________________________________________ Icom PCR1000 Band Scope commands. The basic command to turn the bandscope function On is: ME0000120050100012500 + CR + LF The command breaks down this way: ME00001 20050100012500 ME00001 is the preamble. It's always the same. ME00001 20 050100012500 20 is the number of samples. It must be a 2 digit HEX number represented in ASCII. Add leading 0 if necessary. Calculate this number by dividing the Scope Bandwidth by the step size. For example in the +- 200 Khz span the total bandwidth is 400 Khz. If the step size is 12.5 khz then 400/12.5 is 32 or 20 Hex. If you get a non integer answer for the initial division then increment the sample number by 1 or 2 (sample should be an EVEN number). You can arbitrarily set the sample higher(SLIGHTLY) to allow the display to be moved inward from the edges of the scope display. ME0000120 05 0100012500 05 is a sample rate value that detiremines how fast the scope is swept and in the Icom software is either 05 or 28. This is interpreted as a hex number and must be 2 digits. The practical values for this runs from 01 (very fast and resource intensive) to about 70 (very slow and nearly useless). Putting 00 here locks the PCR1000 and software up. In the Icom software the number of samples detiremine this value. Sample numbers above 10 hex use 05 and those 10 Hex or lower use 28 Hex. ME000012005 01 00012500 01 This is the On/Off characters. If they are 00 then the bandscope is OFF. If they are 01 the bandscope is ON ME00001200501 00 012500 00 is a padding value and must be there. ME0000120050100 012500 012500 is the step size expressed in HERTZ. It must be 6 digits long, padded with LEADING ZEROS. Examples are 001000 for 1000 hertz (1 Khz), 030000 for 30 Khz and 100000 for 100 Khz. The bandscope accepts values down to at least 10 hertz but the Icom software displays a LIMIT warning at 1 Khz and at 100 Khz. The Band Scope commands appear to be insensitive to mode and bandwidth except for the fact that it doesn't work in USB, LSB or CW. It has been hypothesized that the product detector circuitry is used by the Band Scope. Typical Band Scope Commands: ME00001C8050100001000 +- 100 Khz @ 1 Khz ME0000164050100001000 +- 50 ME0000132050100001000 +- 25 ME00001A0050100002500 +- 200 Khz @ 2.5 Khz ME0000150050100002500 +- 100 ME0000128050100002500 +- 50 ME0000114050100002500 +- 25 ME0000150050100005000 +- 200 Khz @ 5.0 Khz ME0000128050100005000 +- 100 ME0000114050100005000 +- 50 ME000010A280100005000 +- 25 ME0000140050100006250 +- 200 Khz @ 6.25 Khz ME0000120050100006250 +- 100 ME0000110280100006250 +- 50 ME0000108280100006250 +- 25 ME000012E050100009000 +- 200 Khz @ 9.0 Khz ME0000118050100009000 +- 100 ME000010C280100009000 +- 50 ME0000106280100009000 +- 25 ME0000128050100010000 +- 200 Khz @ 10.0 Khz ME0000114050100010000 +- 100 ME000010A280100010000 +- 50 ME0000106280100010000 +- 25 ME0000120050100012500 +- 200 Khz @ 12.5 Khz ME0000110280100012500 +- 100 ME0000110280100012500 +- 50 ME0000108280100012500 +- 25 ME0000114050100020000 +- 200 Khz @ 20.0 Khz ME000010A280100020000 +- 100 ME0000106280100020000 +- 50 ME0000104280100020000 +- 25 ME0000110280100025000 +- 200 Khz @ 25.0 Khz ME0000108280100025000 +- 100 ME0000104280100025000 +- 50 ME0000100280100025000 +- 25 ME000010E280100030000 +- 200 Khz @ 30.0 Khz ME0000108280100030000 +- 100 ME0000104280100030000 +- 50 ME0000100280100030000 +- 25 ME0000108280100050000 +- 200 Khz @ 50.0 Khz ME0000104280100050000 +- 100 ME0000100280100050000 +- 50 Note 00 sample size This is invalid! ME0000104280100100000 +- 200 Khz @ 100.0 Khz ME0000100280100100000 +- 100 Invalid ME0000100280100100000 +- 50 Invalid ********************************************************************** The data is returned in 37 byte packets. The packets begin with the Letters NE1 followed by the 2 digit hex packet number. The Packet numbers run from 00 to F0 (must be 2 digits). Typical packet numbers would be NE100, NE170, NE180 and NE1F0. These numbers are followed by 32 bytes that contain signal level information for EACH sample (16 per packet). Each byte is a hex number (in ascii) that can run from 00 to FF. The bytes in packet NE180 represent the first 16 samples UP from the displayed frequency in ascending order. The bytes in packet NE170 represent the 16 samples BELOW the displayed frequency in descending order. For example the following: NE18020202020202020202020202020202020 NE1 80 20202020202020202020202020202020 NE1 is the fixed preamble NE1 80 20202020202020202020202020202020 80 is the packet number NE180 20 202020202020202020202020202020 20 is the sample signal level (20 Hex) at the displayed frequency NE18020 20 2020202020202020202020202020 This is the next sample level UP from the displayed freq The next 14 values represent the next 14 sample levels. If less samples are needed, the higher sample levels are set to 00. If more then 16 sanple levels are needed Up from the center freq, then the next packet NE190 hold the values. For the following: NE17000000000000000001111111111111111 NE1 7000000000000000001111111111111111 NE1 is the fixed preamble NE1 70 00000000000000001111111111111111 70 is the packet number. Packet 70 is the first packet BELOW the center frequency. NE170000000000000000011111111111111 11 11 This is the first sample level BELOW the center frequency. NE1700000000000000000111111111111 11 11 11 This is the next LOWER sample level and so on. In this example, only 16 (10 Hex) samples were specified. 8 samples are provided here below center freq and the corresponding 8 above center freq would be in the NE180 packet. If more then the 32 samples that can be displayed with NE170 and NE180 were specified then additional packets would be sent. For example if 48(decimal) samples were specified then the following packets would be returned: NE160 would have 8 samples (in the UPPER 8) NE170 would have 16 samples NE180 would have 16 samples NE190 would have 8 samples (in the LOWER 8) Note that they are sent in ascending order from NE160 to NE190. A rough indication of the number of packets needed for a given sample size is (Number of samples)/16 plus 1. If the number is ODD then add 1 more packet. Sample in order sent (This is a continous string): NE1600000000000000000000030180FA61F14 NE1701F2B0C0F7E030C2B85088E080F2B4314 NE1801B8E181830085FEC6603083001143003 NE19001030101012701000000000000000000 When Band Scope is first turned ON or is turned OFF, ALL 16 packets are returned with ALL samples set to 00. ___________________________________________________________ The DSP commands below have to be sent as a packet followed by a Cr + Lf sample packet J8001J8101J820FJ8301 | | is always there and never changes J8001J8101J820FJ8301 | | DSP ON J8100 is DSP Off J8001J8101J820FJ8301 | | ANR on and set to max would be J8200 if off J8001J8101J820FJ8301 | | Notch turned ON J8301 turns notch ON With this in mind here is the DSP Command Set: On startup the software sends GD? Returns GD00 if NO DSp installed Returns GD01 if DSP Installed Autoupdate must be ON (send G301 + cr + lf): J8001 Always the same J81xx where xx is 00 if DSP is OFF and 01 if ON J82xx This is the ANR function (Automatic Noise Reduction) xx is 00 if ANR is OFF. If ON, xx varies from 01 to 0F when you turn a knob on the new DSP Popup panel. J83xx is the Automatic Notch filter. xx is 00 if notch is OFF and 01 if ON. The following data is written to the PCR1000.ini file. DSPON with either 0 or 1 for Off/On DSPANF with either 0 or 1 for Off/On DSPNR with either 0 or 1 for Off/On DSPNRLEVEL with value 0 to 15 for Noise Reduction level