Winkey

41 views
Skip to first unread message

NO3M

unread,
Sep 13, 2013, 10:38:39 PM9/13/13
to so2...@googlegroups.com
Wondering if anyone in the group has any pointers on debugging Winkey?

I am using a Microham MK2R+ w/ mhuxd creating virtual serial ports for rig control and Winkey (/dev/mhuxd/wk1).  If Winkey is enabled in so2sdr, the program freezes, either after enabling Winkey or subsequent program restarts.

I've tried connecting to the wk1 virtual serial device using minicom, which also locks up after the first "command".  Perhaps there is a better way to go about testing the serial connection to Winkey?  I'm also not sure the commands I'm attempting to send over the serial device are correct.

Thanks for any insight.

73 Eric NO3M

R. Torsten Clay

unread,
Sep 13, 2013, 10:59:43 PM9/13/13
to so2...@googlegroups.com

Hi Eric,

I think CQRLOG supports winkey...you might see if that works. I don't have a mk2r, my winkey is a plain serial version.

Tor
N4OGW

--
You received this message because you are subscribed to the Google Groups "so2sdr" group.
To unsubscribe from this group and stop receiving emails from it, send an email to so2sdr+un...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

NO3M

unread,
Sep 14, 2013, 1:26:07 AM9/14/13
to so2...@googlegroups.com
Hi Tor

