Skip to content

Revised RADE verification procedure - #76

Merged
drowe67 merged 5 commits into
dr-radev2from
dr-verification
Jul 24, 2026
Merged

drowe67 merged 5 commits into
dr-radev2from
dr-verification

Conversation

@drowe67

@drowe67 drowe67 commented Jul 22, 2026

Copy link
Copy Markdown
Owner

Claude and I have worked up a revised verification procedure, based on lessons learned from peterbmarks/radae_nopy#14.

…section

verification_procedure.md: formal procedure for integration verification
before Phase D OTA testing. Covers software loopback (mandatory), OTAC
and OTC (at least one mandatory for hardware integrations). Requires
clean signal path (transfer function of 1) in both directions, loss.py
from this repo, and wav/all.wav as the test file.

template.md: checklist form for testers to complete and submit as
evidence of a verified integration.

README.md: replace verbose prose with a short intro linking to the
procedure, plus the baseline command lines. Baseline framing updated
to require re-running with current version rather than using a cached
loss value.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@drowe67
drowe67 requested a review from tmiw July 22, 2026 01:12
@drowe67
drowe67 changed the base branch from main to dr-radev2 July 22, 2026 01:16
@drowe67

drowe67 commented Jul 22, 2026

Copy link
Copy Markdown
Owner Author

@peterbmarks @tmiw - please take a look and tell me what you think. From our work to date, I think Peter you may have already the results to pass and Mooneer you just need an OTAC or OTC, repeated across the target OSes.

Comment thread doc/verification/template.md
Comment thread doc/verification/verification_procedure.md
Comment thread doc/verification/verification_procedure.md
Comment thread doc/verification/template.md
Comment thread doc/verification/verification_procedure.md
Comment thread doc/verification/verification_procedure.md
Comment thread doc/verification/verification_procedure.md
@peterbmarks

Copy link
Copy Markdown

Looks good @drowe67. I went straight from Level 1 Software loopback (virtual audio cable) to Level 3 RF over the coax. I agree that Level 2 is useful. It would be good to mention the value of --plot to see if there are outliers before (are they ever after?) that can be clipped off with --clip_start. For me it varies but I need -clip_start 8.
RF over coax is dangerous. I used 100dB of attenuation and the lowest output of an IC-705 but still had some trepidation on first plug in to the receiver.

@tmiw

tmiw commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

Actually, what about systems that can only support RX? (Example: freedv-ka9q.) Would an OTC/OTAC test still be needed, just with another approved app as the TX?

@peterbmarks

Copy link
Copy Markdown

I think we should have some sample modem.wav files and their features.f32. Then people testing receivers, such as WebSDRs could check their performance.

@tmiw

tmiw commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

The good news is that freedv-gui is giving me a loss of 0.083 now for software loopback since I adjusted the scaling (tmiw/freedv-backend@3cf3cc8). (Only tested on macOS so far.) No +6 dB gain needed. Hopefully OTC/OTAC will give me similar results.

@tmiw

tmiw commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

The good news is that freedv-gui is giving me a loss of 0.083 now for software loopback since I adjusted the scaling (tmiw/freedv-backend@3cf3cc8). (Only tested on macOS so far.) No +6 dB gain needed. Hopefully OTC/OTAC will give me similar results.

To update, I was able to do a successful OTAC test on macOS as well this morning (0.088). I still had problems doing an OTC test so I'll need to investigate that further.

One note: it still seemed to be pretty sensitive to RX signal levels. But it looks like I was still using RADE main and not dr-v2-rx-gain, so that could be it.

EDIT: I tried dr-v2-rx-gain and had to adjust levels again to get a pass. I suspect I was already borderline with the test out of main, so I'll take a look and see if there's anything more I can clean up on my end.

drowe67 and others added 3 commits July 23, 2026 09:55
…cal OR

Explains the rationale for the L2/L3 choice: OTAC covers all application
integration paths; OTC is the appropriate alternative for SDRs and hardware
radios where OTAC is impractical (e.g. Flex). At least one is mandatory.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ixes

- Add 'Worked Example of Loss Tests' section to verification procedure,
  showing clip value selection with before/after loss plots
- Add automated pass/fail subsection using --compare/--delta for CI use
- loss.py: print FAIL and exit(1) for --compare failures; replace quit()
  with sys.exit(1) throughout for correct CI return codes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…an PNGs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@drowe67

drowe67 commented Jul 23, 2026

Copy link
Copy Markdown
Owner Author

Looks good @drowe67. I went straight from Level 1 Software loopback (virtual audio cable) to Level 3 RF over the coax. I agree that Level 2 is useful. It would be good to mention the value of --plot to see if there are outliers before (are they ever after?) that can be clipped off with --clip_start. For me it varies but I need -clip_start 8. RF over coax is dangerous. I used 100dB of attenuation and the lowest output of an IC-705 but still had some trepidation on first plug in to the receiver.

Good idea. Take a look at the new "Worked Example of Loss Tests" example in cae3fb3

@peterbmarks

Copy link
Copy Markdown

Yes, that's very helpful.

Tested pipeline: lpcnet_demo -> tx2.py -> f32toint16.py --real -> sox -> WAV
-> rade_rx_wav gives loss 0.083, consistent with baseline.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@drowe67

drowe67 commented Jul 23, 2026

Copy link
Copy Markdown
Owner Author

Actually, what about systems that can only support RX? (Example: freedv-ka9q.) Would an OTC/OTAC test still be needed, just with another approved app as the TX?

Excellent question. Pls take a look at 1e47cbd and see if that works.

@drowe67

drowe67 commented Jul 23, 2026

Copy link
Copy Markdown
Owner Author

I think we should have some sample modem.wav files and their features.f32. Then people testing receivers, such as WebSDRs could check their performance.

A Tx wave file would go out of date silently if the software changes in any way. Instead, how about the programmatic approach in 1e47cbd. We're already generating the feature file as part of the software reference, so just one more step to a wav.

Comment thread doc/verification/verification_procedure.md
@tmiw

tmiw commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator

Actually, what about systems that can only support RX? (Example: freedv-ka9q.) Would an OTC/OTAC test still be needed, just with another approved app as the TX?

Excellent question. Pls take a look at 1e47cbd and see if that works.

Yep, that works.

@drowe67

drowe67 commented Jul 23, 2026

Copy link
Copy Markdown
Owner Author

@peterbmarks @tmiw are you happy for me to merge this PR, and start following this procedure?

I'm keen to keep this moving along so we can get to the Phase D PTT Beta tests. I feel we're converging nicely. Heads up that I have a lot of travel in August, including two weeks completely off grid.

@tmiw

tmiw commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator

I'm fine to merge.

@peterbmarks

Copy link
Copy Markdown

Yes please merge.
As an aside, loss.py tripped me up initially. I wonder if it should suggest clip values?

@drowe67
drowe67 merged commit 25d58fe into dr-radev2 Jul 24, 2026
1 check passed
@drowe67

drowe67 commented Jul 24, 2026

Copy link
Copy Markdown
Owner Author

Yes please merge. As an aside, loss.py tripped me up initially. I wonder if it should suggest clip values?

I used Claude for that (for the worked example).

@drowe67

drowe67 commented Jul 25, 2026

Copy link
Copy Markdown
Owner Author

@peterbmarks @tmiw - are you intending to submit tests results using the agreed template/following the verification procedure for the various software projects you maintain that integrate RADE V2? I'm keen to keep this moving along so we can get to the Phase D PTT Beta tests.

@tmiw

tmiw commented Jul 25, 2026

Copy link
Copy Markdown
Collaborator

@peterbmarks @tmiw - are you intending to submit tests results using the agreed template/following the verification procedure for the various software projects you maintain that integrate RADE V2? I'm keen to keep this moving along so we can get to the Phase D PTT Beta tests.

Yes, but I have some real life stuff going on so it'll be a few days minimum. I'm also working through an issue with freedv-gui where I'm getting intermittent loss figures slightly above the cutoff so that may delay things too.

@drowe67

drowe67 commented Jul 25, 2026

Copy link
Copy Markdown
Owner Author

Yes, but I have some real life stuff going on so it'll be a few days minimum. I'm also working through an issue with freedv-gui where I'm getting intermittent loss figures slightly above the cutoff so that may delay things too.

Of course - take your time, life and family comes first. I'm also off walking for the next 7 days so will have limited bandwidth. The intermittent issues are just what this test is designed to flush out. Just wanted to make sure verification is in the pipeline.

@peterbmarks

Copy link
Copy Markdown

Yes I will. I'll get it done this week. Driving to Melbourne after the morning net today so won't be immediately. I think it's a good thing to model for other porting users.

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.

3 participants