[webftr-js8-lab] command=ldpc-matrix-probe [webftr-js8-lab] root=/decoders/js8_decoder [webftr-js8-lab] log=/decoders/js8_decoder/logs/20260526T181639Z_ldpc-matrix-probe.log [webftr-js8-lab] manifest=/decoders/js8_decoder/logs/20260526T181639Z_ldpc-matrix-probe_manifest.json [webftr-js8-lab] utc=20260526T181639Z [webftr-js8-lab] rx-only guard: no TX / no PTT / no Tune / no Send [webftr-js8-lab] JSON output: /decoders/js8_decoder/logs/20260526T181639Z_ldpc_matrix_probe_output.json [webftr-js8-lab] JSON timeout guard: 60s { "ok": true, "mode": "JS8", "tool": "webftr-js8-real-ldpc-matrix-syndrome-probe", "tool_version": "step35-bounded-ldpc-ranking-guard", "input_wav": null, "candidate_json": "/decoders/js8_decoder/runtime/fec_candidates/js8_quick_selected_window_fec_candidate_step17.json", "rx_only": true, "safety": { "tx": false, "ptt": false, "tune": false, "send": false, "js8call_runtime_control": false }, "implementation_stage": "step35_bounded_gray_interleaver_matrix_ranking_no_message_unpack", "matrix": { "code": "(174,91) LDPC generator matrix", "generator_rows": 83, "generator_cols": 91, "message_bits": 91, "parity_bits": 83, "source_file": "ldpc_174_91_c_generator.f90" }, "bounds": { "total_transform_rows_before_limit": 828, "max_rows": 72, "repair_rows": 10, "max_flips": 6, "candidate_pool": 12 }, "candidate_context": { "nsps_used": 6400, "nsps_is_js8_realistic": true, "selected_profile": { "profile": "js8_near_6400", "nsps": 6400, "tone_spacing_hz": 1.875, "sync": { "start_sample": 57600, "start_seconds": 4.8, "base_freq_hz": 1025.0, "tone_spacing_hz": 1.875, "nsps": 6400, "candidate_score": 47.4, "costas_hits": 2, "avg_margin_db": 8.01 }, "rank_score": 225.085, "fec": { "soft_bit_count": 174, "missing_soft_bits": 0, "complete_ldpc_input_candidate": true, "llr_convention": "positive=bit0_more_likely, negative=bit1_more_likely, MSB-first candidate" }, "source_tool": "webftr-js8-auto-ldpc-probe" }, "selected_variant": { "name": "raw_msb_symbol_order", "rank_score": 127.195892, "complete_174bit_candidate": true, "hard_bits_sha256_16": "c87312f86dbe74fc", "hard_weight_174": 36, "llr_stats": { "count": 174, "avg_abs": 2.298973, "min_abs": 0.012672, "max_abs": 4.421458, "positive": 141, "negative": 33, "zero": 0 } } }, "variant_probe_count": 72, "best_matrix_probe": { "variant": "reverse_symbol_order", "transform": "lsb_within_each_tone+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "lsb_within_each_tone", "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "hard_weight_174": 36, "llr_avg_abs": 2.29897311494253, "syndrome": { "bits_len": 174, "message91": "0000011101100000010000000000010100000000000100110000000010000011001100001000000000001000100", "parity83_observed": "01010001000010001101000000000000100001000110000000100010000101000100000000000010000", "parity83_expected": "00110001010000001001111110010110000100100111101100101000000100010000010100111000000", "syndrome83": "01100000010010000100111110010110100101100001101100001010000001010100010100111010000", "syndrome_weight": 32, "valid_codeword_hard_decision": false, "message91_sha256_16": "384c60e60980b42c", "codeword174_sha256_16": "d47743b04ac969bf" }, "repair": { "attempted": true, "max_flips": 6, "candidate_pool": 12, "flip_count": 2, "repair_success": false, "final_syndrome_weight": 24, "trace": [ { "flip_index": 60, "llr_abs": 0.012672, "gain": 7, "syndrome_weight_after": 25 }, { "flip_index": 104, "llr_abs": 0.300403, "gain": 1, "syndrome_weight_after": 24 } ], "repaired_message91_sha256_16": "b120935d577150cf" } }, "all_matrix_probes": [ { "variant": "reverse_symbol_order", "transform": "lsb_within_each_tone+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "lsb_within_each_tone", "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "hard_weight_174": 36, "llr_avg_abs": 2.29897311494253, "syndrome": { "bits_len": 174, "message91": "0000011101100000010000000000010100000000000100110000000010000011001100001000000000001000100", "parity83_observed": "01010001000010001101000000000000100001000110000000100010000101000100000000000010000", "parity83_expected": "00110001010000001001111110010110000100100111101100101000000100010000010100111000000", "syndrome83": "01100000010010000100111110010110100101100001101100001010000001010100010100111010000", "syndrome_weight": 32, "valid_codeword_hard_decision": false, "message91_sha256_16": "384c60e60980b42c", "codeword174_sha256_16": "d47743b04ac969bf" }, "repair": { "attempted": true, "max_flips": 6, "candidate_pool": 12, "flip_count": 2, "repair_success": false, "final_syndrome_weight": 24, "trace": [ { "flip_index": 60, "llr_abs": 0.012672, "gain": 7, "syndrome_weight_after": 25 }, { "flip_index": 104, "llr_abs": 0.300403, "gain": 1, "syndrome_weight_after": 24 } ], "repaired_message91_sha256_16": "b120935d577150cf" } }, { "variant": "reverse_full_bitstream", "transform": "raw_msb+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "raw_msb", "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "hard_weight_174": 36, "llr_avg_abs": 2.2989731149425294, "syndrome": { "bits_len": 174, "message91": "0000011101100000010000000000010100000000000100110000000010000011001100001000000000001000100", "parity83_observed": "01010001000010001101000000000000100001000110000000100010000101000100000000000010000", "parity83_expected": "00110001010000001001111110010110000100100111101100101000000100010000010100111000000", "syndrome83": "01100000010010000100111110010110100101100001101100001010000001010100010100111010000", "syndrome_weight": 32, "valid_codeword_hard_decision": false, "message91_sha256_16": "384c60e60980b42c", "codeword174_sha256_16": "d47743b04ac969bf" }, "repair": { "attempted": true, "max_flips": 6, "candidate_pool": 12, "flip_count": 2, "repair_success": false, "final_syndrome_weight": 24, "trace": [ { "flip_index": 60, "llr_abs": 0.012672, "gain": 7, "syndrome_weight_after": 25 }, { "flip_index": 104, "llr_abs": 0.300403, "gain": 1, "syndrome_weight_after": 24 } ], "repaired_message91_sha256_16": "b120935d577150cf" } }, { "variant": "mapped_ft8_gray_primary_demap_lsb_input+ft8_bitrev_deinterleave_rx_to_codeword", "transform": "lsb_within_each_tone+ft8_bitrev_deinterleave_rx_to_codeword", "mapping_meta": { "tone_mapping": "lsb_within_each_tone", "interleaver": "ft8_bitrev", "direction": "deinterleave_rx_to_codeword", "order_len": 174 }, "hard_weight_174": 54, "llr_avg_abs": 1.7330972528735638, "syndrome": { "bits_len": 174, "message91": "0010000000110001000000000001001000100001100001001010001110000100001010010110001010010100000", "parity83_observed": "00001100010010100111100110000010000000101101111110001000110000110000000100001001000", "parity83_expected": "11100110110011100011010100100011000110011100101100110001111010100000100100101011000", "syndrome83": "11101010100001000100110010100001000110110001010010111001001010010000100000100010000", "syndrome_weight": 30, "valid_codeword_hard_decision": false, "message91_sha256_16": "8c66b791ab80fa5f", "codeword174_sha256_16": "4d990be74fb87bae" }, "repair": { "attempted": true, "max_flips": 6, "candidate_pool": 12, "flip_count": 1, "repair_success": false, "final_syndrome_weight": 29, "trace": [ { "flip_index": 154, "llr_abs": 0.118003, "gain": 1, "syndrome_weight_after": 29 } ], "repaired_message91_sha256_16": "8c66b791ab80fa5f" } }, { "variant": "mapped_ft8_gray_alt_high_demap_msb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "transform": "raw_msb+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "raw_msb", "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "hard_weight_174": 42, "llr_avg_abs": 1.894502597701149, "syndrome": { "bits_len": 174, "message91": "0011110000000000110000010100000110000011101001010010000000000100100100100000100100000001110", "parity83_observed": "00010000100000000000001100100000100010100011000010000000000000000100010000100010001", "parity83_expected": "11000010001001000011011101101100100110101100100010101001100000110100111101000010010", "syndrome83": "11010010101001000011010001001100000100001111100000101001100000110000101101100000011", "syndrome_weight": 32, "valid_codeword_hard_decision": false, "message91_sha256_16": "e5731e4fede3fb18", "codeword174_sha256_16": "1dc701ee46577c18" }, "repair": { "attempted": true, "max_flips": 6, "candidate_pool": 12, "flip_count": 3, "repair_success": false, "final_syndrome_weight": 29, "trace": [ { "flip_index": 110, "llr_abs": 0.005053, "gain": 1, "syndrome_weight_after": 31 }, { "flip_index": 116, "llr_abs": 0.07304, "gain": 1, "syndrome_weight_after": 30 }, { "flip_index": 94, "llr_abs": 0.155455, "gain": 1, "syndrome_weight_after": 29 } ], "repaired_message91_sha256_16": "e5731e4fede3fb18" } }, { "variant": "lab_mask_xor_preview", "transform": "ft8_gray_primary_demap_lsb_input+ft8_bitrev_deinterleave_rx_to_codeword+inverted_bits", "mapping_meta": { "tone_mapping": "ft8_gray_primary", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": true, "interleaver": "ft8_bitrev", "direction": "deinterleave_rx_to_codeword", "order_len": 174, "polarity": "inverted" }, "hard_weight_174": 89, "llr_avg_abs": 1.7330972528735638, "syndrome": { "bits_len": 174, "message91": "1000001000110100110111110011101111101100011100100100001010111110010001110110111110001001101", "parity83_observed": "00010100010001000101011110001001100001111110111110101010010110111100011001000110010", "parity83_expected": "11110101110110001101011101001000111001011011011100001100000100001100011101110111110", "syndrome83": "11100001100111001000000011000001011000100101100010100110010010110000000100110001100", "syndrome_weight": 31, "valid_codeword_hard_decision": false, "message91_sha256_16": "7880a2f86fd2bcbd", "codeword174_sha256_16": "49e0d840cf79204d" }, "repair": { "attempted": true, "max_flips": 6, "candidate_pool": 12, "flip_count": 1, "repair_success": false, "final_syndrome_weight": 30, "trace": [ { "flip_index": 134, "llr_abs": 0.001731, "gain": 1, "syndrome_weight_after": 30 } ], "repaired_message91_sha256_16": "7880a2f86fd2bcbd" } }, { "variant": "mapped_raw_msb+ft8_bitrev_deinterleave_rx_to_codeword", "transform": "ft8_gray_primary_demap_lsb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "ft8_gray_primary", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": true, "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "hard_weight_174": 47, "llr_avg_abs": 1.7612153735632188, "syndrome": { "bits_len": 174, "message91": "1001010010000000010000000000000001011001100100010010000100000010000011100000100001000101001", "parity83_observed": "01101001000001111000001001000101101100000000000110000000000001001000001010101000100", "parity83_expected": "01001101010100111000110101000111000100011011000011010101111011000100001111000010101", "syndrome83": "00100100010101000000111100000010101000011011000101010101111010001100000101101010001", "syndrome_weight": 33, "valid_codeword_hard_decision": false, "message91_sha256_16": "dd95757cc3ee25c0", "codeword174_sha256_16": "d259414cbfbda6fb" }, "repair": { "attempted": true, "max_flips": 6, "candidate_pool": 12, "flip_count": 3, "repair_success": false, "final_syndrome_weight": 30, "trace": [ { "flip_index": 147, "llr_abs": 0.113332, "gain": 1, "syndrome_weight_after": 32 }, { "flip_index": 151, "llr_abs": 0.145602, "gain": 1, "syndrome_weight_after": 31 }, { "flip_index": 111, "llr_abs": 0.17487, "gain": 1, "syndrome_weight_after": 30 } ], "repaired_message91_sha256_16": "dd95757cc3ee25c0" } }, { "variant": "mapped_lsb_within_each_tone+ft8_bitrev_interleave_codeword_to_rx_inverse", "transform": "ft8_gray_primary_demap_lsb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "ft8_gray_primary", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": true, "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "hard_weight_174": 52, "llr_avg_abs": 1.6970454827586203, "syndrome": { "bits_len": 174, "message91": "0111100000101000100010000001011101100000010000010101010000000000100001111100001011001100011", "parity83_observed": "10000000001000000000000011110110000001000100010000010000000010010010010000010110001", "parity83_expected": "10101100000111000010010111010011000000100011000011110110101011110110010000010101000", "syndrome83": "00101100001111000010010100100101000001100111010011100110101001100100000000000011001", "syndrome_weight": 32, "valid_codeword_hard_decision": false, "message91_sha256_16": "0758421db7e99eb5", "codeword174_sha256_16": "01bbbd5dbf5c2f3d" }, "repair": { "attempted": true, "max_flips": 6, "candidate_pool": 12, "flip_count": 1, "repair_success": false, "final_syndrome_weight": 31, "trace": [ { "flip_index": 120, "llr_abs": 0.095766, "gain": 1, "syndrome_weight_after": 31 } ], "repaired_message91_sha256_16": "0758421db7e99eb5" } }, { "variant": "mapped_lsb_within_each_tone+ft8_bitrev_interleave_codeword_to_rx_inverse", "transform": "ft8_gray_alt_high_demap_lsb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "ft8_gray_alt_high", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": true, "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "hard_weight_174": 52, "llr_avg_abs": 1.6320086724137932, "syndrome": { "bits_len": 174, "message91": "0111100000101000100010000001011101100000010000010101010000000000100001111100001011001100011", "parity83_observed": "10000000001000000000000011110110000001000100010000010000000010010010010000010110001", "parity83_expected": "10101100000111000010010111010011000000100011000011110110101011110110010000010101000", "syndrome83": "00101100001111000010010100100101000001100111010011100110101001100100000000000011001", "syndrome_weight": 32, "valid_codeword_hard_decision": false, "message91_sha256_16": "0758421db7e99eb5", "codeword174_sha256_16": "01bbbd5dbf5c2f3d" }, "repair": { "attempted": true, "max_flips": 6, "candidate_pool": 12, "flip_count": 1, "repair_success": false, "final_syndrome_weight": 31, "trace": [ { "flip_index": 147, "llr_abs": 0.169509, "gain": 1, "syndrome_weight_after": 31 } ], "repaired_message91_sha256_16": "0758421db7e99eb5" } }, { "variant": "mapped_ft8_gray_alt_high_demap_lsb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "transform": "lsb_within_each_tone+ft8_bitrev_deinterleave_rx_to_codeword+inverted_bits", "mapping_meta": { "tone_mapping": "lsb_within_each_tone", "interleaver": "ft8_bitrev", "direction": "deinterleave_rx_to_codeword", "order_len": 174, "polarity": "inverted" }, "hard_weight_174": 118, "llr_avg_abs": 1.7004307701149426, "syndrome": { "bits_len": 174, "message91": "1110111101111011000001111100111111001111110011001110001101001101110010111111110111101111110", "parity83_observed": "01000101101111011010111101111001101111101101101000111110111101110101111101101101011", "parity83_expected": "11001000101111111000111111110101011000000101010110101100111101101100101011100001010", "syndrome83": "10001101000000100010000010001100110111101000111110010010000000011001010110001100001", "syndrome_weight": 32, "valid_codeword_hard_decision": false, "message91_sha256_16": "64a178ece7f87012", "codeword174_sha256_16": "39e7d6bfe9f3caa8" }, "repair": { "attempted": true, "max_flips": 6, "candidate_pool": 12, "flip_count": 0, "repair_success": false, "final_syndrome_weight": 32, "trace": [], "repaired_message91_sha256_16": "64a178ece7f87012" } }, { "variant": "mapped_lsb_within_each_tone+ft8_bitrev_deinterleave_rx_to_codeword", "transform": "ft8_gray_primary_demap_msb_input+no_interleaver+inverted_bits", "mapping_meta": { "tone_mapping": "ft8_gray_primary", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": false, "interleaver": "none", "polarity": "inverted" }, "hard_weight_174": 129, "llr_avg_abs": 1.7716979770114942, "syndrome": { "bits_len": 174, "message91": "1101110011100011111101111101100011110011110010011111110101100011111111111111110011011111011", "parity83_observed": "10111110101111110110111111100111110111110111111111000111111111001001111001110111111", "parity83_expected": "00110111101010100011101001110001110100101011001111101111011101101001101101100010001", "syndrome83": "10001001000101010101010110010110000011011100110000101000100010100000010100010101110", "syndrome_weight": 33, "valid_codeword_hard_decision": false, "message91_sha256_16": "e98c05f03d40a834", "codeword174_sha256_16": "7bd1199f75d4b915" }, "repair": { "attempted": true, "max_flips": 6, "candidate_pool": 12, "flip_count": 1, "repair_success": false, "final_syndrome_weight": 32, "trace": [ { "flip_index": 110, "llr_abs": 0.225929, "gain": 1, "syndrome_weight_after": 32 } ], "repaired_message91_sha256_16": "e98c05f03d40a834" } }, { "variant": "mapped_lsb_within_each_tone+ft8_bitrev_deinterleave_rx_to_codeword", "transform": "ft8_gray_alt_high_demap_msb_input+no_interleaver+inverted_bits", "mapping_meta": { "tone_mapping": "ft8_gray_alt_high", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": false, "interleaver": "none", "polarity": "inverted" }, "hard_weight_174": 131, "llr_avg_abs": 1.7170600459770111, "syndrome": { "bits_len": 174, "message91": "1101110011100011111101111101100011110011110010011111110101100011111111111111110011011111011", "parity83_observed": "10111110101111110110111111100111110111110111111111011111111111001001111001110111111", "parity83_expected": "00110111101010100011101001110001110100101011001111101111011101101001101101100010001", "syndrome83": "10001001000101010101010110010110000011011100110000110000100010100000010100010101110", "syndrome_weight": 33, "valid_codeword_hard_decision": false, "message91_sha256_16": "e98c05f03d40a834", "codeword174_sha256_16": "75ae86c1752e51f1" }, "repair": { "attempted": false, "flip_count": 0, "repair_success": false, "final_syndrome_weight": 33, "trace": [], "repaired_message91_sha256_16": "e98c05f03d40a834" } }, { "variant": "mapped_ft8_gray_primary_demap_msb_input+ft8_bitrev_deinterleave_rx_to_codeword", "transform": "ft8_gray_alt_high_demap_msb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "ft8_gray_alt_high", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": false, "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "hard_weight_174": 53, "llr_avg_abs": 1.3529909827586213, "syndrome": { "bits_len": 174, "message91": "0000001000000000100110100110100100110001011100000100110000110110000010000000101101101000000", "parity83_observed": "00000000000000000000010001000010001101111001000001011010000011001011000011011010000", "parity83_expected": "00010101101110001000000101011011000000011101100100010110001111010011000001100010101", "syndrome83": "00010101101110001000010100011001001101100100100101001100001100011000000010111000101", "syndrome_weight": 33, "valid_codeword_hard_decision": false, "message91_sha256_16": "d63f1a805e94cd08", "codeword174_sha256_16": "0862e4611b7ba452" }, "repair": { "attempted": false, "flip_count": 0, "repair_success": false, "final_syndrome_weight": 33, "trace": [], "repaired_message91_sha256_16": "d63f1a805e94cd08" } }, { "variant": "mapped_ft8_gray_primary_demap_msb_input+ft8_bitrev_deinterleave_rx_to_codeword", "transform": "ft8_gray_alt_high_demap_msb_input+no_interleaver", "mapping_meta": { "tone_mapping": "ft8_gray_alt_high", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": false, "interleaver": "none" }, "hard_weight_174": 53, "llr_avg_abs": 1.3529909827586208, "syndrome": { "bits_len": 174, "message91": "0001100000010001100010000010111100011100001100010011100010011100000000110000101100100000100", "parity83_observed": "01110001000011000011000000011000111000000000000011110000001000010000000001001001000", "parity83_expected": "11111000011010001110010111011010111000000011000101011111101110110110000001000100100", "syndrome83": "10001001011001001101010111000010000000000011000110101111100110100110000000001101100", "syndrome_weight": 33, "valid_codeword_hard_decision": false, "message91_sha256_16": "321223ba015c242f", "codeword174_sha256_16": "480df928476c81fc" }, "repair": { "attempted": false, "flip_count": 0, "repair_success": false, "final_syndrome_weight": 33, "trace": [], "repaired_message91_sha256_16": "321223ba015c242f" } }, { "variant": "mapped_ft8_gray_alt_high_demap_msb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "transform": "ft8_gray_primary_demap_msb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "ft8_gray_primary", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": false, "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "hard_weight_174": 55, "llr_avg_abs": 1.3412421264367818, "syndrome": { "bits_len": 174, "message91": "0110110000000010111000011100000110000011101010010011000000000000100000000010100110010101100", "parity83_observed": "11010000100000000000011100110000101100000110001010000000000010000110010010110010001", "parity83_expected": "01010011111111001100111111110111001010000100111110000100001110100100010011010011100", "syndrome83": "10000011011111001100100011000111100110000010110100000100001100100010000001100001101", "syndrome_weight": 33, "valid_codeword_hard_decision": false, "message91_sha256_16": "fda1bd1bee3ef270", "codeword174_sha256_16": "b72ed95eb3537964" }, "repair": { "attempted": false, "flip_count": 0, "repair_success": false, "final_syndrome_weight": 33, "trace": [], "repaired_message91_sha256_16": "fda1bd1bee3ef270" } }, { "variant": "lsb_within_each_tone", "transform": "ft8_gray_primary_demap_msb_input+ft8_bitrev_deinterleave_rx_to_codeword+inverted_bits", "mapping_meta": { "tone_mapping": "ft8_gray_primary", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": false, "interleaver": "ft8_bitrev", "direction": "deinterleave_rx_to_codeword", "order_len": 174, "polarity": "inverted" }, "hard_weight_174": 120, "llr_avg_abs": 1.9271690804597712, "syndrome": { "bits_len": 174, "message91": "1110110111100101110110111100101111110111110110011100110000100111111011111111101011001111011", "parity83_observed": "11111111100101110110111111110111010111110110111100000111101111001000111010110110110", "parity83_expected": "00010111100001000111100101010011010000100001010101010011110101001101111000010000110", "syndrome83": "11101000000100110001011010100100000111010111101001010100011010000101000010100110000", "syndrome_weight": 34, "valid_codeword_hard_decision": false, "message91_sha256_16": "210ed54aa2f6f2f5", "codeword174_sha256_16": "88b752d7f508741d" }, "repair": { "attempted": false, "flip_count": 0, "repair_success": false, "final_syndrome_weight": 34, "trace": [], "repaired_message91_sha256_16": "210ed54aa2f6f2f5" } }, { "variant": "mapped_ft8_gray_primary_demap_msb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "transform": "lsb_within_each_tone+ft8_bitrev_deinterleave_rx_to_codeword", "mapping_meta": { "tone_mapping": "lsb_within_each_tone", "interleaver": "ft8_bitrev", "direction": "deinterleave_rx_to_codeword", "order_len": 174 }, "hard_weight_174": 40, "llr_avg_abs": 1.9271690804597712, "syndrome": { "bits_len": 174, "message91": "0001000001001000000010000010000000110000001000110000110010110010000010000000000100101000001", "parity83_observed": "01000000001010000001000010000000001001001011001001000000000010010010000011001010000", "parity83_expected": "10101001011011100000100001000110100011001111110101010110100011001100000110101010000", "syndrome83": "11101001010001100001100011000110101010000100111100010110100001011110000101100000000", "syndrome_weight": 34, "valid_codeword_hard_decision": false, "message91_sha256_16": "dc6b3b99b0eefa3c", "codeword174_sha256_16": "abc3f6bc66ab0d95" }, "repair": { "attempted": false, "flip_count": 0, "repair_success": false, "final_syndrome_weight": 34, "trace": [], "repaired_message91_sha256_16": "dc6b3b99b0eefa3c" } }, { "variant": "mapped_ft8_gray_primary_demap_msb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "transform": "lsb_within_each_tone+ft8_bitrev_deinterleave_rx_to_codeword+inverted_bits", "mapping_meta": { "tone_mapping": "lsb_within_each_tone", "interleaver": "ft8_bitrev", "direction": "deinterleave_rx_to_codeword", "order_len": 174, "polarity": "inverted" }, "hard_weight_174": 134, "llr_avg_abs": 1.9271690804597712, "syndrome": { "bits_len": 174, "message91": "1110111110110111111101111101111111001111110111001111001101001101111101111111111011010111110", "parity83_observed": "10111111110101111110111101111111110110110100110110111111111101101101111100110101111", "parity83_expected": "10101101010101110000010100101000110110111101100000100010100001100111010101101001110", "syndrome83": "00010010100000001110101001010111000000001001010110011101011100001010101001011100001", "syndrome_weight": 34, "valid_codeword_hard_decision": false, "message91_sha256_16": "2b641aedbf9f6b1c", "codeword174_sha256_16": "70b34a4cd8422396" }, "repair": { "attempted": false, "flip_count": 0, "repair_success": false, "final_syndrome_weight": 34, "trace": [], "repaired_message91_sha256_16": "2b641aedbf9f6b1c" } }, { "variant": "reverse_full_bitstream", "transform": "ft8_gray_primary_demap_lsb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "ft8_gray_primary", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": true, "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "hard_weight_174": 40, "llr_avg_abs": 1.927169080459771, "syndrome": { "bits_len": 174, "message91": "0001001000110000000000010000010110101000000100010000010000000110010100001000000000001000100", "parity83_observed": "01110010001000000100000001010000000000000011000000110010101110000000100000001010000", "parity83_expected": "01111010110100110101000000110110000101101100011010011000111110000111100001100011001", "syndrome83": "00001000111100110001000001100110000101101111011010101010010000000111000001101001001", "syndrome_weight": 34, "valid_codeword_hard_decision": false, "message91_sha256_16": "703de01c7930a681", "codeword174_sha256_16": "728f877f162554f0" }, "repair": { "attempted": false, "flip_count": 0, "repair_success": false, "final_syndrome_weight": 34, "trace": [], "repaired_message91_sha256_16": "703de01c7930a681" } }, { "variant": "reverse_full_bitstream", "transform": "ft8_gray_primary_demap_lsb_input+no_interleaver", "mapping_meta": { "tone_mapping": "ft8_gray_primary", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": true, "interleaver": "none" }, "hard_weight_174": 40, "llr_avg_abs": 1.927169080459771, "syndrome": { "bits_len": 174, "message91": "0000000010010000110000110010000110110000010110010010110000010000000100000000000000000000000", "parity83_observed": "10010010000000001000011011000011010000100101000001000010011000011000000000000000000", "parity83_expected": "01010000001100101100100010111110001100000101000110001011100000011010111100010000000", "syndrome83": "11000010001100100100111001111101011100100000000111001001111000000010111100010000000", "syndrome_weight": 34, "valid_codeword_hard_decision": false, "message91_sha256_16": "b9685faa51f2fee3", "codeword174_sha256_16": "6034031cb49b149b" }, "repair": { "attempted": false, "flip_count": 0, "repair_success": false, "final_syndrome_weight": 34, "trace": [], "repaired_message91_sha256_16": "b9685faa51f2fee3" } }, { "variant": "reverse_full_bitstream", "transform": "ft8_gray_alt_high_demap_lsb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "ft8_gray_alt_high", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": true, "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "hard_weight_174": 42, "llr_avg_abs": 1.8945025977011496, "syndrome": { "bits_len": 174, "message91": "0001001000110000000000010000010110101000000101010000010000000110010100001000000000001000100", "parity83_observed": "01110010001000000100000001010000000000000111000000110010101110000000100000001010000", "parity83_expected": "01001011000000100001010110010011110000101011001001100010100010101000010101001011111", "syndrome83": "00111001001000100101010111000011110000101100001001010000001100101000110101000001111", "syndrome_weight": 34, "valid_codeword_hard_decision": false, "message91_sha256_16": "d8aad96deb103b4f", "codeword174_sha256_16": "65d7f0c73aa808bc" }, "repair": { "attempted": false, "flip_count": 0, "repair_success": false, "final_syndrome_weight": 34, "trace": [], "repaired_message91_sha256_16": "d8aad96deb103b4f" } } ], "decodes": [], "outputs": { "ldpc_matrix_probe_json": "/decoders/js8_decoder/runtime/ldpc_matrix_probe/step35_ldpc_matrix_probe.json" }, "warnings": [ "Step 35 keeps the Step 35 Gray/interleaver probe but ranks all mappings first and repairs only the best bounded subset to avoid Raspberry Pi timeouts.", "This is still a diagnostic LDPC/FEC probe and does not unpack JS8 text yet.", "If best_matrix_probe reaches syndrome_weight 0, the next step can feed message91 into CRC/message unpack. Otherwise continue timing, symbol boundary, deinterleaver/order or LLR tuning using best mapping_meta." ], "next_action": "Upload Step35 logs. Inspect best_matrix_probe.mapping_meta and final_syndrome_weight; then either unpack message91 on syndrome 0 or continue bounded LDPC/timing tuning." } [webftr-js8-lab] OK [webftr-js8-lab] log file: /decoders/js8_decoder/logs/20260526T181639Z_ldpc-matrix-probe.log [webftr-js8-lab] manifest: /decoders/js8_decoder/logs/20260526T181639Z_ldpc-matrix-probe_manifest.json