github dividebysandwich/sdroxide v1.6.5

3 hours ago

What's changed:

  • Fixed incorrect TX timing in FT8 mode for LAN Icom radios, fixes #359
  • Added WSS support for websocket, fixes #360
  • Clicking on a signal in RTTY mode now always centers on the RTTY pair, not the base frequency
  • Added a MULTI chip to JS8 that decodes all four speeds at once, each on its own slot clock, so a station on another speed is heard rather than invisible and an exchange between two speeds can happen at all. fixes #358
  • Uploaded JS8 receptions to PSK Reporter: a JS8 decode is one frame of a message and names nobody, so the report now goes out once per reassembled message, when there is a callsign to send. fixes #357
  • Added EXPORT and IMPORT buttons for a station's whole settings on Settings → General, so a second machine or a second callsign is one file rather than a folder of screenshots — the logbook and any saved server password deliberately stay behind. fixes #356
  • Paced the transceiver's audio by the wall clock instead of assuming the attached receiver hands back a block every 25 ms: on a 2 Msps SDR it is every few, so every draw over-asked and came back mostly silence — continuous stutter. Its capture stream now gets the same generous period the I/Q path has. fixes #354
  • Retried a HackRF control change the radio refuses instead of dropping it, and said so when it keeps refusing: the engine is told a tune succeeded the moment it is posted to the stream thread, so a lost one left the dial and the panadapter labelling a frequency the radio was never on, with nothing short of a restart to put it right (#352)
  • Covered the gap between asking a rig for PTT and it being on the air before starting an SSTV picture: the leader and VIS code went out into it, and a decoder that misses that header draws no picture at all. fixes #351
  • Granted udev access by group as well as by seat ACL: uaccess hands out nothing under WSL2, over ssh, in a container or to a systemd service, which left an AirspyHF+ root-owned with nothing on screen explaining why. fixes #350
  • Stopped telling HackRF owners to find a SuperSpeed port: every board ever built is High-Speed USB 2.0 and 20 Msps is what that link is rated for, so the notice now fires only when a board enumerates below high speed, which is a cable or hub fault. fixes #349
  • Carried the report when answering a non-standard callsign: the layout that spells out R7KJG/QRP has room for nothing but a bare acknowledgement, so a report or a grid now goes out as an ordinary message with that callsign hashed, the way WSJT-X sends it. fixes #348
  • Answered a callsign typed into the public-SDR filter with the receiver named after it: fuzzy matching alone made a six-character callsign a scattered subsequence of a dozen unrelated station names, so the literal matches now win outright and the fuzzy list is what is left when there are none. fixes #347
  • Let the FT8 controller say how many periods the decode worker still owes it, so a test waits on that instead of on decodes arriving — a slot that decodes to nothing produces no action at all, which made the wait either stall on quiet slots or expire under load on busy ones
  • Gave the mock rig the transmit path it declares: a source with tx_channels and no tx_write is one the engine rightly reports as a lost link, and the test was racing its own shutdown about one run in three
  • Let the CW decoder say how much work it has left, so a test waits for it to finish rather than for its output to stop moving for a second — a window a loaded machine loses, which is what returned half a transmission
  • Measured the transmit turnaround in receive blocks rather than fixes milliseconds: a 300 ms over against a 341 ms block was one the engine spent entirely inside read, so the audio-mode rows were holes and the assertion failed on an engine doing nothing wrong
  • Spelled VDL2's digit out like every other number the voice says, so the mode name reaches the phonemizer as something it can pronounce
  • Added World Radio League as a logbook upload target, driven from its published developer API, and a second logging broadcast that speaks N1MM's contactinfo XML beside the WSJT-X one; fixes #337
  • Told an RX-888 Mk1 apart from a receiver the firmware could not identify, so it is named rather than reported as a failed detection, stops having its firmware reloaded for nothing, and is told plainly that it streams and has no Mk2 front end to drive; fixes #342
  • Broadcast a hand-entered contact to the WSJT-X UDP listeners the way the sequencer's own are, and sent the ADIF datagram as the bare record the protocol defines rather than a whole file export, so a local logger sees the SSB and CW too; fixes #341
  • Stopped a glitching audio device from burying the log in identical warnings, said what a glitch actually costs and where it comes from, and let the FT8 panel report the receive period that arrived short so a run of them stops being a silent no-decode; fixes #343, fixes #338
  • Wrote an Icom's antenna socket in the form that radio's own reply said it takes, so a receiver with no receiving-antenna relay stops NAKing the change and an IC-R8600's selector actually moves; fixes #334
  • Followed the band bar's new top end and the meter's new field through the tests that spell both out; refs #326, #333
  • Read the Hermes-Lite 2's board temperature off the status frames this decoder used to skip, and put it in the corner of the S-meter so an HL2 warming up over an afternoon of FT8 shows it; fixes #333
  • Added the 3 cm band, so an IC-905 with Icom's own 10 GHz unit inside it can be put on 10368 MHz from the band bar rather than through a transverter table that cannot describe a transverter the radio contains; fixes #326
  • Made a memory mark on the waterfall a control as well as a label: clicking one recalls that channel whole, so a stored frequency can be reached where it is being looked at; fixes #320
  • Let Ctrl held during a filter-edge drag move that edge alone, so an AM listener can close the passband on the side a neighbour is splattering into without losing the other; fixes #335
  • Kept the CW sidetone pitch out of the per-band transmit-offset memory, so a trip through PSK no longer leaves the keyer a kilohertz outside the passband being copied — and gave the pitch its own home on disk; fixes #336
  • Dimmed a satellite's name in the 3D view when the Earth is standing in the line of sight, so a still frame says which side of the globe the bird is on; fixes #332
  • Stopped the AIS vessel list filling with stations that were never really there: held a frame to the length its message type defines instead of reading its fields out of bits that never arrived, refused an MMSI too large to be one, and let a message this crate cannot interpret confirm a known station without inventing a new one; the chart now says it is waiting for a position rather than looking broken; fixes #330
  • Settled a Pluto's tuning range by asking its synthesiser to go there, so a board carrying the frequency-expansion modification gets the 70 MHz-6 GHz it was modified for instead of the stock range its EEPROM still claims; fixes #340
  • Stopped a PlutoSDR that answers "nothing yet" instantly from spinning a core flat out, and let a receive link that stalls under load finish its payload instead of losing the socket over it; fixes #328

Full Changelog: v1.6.4...v1.6.5

Don't miss a new sdroxide release

NewReleases is sending notifications on new releases.