PhantomSDR Support Forum

General Category => PhantomSDR Bugs => Topic started by: yo3ggx on Apr 20, 2025, 09:26 AM

Title: Transfer failed: PollTimeout
Post by: yo3ggx on Apr 20, 2025, 09:26 AM
I have a Phantom SDR+ installation working perfectly for a couple of days. Then started to crash with the waterfall showing the same line continuously. Restarting the app solve the issue, but after a few minutes starts to do it again. I let the app off for a week, then when trying again to start it, I get the error:

Transfer failed: PollTimeout
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
and only spectrumserver starts.

Hw configuration: i5 1500T, 32GB RAM, 1TB SSD
OS: Ubuntu Linux 22.04
RX888 MKII.
lsusb shows:
Bus 002 Device 004: ID 04b4:00f1 Cypress Semiconductor Corp. RX888mk2

Any hints on how to solve the issue?

Thank you.

Title: Re: Transfer failed: PollTimeout
Post by: Bas ON5HB on Apr 21, 2025, 03:51 PM
Any weird dmesg messages?
Does the stream-driver init the device properly?

How does your toml configured?

Does OpenCL work?

Is the RX888MK2 thermal modified? Else it will die of overheating.

We need a bit more info Dan.

Title: Re: Transfer failed: PollTimeout
Post by: yo3ggx on Apr 21, 2025, 04:00 PM
This is from dmesg after ./start-rx888mk2.sh

[158392.272846] usb 2-3.1: USB disconnect, device number 6
[158392.544380] usb 1-6.1: new high-speed USB device number 15 using xhci_hcd
[158392.634704] usb 1-6.1: New USB device found, idVendor=04b4, idProduct=00f3, bcdDevice= 1.00
[158392.634712] usb 1-6.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[158392.634715] usb 1-6.1: Product: WestBridge
[158392.634717] usb 1-6.1: Manufacturer: Cypress
[158392.634719] usb 1-6.1: SerialNumber: 0000000004BE
[158392.877594] usb 1-6.1: USB disconnect, device number 15
[158393.032445] usb 2-3.1: new SuperSpeed USB device number 7 using xhci_hcd
[158393.045158] usb 2-3.1: New USB device found, idVendor=04b4, idProduct=00f1, bcdDevice= 0.00
[158393.045162] usb 2-3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[158393.045163] usb 2-3.1: Product: RX888mk2
[158393.045164] usb 2-3.1: Manufacturer: sdr prototypes
[158393.045165] usb 2-3.1: SerialNumber: 0009061C02991024
I'm using opencl, but same message if off.
As stated in my message, everything was working flawlessly for a few days with the same configuration.
The device is not modified, but checked before first run to have the heat transfer pad.

Thank you.
Title: Re: Transfer failed: PollTimeout
Post by: Bas ON5HB on Apr 21, 2025, 04:20 PM
I still seems to switch van USB2 to USB3, that is a good sign.

What do you mean it's not modified? The thermal pad and heatsink ARE the modifications, as the unmodified doesn't have those and dies after a few days.

Then it doesn't switch anymore and stays in USB2 mode or not seen at all.

As for OpenCL, it must be compiled in else it doesn't work. If it's not working or installed during compilation, it will not be compiled in and not used.

You can check if it works with intel_gpu_top

How do you start the websdr? Do you use the fifo-way or straight piping?
Title: Re: Transfer failed: PollTimeout
Post by: yo3ggx on Apr 21, 2025, 04:36 PM
Thermal pad was there from the beginning.
Compiled with opencl support (opencl installed, including for fft). Was working perfectly with opencl activated.

I try to start it as in the original script (pipe)or fifo-way, same result.

It may be the result of a Linux kernel upgrade, performed during the week, when I didn't try to start PhantomSDR+. Is installed in a remote location. I waited until I got there before trying again. Now I try to connect it to another USB port, or through a powered USB3 hub, with the same result. WebSDR is running on the same server with 7 receivers (5xRSP1a and 2xRTLSDR) without any issue during the same period. If I stop WebSDR server, still the same error occurs. Spectrumserver is running (does not crash), so the web frontend is working.
Currently I'm running Ubuntu 22.04, kernel 6.8.0-57-generic.
Title: Re: Transfer failed: PollTimeout
Post by: yo3ggx on Apr 21, 2025, 04:39 PM
After the crash, with Spectrumserver running, I get:
intel-gpu-top: Intel Rocketlake (Gen12) @ /dev/dri/card1 - 1101/1198 MHz;  10% RC6;      724 irqs/s

      IMC reads:    16196 MiB/s
     IMC writes:     8848 MiB/s

         ENGINES     BUSY                                                                                                         MI_SEMA MI_WAIT
       Render/3D   87.85% |████████████████████████████████████████████████████████████████████████████████████████▊            |      0%      0%
         Blitter    0.00% |                                                                                                     |      0%      0%
           Video    0.00% |                                                                                                     |      0%      0%
    VideoEnhance    0.00% |                                                 