OK, I got a little further with this.  I had tested with CQRlog earlier with no CW output, but just tried again after having made some mhuxd config changes.  CW via Winkey/CQRlog is working.  However, after closing CQRlog and setting up the Winkey device in so2sdr, so2sdr locks up after saving.  After killing and restarting it, the main window never opens, but also does not return control back to the calling terminal window (ie. isn't crashing) and there are no error messages (other than alsa garbage).

Here is the mhuxd output when CQRlog connects, works despite the warning:

2013-09-14 01:15:48 INFO VSP mhuxd/wk1 req open
2013-09-14 01:15:48 INFO VSP mhuxd/wk1 Baud rate set to 1200
2013-09-14 01:15:48 WARN VSP mhuxd/wk1 ioctl 0x5409 not implemented!
2013-09-14 01:17:50 INFO VSP mhuxd/wk1 req release

Here is mhuxd output when so2sdr connects but locks up:

2013-09-14 01:21:38 INFO VSP mhuxd/wk1 req open
2013-09-14 01:21:38 WARN VSP mhuxd/wk1 ioctl 0x5404 not implemented!
2013-09-14 01:21:38 WARN VSP mhuxd/wk1 ioctl 0x5404 not implemented!
2013-09-14 01:21:38 WARN VSP mhuxd/wk1 ioctl 0x5404 not implemented!
2013-09-14 01:21:38 WARN VSP mhuxd/wk1 ioctl 0x5404 not implemented!
2013-09-14 01:21:38 WARN VSP mhuxd/wk1 ioctl 0x5404 not implemented!
2013-09-14 01:21:38 WARN VSP mhuxd/wk1 ioctl 0x5404 not implemented!
2013-09-14 01:21:38 WARN VSP mhuxd/wk1 ioctl 0x5404 not implemented!

I might be able to get more verbose output from mhuxd in debug logging mode if needed.

NO3M

unread,
Sep 14, 2013, 1:40:03 AM9/14/13
to so2...@googlegroups.com
I don't know if any of this will make sense or not, but here is the most verbose debugging output from mhuxd when so2sdr tries to open the Winkey serial device.

2013-09-14 01:35:38 INFO VSP mhuxd/wk1 req open
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5401, arg: 0x7fffc7175350, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5401, arg: 0x7fffc7175350, in_buf: 0x0, in_buf size: 0, out_bufsz: 36
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5404, arg: 0x7fffc7175320, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 01:35:38 WARN VSP mhuxd/wk1 ioctl 0x5404 not implemented!
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5404, arg: 0x7fffc7175320, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 01:35:38 WARN VSP mhuxd/wk1 ioctl 0x5404 not implemented!
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5404, arg: 0x7fffc7175320, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 01:35:38 WARN VSP mhuxd/wk1 ioctl 0x5404 not implemented!
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5404, arg: 0x7fffc7175320, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 01:35:38 WARN VSP mhuxd/wk1 ioctl 0x5404 not implemented!
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5404, arg: 0x7fffc7175320, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 01:35:38 WARN VSP mhuxd/wk1 ioctl 0x5404 not implemented!
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5401, arg: 0x7fffc7175320, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5401, arg: 0x7fffc7175320, in_buf: 0x0, in_buf size: 0, out_bufsz: 36
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5404, arg: 0x7fffc7175320, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 01:35:38 WARN VSP mhuxd/wk1 ioctl 0x5404 not implemented!
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5404, arg: 0x7fffc7175350, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 01:35:38 WARN VSP mhuxd/wk1 ioctl 0x5404 not implemented!
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5415, arg: 0x7fffc717539c, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5415, arg: 0x7fffc717539c, in_buf: 0x0, in_buf size: 0, out_bufsz: 4
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5418, arg: 0x7fffc717539c, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5418, arg: 0x7fffc717539c, in_buf: 0x7f96fc44c058, in_buf size: 4, out_bufsz: 0
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5415, arg: 0x7fffc717539c, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5415, arg: 0x7fffc717539c, in_buf: 0x0, in_buf size: 0, out_bufsz: 4
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5418, arg: 0x7fffc717539c, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5418, arg: 0x7fffc717539c, in_buf: 0x7f96fc44c058, in_buf size: 4, out_bufsz: 0
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 RTS: 0 DTR 1
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x540b, arg: 0x2, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 01:35:38 DBG1 VSP out mhuxd/wk1 <-- App, request size: 1
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 <-- App, size: 1/1 non-block: 0
2013-09-14 01:35:38 DBG1 VSP out mhuxd/wk1 <-- App, request size: 1
2013-09-14 01:35:38 DBG1 R CH_WKEY : 13
2013-09-14 01:35:38 DBG1 R CH_WKEY : 13
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 <-- App, size: 1/1 non-block: 0
2013-09-14 01:35:38 DBG1 W CH-KEYER: 00 80 80 80 40 80 80 80 48 80 80 93 00 80 80 80 40 80 80 80 48 80 80
2013-09-14 01:35:38 DBG1 W CH-KEYER: 93
2013-09-14 01:35:38 DBG1 VSP out mhuxd/wk1 <-- App, request size: 1
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 <-- App, size: 1/1 non-block: 0
2013-09-14 01:35:38 DBG1 R CH_WKEY : 13
2013-09-14 01:35:38 DBG1 W CH-KEYER: 00 80 80 80 40 80 80 80 48 80 80 93
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x541b, arg: 0x7fffc717539c, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x541b, arg: 0x7fffc717539c, in_buf: 0x0, in_buf size: 0, out_bufsz: 4
2013-09-14 01:35:38 DBG1 VSP out mhuxd/wk1 <-- App, request size: 3
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 <-- App, size: 3/3 non-block: 0
2013-09-14 01:35:38 DBG1 R CH_WKEY : 00 04 55
2013-09-14 01:35:38 DBG1 W CH-KEYER: 00 80 80 80 40 80 80 80 48 80 80 80 00 80 80 80 40 80 80 80 48 80 80
2013-09-14 01:35:38 DBG1 W CH-KEYER: 84 00 80 80 80 40 80 80 80 48 80 80 d5
2013-09-14 01:35:38 DBG1 R CH-KEYER: 00 80 80 80 40 80 80
2013-09-14 01:35:38 DBG1 R CH-KEYER: 80 48 80 80 d5
2013-09-14 01:35:38 DBG1 DEMUX CH 2: 55
2013-09-14 01:35:38 DBG1 W CH_WKEY : 55
2013-09-14 01:35:38 DBG1 VSP-R : 55
2013-09-14 01:35:38 DBG0 W CTLCMD  : 7e fe
2013-09-14 01:35:38 DBG1 W CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:38 DBG1 R CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:38 DBG0 R CTLCMD  : 7e fe
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x541b, arg: 0x7fffc717539c, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 01:35:38 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x541b, arg: 0x7fffc717539c, in_buf: 0x0, in_buf size: 0, out_bufsz: 4
2013-09-14 01:35:38 DBG1 VSP out mhuxd/wk1 --> App, request size: 16384
2013-09-14 01:35:38 DBG0 W CTLCMD  : 7e fe
2013-09-14 01:35:38 DBG1 W CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:38 DBG1 R CH-KEYER: 00 80 80 80 40 80 80
2013-09-14 01:35:38 DBG1 R CH-KEYER: fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:38 DBG0 R CTLCMD  : 7e fe
2013-09-14 01:35:39 DBG0 W CTLCMD  : 7e fe
2013-09-14 01:35:39 DBG1 W CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:39 DBG1 R CH-KEYER: 00 80 80 80 40 80
2013-09-14 01:35:39 DBG1 R CH-KEYER: 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:39 DBG0 R CTLCMD  : 7e fe
2013-09-14 01:35:39 DBG0 W CTLCMD  : 7e fe
2013-09-14 01:35:39 DBG1 W CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:39 DBG1 R CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:39 DBG0 R CTLCMD  : 7e fe
2013-09-14 01:35:40 DBG0 W CTLCMD  : 7e fe
2013-09-14 01:35:40 DBG1 W CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:40 DBG1 R CH-KEYER: 00 80 80 80 40
2013-09-14 01:35:40 DBG1 R CH-KEYER: 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:40 DBG0 R CTLCMD  : 7e fe
2013-09-14 01:35:40 DBG0 W CTLCMD  : 7e fe
2013-09-14 01:35:40 DBG1 W CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:40 DBG1 R CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:40 DBG0 R CTLCMD  : 7e fe
2013-09-14 01:35:41 DBG0 W CTLCMD  : 7e fe
2013-09-14 01:35:41 DBG1 W CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:41 DBG1 R CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80
2013-09-14 01:35:41 DBG1 R CH-KEYER: 80 fe
2013-09-14 01:35:41 DBG0 R CTLCMD  : 7e fe
2013-09-14 01:35:41 DBG0 W CTLCMD  : 7e fe
2013-09-14 01:35:41 DBG1 W CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:41 DBG1 R CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:41 DBG0 R CTLCMD  : 7e fe
2013-09-14 01:35:42 DBG0 W CTLCMD  : 7e fe
2013-09-14 01:35:42 DBG1 W CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:42 DBG1 R CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80
2013-09-14 01:35:42 DBG1 R CH-KEYER: fe
2013-09-14 01:35:42 DBG0 R CTLCMD  : 7e fe
2013-09-14 01:35:42 DBG0 W CTLCMD  : 7e fe
2013-09-14 01:35:42 DBG1 W CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:42 DBG1 R CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41
2013-09-14 01:35:42 DBG1 R CH-KEYER: 80 80 fe
2013-09-14 01:35:42 DBG0 R CTLCMD  : 7e fe
2013-09-14 01:35:43 DBG0 W CTLCMD  : 7e fe
2013-09-14 01:35:43 DBG1 W CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:43 DBG1 R CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80
2013-09-14 01:35:43 DBG1 R CH-KEYER: 80 41 80 80 fe
2013-09-14 01:35:43 DBG0 R CTLCMD  : 7e fe
2013-09-14 01:35:43 DBG0 W CTLCMD  : 7e fe
2013-09-14 01:35:43 DBG1 W CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:43 DBG1 R CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:43 DBG0 R CTLCMD  : 7e fe
2013-09-14 01:35:44 DBG0 W CTLCMD  : 7e fe
2013-09-14 01:35:44 DBG1 W CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:44 DBG1 R CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:44 DBG0 R CTLCMD  : 7e fe
2013-09-14 01:35:44 DBG0 W CTLCMD  : 7e fe
2013-09-14 01:35:44 DBG1 W CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:44 DBG1 R CH-KEYER: 00 80 80 80 40 80 80 fe 00 80 80 80 41 80 80 fe
2013-09-14 01:35:44 DBG0 R CTLCMD  : 7e fe
^C2013-09-14 01:35:45 DBG1 W CH-KEYER: 08 80 80 80
2013-09-14 01:35:45 INFO Recevied signal 2, terminating

NO3M

unread,
Sep 14, 2013, 6:10:42 AM9/14/13
to so2...@googlegroups.com
For comparison, mhuxd debug out for CQRLog connection below.  Any lines with "CH-KEYER" from the last post can be ignored/grep'ed out, just chatter between mhuxd and MK2R.

2013-09-14 05:45:26 INFO VSP mhuxd/wk1 req open
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5415, arg: 0x7fff05247ae4, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5415, arg: 0x7fff05247ae4, in_buf: 0x0, in_buf size: 0, out_bufsz: 4
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5418, arg: 0x48e99c4, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5418, arg: 0x48e99c4, in_buf: 0x7f0f5877a058, in_buf size: 4, out_bufsz: 0
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 RTS: 1 DTR 0
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5415, arg: 0x7fff05247ae4, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5415, arg: 0x7fff05247ae4, in_buf: 0x0, in_buf size: 0, out_bufsz: 4
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5418, arg: 0x48e99c4, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5418, arg: 0x48e99c4, in_buf: 0x7f0f5be39058, in_buf size: 4, out_bufsz: 0
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 RTS: 1 DTR 1
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x540b, arg: 0x2, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5402, arg: 0x7fff05247a80, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5402, arg: 0x7fff05247a80, in_buf: 0x7f0f5877a058, in_buf size: 36, out_bufsz: 0
2013-09-14 05:45:26 INFO VSP mhuxd/wk1 Baud rate set to 1200
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5415, arg: 0x7fff05247b84, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5415, arg: 0x7fff05247b84, in_buf: 0x0, in_buf size: 0, out_bufsz: 4
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5418, arg: 0x48e99c4, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5418, arg: 0x48e99c4, in_buf: 0x7f0f5877a058, in_buf size: 4, out_bufsz: 0
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5415, arg: 0x7fff05247b84, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5415, arg: 0x7fff05247b84, in_buf: 0x0, in_buf size: 0, out_bufsz: 4
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5418, arg: 0x48e99c4, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5418, arg: 0x48e99c4, in_buf: 0x7f0f5877a058, in_buf size: 4, out_bufsz: 0
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 RTS: 0 DTR 1
2013-09-14 05:45:26 DBG1 VSP out mhuxd/wk1 <-- App, request size: 1
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 <-- App, size: 1/1 non-block: 0
2013-09-14 05:45:26 DBG1 VSP out mhuxd/wk1 <-- App, request size: 1
2013-09-14 05:45:26 DBG1 R CH_WKEY : 13
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 <-- App, size: 1/1 non-block: 0
2013-09-14 05:45:26 DBG1 R CH_WKEY : 13
2013-09-14 05:45:26 DBG1 VSP out mhuxd/wk1 <-- App, request size: 1
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 <-- App, size: 1/1 non-block: 0
2013-09-14 05:45:26 DBG1 R CH_WKEY : 13
2013-09-14 05:45:26 DBG1 VSP out mhuxd/wk1 <-- App, request size: 1
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 <-- App, size: 1/1 non-block: 0
2013-09-14 05:45:26 DBG1 VSP out mhuxd/wk1 <-- App, request size: 1
2013-09-14 05:45:26 DBG1 R CH_WKEY : 00 04
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 <-- App, size: 1/1 non-block: 0
2013-09-14 05:45:26 DBG1 VSP out mhuxd/wk1 <-- App, request size: 1
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 <-- App, size: 1/1 non-block: 0
2013-09-14 05:45:26 DBG1 R CH_WKEY : 14
2013-09-14 05:45:26 DBG1 DEMUX CH 2: 14
2013-09-14 05:45:26 DBG1 VSP-R : 14
2013-09-14 05:45:26 DBG1 W CH_WKEY : 14
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Poll, ph: 7f0f08000950
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x541b, arg: 0x7fff05247ac4, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x541b, arg: 0x7fff05247ac4, in_buf: 0x0, in_buf size: 0, out_bufsz: 4
2013-09-14 05:45:26 DBG1 VSP out mhuxd/wk1 --> App, request size: 1
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 --> App, size: 1/1 non-block: 0
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Poll, ph: 7f0f08000970
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Poll, ph: 7f0f0c000ab0
2013-09-14 05:45:26 DBG1 VSP out mhuxd/wk1 <-- App, request size: 1
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 <-- App, size: 1/1 non-block: 0
2013-09-14 05:45:26 DBG1 VSP out mhuxd/wk1 <-- App, request size: 1
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 <-- App, size: 1/1 non-block: 0
2013-09-14 05:45:26 DBG1 R CH_WKEY : 00 02
2013-09-14 05:45:26 DBG1 DEMUX CH 2: 15
2013-09-14 05:45:26 DBG1 W CH_WKEY : 15
2013-09-14 05:45:26 DBG1 VSP-R : 15
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Poll, ph: 7f0f0c000ab0
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x541b, arg: 0x7fff05247ac4, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x541b, arg: 0x7fff05247ac4, in_buf: 0x0, in_buf size: 0, out_bufsz: 4
2013-09-14 05:45:26 DBG1 VSP out mhuxd/wk1 --> App, request size: 1
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 --> App, size: 1/1 non-block: 0
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Poll, ph: 7f0f0c000ad0
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Poll, ph: 7f0f08000970
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5409, arg: 0x1, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 05:45:26 WARN VSP mhuxd/wk1 ioctl 0x5409 not implemented!
2013-09-14 05:45:26 DBG1 VSP out mhuxd/wk1 <-- App, request size: 1
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 <-- App, size: 1/1 non-block: 0
2013-09-14 05:45:26 DBG1 R CH_WKEY : 02
2013-09-14 05:45:26 DBG1 VSP out mhuxd/wk1 <-- App, request size: 1
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 <-- App, size: 1/1 non-block: 0
2013-09-14 05:45:26 DBG1 R CH_WKEY : 00
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 Ioctl, cmd: 0x5409, arg: 0x1, in_buf: 0x0, in_buf size: 0, out_bufsz: 0
2013-09-14 05:45:26 WARN VSP mhuxd/wk1 ioctl 0x5409 not implemented!
2013-09-14 05:45:26 DBG1 VSP out mhuxd/wk1 <-- App, request size: 1
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 <-- App, size: 1/1 non-block: 0
2013-09-14 05:45:26 DBG1 VSP out mhuxd/wk1 <-- App, request size: 1
2013-09-14 05:45:26 DBG1 R CH_WKEY : 02
2013-09-14 05:45:26 DBG1 R CH_WKEY : 1e
2013-09-14 05:45:26 DBG1 VSP mhuxd/wk1 <-- App, size: 1/1 non-block: 0


R. Torsten Clay

unread,
Sep 14, 2013, 10:36:30 AM9/14/13
to so2...@googlegroups.com
I believe the problem is that the linux driver for MK2R does not
currently support all winkey commands. There is a specific set of
steps given in the winkey manual to open winkey, test communications,
etc. I think some of these are not supported by muxhd such as the
"echo test". I will have to check with the mhuxd source to see details
of what is/isn't supported.

NO3M: I'm going to send a version of winkey.cpp with some stuff
removed. Hopefully that will work temporarily.

Tor
N4OGW

NO3M

unread,
Sep 14, 2013, 3:21:09 PM9/14/13
to so2...@googlegroups.com
I tried the modified winkey.cpp, but so2sdr still freezes (Winkey config window content disappears, but window background remains) or doesn't open the main window on fresh startup.

I compared the source of so2sdr's Winkey::openWinkey() class function with CQRlog's TCWKeying.wk_open class function (uCWKeying.pas).  They basically look the same as far as winkey data/commands up to the 0x00 02 command to set the keyer back in host mode. 

  ser.SendByte($13);
  ser.SendByte($13);  //sending null commands
  ser.SendByte($13);
  sleep(50);
  if fDebugMode then Writeln('After sending null command');
  ser.SendByte(0);
  ser.SendByte(4);  //send echo command
  ser.SendByte(20);
  sleep(50);
  while ser.CanReadex(10) do
  begin
    rec := (ser.recvByte(0))
  end;
  if fDebugMode then Writeln('After sending echo command: ',rec);
  if rec = 20 then
    Result := True
  else begin
    fLastErrNr := 1000;
    fLastErrSt := 'WinKeyer USB inicialization failed';
    exit
  end;
  ser.SendByte(0);
  ser.SendByte(2); //enable communication
  sleep(50);
  while ser.CanReadex(10) do
  begin
    rec := (ser.recvByte(0))
  end;
  if fDebugMode then Writeln('Firmware version: ',rec);


However, as you pointed out, there doesn't seem to be any reply to the echo test for so2sdr and where the trouble starts.

CQRlog also uses an echo test, and bails the function if echo'ed character is not matched, but I don't know how strict the behavior is as it just exits the function, I don't see any return values or later class variable assignments to distigush how it stores the Winkey status (open/closed/fail/etc).

One thing I noticed in the mhuxd output when CQRlog was connected was:


2013-09-14 05:45:26 INFO VSP mhuxd/wk1 Baud rate set to 1200

The baud rate in winkey.cpp appears to be getting set, but there is no similar log line like above in mhuxd.  I wonder if there is some distiction between the baud rate of the data/program and the baud rate of the serial device?  CQRlog is somehow setting the baud rate to chage the device to 1200 baud.


NO3M

unread,
Sep 14, 2013, 3:49:51 PM9/14/13
to so2...@googlegroups.com
Guess I missed this:


  if rec = 20 then
    Result := True

So CQRlog must be doing strict checking on the echo reply.

NO3M

unread,
Sep 14, 2013, 5:34:03 PM9/14/13
to so2...@googlegroups.com
Some additional information.  I inserted three additional setBaudRate(BAUD1200) function calls after the port was open and a delay, and mhuxd log shows:

2013-09-14 17:20:37 WARN VSP mhuxd/wk1 ioctl 0x5404 not implemented!
2013-09-14 17:20:37 WARN VSP mhuxd/wk1 ioctl 0x5404 not implemented!
2013-09-14 17:20:37 WARN VSP mhuxd/wk1 ioctl 0x5404 not implemented!

Appears qextserialport is using ioctl TCSETSF to set the port parameters, while mhuxd is expecting TCSETS (ref: dv_ioctl() in vsp.c).

NO3M

unread,
Sep 14, 2013, 6:30:45 PM9/14/13
to so2...@googlegroups.com
YAH!  Finally working.

Changes were made in both so2sdr and mhuxd:

so2sdr:

--- winkey.cpp.orig    2013-09-14 18:23:01.528272730 -0400
+++ winkey.cpp    2013-09-14 18:19:50.369623191 -0400
@@ -186,7 +186,7 @@
     winkeyPort->setStopBits(STOP_2);
 
     winkeyPort->setTimeout(250);
-    winkeyPort->open(QIODevice::ReadWrite);
+    winkeyPort->open(QIODevice::ReadWrite | QIODevice::Unbuffered);
     winkeyPort->setRts(0);
     winkeyPort->setDtr(1);
     winkeyPort->flush();


mhuxd:

--- vsp.c.orig    2013-09-14 18:25:37.233837254 -0400
+++ vsp.c    2013-09-14 18:00:18.864494192 -0400
@@ -473,6 +473,8 @@
         break;
 
     case TCSETS:
+        case TCSETSF:
+        case TCSETSW:
         if(!in_bufsz) {
             struct iovec iov = { arg, sizeof(vsp->termios) };
             fuse_reply_ioctl_retry(req, &iov, 1, NULL, 0);


Setting the device to unbuffered allowed the echo response to get back to so2sdr.  I don't know what implications that might have on general behavior or "real" serial implementations.

mhuxd did not recognize the other ioctl methods, so added them in the switch() statement.

R. Torsten Clay

unread,
Sep 14, 2013, 7:50:15 PM9/14/13
to so2...@googlegroups.com

Great work, thanks. I will test that on my serial winkey here and add your patch if it works ok.

Tor
N4OGW

--
Reply all
Reply to author
Forward
0 new messages