What's new in version 1.41b

1. I've added rudimentary sweep export and sweep import in .txt format. Data is comma delimited and can be exported in excel.

2. I've also added a memory trace. This trace is also included in the sweep export.

3. Added tuning buttons. The tuning step can be changed by clicking on the box between the buttons.

4. Added peak QSY , peak search left and peak search right.

5. Print has been poorly implemented. I am still working on it.

6. Now I plan on concentrating on cleaning the program up. I will probably not add any features until the program code is optimized. If you have anything that you would really like to see, send me an e-mail and I'll try to implement it.

7. This version expires on May 1, 1998. I am only doing this to encourage users to download the latest update. I do not have any plans at this point to sell the program. I will probably make it shareware once it is optimized. I have also deleted the expiration notice from the sweep. I hate anoying signs on my plots!

8. I've deleted the status bar on the bottom. It was serving no purpose and the clock was not ticking. This will help the users running it at lower resolutions

9. I've added a refresh check box. When not checked the resweep will not erase old sweeps. This was a requested feature.


This is a spectrum analysis program for the ICOM PCR1000 radio. Currently the program is in it's very early stages of development. It still crashes now an then. It currently sweeps any frequency range using any mode, step size, filter, att, nb, etc.

Please understand that the program is still in it's early stages of development. This is a preview version only. I am making it available so that I can receive some input on bugs and suggestions. I strongly encourage input from users. I recomment that you cycle the PCR1000 power before running the application. If the application crashes. Cycle the radio's power and try again.

 

Thanks to all the users that have e-mailed me their inputs.

Pieter

N4IP

 


PCR1000 Command Set. (commands compiled so far)


This commands have been compiled from the scanner newsgroups.This is information that has been uploaded by users worldwide. I am just serving as a keeper of the commands discovered. I have not tried these commands therefore I cannot guarantee their accuracy. Use at own's risk. If you have any additions please send me some e-mail.

N4IPieter

 

When radio is first turned on, the software Typically sends the following commands:

H101 ' Turns Radio on (sent at 9600 baud. Radio seems to always boot up at 9600 baud)
G4?
' Maybe inquires the radio version or is the DSP installed?
G105
' Sets baud rate to 38400
G300
' Sets updating to off. That way the radio wont be sending junk during setup.
H1?
' Inquires if radio is still alive
G301
' Sets updating to on. Radio will automatically send info when things change like s meter moves or DTMF received. See I replies.
GE? ' Not Known
GD? ' Not Known
J4A80 ' Not Known
LD82000 ' Not Known
J8001 ' Not Known
J8100 ' Not Known
J8200 ' Not Known
J8300 ' Not Known
J4070
' Sets Volume

Radio Commands

* Most commands are followed by a CRLF=CHR$(13)+CHR$(10)

* To keep the radio from turning off after 15 seconds or so, keeping the RTS line high (+V) seems to do the job.

RTS is pin4 (25 pin connector) and pin7 (9 pin connector)

FF means a value between 00 and FF


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)

Inquire signal information

I0? Squelch Status (maybe???)
I1? Signal Strength
I2? Signal Centering
I3? DTMF Tone


Alive:
H1? Is radio alive? Radio responds H101 (on) or H100 (off)

Volume:
J40FF

Squelch: (Set J50 afterwards)
J41FF

IF Shift:
J43FF

Band Scope (see below for details)
On = ME0000114050501000ssss ssss = step in Hz
Off = ME0000114050500000ssss ssss = step in Hz

AGC on = J4501
AGC off = J4500

NB on = J4601
NB off = J4600

Attenuator on = J4701
Attenuator off = J4700

VSC on = J5000
VSC off = J5001

T Squelch on = J51tt (tt=tone , 01=67Hz, 33=254.1Hz)
T Squelch off = J5100

Frequency: (last 2 zeros might be DSP setting)
K0GMMMKKKHHHmmff00
G=GHz, MMM=MHz, KKK=KHz, HHH=Hz
mm is mode
00 = LSB, 01 = USB, 02 = AM, 03 = CW, 04=?? , 05 = NFM, 06 = WFM
ff is filter
00 = 3K, 01 = 6K, 02 = 15K, 03 = 50K, 04 = 230K




Radio Replies

I0ss Squelch open? ss=07 open, ss=04 closed
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
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 prefix. 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. 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 is not valid.
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. You must
limit how small the step size is (for a given scope width in (Khz) to
prevent the number of samples from getting too large.
Eg. (Bandwidth/step) CANNOT exceed FF hex or 255 decimal.

The Band Scope commands appear to be insensitive to mode and bandwidth
settings except for the fact that it doesn't work in USB, LSB or CW.

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 38 byte packets. The LAST digit of the packet
is discarded in calculations making the usable packet length 37 digits.
The packets begin with the Letters NE1 followed by the 2 digit hex
packet number. The Packet numbers run from 00 to F0.
The available packet numbers are NE100, NE110, NE120, NE130, NE140,
NE150, NE160, NE170, NE180, NE190, NE1A0, NE1B0, NE1C0, NE1D0,
NE1E0 and NE1F0.

NOTE that ONLY the 4th digit in this prefix changes.

Having 16 packets holding 16 levels allows a Maximum of 255 (numbered
01 to FF..00 is invalid) samples.

The packet prefix is followed by 32 bytes that contain signal level
information for EACH sample (16 per packet).

Each byte pair 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 and
including 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 prefix

NE1 80 20202020202020202020202020202020
80 is the packet number. Second digit ALWAYS 0

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 samples 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 prefix

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 these examples, 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.

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 samples set to 00 (except packet 80).



Here are the commands for the UT-106 DSP unit.
 
The 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