Title: Re: Transfer failed: PollTimeout
Post by: yo3ggx on Apr 21, 2025, 04:43 PM
Error in main.rs occur in line 388:52
     while !terminate.load(std::sync::atomic::Ordering::Relaxed) {
388         let mut data = transfer_pool.poll(timeout).expect("Transfer failed");
389         if args.randomize {
390             let data_u16: &mut [u16] = cast_slice_mut(&mut data);
391             for i in 0..data_u16.len() {
392                 data_u16[i] ^= 0xFFFE * (data_u16[i] & 0x1);
393             }
394         }
395         let _ = output_file.iter_mut().for_each(|file| {
396             let _ = file.write_all(&data);
397         });
398         if args.measure || output_file.is_none() {
399             measurement.add_packet(data.len() / 2);
400             measurement.maybe_display(Duration::from_secs(1));
401         }
402         transfer_pool
403             .submit_bulk(0x81, data)
404             .expect("Failed to resubmit transfer");
405     }
406
Title: Re: Transfer failed: PollTimeout
Post by: Bas ON5HB on Apr 21, 2025, 04:45 PM
Ok OPenCL is running and working.

What happens if you run on the normal stable kernel and not the latest?

Mine uses: Linux Websdr 5.15.0-135-generic

Can you attach the TOML? As polling error can also occur when fft-binsize is too small.

Mine it this one:

[server]
port=80 # Server port
html_root="frontend/dist/" # HTML files to be hosted
otherusers=1 # Send where other users are listening, 0 to disable
threads=2

[websdr]
register_online=true # If the SDR should be registered on https://sdr-list.xyz then put it to true
name="Heppen Wideband Websdr" # Name that is shown on https://sdr-list.xyz
antenna="54m Longwire" # Antenna that is shown on https://sdr-list.xyz
grid_locator="JO21oc" # 4 or 6 length Grid Locatlr shown on https://sdr-list.xyz and for the Distance of FT8 Signals
hostname="http://websdr.heppen.be" # If you use ddns or something to host with a domain enter it here for https://sdr-list.xyz

[limits]
audio=100
waterfall=100
events=100

[input]
sps=60000000 # Input Sample Rate
fft_size=8388608
#fft_size=16777216
fft_threads=2
brightness_offset=0 # Waterfall brightness offset. Reduce to negative if you see black regions in the waterfall
frequency=0 # Baseband frequency
signal="real" # real or iq
accelerator="opencl" # Accelerator: none, cuda, opencl, mkl
audio_sps=12000 # Audio Sample Rate
audio_compression="flac" # flac or opus
waterfall_size=2048
waterfall_compression="zstd" # zstd or av1
smeter_offset=4

[input.driver]
name="stdin" # Driver name
format="s16" # Sample format: u8, s8, u16, s16, u32, s32, f32, f64

[input.defaults]
frequency=3645000 # Default frequency to show user
modulation="LSB" # Default modulation

That is for 30MHz wide. Wrong format maybe? As the stream is s16, not u16.
Title: Re: Transfer failed: PollTimeout
Post by: yo3ggx on Apr 21, 2025, 04:53 PM
Except personalization stuff, I have the same config as you.
I even try to run again install on a clean clone of the repository, but nothing changed. I will try to install an older kernel version to see if the issue disappear.
Title: Re: Transfer failed: PollTimeout
Post by: Bas ON5HB on Apr 21, 2025, 04:57 PM
Beware with the Fifo way....if the receiver.fifo isn't build with 'mkfifo receiver.fifo' it's not a fifo and it writes to disk.
As such the 'file' grows into TB's until your disk is filled.

When it's working as fifo, it's not growing, it's only a marker on the disk....but not actually storing samples/data.
Title: Re: Transfer failed: PollTimeout
Post by: yo3ggx on Apr 21, 2025, 05:14 PM
Is created with mkfifo, like recommended on this forum. Anyway, the error is the same when using pipe and is in rx888_stream, even if I run it with /dev/null
Title: Re: Transfer failed: PollTimeout
Post by: Bas ON5HB on Apr 21, 2025, 05:18 PM
Does dmesg say anything when the poll-error starts?

Also, have you stopped all other USB traffic to see if that helps?

I'm trying to help you here Dan, but it's hard.

Also, is your Stream-driver the latest? As there where some fixes, where output to STDOUT has been altered.

Show more info, as I can not see what you do...
Title: Re: Transfer failed: PollTimeout
Post by: yo3ggx on Apr 21, 2025, 05:23 PM
dmesg result is in my first post from today, there is nothing wrong from what I see.

Regarding if my Stream-driver the latest, rx888_stream is version 0.1.0.
You are talking about something else?

Title: Re: Transfer failed: PollTimeout
Post by: Bas ON5HB on Apr 21, 2025, 05:52 PM
Update last month:

https://github.com/rhgndf/rx888_stream/commit/b699542b8b8d31c64872bf1512c124537ae551f1

But did you run without the other stuff?

It helps if you answer questions.
Title: Re: Transfer failed: PollTimeout
Post by: yo3ggx on Apr 21, 2025, 06:13 PM
Installed kernel  5.15.0-97-generic.
Redownload from git
run install.sh without any errors
Restore config toml and start script

Now is even worst, I get more errors when running start script:

thread 'main' panicked at src/main.rs:222:10:
Could not find or open bootloader
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'main' panicked at src/main.rs:211:22:
Could not reset FX3 to bootloader mode: Io


dmesg
1350.313572] usb 1-6.1: new high-speed USB device number 14 using xhci_hcd
[ 1350.414469] usb 1-6.1: New USB device found, idVendor=04b4, idProduct=00f3, bcdDevice= 1.00
[ 1350.414472] usb 1-6.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1350.414473] usb 1-6.1: Product: WestBridge
[ 1350.414475] usb 1-6.1: Manufacturer: Cypress
[ 1350.414476] usb 1-6.1: SerialNumber: 0000000004BE
[ 1355.157706] usb 2-3.1: Disable of device-initiated U1 failed.
[ 1355.171735] usb 2-3.1: Disable of device-initiated U2 failed.
[ 1355.869207] usb 2-3.1: USB disconnect, device number 4
[

lsusb
Bus 001 Device 014: ID 04b4:00f3 Cypress Semiconductor Corp. FX3 micro-controller (DFU mode)
Title: Re: Transfer failed: PollTimeout
Post by: yo3ggx on Apr 21, 2025, 07:14 PM
To check if the hardware is defective, I installed SDR Console on Windows, with direct support for RX888 MK2 and is not working.
Is recognized, without errors, but don't work.
Seems that I am another lucky owner of an expensive ... brick.  :(
 
Title: Re: Transfer failed: PollTimeout
Post by: Bas ON5HB on Apr 23, 2025, 11:33 AM
Looks to me the USB Cypress chip has died.

When it can't upload the firmware, it's mostly because of overheated Cypress and it sticks in USB2 mode.

Title: Re: Transfer failed: PollTimeout
Post by: yo3ggx on Apr 23, 2025, 11:41 AM
The device is recognized and the firmware is loading, but nothing streamed.
May be the internal clock? I will further investigate the hardware when back home, I don't have the tools to do it here. 
Title: Re: Transfer failed: PollTimeout
Post by: Bas ON5HB on Apr 23, 2025, 02:56 PM
Hi Dan,

[ 1355.157706] usb 2-3.1: Disable of device-initiated U1 failed.
[ 1355.171735] usb 2-3.1: Disable of device-initiated U2 failed.
[ 1355.869207] usb 2-3.1: USB disconnect, device number 4

This tells me the device is in USB2 mode (DFU mode - Device Firmware Upload mode) but it doesn't accept it.

Either broken of it's uploading something else then the proper firmware.

Also this is strange:

Could not reset FX3 to bootloader mode: Io
Never seen that message.

A non initialised (firmware uploaded device) will show DFU in lsusb, mine does too.

Standaard connected:

160.612974] usb 1-13: new high-speed USB device number 5 using xhci_hcd
[  160.739836] usb 1-13: New USB device found, idVendor=04b4, idProduct=00f3, bcdDevice= 1.00
[  160.739851] usb 1-13: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  160.739858] usb 1-13: Product: WestBridge
[  160.739864] usb 1-13: Manufacturer: Cypress
[  160.739869] usb 1-13: SerialNumber: 0000000004BE

When started:

Bus 002 Device 002: ID 04b4:00f1 Cypress Semiconductor Corp. RX888mk2
and then dmesg changes to this:

[  160.612974] usb 1-13: new high-speed USB device number 5 using xhci_hcd
[  160.739836] usb 1-13: New USB device found, idVendor=04b4, idProduct=00f3, bcdDevice= 1.00
[  160.739851] usb 1-13: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  160.739858] usb 1-13: Product: WestBridge
[  160.739864] usb 1-13: Manufacturer: Cypress
[  160.739869] usb 1-13: SerialNumber: 0000000004BE
[  355.165079] usb 1-13: USB disconnect, device number 5
[  355.448636] usb 2-7: new SuperSpeed USB device number 2 using xhci_hcd
[  355.461653] usb 2-7: New USB device found, idVendor=04b4, idProduct=00f1, bcdDevice= 0.00
[  355.461669] usb 2-7: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  355.461678] usb 2-7: Product: RX888mk2
[  355.461684] usb 2-7: Manufacturer: sdr prototypes
[  355.461690] usb 2-7: SerialNumber: 000900270A49140F

This string is used:

rx888_stream/target/release/rx888_stream -f ./rx888_stream/SDDC_FX3.img -s 60000000 -g 30 -a 0 -m high -o - > rx888mk2.fifo
Does your firmware load at all?
Title: Re: Transfer failed: PollTimeout
Post by: yo3ggx on Apr 23, 2025, 03:05 PM
This happen with the old 5.x kernel. Returning to the current kernel version, dmesg looks ok, like in initial message:https://www.phantomsdr.fun/index.php?msg=973

The "only" issue is that nothing is streamed.
Title: Re: Transfer failed: PollTimeout
Post by: Bas ON5HB on Apr 24, 2025, 10:15 AM
Dan,

Sorry it's impossible to give more help, as you give no information to work with other then what you see happening.

We do not see your system.

Quote from: yo3ggx on Apr 23, 2025, 03:05 PMThe "only" issue is that nothing is streamed.

This doesn't help.

All I can tell is based on your windows remark, that the device is broken.
Title: Re: Transfer failed: PollTimeout
Post by: yo3ggx on Apr 27, 2025, 06:23 AM
Seems that now on Linux even the firmware is no more loaded (I try on different systems), complaining about the Bootloader. On the other side, in SDR Console (Windows), the receiver is detected and firmware loaded, but still no data streamed.

Dan YO3GGX
Title: Re: Transfer failed: PollTimeout
Post by: Bas ON5HB on Apr 29, 2025, 02:49 PM
Either the Cypress or the ADC died.

rx888_mk2_07.jpg

As such it won't stream. Sorry Dan, pretty sure it's dead.
Nothing you can do as the firmware isn't stored but oploaded every single time when you start it.
Title: Re: Transfer failed: PollTimeout
Post by: yo3ggx on Apr 29, 2025, 05:23 PM
In SDR Console, firmware is loaded successfully, so most probable the issue is with the ADC. After open it, I saw that the thermal pad was mounted in the wrong place (back of the FX3 chip, not of the ADC).
I sent it to a hardware repair center to see if is possible to be fixed.

73 Dan YO3GGX
Title: Re: Transfer failed: PollTimeout
Post by: Bas ON5HB on Apr 30, 2025, 03:46 PM
The thermalpad should be on the FX-chip, as that is the chip that dies due to overheating.
Not the ADC.

Read this blog:

https://ka7oei.blogspot.com/2023/08/improving-thermal-management-of-rx-888.html
Title: Re: Transfer failed: PollTimeout
Post by: yo3ggx on Apr 30, 2025, 04:38 PM
I know the site, but it looks like in my case the issue is with the ADC.
Anyway, thermal design for this receiver is very bad, such a big radiator and such a poor thermal transfer from the chips to the case.
Title: Re: Transfer failed: PollTimeout
Post by: Bas ON5HB on Apr 30, 2025, 04:58 PM
My thermal-pad is very small too.
But it only needs to cool the Cypress FX3 chip, as that's the one that burns.

I suspect your device has poor ADC soldering or the ADC simply died.

And yes, there are many bad manufactured versions on the market. Even without thermal-pads and cooling at all.

Sufficient thermal-pad looks like this:

IMG_20240827_131326_015.jpg

As for the heatsink, it's on the ADC like yours. Mine it running for over a year now, no problems at all.
Title: Re: Transfer failed: PollTimeout
Post by: yo3ggx on Apr 30, 2025, 05:09 PM
If the repair will be successful, I will add a pad for the whole back of the PCB and a fan. For the moment I cannot afford to buy a new one.
Title: Re: Transfer failed: PollTimeout
Post by: Bas ON5HB on Apr 30, 2025, 07:10 PM
That will be a good idea.

But Dan, PM me, I will order you a new one.

But then from the person where I got it....as I do want you to develop your app for our websdr.

In short, I buy you one.