Skip to content

Add new modes: JS8 40 and JS8 60#217

Merged
Chris-AC9KH merged 3 commits into
JS8Call-improved:masterfrom
Chris-AC9KH:pr/mode_changes
Mar 7, 2026
Merged

Add new modes: JS8 40 and JS8 60#217
Chris-AC9KH merged 3 commits into
JS8Call-improved:masterfrom
Chris-AC9KH:pr/mode_changes

Conversation

@Chris-AC9KH

Copy link
Copy Markdown
Collaborator

This retains the JS8Submode backend so it is 100% compatible with the old software, at least for JS8 6/160 (formerly "Turbo") JS8 4/250 has not existed to this point.

It is designed to eliminate use of terms like "Turbo" which is a mechanical gas turbine compressor, and has nothing to do with ham radio modes. Retains the use of Slow, Normal and Fast. But for the faster and less reliable modes goes to a designation of frame time/bandwidth for the mode. JS8 4/250 is labeled as experimental as it requires more cpu, tighter timing, and good conditions for it to work.

User guide updated, but noted that specs for JS8 4/250 may change in the future. We experimented with versions of this up to 3/320 and 4/320 and 80wpm, but average cpu's can't keep up with either encoding or decoding on time.

@Chris-AC9KH Chris-AC9KH added documentation Improvements or additions to documentation enhancement New feature or request labels Mar 7, 2026
@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

Screen shots of the changes

Screenshot 2026-03-06 at 19 23 15 Screenshot 2026-03-06 at 19 23 35 Screenshot 2026-03-06 at 19 24 03

@punk-kaos punk-kaos left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks minimal and well written.

@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

Oh, and note in the screenshots above, I don't use the standard EOT character, which must've come from linux and looks horrible on MacOS. Instead, I use the MacOS double lozenge for EOT and <..> for missed frames. So the double lozenge in the screen shot is not a decoder error.

@Joe-K0OG

Joe-K0OG commented Mar 7, 2026

Copy link
Copy Markdown
Collaborator

Even though I disagree with some of this, it is functionally well-done, and I find no functional problems with it. You're in control, I'm not, so do as you will...

73,
-Joe-
K0OG

@wmiler wmiler left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Oh, just 1 thing, I would add a space between the number and the wpm. But that's just me.

@wmiler wmiler added this to the 2.6.0 milestone Mar 7, 2026
@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

Yeah, I looked that up and to be "politically correct" it does say to use 20 wpm instead of 20wpm. I'll fix that up :-)

It's just a UI thing. DIRECTED.TXT does not record mode speed at all. ALL.TXT records the mode speed, but using the definitions in JS8Submode, so JS8 6/160 is "C" and JS8 4/250 is "I". And JS Normal is "A" and Slow is "E", while Fast is "B".

Figure that one out :-)

This eliminates use of terms like "Turbo" which is a mechanical
gas turbine compressor, changes the faster modes to designation
of frame time/bandwidth
@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

Ok, fixed, rebased, force pushed. We got a space for them wpm's now!

Screenshot 2026-03-06 at 21 13 19

@wmiler

wmiler commented Mar 7, 2026

Copy link
Copy Markdown
Collaborator

Yeah, I looked that up and to be "politically correct" it does say to use 20 wpm instead of 20wpm. I'll fix that up :-)

It's proper grammar, lol!

It's just a UI thing. DIRECTED.TXT does not record mode speed at all. ALL.TXT records the mode speed, but using the definitions in JS8Submode, so JS8 6/160 is "C" and JS8 4/250 is "I". And JS Normal is "A" and Slow is "E", while Fast is "B".

Figure that one out :-)

Yeah, no idea how that came about, would have to ask Jordan, but to change it now would be considered a downstream breaking change.

@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

One other consideration I had with this was that when the speeds are listed in the table in the UI, the column header is labeled "Speed" not "Mode". So instead of calling the two faster and less reliable modes JS8 6/160 and JS8 4/250 I considered using the approx wpm instead, which would make them JS8 40 and JS8 60. That would keep the Speed column more inline with what it is labeled as, so we'd have JS8 Slow, Normal, Fast, 40 and 60.

This would still use a different designation for the two more unreliable modes where HB is no longer allowed (which I should also note in the documentation). And stress that these two modes are separate and not necessarily weak signal modes that are suitable for MSG'ing et al. Try to get the point across better that they are faster QSO modes that are normally only going to be successful in good conditions.

This would be a fairly simple modification to this PR. It would address @Joe-K0OG concern that we are displaying more than 2 characters in the Speed column in Minimal Column Labels display mode. @rruchte what do you think?

This uses the two respective modes' approx transmisson speed in
words per minute instead of using frame time/bandwidth.

Improve the documentation for these two modes to better explain
that HB networking is disabled when using them
@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

@wmiler I pushed this change to rename the two faster modes JS8 40 and JS8 60, plus improved the documentation for them further.

@Joe-K0OG Joe-K0OG left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good:

