Portmon

This excellent utility for monitoring serial port activity can be downloaded from http://www.sysinternals.com/ and http://technet.microsoft.com/en-us/sysinternals/bb896644.aspx.

Quoting the Sysinternals website: “Portmon is a utility that monitors and displays all serial and parallel port activity on a system. It has advanced filtering and search capabilities that make it a powerful tool for exploring the way Windows works, seeing how applications use ports, or tracking down problems in system or application configurations."

Portmon works on all versions of Windows supported by HRD and DM780.

It is often useful to run Portmon when unexpected results are returned from a radio or other device such as a rotator or keyer.

Typically the problems are either:

  1. Incorrect / unexpected data returned, or
  2. Timeouts when reading the radio.

Timeouts are the most common problem, often caused by USB => serial port converters having poor drivers.

If the IRP_MJ_READ entries do not contain any data then the radio is simply not responding, a typical example is shown here:

0.00002276 HamRadioDeluxe. IRP_MJ_WRITE Serial0 SUCCESS Length 3: 50 53 3B  
0.99979074 HamRadioDeluxe. IRP_MJ_READ  Serial0 TIMEOUT Length 0:
 

The Steps

  • Close any programs connected to your radio or device being interrogated.
  • Start Portmon.exe
  • Make sure the options below are set:
     
    • Menu:  Options, Show Time
      Value: ON 
    • Menu:  Options, Show HEX
      Value: OFF if Elecraft, Kenwood, Yaesu FT-2000, FT-450, FT-950
             ON  if ICOM, Older Yaesu or TenTec
             ON  if you are not sure (programmers can read hex).
    • Menu:  Options, Clock Time
      Value: OFF
    • Menu:  Computer, Select your local computer
    • Menu:  Capture, Ports
      Value: The COM port where you have connected the interface
             to your radio, select only one COM port to avoid confusion.
    • Menu:  Capture, Capture Events
      Value: ON
        
  • Start HRD then connect to your radio.
  • Let HRD run for about 60 seconds while you perform your tests.
  • Stop HRD (File menu: Disconnect).
  • In Portmon set the Capture: Capture Events option to OFF.
  • Look at the results - if the IRP_MJ_READ does not return any data then the radio is not responding.
  • If IRP_MJ_READ is returning data but the frequency is not displayed correctly then:

 Sample Logfile

A sample logfile for a TS-480SAT connecting at 115,200 baud is shown below. To save space the Process (HamRadioDeluxe) and Port (Serial0) are not shown. All data is in ASCII as the Kenwood protocol uses ASCII, there is not need to display hex. There are no errors in this logfile. 

#    Time          Request                            Result     Other 
2    0.00006733    IRP_MJ_CREATE                      SUCCESS    Options: Open    
3    0.00000307    IOCTL_SERIAL_SET_QUEUE_SIZE        SUCCESS    InSize: 1024 OutSize: 1024   
4    0.00000279    IOCTL_SERIAL_PURGE                 SUCCESS    Purge: TXABORT RXABORT TXCLEAR RXCLEAR   
5    0.00000196    IOCTL_SERIAL_GET_BAUD_RATE         SUCCESS       
6    0.00000168    IOCTL_SERIAL_GET_LINE_CONTROL      SUCCESS       
7    0.00000140    IOCTL_SERIAL_GET_CHARS             SUCCESS       
8    0.00000168    IOCTL_SERIAL_GET_HANDFLOW          SUCCESS       
9    0.00000894    IOCTL_SERIAL_SET_BAUD_RATE         SUCCESS    Rate: 115200   
10   0.00000447    IOCTL_SERIAL_SET_RTS               SUCCESS       
11   0.00000447    IOCTL_SERIAL_CLR_DTR               SUCCESS       
12   0.00000335    IOCTL_SERIAL_SET_LINE_CONTROL      SUCCESS    StopBits: 1 Parity: NONE WordLength: 8   
13   0.00000168    IOCTL_SERIAL_SET_CHAR              SUCCESS    EOF:0 ERR:3f BRK:3f EVT:0 XON:11 XOFF:13   
14   0.00000335    IOCTL_SERIAL_SET_HANDFLOW          SUCCESS    Shake:8 Replace:40 XonLimit:341 XoffLimit:341   
15   0.00000168    IOCTL_SERIAL_SET_TIMEOUTS          SUCCESS    RI:500 RM:500 RC:500 WM:500 WC:500   
16   0.00000447    IOCTL_SERIAL_CLR_DTR               SUCCESS       
17   0.00000447    IOCTL_SERIAL_SET_RTS               SUCCESS       
18   0.00000223    IOCTL_SERIAL_SET_WAIT_MASK         SUCCESS    Mask: RXCHAR TXEMPTY CTS DSR RLSD BRK RING    
19   0.00000223    IOCTL_SERIAL_PURGE                 SUCCESS    Purge: TXABORT RXABORT TXCLEAR RXCLEAR   
20   0.00002989    IRP_MJ_WRITE                       SUCCESS    Length 4: AI0;   
21   0.00000196    IOCTL_SERIAL_GET_BAUD_RATE         SUCCESS       
22   0.00000168    IOCTL_SERIAL_GET_LINE_CONTROL      SUCCESS       
23   0.00000140    IOCTL_SERIAL_GET_CHARS             SUCCESS       
24   0.00000140    IOCTL_SERIAL_GET_HANDFLOW          SUCCESS       
25   0.00000894    IOCTL_SERIAL_SET_BAUD_RATE         SUCCESS    Rate: 115200   
26   0.00000447    IOCTL_SERIAL_SET_RTS               SUCCESS       
27   0.00000447    IOCTL_SERIAL_CLR_DTR               SUCCESS       
28   0.00000307    IOCTL_SERIAL_SET_LINE_CONTROL      SUCCESS    StopBits: 1 Parity: NONE WordLength: 8   
29   0.00000168    IOCTL_SERIAL_SET_CHAR              SUCCESS    EOF:0 ERR:3f BRK:3f EVT:0 XON:11 XOFF:13   
30   0.00000335    IOCTL_SERIAL_SET_HANDFLOW          SUCCESS    Shake:0 Replace:40 XonLimit:341 XoffLimit:341   
31   0.00002626    IRP_MJ_WRITE                       SUCCESS    Length 3: PS;   
32   0.00174883    IRP_MJ_READ                        SUCCESS    Length 1: P   
33   0.00000391    IRP_MJ_READ                        SUCCESS    Length 1: S   
34   0.00000279    IRP_MJ_READ                        SUCCESS    Length 1: 1   
35   0.00000279    IRP_MJ_READ                        SUCCESS    Length 1: ;   
36   0.00000223    IOCTL_SERIAL_GET_BAUD_RATE         SUCCESS       
37   0.00000196    IOCTL_SERIAL_GET_LINE_CONTROL      SUCCESS       
38   0.00000168    IOCTL_SERIAL_GET_CHARS             SUCCESS       
39   0.00000196    IOCTL_SERIAL_GET_HANDFLOW          SUCCESS       
40   0.00000978    IOCTL_SERIAL_SET_BAUD_RATE         SUCCESS    Rate: 115200   
41   0.00000447    IOCTL_SERIAL_SET_RTS               SUCCESS       
42   0.00000447    IOCTL_SERIAL_CLR_DTR               SUCCESS       
43   0.00000307    IOCTL_SERIAL_SET_LINE_CONTROL      SUCCESS    StopBits: 1 Parity: NONE WordLength: 8   
44   0.00000168    IOCTL_SERIAL_SET_CHAR              SUCCESS    EOF:0 ERR:3f BRK:3f EVT:0 XON:11 XOFF:13   
45   0.00000335    IOCTL_SERIAL_SET_HANDFLOW          SUCCESS    Shake:8 Replace:40 XonLimit:341 XoffLimit:341   
46   0.00002850    IRP_MJ_WRITE                       SUCCESS    Length 4: AI0;   
47   0.00002794    IRP_MJ_WRITE                       SUCCESS    Length 3: IF;   
48   0.00193712    IRP_MJ_READ                        SUCCESS    Length 1: I   
49   0.00000391    IRP_MJ_READ                        SUCCESS    Length 1: F   
50   0.00000307    IRP_MJ_READ                        SUCCESS    Length 1: 0   
51   0.00000335    IRP_MJ_READ                        SUCCESS    Length 1: 0   
52   0.00000196    IRP_MJ_READ                        SUCCESS    Length 1: 0   
53   0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 1   
54   0.00000196    IRP_MJ_READ                        SUCCESS    Length 1: 4   
55   0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
56   0.00042128    IRP_MJ_READ                        SUCCESS    Length 1: 7   
57   0.00000335    IRP_MJ_READ                        SUCCESS    Length 1: 0   
58   0.00000279    IRP_MJ_READ                        SUCCESS    Length 1: 0   
59   0.00000279    IRP_MJ_READ                        SUCCESS    Length 1: 0   
60   0.00000279    IRP_MJ_READ                        SUCCESS    Length 1: 0   
61   0.00000279    IRP_MJ_READ                        SUCCESS    Length 1:     
62   0.00000279    IRP_MJ_READ                        SUCCESS    Length 1:     
63   0.00000279    IRP_MJ_READ                        SUCCESS    Length 1:     
64   0.00055985    IRP_MJ_READ                        SUCCESS    Length 1:     
65   0.00000503    IRP_MJ_READ                        SUCCESS    Length 1:     
66   0.00000307    IRP_MJ_READ                        SUCCESS    Length 1: -   
67   0.00000307    IRP_MJ_READ                        SUCCESS    Length 1: 0   
68   0.00000279    IRP_MJ_READ                        SUCCESS    Length 1: 0   
69   0.00000279    IRP_MJ_READ                        SUCCESS    Length 1: 4   
70   0.00000279    IRP_MJ_READ                        SUCCESS    Length 1: 0   
71   0.00000279    IRP_MJ_READ                        SUCCESS    Length 1: 0   
72   0.00047380    IRP_MJ_READ                        SUCCESS    Length 1: 0   
73   0.00000363    IRP_MJ_READ                        SUCCESS    Length 1: 0   
74   0.00000251    IRP_MJ_READ                        SUCCESS    Length 1: 1   
75   0.00005364    IRP_MJ_READ                        SUCCESS    Length 1: 2   
76   0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
77   0.00000196    IRP_MJ_READ                        SUCCESS    Length 1: 2   
78   0.00000196    IRP_MJ_READ                        SUCCESS    Length 1: 0   
79   0.00000279    IRP_MJ_READ                        SUCCESS    Length 1: 0   
80   0.00049196    IRP_MJ_READ                        SUCCESS    Length 1: 0   
81   0.00000335    IRP_MJ_READ                        SUCCESS    Length 1: 0   
82   0.00000279    IRP_MJ_READ                        SUCCESS    Length 1: 0   
83   0.00000279    IRP_MJ_READ                        SUCCESS    Length 1: 8   
84   0.00000279    IRP_MJ_READ                        SUCCESS    Length 1: 0   
85   0.00000251    IRP_MJ_READ                        SUCCESS    Length 1: ;   
86   0.00003883    IRP_MJ_WRITE                       SUCCESS    Length 3: IF;   
87   0.00144348    IRP_MJ_READ                        SUCCESS    Length 1: I   
88   0.00000475    IRP_MJ_READ                        SUCCESS    Length 1: F   
89   0.00000251    IRP_MJ_READ                        SUCCESS    Length 1: 0   
90   0.00000251    IRP_MJ_READ                        SUCCESS    Length 1: 0   
91   0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
92   0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 1   
93   0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 4   
94   0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
95   0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 7   
96   0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
97   0.00000196    IRP_MJ_READ                        SUCCESS    Length 1: 0   
98   0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
99   0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
100  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1:     
101  0.00000196    IRP_MJ_READ                        SUCCESS    Length 1:     
102  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1:     
103  0.00050258    IRP_MJ_READ                        SUCCESS    Length 1:     
104  0.00000307    IRP_MJ_READ                        SUCCESS    Length 1:     
105  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: -   
106  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
107  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
108  0.00000251    IRP_MJ_READ                        SUCCESS    Length 1: 4   
109  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
110  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
111  0.00039949    IRP_MJ_READ                        SUCCESS    Length 1: 0   
112  0.00000363    IRP_MJ_READ                        SUCCESS    Length 1: 0   
113  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 1   
114  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 2   
115  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
116  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 2   
117  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
118  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
119  0.00038943    IRP_MJ_READ                        SUCCESS    Length 1: 0   
120  0.00000251    IRP_MJ_READ                        SUCCESS    Length 1: 0   
121  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
122  0.00000251    IRP_MJ_READ                        SUCCESS    Length 1: 8   
123  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
124  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: ;   
125  0.00002598    IRP_MJ_WRITE                       SUCCESS    Length 3: FB;   
126  0.00172284    IRP_MJ_READ                        SUCCESS    Length 1: F   
127  0.00000503    IRP_MJ_READ                        SUCCESS    Length 1: B   
128  0.00000670    IRP_MJ_READ                        SUCCESS    Length 1: 0   
129  0.00000251    IRP_MJ_READ                        SUCCESS    Length 1: 0   
130  0.00000251    IRP_MJ_READ                        SUCCESS    Length 1: 0   
131  0.00000251    IRP_MJ_READ                        SUCCESS    Length 1: 1   
132  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 4   
133  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
134  0.00021260    IRP_MJ_READ                        SUCCESS    Length 1: 4   
135  0.00000251    IRP_MJ_READ                        SUCCESS    Length 1: 0   
136  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
137  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
138  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
139  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: ;   
140  0.00003129    IRP_MJ_WRITE                       SUCCESS    Length 3: IF;   
141  0.00146639    IRP_MJ_READ                        SUCCESS    Length 1: I   
142  0.00000335    IRP_MJ_READ                        SUCCESS    Length 1: F   
143  0.00000251    IRP_MJ_READ                        SUCCESS    Length 1: 0   
144  0.00001173    IRP_MJ_READ                        SUCCESS    Length 1: 0   
145  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
146  0.00000251    IRP_MJ_READ                        SUCCESS    Length 1: 1   
147  0.00000251    IRP_MJ_READ                        SUCCESS    Length 1: 4   
148  0.00000279    IRP_MJ_READ                        SUCCESS    Length 1: 0   
149  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 7   
150  0.00000251    IRP_MJ_READ                        SUCCESS    Length 1: 0   
151  0.00000307    IRP_MJ_READ                        SUCCESS    Length 1: 0   
152  0.00000279    IRP_MJ_READ                        SUCCESS    Length 1: 0   
153  0.00000335    IRP_MJ_READ                        SUCCESS    Length 1: 0   
154  0.00000251    IRP_MJ_READ                        SUCCESS    Length 1:     
155  0.00000251    IRP_MJ_READ                        SUCCESS    Length 1:     
156  0.00000307    IRP_MJ_READ                        SUCCESS    Length 1:     
157  0.00041849    IRP_MJ_READ                        SUCCESS    Length 1:     
158  0.00000419    IRP_MJ_READ                        SUCCESS    Length 1:     
159  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: -   
160  0.00000196    IRP_MJ_READ                        SUCCESS    Length 1: 0   
161  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
162  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 4   
163  0.00000196    IRP_MJ_READ                        SUCCESS    Length 1: 0   
164  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
165  0.00013326    IRP_MJ_READ                        SUCCESS    Length 1: 0   
166  0.00000251    IRP_MJ_READ                        SUCCESS    Length 1: 0   
167  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 1   
168  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 2   
169  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
170  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 2   
171  0.00000196    IRP_MJ_READ                        SUCCESS    Length 1: 0   
172  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
173  0.00074535    IRP_MJ_READ                        SUCCESS    Length 1: 0   
174  0.00000335    IRP_MJ_READ                        SUCCESS    Length 1: 0   
175  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
176  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 8   
177  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
178  0.00000196    IRP_MJ_READ                        SUCCESS    Length 1: ;   
179  0.00002598    IRP_MJ_WRITE                       SUCCESS    Length 3: FB;   
180  0.00154042    IRP_MJ_READ                        SUCCESS    Length 1: F   
181  0.00000363    IRP_MJ_READ                        SUCCESS    Length 1: B   
182  0.00000251    IRP_MJ_READ                        SUCCESS    Length 1: 0   
183  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
184  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
185  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 1   
186  0.00000251    IRP_MJ_READ                        SUCCESS    Length 1: 4   
187  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
188  0.00073976    IRP_MJ_READ                        SUCCESS    Length 1: 4   
189  0.00000363    IRP_MJ_READ                        SUCCESS    Length 1: 0   
190  0.00000279    IRP_MJ_READ                        SUCCESS    Length 1: 0   
191  0.00000307    IRP_MJ_READ                        SUCCESS    Length 1: 0   
192  0.00000279    IRP_MJ_READ                        SUCCESS    Length 1: 0   
193  0.00000279    IRP_MJ_READ                        SUCCESS    Length 1: ;   
194  0.00003129    IRP_MJ_WRITE                       SUCCESS    Length 3: BY;   
195  0.00064338    IRP_MJ_READ                        SUCCESS    Length 1: B   
196  0.00000279    IRP_MJ_READ                        SUCCESS    Length 1: Y   
197  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 1   
198  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: 0   
199  0.00000223    IRP_MJ_READ                        SUCCESS    Length 1: ;

Copyright 2009 by Simon Brown, HB9DRV Terms Of Use Privacy Statement