pavel-demin / red-pitaya-notes

Notes on the Red Pitaya Open Source Instrument
http://pavel-demin.github.io/red-pitaya-notes/
MIT License
326 stars 200 forks source link

Multiband WSPR Transceiver / Transmitting unexpected prefix #1093

Closed dl5bct closed 1 year ago

dl5bct commented 1 year ago

Dear all,

I happen to observe a very odd behaviour of the WSPR transmitter which for I have no explanation.

Description of the setup:

Description of the problem:

I can receive wspr world-wide as expected (sensitivity could be better, but that is no issue here and likely due to the naive setup). => No issue receiving, and all I see also appears to end up at wspr.rock, so no unexpected behaviour here, i. e. time's fine, network's fine, etc. pp.

Any transmission, however, apparently reaches no one BUT I can decode both locally, and via the independent wsjt-z, transmissions as follows.

1950 -19 0.4 7.040036 0 Z7X/DL5BCT 7

The first three figures vary as expected, the qrg coincides with my trx qrg, but the Z7X/DL5BCT, i. e. the configured call with an unexpected prefix of Z7X/, is there persistently. The same transmission is received by wsjt-z but it never shows up at wspr.rocks (presumably due to the invalid prefix). The audio at the reception is strong and coincides with the start/stop of the waterfall; I attach some corresponding images.

It always is exactly the same prefix, the situation persists across reboots, power-downs, and I cannot find the in any but the logfiles even if I recursively grep downwards from /, so I am puzzled and have no explanations whatsoever. And would appreciate any pointers such as to also enable correct transmissions.

Steps to reproduce the problem:

  1. Start receiving and transmitting as per the configuration in the attached zip
  2. Wait for the next transmission to complete and be decoded.
  3. Eat voila, there's the unexpected Z7X/ prefix, i. e. Z7X/DL5BCT

Mni tnx es best 73s,

Peter.


Screenshot_20230423_211849 WSPR Screenshot_20230423_211915 WSPR Screenshot_20230423_212017 WSPR


dmesg

Booting Linux on physical CPU 0x0 Linux version 5.10.107-xilinx (demin@debian) (arm-xilinx-linux-gnueabi-gcc.real (GCC) 9.2.0, GNU ld (GNU Binutils) 2.32.0.20190204) #1 SMP PREEMPT Tue Mar 22 19:10:58 CET 2022 CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache OF: fdt: Machine model: xlnx,zynq-7000 Memory policy: Data cache writealloc cma: Reserved 36 MiB at 0x1c400000 Zone ranges: Normal [mem 0x0000000000000000-0x000000001fffffff] HighMem empty Movable zone start for each node Early memory node ranges node 0: [mem 0x0000000000000000-0x000000001fffffff] Initmem setup node 0 [mem 0x0000000000000000-0x000000001fffffff] On node 0 totalpages: 131072 Normal zone: 1024 pages used for memmap Normal zone: 0 pages reserved Normal zone: 131072 pages, LIFO batch:31 percpu: Embedded 15 pages/cpu s32396 r8192 d20852 u61440 pcpu-alloc: s32396 r8192 d20852 u61440 alloc=15*4096 pcpu-alloc: [0] 0 [0] 1 Built 1 zonelists, mobility grouping on. Total pages: 130048 Kernel command line: console=ttyPS0,115200 earlyprintk modloop=modloop cma=36M Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear) Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear) mem auto-init: stack:off, heap alloc:off, heap free:off Memory: 466512K/524288K available (8192K kernel code, 248K rwdata, 1912K rodata, 1024K init, 163K bss, 20912K reserved, 36864K cma-reserved, 0K highmem) rcu: Preemptible hierarchical RCU implementation. rcu: RCU event tracing is enabled. rcu: RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2. Trampoline variant of Tasks RCU enabled. Tracing variant of Tasks RCU enabled. rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2 NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 slcr mapped to (ptrval) GIC physical location is 0xf8f01000 L2C: platform modifies aux control register: 0x72360000 -> 0x72760000 L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000 L2C-310 erratum 769419 enabled L2C-310 enabling early BRESP for Cortex-A9 L2C-310 full line of zeros enabled for Cortex-A9 L2C-310 ID prefetch enabled, offset 1 lines L2C-310 dynamic clock gating enabled, standby mode enabled L2C-310 cache controller enabled, 8 ways, 512 kB L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001 random: get_random_bytes called from start_kernel+0x308/0x48c with crng_init=0 zynq_clock_init: clkc starts at (ptrval) Zynq clock init sched_clock: 64 bits at 333MHz, resolution 3ns, wraps every 4398046511103ns clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x4ce07af025, max_idle_ns: 440795209040 ns Switching to timer-based delay loop, resolution 3ns Console: colour dummy device 80x30 Calibrating delay loop (skipped), value calculated using timer frequency.. 666.66 BogoMIPS (lpj=3333333) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) CPU: Testing write buffer coherency: ok CPU0: Spectre v2: using BPIALL workaround CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 Setting up static identity map for 0x100000 - 0x100060 rcu: Hierarchical SRCU implementation. smp: Bringing up secondary CPUs ... CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 CPU1: Spectre v2: using BPIALL workaround smp: Brought up 1 node, 2 CPUs SMP: Total of 2 processors activated (1333.33 BogoMIPS). CPU: All CPU(s) started in SVC mode. devtmpfs: initialized VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4 clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns futex hash table entries: 512 (order: 3, 32768 bytes, linear) pinctrl core: initialized pinctrl subsystem NET: Registered protocol family 16 DMA: preallocated 256 KiB pool for atomic coherent allocations thermal_sys: Registered thermal governor 'step_wise' cpuidle: using governor menu hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers. hw-breakpoint: maximum watchpoint size is 4 bytes. zynq-ocm f800c000.ocmc: ZYNQ OCM pool: 256 KiB @ 0x(ptrval) zynq-pinctrl 700.pinctrl: zynq pinctrl initialized e0000000.serial: ttyPS0 at MMIO 0xe0000000 (irq = 33, base_baud = 6249999) is a xuartps printk: console [ttyPS0] enabled e0001000.serial: ttyPS1 at MMIO 0xe0001000 (irq = 34, base_baud = 6249999) is a xuartps vgaarb: loaded SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb mc: Linux media interface: v0.10 videodev: Linux video capture interface: v2.00 pps_core: LinuxPPS API ver. 1 registered pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti giometti@linux.it PTP clock support registered EDAC MC: Ver: 3.0.0 Advanced Linux Sound Architecture Driver Initialized. clocksource: Switched to clocksource arm_global_timer NET: Registered protocol family 2 IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear) tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear) TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear) TCP bind hash table entries: 4096 (order: 3, 32768 bytes, linear) TCP: Hash tables configured (established 4096 bind 4096) UDP hash table entries: 256 (order: 1, 8192 bytes, linear) UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear) NET: Registered protocol family 1 RPC: Registered named UNIX socket transport module. RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. PCI: CLS 0 bytes, default 64 Trying to unpack rootfs image as initramfs... Freeing initrd memory: 2940K hw perfevents: no interrupt-affinity property for /pmu@f8891000, guessing. hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available Initialise system trusted keyrings workingset: timestamp_bits=30 max_order=17 bucket_order=0 squashfs: version 4.0 (2009/01/31) Phillip Lougher jffs2: version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc. Key type asymmetric registered Asymmetric key parser 'x509' registered io scheduler mq-deadline registered io scheduler kyber registered dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330 dma-pl330 f8003000.dmac: DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16 xdevcfg f8007000.devcfg: ioremap 0xf8007000 to (ptrval) brd: module loaded loop: module loaded CAN device driver interface macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 37 (00:26:32:f0:15:45) e1000e: Intel(R) PRO/1000 Network Driver e1000e: Copyright(c) 1999 - 2015 Intel Corporation. ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver ehci-pci: EHCI PCI platform driver usbcore: registered new interface driver usb-storage ULPI transceiver vendor/product ID 0x0424/0x0007 Found SMSC USB3320 ULPI transceiver. ULPI integrity check: passed. ci_hdrc ci_hdrc.0: EHCI Host Controller ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1 ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00 hub 1-0:1.0: USB hub found hub 1-0:1.0: 1 port detected i2c /dev entries driver at24 0-0050: supply vcc not found, using dummy regulator at24 0-0050: 8192 byte 24c64 EEPROM, writable, 32 bytes/write cdns-i2c e0004000.i2c: 400 kHz mmio e0004000 irq 30 cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer with timeout 10s EDAC MC: ECC not enabled Xilinx Zynq CpuIdle Driver started sdhci: Secure Digital Host Controller Interface driver sdhci: Copyright(c) Pierre Ossman sdhci-pltfm: SDHCI platform and OF driver helper ledtrig-cpu: registered to indicate activity on CPUs clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 537538477 ns timer #0 at (ptrval), irq=50 usbcore: registered new interface driver usbhid usbhid: USB HID core driver mmc0: SDHCI controller on e0100000.mmc [e0100000.mmc] using ADMA NET: Registered protocol family 10 Segment Routing with IPv6 sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver NET: Registered protocol family 17 can: controller area network core NET: Registered protocol family 29 can: raw protocol can: broadcast manager protocol can: netlink gateway - max_hops=1 Registering SWP/SWPB emulation handler Loading compiled-in X.509 certificates ALSA device list: No soundcards found. Freeing unused kernel memory: 1024K mmc0: new high speed SDHC card at address 0007 mmcblk0: mmc0:0007 SD32G 29.1 GiB mmcblk0: p1 Run /init as init process with arguments: /init earlyprintk with environment: HOME=/ TERM=linux modloop=modloop Alpine Init 3.5.0-r0 Loading boot drivers... Loading boot drivers: ok. Mounting boot media... usb 1-1: new high-speed USB device number 2 using ci_hdrc random: fast init done Mounting boot media: ok. Loading user settings from /media/mmcblk0p1/red-pitaya.apkovl.tar.gz... Loading user settings from /media/mmcblk0p1/red-pitaya.apkovl.tar.gz: ok. Installing packages to root filesystem... FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck. Installing packages to root filesystem: ok. pps pps0: new PPS source pps.-1 pps pps0: Registered IRQ 57 as PPS source cfg80211: Loading compiled-in X.509 certificates for regulatory database cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' platform regulatory.0: Direct firmware load for regulatory.db failed with error -2 cfg80211: failed to load regulatory.db usbcore: registered new interface driver rtl8192cu random: dd: uninitialized urandom read (512 bytes read) random: dbus-daemon: uninitialized urandom read (12 bytes read) random: dbus-daemon: uninitialized urandom read (12 bytes read) 8021q: 802.1Q VLAN Support v1.8 macb e000b000.ethernet eth0: PHY [e000b000.ethernet-ffffffff:01] driver [Intel XWAY PHY11G (PEF 7071/PEF 7072) v1.5 / v1.6] (irq=POLL) macb e000b000.ethernet eth0: configuring for phy/rgmii-id link mode urandom_read: 1 callbacks suppressed random: chronyd: uninitialized urandom read (3 bytes read) random: chronyd: uninitialized urandom read (1024 bytes read) macb e000b000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready random: dhcpcd: uninitialized urandom read (112 bytes read) random: dnsmasq: uninitialized urandom read (128 bytes read) random: dnsmasq: uninitialized urandom read (48 bytes read) random: crng init done random: 1 urandom warning(s) missed due to ratelimiting IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready macb e000b000.ethernet eth0: Link is Down macb e000b000.ethernet eth0: PHY [e000b000.ethernet-ffffffff:01] driver [Intel XWAY PHY11G (PEF 7071/PEF 7072) v1.5 / v1.6] (irq=POLL) macb e000b000.ethernet eth0: configuring for phy/rgmii-id link mode macb e000b000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready macb e000b000.ethernet eth0: Link is Down macb e000b000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off

pavel-demin commented 1 year ago

It seems that the problem is in the format of the transmission message. If I replace 09 with 10, the transmission works. Looks like the power level cannot be lower than 10.

dl5bct commented 1 year ago

Thanks, Pavel,

Bingo. Veeery good one... That stroke a (the) bell:

According to https://swharden.com/software/FSKview/wspr/, ...

"... Power level, [Pwr] is taken as a value from 0 – 60. Although only certain values will work with the WSJT / WSPR software (just those ending in 0, 3 or 7) any of the possible 61 values will be encoded; Illegal values are labelled when decoded. ..."

When I pick 3, 7, or 10, I do get proper local decodings (including multiple reports due the local interference when over-driving the input), e. g.:

2018 -25 0.4 21.096141 0 DL5BCT JN49 7 2024 40 0.3 3.570136 0 DL5BCT JN49 3 2032 -23 0.2 21.096178 0 DL5BCT JN49 10

I hence assume that anything ending in a digit of 3, 7, or 0 should work (between 0 and 60, of course) though I only tried 3, 7, and 10. And decided to stick to the latter as it is closest to the ~9.5 dbm which the Red Pitaya is supposed to produce.

Plus, there now seem to be reports making it into wspr.rocks. Currently only Europe, but, hooray, with close to no power? Under these condx? So, what the heck!

Excellent.

I guess, we've learnt some, and also may close this item (at least, as far as I am concerned).

Thank you very much, indeed, and

All the best 73s,

Peter.

pavel-demin commented 1 year ago

Thank you for the additional information and the link. I am glad that the transmitter part of this application is now working for you. I am closing this ticket.