Image

@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

Along with this PR I made some changes to the User Guide handling, as it also part of this UI change that I feel is necessary.

Main issue:
We are currently hosting different copies of the User Guide in five different places and none of these PDF's ever get updated except for the one on our website.

It changes the URL that the User Guide is displayed from in the JS8Call UI Help menu. It will display the markdown document from our code resources documentation workflow instead of PDF. This is a quite nice document with an index.

The reason for this is that I noticed updates were made to the User Guide, but it was never converted to PDF. So this ensures that the latest version is always displayed automatically, without anybody having to remember to update the PDF.

However, it does add a link in the markdown document to save an offline copy as PDF. This PDF comes from our github.io website downloads at https://js8call-improved.github.io/downloads/JS8Call_User_Guide.pdf

And also adds a link to the User Guide in the README.md

So this final change will eliminate having to host the User Guide in multiple places that forget to be updated, host it in one official place. And make it more accessible with the latest documentation for our users.

@Chris-AC9KH Chris-AC9KH changed the title Add new modes: JS8 6/160 and JS8 4/250 Add new modes: JS8 40 and JS8 60 Mar 7, 2026
@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

@Joe-K0OG I got to thinking about what you said. And you were correct. That Speed column is labeled "Speed" not "Mode". So I had created an inconsistency in the UI by displaying a Mode there instead of a Speed. So it made more sense to change the names of those modes to reflect the relative speed using wpm instead of a mode by frame time/bandwidth. And it fits nicely with the two-character limit in the Minimal Column Labels display mode.

@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

I'll clean up the commit history on this and merge it.

the Code Resources. This ensures the latest version is always displayed
from the UI.

Add a link to download a PDF copy of the Guide from our github.io downloads
Add a link to the README for the User Guide
@wmiler

wmiler commented Mar 7, 2026

Copy link
Copy Markdown
Collaborator

Along with this PR I made some changes to the User Guide handling, as it also part of this UI change that I feel is necessary.

Main issue: We are currently hosting different copies of the User Guide in five different places and none of these PDF's ever get updated except for the one on our website.

It changes the URL that the User Guide is displayed from in the JS8Call UI Help menu. It will display the markdown document from our code resources documentation workflow instead of PDF. This is a quite nice document with an index.

So one issue with that, is that the Build Docs workflow follows master. So right now, there is a lot of 2.6 docs in it. So I'm not sure how we need to flag things in there as 2.6+ only items.

@rruchte

rruchte commented Mar 7, 2026

Copy link
Copy Markdown
Collaborator

@Chris-AC9KH

This would be a fairly simple modification to this PR. It would address @Joe-K0OG concern that we are displaying more than 2 characters in the Speed column in Minimal Column Labels display mode. @rruchte what do you think?

I think that's fine. The column header has 2 chars. The inconsistencies in the mode naming and the labeling in this column offend my delicate sensibilities a bit but it is what it is, this is a good solution.

@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

So one issue with that, is that the Build Docs workflow follows master. So right now, there is a lot of 2.6 docs in it. So I'm not sure how we need to flag things in there as 2.6+ only items.

I think that's actually pretty simple. Like the documentation I just added, I noted that JS8 40/60 appears in 2.6 and later. So somebody on 2.5 that's reading that will realize they don't have that feature until they get 2.6.0. This is not only good documentation that explains when new features were added, and at what software versions, it also provides a "preview" as to what's coming in future releases.

So from that standpoint I think it's actually better. I also think the User Guide could be versioned at something other than 2.2+. It could be versioned at 2.6 and earlier since there already is documentation in it for 2.6 that's noted that way, and it applies to all earlier versions otherwise.

@wmiler

wmiler commented Mar 7, 2026

Copy link
Copy Markdown
Collaborator

So from that standpoint I think it's actually better. I also think the User Guide could be versioned at something other than 2.2+. It could be versioned at 2.6 and earlier since there already is documentation in it for 2.6 that's noted that way, and it applies to all earlier versions otherwise.

I've got some pending doc updates, I'll do that then. This can go ahead as is.

@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

I've got some pending doc updates, I'll do that then. This can go ahead as is.

Yeah, there's some things in there that might yet need to be updated. Like Group Messaging that @rruchte did. I don't know if the User Guide has been updated for that yet. But if it hasn't, it needs to be done and add what software version that feature appeared in.

With the User Guide now in markdown, and it can be updated with any PR that adds a new feature. It is trivial to include updates that document the new feature along with a feature or enhancement PR. I didn't originally think markdown would be all that useful for the User Guide. But once I saw how it works with the documentation workflow it is pretty awesome for keeping it up-to-date, without somebody having to sit down and update it in one whack and is likely to only happen once every few years :-)

@Chris-AC9KH Chris-AC9KH merged commit 54b2d97 into JS8Call-improved:master Mar 7, 2026
@Chris-AC9KH Chris-AC9KH deleted the pr/mode_changes branch March 7, 2026 19:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants