Support for RC-28 USB encoder planned?

Having now used a real RC28 on wfview, it is VERY sensitive and quite difficult to tune single digits without a very low step size. I noticed that RSBA1 has a sensitivity setting and I might implement something similar to get around this.

It is a lot easier when you actually have the hardware in front of you!

73 Phil M0VSE

Testning 1.60 and RC-28 on MacBook Air M1 with Ventura 13.1.
(Works OK with SDR-Control)
When I press “Setup USB controller” I get “No USB controller found” bit I still have “Link” LED.
/ Tommy

@SM6NZB The reason for this is 2 messages up from your post!

@phil it happened that I have E-Coder Plus from SunSDR on my desk…
I already checked and it seems that implementation of it should be simple (similiar to RC28).
The only point is that it has additionally PTT input and CW key input and … 3 small KNOBS…

Do you think it makes sense? If so I can work on it a little bit…

Hi Dawid,

You are more than welcome to have a go. Button programming etc, gets a bit complicated, but if you want to send me the details I can add those bits easily.

Please make sure that you use the usb-macfix branch as a base for any new code as that is the latest.

Phil

Ok @phil , I will prepare material and share with you then…

I’ve just pushed another change to that branch:

Now, as a minimum, to add a device, you now need to add an entry (to the end) of usbDeviceType and for a USB device, an entry in knownUsbDevices both in wfviewtypes.h.

@phil I’ve created MR 17 but it seems its not longer valid;)

And as an attachement you have dump from the same code as for RC28 (the same structure) for functions of eCoder

There are also LEDs… but as original code is closed source it will take way more time to debug;P

file.txt (4.5 KB)

Yes sorry about that, we have deleted that branch as it is now in master.

Don’t worry about it, I can manually merge into a new branch.

Just to make it clear - my MR will only detect and display a PNG file.
No functionalities are added. For them there is a file attached in previous comments.
I am now debugging how to turn LED’s on/off with wireshark and usbmon;)

Hi @sq6emm I have created a new branch for this work called ecoder, with some small fixes.

Not sure how we are going to deal with the extra knobs and that VFO dial looks strange to me. I would understand it if the value never went over 127 in either direction, but from your tests, it looks like it does?

Phil

Can you also confirm the button order? I assume 1 is top left and 15 is bottom right?

Yes 1 is top left and 15 is bottom right.
For the VFO I will work on that but yes it seems it overlaps 127;\

I have pushed support for the buttons, can you test and let me know if they are correct?

You will need to press “Reset Buttons” to get the newly configured ones.

I have just pushed a small change.

No usb controller found.

@phil:

2023-02-07 21:11:51.987 INF usbcontrol: Starting usbController()
2023-02-07 21:11:51.987 INF usbcontrol: “Compile-time version matches runtime version of hidapi: 0.11.2”
2023-02-07 21:11:51.988 INF audio: Audio device(s) found (*=default)
2023-02-07 21:11:51.993 INF usbcontrol: Found available HID devices (not all will be suitable for use):
2023-02-07 21:11:51.995 INF usbcontrol: “Manufacturer: Product: Path: 3-8.3.4:1.3”
2023-02-07 21:11:51.995 INF usbcontrol: “Manufacturer: Product: Path: 3-4.4:1.3”
2023-02-07 21:11:51.995 INF usbcontrol: “Manufacturer: EXPERT-ELECT Product: E-Coder panel Path: 3-4.2.4:1.0”
2023-02-07 21:11:51.995 DBG usbcontrol: Receiving commands
2023-02-07 21:11:51.995 DBG usbcontrol: Receiving buttons
2023-02-07 21:11:52.170 INF audio: * ( 0 “alsa” ) Input Device : “default”

Ah sorry that’s because I put some testing code in so I could see what the ecoder screen looked like…

Try it now!

@phil, eCoder detected - can assign functions to buttons. But doesnt work anything;)

Here you have “code” to handle LEDs;)

write_to_hid(h,[0b0010000]); # backlight ON
write_to_hid(h,[0b0000001]); # LED1 - GREEN
write_to_hid(h,[0b0000010]); # LED3 - YELLOW
write_to_hid(h,[0b0000100]); # LED2 - RED - PTT
write_to_hid(h,[0b0001000]); # VFOLED - GREEN
write_to_hid(h,[0b0100000]); # backlight OFF
write_to_hid(h,[0b0000000]); # ALL LED ON + backlight (TEST?)

wireshark + usbmon are awesome;)