Skip to content

Implement Wraase SC-2 60#15

Open
sjlongland wants to merge 2 commits intowindytan:masterfrom
sjlongland:feature/wraase-sc2-60
Open

Implement Wraase SC-2 60#15
sjlongland wants to merge 2 commits intowindytan:masterfrom
sjlongland:feature/wraase-sc2-60

Conversation

@sjlongland
Copy link
Contributor

I implemented this myself in libsstvenc, got it more or less decoding correctly in QSSTV, then used those timings for slowrx.

A reference file and demonstration of the decode is provided below.

wraase-sc2-60.mp4

There are a couple of exceptions to the even parity rule:
- Robot 12 monochrome
- Wraase SC-2 60

So use an 8th bit to encode that information in the table.  This is in
line with KB4YZ's VIS header reference.
This is reverse-engineered from QSSTV by first implementing an encoder
for it that QSSTV's W260 decoder agreed with… *then* using the
specifications determined to implement the decoder in `slowrx`.

Aside from an occasional horizontal offset (which seems to be a common
issue with all modes… might be related to "where" in the 1024-sample FFT
frame the SSTV image is first seen), it seems to agree with QSSTV's
decoding of the same reference audio sample.
@windytan
Copy link
Owner

Hi, thanks for the contribution. As I don't have the time to maintain slowrx any more I'll be archiving this repository soon. Would you like me to add a link in the readme to point users to your fork instead? There are also other forks I'm thinking of linking to.

@sjlongland
Copy link
Contributor Author

I've been giving this some thought… I don't get a lot of spare time myself but I recognise that I've been quietly chipping away at this project and keeping it alive. It's not a big priority from my end. It works, gets the job done. Maybe not 100% optimal, the FFT-based approach is showing some limitations in terms of synchronisation which leads to "slant" issues but it got things working "good enough" for my use case.

I'd like to take it further but I'll have to revise my DSP knowledge to make a big impact, so it takes a back seat for now. As it is now, it's a great little SSTV receiver.

Looks like @parabirb has taken the fork even further. So there's plenty to pick from.

I think it's worth shopping around and see if one of the other maintainers might have the resources to be more active, and I contribute my improvements there, but I leave the ultimate decision to your judgement. :-)

@parabirb
Copy link

parabirb commented May 7, 2025

I've been giving this some thought… I don't get a lot of spare time myself but I recognise that I've been quietly chipping away at this project and keeping it alive. It's not a big priority from my end. It works, gets the job done. Maybe not 100% optimal, the FFT-based approach is showing some limitations in terms of synchronisation which leads to "slant" issues but it got things working "good enough" for my use case.

I'd like to take it further but I'll have to revise my DSP knowledge to make a big impact, so it takes a back seat for now. As it is now, it's a great little SSTV receiver.

Looks like @parabirb has taken the fork even further. So there's plenty to pick from.

I think it's worth shopping around and see if one of the other maintainers might have the resources to be more active, and I contribute my improvements there, but I leave the ultimate decision to your judgement. :-)

i mostly just have that fork (which is a fork of @ke5gdb's fork) because the robot 24 implementation wasn't working; that's all i fixed. i haven't written my own C in a while, so

@ke5gdb
Copy link

ke5gdb commented May 7, 2025

I nominate @sjlongland. I've been using your daemon version for an SSTV skimmer and discord bot, and it has been working great.

@sjlongland
Copy link
Contributor Author

Sounds like I should round up the various forks and see if we can merge them into a new release.

Some things I'd like to probably move forward with:

  • further separate the decoder functions by moving those into a shared library (.so / .dll / .dylib) with an API that programs can build against
  • abstract the audio interface so we can support audio I/O interfaces other than ALSA (which will help address issue pipe input? #3 and issue Running on FreeBSD #9, particularly if the OS doesn't support libalsa)
  • add support for more SSTV modes (e.g. MP narrow band modes)
  • investigate the feasibility of a DPLL-based detector instead of using FFT
  • might see if I can get some sort of common OS packaging going for armhf, aarch64 and x86_64 platforms

I'm open to others' ideas, as I'm sure some of you have been doing SSTV longer than I've been alive.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants