From 2e3fedc6cecb68fc192db308d5dbcba26077a139 Mon Sep 17 00:00:00 2001 From: John Poole Date: Sun, 17 May 2026 03:58:36 -0700 Subject: [PATCH 1/3] Saving run commands and keeping a journal --- migration/Migration_Testing_Journal.md | 25 ++++++++ migration/pi_zero_command_clumps.txt | 82 ++++++++++++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 migration/Migration_Testing_Journal.md create mode 100644 migration/pi_zero_command_clumps.txt diff --git a/migration/Migration_Testing_Journal.md b/migration/Migration_Testing_Journal.md new file mode 100644 index 0000000..dafcc1f --- /dev/null +++ b/migration/Migration_Testing_Journal.md @@ -0,0 +1,25 @@ +# Migration Testing Journal +May 17, 2026 3:30 AM - I had successfully testing the CPP classes on the 2 Rapsberry Pi Zero 2Ws using the Constitution. I then queried Codex and ask: how could I be certain I was ussing the compiled CPP library and not the older Python code. It made changes which I did not examine which would regurgitate what it was using. I pushed to Forgejo and then pulled to Zeros. That's when things went south. Suddenly the Constitution was not being cross transmitted in 36 seconds and the 60 seconds timeout trigger resulting in an incomplete transfer on both side. Then, I think, more modifications were made and deployed and then the BLE could not even advertise and/or register. Codex suggestion was to reboot the Pis. This is where I disagreed. Here is an opportunit to take a rock-solid hardware state and learn why it was disturbed, if it was disturbed. This occured about 6 hours ago on Saturday evening, May 15th. I've awakened and mulled this over and realized this may be an opportunity to identify a more low level bug. The latest runs were tmp/run13 where a connection could not even be established. + +So, I'll do run14 using the exact same command clumps to see if the condition remains, or if the passage of time has changed something. Hopefully, run14 will have the same errors. + +I'll also source control my Pi command clumps. + +May 17, 2026 3:39 AM Using existing ssh shells, I reran the test and duplicated the error condition. Saved in run14. zerodev1 has announcements and no indication of error. zerodev2 has errors: + +```bash +[03:39:27.352] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:39:28] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 19 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +``` +Codex advises: +``` +Run14 supports “low-level BLE/scanner path,” not C++ fragmentation: + +zerodev2 is forced Python. +It advertises successfully. +It never establishes a path/link. +It repeatedly reports BleakScanner callbacks not invoked. +zerodev1 shows no scanner callback errors in the shown log. +So the immediate code point to instrument is LinuxBluetoothDriver._perform_scan(), around BleakScanner(... detection_callback=...), scanner.start(), scanner.stop(), and callback_count[0] == 0. +``` +So I'll try a run with no change on zerodev1, but force "cpp" for zerdev2, I'll keep the logs in run14. \ No newline at end of file diff --git a/migration/pi_zero_command_clumps.txt b/migration/pi_zero_command_clumps.txt new file mode 100644 index 0000000..3f8cd6a --- /dev/null +++ b/migration/pi_zero_command_clumps.txt @@ -0,0 +1,82 @@ +This file had been a working scratch file, but is now being saved on 5/16/26 at 3:337 AM. See Journal. + +# zerodev1 +timeout 240 python3 examples/ble_dual_node_echo.py \ + --ble-role peripheral \ + --message-file ~/Constitution.txt \ + --message-chunk-size 900 \ + --announce-only-when-disconnected + +# zerodev2 +timeout 240 python3 examples/ble_dual_node_echo.py \ + --ble-role both \ + --peer 926e6d3b35b7d5940be7edeb47c41b78 \ + --announce-only-when-disconnected + +# --message-file /home/jlpoole/US_Constitution.txt + --message-file If.txt \ + +# zerodev1 Command clump START +date +chronyc tracking +chronyc sources -v +echo . + +PYTHONPATH=src:migration/protocol_core \ +BLE_RETICULUM_FRAGMENTATION_BACKEND=python \ +BLE_RETICULUM_FRAGMENTATION_BACKEND_REPORT=1 \ +timeout 60 python3 examples/ble_dual_node_echo.py \ + --ble-role peripheral \ + --message-file /home/jlpoole/US_Constitution.txt \ + --message-chunk-size 900 \ + --announce-only-when-disconnected \ + --verbosity "critical" + +echo . +chronyc tracking +chronyc sources -v +# zerodev1 Command clump END + + + +# zerodev2 Command clump START +date +chronyc tracking +chronyc sources -v +echo . + +PYTHONPATH=src:migration/protocol_core \ +BLE_RETICULUM_FRAGMENTATION_BACKEND=python \ +BLE_RETICULUM_FRAGMENTATION_BACKEND_REPORT=1 \ +timeout 60 python3 examples/ble_dual_node_echo.py \ + --ble-role both \ + --message-file /home/jlpoole/US_Constitution.txt \ + --peer 926e6d3b35b7d5940be7edeb47c41b78 \ + --announce-only-when-disconnected + +echo . +chronyc tracking +chronyc sources -v +# zerodev2 Command clump END + +# zerodev2 CPP Command clump START +date +chronyc tracking +chronyc sources -v +echo . + +PYTHONPATH=src:migration/protocol_core \ +BLE_RETICULUM_FRAGMENTATION_BACKEND=cpp \ +BLE_RETICULUM_FRAGMENTATION_BACKEND_REPORT=1 \ +timeout 60 python3 examples/ble_dual_node_echo.py \ + --ble-role both \ + --message-file /home/jlpoole/US_Constitution.txt \ + --peer 926e6d3b35b7d5940be7edeb47c41b78 \ + --announce-only-when-disconnected + +echo . +chronyc tracking +chronyc sources -v +# zerodev2 Command clump END + + From 9074217edcd8d7d3e2fb55de89acc6e3d8039b1a Mon Sep 17 00:00:00 2001 From: John Poole Date: Sun, 17 May 2026 04:59:38 -0700 Subject: [PATCH 2/3] safety --- migration/Migration_Testing_Journal.md | 101 ++++++++++++++++++++++++- migration/pi_zero_command_clumps.txt | 3 + 2 files changed, 103 insertions(+), 1 deletion(-) diff --git a/migration/Migration_Testing_Journal.md b/migration/Migration_Testing_Journal.md index dafcc1f..0291bf9 100644 --- a/migration/Migration_Testing_Journal.md +++ b/migration/Migration_Testing_Journal.md @@ -22,4 +22,103 @@ It repeatedly reports BleakScanner callbacks not invoked. zerodev1 shows no scanner callback errors in the shown log. So the immediate code point to instrument is LinuxBluetoothDriver._perform_scan(), around BleakScanner(... detection_callback=...), scanner.start(), scanner.stop(), and callback_count[0] == 0. ``` -So I'll try a run with no change on zerodev1, but force "cpp" for zerdev2, I'll keep the logs in run14. \ No newline at end of file +So I'll try a run with no change on zerodev1, but force "cpp" for zerdev2, I'll keep the logs in run14. +May 17, 2026 4:45 AM Did a lot of forensics for run 14, finally concluded a reboot of both was last resort. Also, created symlinks under ~/.reticulum/interfaces to this project's files. Previous runs may not have been using the "shim" given static file under ~/.reticulum/interfaces. For example: + +```bash +So this discrepancy may invalidate all prior testing? Should I try using soft links under ~/.reticulum/interfaces pointing to the git controlled project files? +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ ls src/ble_reticulum/ -la +total 312 +drwxrwxr-x 3 jlpoole jlpoole 4096 May 16 20:28 . +drwxrwxr-x 3 jlpoole jlpoole 4096 May 15 11:25 .. +-rw-rw-r-- 1 jlpoole jlpoole 9891 May 16 08:11 BLEAgent.py +-rw-rw-r-- 1 jlpoole jlpoole 20471 May 15 11:25 BLEFragmentation.py +-rw-rw-r-- 1 jlpoole jlpoole 2433 May 16 19:36 BLEFragmentationBackend.py +-rw-rw-r-- 1 jlpoole jlpoole 27232 May 16 08:11 BLEGATTServer.py +-rw-rw-r-- 1 jlpoole jlpoole 120620 May 16 20:28 BLEInterface.py +-rw-rw-r-- 1 jlpoole jlpoole 0 May 15 11:25 __init__.py +drwxrwxr-x 2 jlpoole jlpoole 4096 May 16 19:37 __pycache__ +-rw-rw-r-- 1 jlpoole jlpoole 7340 May 15 11:25 bluetooth_driver.py +-rw-rw-r-- 1 jlpoole jlpoole 107923 May 16 08:11 linux_bluetooth_driver.py +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ ls ~/.reticulum/interfaces/ -la +total 308 +drwxrwxr-x 3 jlpoole jlpoole 4096 May 15 16:35 . +drwxrwxr-x 4 jlpoole jlpoole 4096 May 16 07:43 .. +-rw-rw-r-- 1 jlpoole jlpoole 9751 May 15 12:19 BLEAgent.py +-rw-rw-r-- 1 jlpoole jlpoole 20471 May 15 12:19 BLEFragmentation.py +-rw-rw-r-- 1 jlpoole jlpoole 27092 May 15 12:19 BLEGATTServer.py +-rw-rw-r-- 1 jlpoole jlpoole 119128 May 15 12:19 BLEInterface.py +-rw-rw-r-- 1 jlpoole jlpoole 0 May 15 12:19 __init__.py +drwxrwxr-x 2 jlpoole jlpoole 4096 May 15 16:35 __pycache__ +-rw-rw-r-- 1 jlpoole jlpoole 7340 May 15 12:19 bluetooth_driver.py +-rw-rw-r-- 1 jlpoole jlpoole 107783 May 15 12:19 linux_bluetooth_driver.py +jlpoole@zerodev1:/usr/local/src/ble-reticulum +``` +I tried CPP versions and I extended the timeout from 60 seconds to 90, the previous 60 was cutting it too close, though at the very early tests, the Constitution could be transferred in 36 seconds, so note should be made that something was introduced that slowed the transfer down. +```bash +(rnsenv) jlpoole@jp /usr/local/src/ble-reticulum/scripts $ date; ./analyze_reticulum_file_transfer_20260516_1130.pl ../tmp/run15/20260517_0439_zerodev1_Constitution_CPP.txt ../tmp/run15/20260517_0439_zerodev2_Constitution_CPP.txt +Sun May 17 04:52:33 PDT 2026 +Reticulum BLE file transfer analysis +Generated: 2026-05-17 04:52:33 PDT +Input files: + ../tmp/run15/20260517_0439_zerodev1_Constitution_CPP.txt + ../tmp/run15/20260517_0439_zerodev2_Constitution_CPP.txt + +Log provenance summary: + 20260517_0439_zerodev1_Constitution_CPP.txt receiver=zerodev1 date='Sun May 17 04:44:06 PDT 2026' command_lines=21 post_marker_lines=591 + 20260517_0439_zerodev2_Constitution_CPP.txt receiver=zerodev2 date='Sun May 17 04:44:08 AM PDT 2026' command_lines=20 post_marker_lines=587 + +Chrony clock notes from logs: + 20260517_0439_zerodev1_Constitution_CPP.txt + System time : 0.000602999 seconds fast of NTP time + System time : 0.000000797 seconds slow of NTP time + 20260517_0439_zerodev2_Constitution_CPP.txt + System time : 0.000199690 seconds slow of NTP time + System time : 0.000000200 seconds fast of NTP time + +Declared outbound sends observed in logs: + sender=zerodev1 file=US_Constitution.txt chunks= 140 bytes= 44225 chunk_data_bytes=316 + sender=zerodev2 file=US_Constitution.txt chunks= 148 bytes= 44225 chunk_data_bytes=n/a + +Direction: zerodev1->zerodev2 + file : US_Constitution.txt + chunks received : 140 of 140 + completeness : 100.00% + missing chunks : none + duplicate chunks : none + payload bytes RX : 44225 + first chunk RX : 04:44:33.283 + last chunk RX : 04:45:09.259 + receiver span : 35.976 s + sender span : 14.299 s + payload rate RX span : 1229.3 B/s 9834.3 bit/s + payload rate TX span : 3092.8 B/s 24742.6 bit/s + one-way latency min/median/mean/p95/max/stddev: 246.163 / 11275.384 / 11238.875 / 21147.058 / 21922.931 / 6402.281 ms + receiver inter-chunk gap min/median/mean/p95/max/stddev: 191.000 / 244.000 / 258.820 / 297.300 / 341.000 / 36.970 ms + sender inter-chunk gap min/median/mean/p95/max/stddev: 101.924 / 102.945 / 102.872 / 104.299 / 109.563 / 0.917 ms + +Direction: zerodev2->zerodev1 + file : US_Constitution.txt + chunks received : 148 of 148 + completeness : 100.00% + missing chunks : none + duplicate chunks : none + payload bytes RX : 44225 + first chunk RX : 04:44:33.284 + last chunk RX : 04:45:07.703 + receiver span : 34.419 s + sender span : 15.470 s + payload rate RX span : 1284.9 B/s 10279.2 bit/s + payload rate TX span : 2858.7 B/s 22869.8 bit/s + one-way latency min/median/mean/p95/max/stddev: 254.424 / 9806.025 / 9750.358 / 18371.803 / 19203.224 / 5533.436 ms + receiver inter-chunk gap min/median/mean/p95/max/stddev: 145.000 / 243.000 / 234.143 / 246.700 / 292.000 / 24.080 ms + sender inter-chunk gap min/median/mean/p95/max/stddev: 103.738 / 104.216 / 105.239 / 108.147 / 122.931 / 2.539 ms + +Hello/handshake RX records: + zerodev2 -> zerodev1 recv=04:44:32.951 latency= 118.171 ms message='hello' + zerodev1 -> zerodev2 recv=04:44:32.963 latency= 113.954 ms message='hello back' + +Caution: one-way latency assumes sender and receiver clocks are synchronized. +Your chronyc tracking output helps bound this error, but it is not a substitute for ACK/round-trip timing. +(rnsenv) jlpoole@jp /usr/local/src/ble-reticulum/scripts $ +``` diff --git a/migration/pi_zero_command_clumps.txt b/migration/pi_zero_command_clumps.txt index 3f8cd6a..1d0a423 100644 --- a/migration/pi_zero_command_clumps.txt +++ b/migration/pi_zero_command_clumps.txt @@ -18,6 +18,7 @@ timeout 240 python3 examples/ble_dual_node_echo.py \ # zerodev1 Command clump START date +cd /usr/local/src/ble-reticulum/ chronyc tracking chronyc sources -v echo . @@ -41,6 +42,7 @@ chronyc sources -v # zerodev2 Command clump START date +cd /usr/local/src/ble-reticulum/ chronyc tracking chronyc sources -v echo . @@ -61,6 +63,7 @@ chronyc sources -v # zerodev2 CPP Command clump START date +cd /usr/local/src/ble-reticulum/ chronyc tracking chronyc sources -v echo . From aca4ff7c95ff0ca603d12f2f0922c097c25bd465 Mon Sep 17 00:00:00 2001 From: John Poole Date: Sun, 17 May 2026 12:16:11 -0700 Subject: [PATCH 3/3] Preserving special field test runs --- migration/preserved_runs/README.md | 1 + ...50516_2032_zerodev1_USConstitution_CPP.txt | 87 +++++ ...50516_2032_zerodev2_USConstitution_CPP.txt | 100 +++++ ...16_2038_zerodev1_USConstitution_Python.txt | 86 ++++ ...16_2038_zerodev2_USConstitution_Python.txt | 116 ++++++ .../20250617_0407_zerodev1_forensics.txt | 75 ++++ .../20250617_0407_zerodev2_forensics.txt | 57 +++ .../20250617_0416_zerodev1_forensics.txt | 115 ++++++ .../20250617_0416_zerodev2_forensics.txt | 110 ++++++ .../20250617_0420_zerodev1_forensics.txt | 56 +++ .../20250617_0420_zerodev2_forensics.txt | 56 +++ .../20250617_0424_zerodev1_forensics.txt | 58 +++ .../20250617_0424_zerodev2_forensics.txt | 58 +++ .../20250617_0426_zerodev1_forensics.txt | 58 +++ .../20250617_0426_zerodev2_forensics.txt | 58 +++ ...605170342_zerodev1_Constitution_Python.txt | 86 ++++ ...605170342_zerodev2_Constitution_Python.txt | 115 ++++++ ...605170357_zerodev1_Constitution_Python.txt | 86 ++++ ...202605170357_zerodev2_Constitution_CPP.txt | 115 ++++++ ...mentation_cpp_equivalence_20260516_1718.md | 366 ++++++++++++++++++ ...e_reticulum_file_transfer_20260516_1130.pl | 14 +- 21 files changed, 1872 insertions(+), 1 deletion(-) create mode 100644 migration/preserved_runs/README.md create mode 100644 migration/preserved_runs/run13/20250516_2032_zerodev1_USConstitution_CPP.txt create mode 100644 migration/preserved_runs/run13/20250516_2032_zerodev2_USConstitution_CPP.txt create mode 100644 migration/preserved_runs/run13/20250516_2038_zerodev1_USConstitution_Python.txt create mode 100644 migration/preserved_runs/run13/20250516_2038_zerodev2_USConstitution_Python.txt create mode 100644 migration/preserved_runs/run14/20250617_0407_zerodev1_forensics.txt create mode 100644 migration/preserved_runs/run14/20250617_0407_zerodev2_forensics.txt create mode 100644 migration/preserved_runs/run14/20250617_0416_zerodev1_forensics.txt create mode 100644 migration/preserved_runs/run14/20250617_0416_zerodev2_forensics.txt create mode 100644 migration/preserved_runs/run14/20250617_0420_zerodev1_forensics.txt create mode 100644 migration/preserved_runs/run14/20250617_0420_zerodev2_forensics.txt create mode 100644 migration/preserved_runs/run14/20250617_0424_zerodev1_forensics.txt create mode 100644 migration/preserved_runs/run14/20250617_0424_zerodev2_forensics.txt create mode 100644 migration/preserved_runs/run14/20250617_0426_zerodev1_forensics.txt create mode 100644 migration/preserved_runs/run14/20250617_0426_zerodev2_forensics.txt create mode 100644 migration/preserved_runs/run14/202605170342_zerodev1_Constitution_Python.txt create mode 100644 migration/preserved_runs/run14/202605170342_zerodev2_Constitution_Python.txt create mode 100644 migration/preserved_runs/run14/202605170357_zerodev1_Constitution_Python.txt create mode 100644 migration/preserved_runs/run14/202605170357_zerodev2_Constitution_CPP.txt diff --git a/migration/preserved_runs/README.md b/migration/preserved_runs/README.md new file mode 100644 index 0000000..0405bbc --- /dev/null +++ b/migration/preserved_runs/README.md @@ -0,0 +1 @@ +5/17/26: This branch is for runs which I might laster want to reference. Case in point: run13 - something, possible a timeout taking effect before a [bilateral Constitution] transfer was completed left zerodev1 in such a state that a reboot was necessary. This is very bad and needs to be duplicated and understood so in production if the same conditions are met, they are gracefully handled. "runX" directories here are moved from the tmp/runs branch which is not under source control. diff --git a/migration/preserved_runs/run13/20250516_2032_zerodev1_USConstitution_CPP.txt b/migration/preserved_runs/run13/20250516_2032_zerodev1_USConstitution_CPP.txt new file mode 100644 index 0000000..e53b0e2 --- /dev/null +++ b/migration/preserved_runs/run13/20250516_2032_zerodev1_USConstitution_CPP.txt @@ -0,0 +1,87 @@ +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ # zerodev1 Command clump START +date +chronyc tracking +chronyc sources -v +echo . + +PYTHONPATH=src:migration/protocol_core \ +BLE_RETICULUM_FRAGMENTATION_BACKEND=cpp \ +BLE_RETICULUM_FRAGMENTATION_BACKEND_REPORT=1 \ +timeout 60 python3 examples/ble_dual_node_echo.py \ + --ble-role peripheral \ + --message-file /home/jlpoole/US_Constitution.txt \ + --message-chunk-size 900 \ + --announce-only-when-disconnected \ + --verbosity "critical" + +echo . +chronyc tracking +chronyc sources -v +# zerodev1 Command clump END + +Sat May 16 20:29:25 PDT 2026 +Reference ID : C0A80167 (rpi5.salemdata.net) +Stratum : 2 +Ref time (UTC) : Sun May 17 03:16:28 2026 +System time : 0.000095883 seconds slow of NTP time +Last offset : -0.000515888 seconds +RMS offset : 0.000318128 seconds +Frequency : 1.352 ppm slow +Residual freq : -0.118 ppm +Skew : 0.619 ppm +Root delay : 0.003228704 seconds +Root dispersion : 0.004468931 seconds +Update interval : 1546.7 seconds +Leap status : Normal + + .-- Source mode '^' = server, '=' = peer, '#' = local clock. + / .- Source state '*' = current best, '+' = combined, '-' = not combined, +| / 'x' = may be in error, '~' = too variable, '?' = unusable. +|| .- xxxx [ yyyy ] +/- zzzz +|| Reachability register (octal) -. | xxxx = adjusted offset, +|| Log2(Polling interval) --. | | yyyy = measured offset, +|| \ | | zzzz = estimated error. +|| | | \ +MS Name/IP address Stratum Poll Reach LastRx Last sample +=============================================================================== +^* rpi5.salemdata.net 1 9 373 776 -1984us[-2500us] +/- 5229us +. +[20:29:26.299] Starting node zerodev1 +[20:29:26.300] Reticulum config: ~/.reticulum +[20:29:26.300] Runtime config: /tmp/ble_reticulum_poc_zerodev1_zbvruq1p +[20:29:29.007] Loaded identity: /home/jlpoole/.reticulum/ble_reticulum_poc_zerodev1.identity +[20:29:29.007] Destination hash: <926e6d3b35b7d5940be7edeb47c41b78> +[20:29:29.007] Use this hash as --peer on the other node. +[20:29:29.007] Message file mode: /home/jlpoole/US_Constitution.txt (44225 bytes) +[20:29:29.007] Periodic heartbeats are disabled in message file mode. +[20:29:29.011] Announced <926e6d3b35b7d5940be7edeb47c41b78> as zerodev1 +Failed to register advertisement: org.bluez.Error.Failed: Failed to register advertisement +[20:29:59.017] Announced <926e6d3b35b7d5940be7edeb47c41b78> as zerodev1 +[20:30:29.022] Announced <926e6d3b35b7d5940be7edeb47c41b78> as zerodev1 +. +Reference ID : C0A80167 (rpi5.salemdata.net) +Stratum : 2 +Ref time (UTC) : Sun May 17 03:16:28 2026 +System time : 0.000060479 seconds slow of NTP time +Last offset : -0.000515888 seconds +RMS offset : 0.000318128 seconds +Frequency : 1.352 ppm slow +Residual freq : -0.118 ppm +Skew : 0.619 ppm +Root delay : 0.003228704 seconds +Root dispersion : 0.004582585 seconds +Update interval : 1546.7 seconds +Leap status : Normal + + .-- Source mode '^' = server, '=' = peer, '#' = local clock. + / .- Source state '*' = current best, '+' = combined, '-' = not combined, +| / 'x' = may be in error, '~' = too variable, '?' = unusable. +|| .- xxxx [ yyyy ] +/- zzzz +|| Reachability register (octal) -. | xxxx = adjusted offset, +|| Log2(Polling interval) --. | | yyyy = measured offset, +|| \ | | zzzz = estimated error. +|| | | \ +MS Name/IP address Stratum Poll Reach LastRx Last sample +=============================================================================== +^* rpi5.salemdata.net 1 9 373 841 -1984us[-2500us] +/- 5229us +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ diff --git a/migration/preserved_runs/run13/20250516_2032_zerodev2_USConstitution_CPP.txt b/migration/preserved_runs/run13/20250516_2032_zerodev2_USConstitution_CPP.txt new file mode 100644 index 0000000..18fa317 --- /dev/null +++ b/migration/preserved_runs/run13/20250516_2032_zerodev2_USConstitution_CPP.txt @@ -0,0 +1,100 @@ +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ # zerodev2 Command clump START +date +chronyc tracking +chronyc sources -v +echo . + +PYTHONPATH=src:migration/protocol_core \ +BLE_RETICULUM_FRAGMENTATION_BACKEND=cpp \ +BLE_RETICULUM_FRAGMENTATION_BACKEND_REPORT=1 \ +timeout 60 python3 examples/ble_dual_node_echo.py \ + --ble-role both \ + --message-file /home/jlpoole/US_Constitution.txt \ + --peer 926e6d3b35b7d5940be7edeb47c41b78 \ + --announce-only-when-disconnected + +echo . +chronyc tracking +chronyc sources -v +# zerodev2 Command clump END + + +Sat May 16 08:29:26 PM PDT 2026 +Reference ID : C0A80167 (rpi5.salemdata.net) +Stratum : 2 +Ref time (UTC) : Sun May 17 03:19:24 2026 +System time : 0.000000482 seconds fast of NTP time +Last offset : -0.000014609 seconds +RMS offset : 0.000193200 seconds +Frequency : 1.225 ppm slow +Residual freq : -0.000 ppm +Skew : 0.117 ppm +Root delay : 0.002808769 seconds +Root dispersion : 0.002032260 seconds +Update interval : 257.4 seconds +Leap status : Normal + + .-- Source mode '^' = server, '=' = peer, '#' = local clock. + / .- Source state '*' = current best, '+' = combined, '-' = not combined, +| / 'x' = may be in error, '~' = too variable, '?' = unusable. +|| .- xxxx [ yyyy ] +/- zzzz +|| Reachability register (octal) -. | xxxx = adjusted offset, +|| Log2(Polling interval) --. | | yyyy = measured offset, +|| \ | | zzzz = estimated error. +|| | | \ +MS Name/IP address Stratum Poll Reach LastRx Last sample +=============================================================================== +^* rpi5.salemdata.net 1 8 377 603 -36us[ -51us] +/- 3088us +. +[20:29:28.008] Starting node zerodev2 +[20:29:28.009] Reticulum config: ~/.reticulum +[20:29:28.009] Runtime config: /tmp/ble_reticulum_poc_zerodev2_to2s7ns0 +[20:29:30.731] Loaded identity: /home/jlpoole/.reticulum/ble_reticulum_poc_zerodev2.identity +[20:29:30.732] Destination hash: +[20:29:30.732] Use this hash as --peer on the other node. +[20:29:30.732] Message file mode: /home/jlpoole/US_Constitution.txt (44225 bytes) +[20:29:30.732] Periodic heartbeats are disabled in message file mode. +[20:29:30.736] Announced as zerodev2 +[20:29:30.737] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +Advertisement registered +[20:29:35.741] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[20:29:40.745] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[20:29:45.748] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[20:29:50.751] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[20:29:55.755] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[20:30:00.745] Announced as zerodev2 +[20:30:00.758] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[20:30:05.761] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[20:30:10.765] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[20:30:15.771] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[20:30:20.789] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[20:30:25.795] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[20:30:30.761] Announced as zerodev2 +[20:30:30.798] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +. +Reference ID : C0A80167 (rpi5.salemdata.net) +Stratum : 2 +Ref time (UTC) : Sun May 17 03:19:24 2026 +System time : 0.000000481 seconds fast of NTP time +Last offset : -0.000014609 seconds +RMS offset : 0.000193200 seconds +Frequency : 1.225 ppm slow +Residual freq : -0.000 ppm +Skew : 0.117 ppm +Root delay : 0.002808769 seconds +Root dispersion : 0.002105298 seconds +Update interval : 257.4 seconds +Leap status : Normal + + .-- Source mode '^' = server, '=' = peer, '#' = local clock. + / .- Source state '*' = current best, '+' = combined, '-' = not combined, +| / 'x' = may be in error, '~' = too variable, '?' = unusable. +|| .- xxxx [ yyyy ] +/- zzzz +|| Reachability register (octal) -. | xxxx = adjusted offset, +|| Log2(Polling interval) --. | | yyyy = measured offset, +|| \ | | zzzz = estimated error. +|| | | \ +MS Name/IP address Stratum Poll Reach LastRx Last sample +=============================================================================== +^* rpi5.salemdata.net 1 8 377 668 -36us[ -51us] +/- 3088us +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ diff --git a/migration/preserved_runs/run13/20250516_2038_zerodev1_USConstitution_Python.txt b/migration/preserved_runs/run13/20250516_2038_zerodev1_USConstitution_Python.txt new file mode 100644 index 0000000..7524e4a --- /dev/null +++ b/migration/preserved_runs/run13/20250516_2038_zerodev1_USConstitution_Python.txt @@ -0,0 +1,86 @@ +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ # zerodev1 Command clump START +date +chronyc tracking +chronyc sources -v +echo . + +PYTHONPATH=src:migration/protocol_core \ +BLE_RETICULUM_FRAGMENTATION_BACKEND=python \ +BLE_RETICULUM_FRAGMENTATION_BACKEND_REPORT=1 \ +timeout 60 python3 examples/ble_dual_node_echo.py \ + --ble-role peripheral \ + --message-file /home/jlpoole/US_Constitution.txt \ + --message-chunk-size 900 \ + --announce-only-when-disconnected \ + --verbosity "critical" + +echo . +chronyc tracking +chronyc sources -v +# zerodev1 Command clump END +Sat May 16 20:36:50 PDT 2026 +Reference ID : C0A80167 (rpi5.salemdata.net) +Stratum : 2 +Ref time (UTC) : Sun May 17 03:33:37 2026 +System time : 0.000008850 seconds fast of NTP time +Last offset : +0.000008869 seconds +RMS offset : 0.000301816 seconds +Frequency : 1.407 ppm slow +Residual freq : -0.003 ppm +Skew : 0.277 ppm +Root delay : 0.003704044 seconds +Root dispersion : 0.002416969 seconds +Update interval : 1028.0 seconds +Leap status : Normal + + .-- Source mode '^' = server, '=' = peer, '#' = local clock. + / .- Source state '*' = current best, '+' = combined, '-' = not combined, +| / 'x' = may be in error, '~' = too variable, '?' = unusable. +|| .- xxxx [ yyyy ] +/- zzzz +|| Reachability register (octal) -. | xxxx = adjusted offset, +|| Log2(Polling interval) --. | | yyyy = measured offset, +|| \ | | zzzz = estimated error. +|| | | \ +MS Name/IP address Stratum Poll Reach LastRx Last sample +=============================================================================== +^* rpi5.salemdata.net 1 9 367 193 -506us[ -497us] +/- 3882us +. +[20:36:51.437] Starting node zerodev1 +[20:36:51.438] Reticulum config: ~/.reticulum +[20:36:51.438] Runtime config: /tmp/ble_reticulum_poc_zerodev1_j1if2mb1 +[20:36:54.144] Loaded identity: /home/jlpoole/.reticulum/ble_reticulum_poc_zerodev1.identity +[20:36:54.145] Destination hash: <926e6d3b35b7d5940be7edeb47c41b78> +[20:36:54.145] Use this hash as --peer on the other node. +[20:36:54.145] Message file mode: /home/jlpoole/US_Constitution.txt (44225 bytes) +[20:36:54.145] Periodic heartbeats are disabled in message file mode. +[20:36:54.149] Announced <926e6d3b35b7d5940be7edeb47c41b78> as zerodev1 +Failed to register advertisement: org.bluez.Error.Failed: Failed to register advertisement +[20:37:24.155] Announced <926e6d3b35b7d5940be7edeb47c41b78> as zerodev1 +[20:37:54.159] Announced <926e6d3b35b7d5940be7edeb47c41b78> as zerodev1 +. +Reference ID : C0A80167 (rpi5.salemdata.net) +Stratum : 2 +Ref time (UTC) : Sun May 17 03:33:37 2026 +System time : 0.000008825 seconds fast of NTP time +Last offset : +0.000008869 seconds +RMS offset : 0.000301816 seconds +Frequency : 1.407 ppm slow +Residual freq : -0.003 ppm +Skew : 0.277 ppm +Root delay : 0.003704044 seconds +Root dispersion : 0.002500679 seconds +Update interval : 1028.0 seconds +Leap status : Normal + + .-- Source mode '^' = server, '=' = peer, '#' = local clock. + / .- Source state '*' = current best, '+' = combined, '-' = not combined, +| / 'x' = may be in error, '~' = too variable, '?' = unusable. +|| .- xxxx [ yyyy ] +/- zzzz +|| Reachability register (octal) -. | xxxx = adjusted offset, +|| Log2(Polling interval) --. | | yyyy = measured offset, +|| \ | | zzzz = estimated error. +|| | | \ +MS Name/IP address Stratum Poll Reach LastRx Last sample +=============================================================================== +^* rpi5.salemdata.net 1 9 367 258 -506us[ -497us] +/- 3882us +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ diff --git a/migration/preserved_runs/run13/20250516_2038_zerodev2_USConstitution_Python.txt b/migration/preserved_runs/run13/20250516_2038_zerodev2_USConstitution_Python.txt new file mode 100644 index 0000000..58387da --- /dev/null +++ b/migration/preserved_runs/run13/20250516_2038_zerodev2_USConstitution_Python.txt @@ -0,0 +1,116 @@ +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ +# zerodev2 Command clump START +date +chronyc tracking +chronyc sources -v +echo . + +PYTHONPATH=src:migration/protocol_core \ +BLE_RETICULUM_FRAGMENTATION_BACKEND=python \ +BLE_RETICULUM_FRAGMENTATION_BACKEND_REPORT=1 \ +timeout 60 python3 examples/ble_dual_node_echo.py \ + --ble-role both \ + --message-file /home/jlpoole/US_Constitution.txt \ + --peer 926e6d3b35b7d5940be7edeb47c41b78 \ + --announce-only-when-disconnected + +echo . +chronyc tracking +chronyc sources -v +# zerodev2 Command clump END +Sat May 16 08:36:52 PM PDT 2026 +Reference ID : C0A80167 (rpi5.salemdata.net) +Stratum : 2 +Ref time (UTC) : Sun May 17 03:19:24 2026 +System time : 0.000000471 seconds fast of NTP time +Last offset : -0.000014609 seconds +RMS offset : 0.000193200 seconds +Frequency : 1.225 ppm slow +Residual freq : -0.000 ppm +Skew : 0.117 ppm +Root delay : 0.002808769 seconds +Root dispersion : 0.002529383 seconds +Update interval : 257.4 seconds +Leap status : Normal + + .-- Source mode '^' = server, '=' = peer, '#' = local clock. + / .- Source state '*' = current best, '+' = combined, '-' = not combined, +| / 'x' = may be in error, '~' = too variable, '?' = unusable. +|| .- xxxx [ yyyy ] +/- zzzz +|| Reachability register (octal) -. | xxxx = adjusted offset, +|| Log2(Polling interval) --. | | yyyy = measured offset, +|| \ | | zzzz = estimated error. +|| | | \ +MS Name/IP address Stratum Poll Reach LastRx Last sample +=============================================================================== +^* rpi5.salemdata.net 1 8 377 1048 -36us[ -51us] +/- 3088us +. +[20:36:53.035] Starting node zerodev2 +[20:36:53.035] Reticulum config: ~/.reticulum +[20:36:53.035] Runtime config: /tmp/ble_reticulum_poc_zerodev2_hw3_rm9s +[20:36:55.757] Loaded identity: /home/jlpoole/.reticulum/ble_reticulum_poc_zerodev2.identity +[20:36:55.758] Destination hash: +[20:36:55.758] Use this hash as --peer on the other node. +[20:36:55.758] Message file mode: /home/jlpoole/US_Constitution.txt (44225 bytes) +[20:36:55.759] Periodic heartbeats are disabled in message file mode. +[20:36:55.763] Announced as zerodev2 +[20:36:55.763] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +Advertisement registered +[20:37:00.770] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-16 20:37:03] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 3 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[20:37:05.773] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-16 20:37:06] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 4 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[2026-05-16 20:37:09] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 5 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[20:37:10.776] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-16 20:37:12] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 6 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[20:37:15.780] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-16 20:37:15] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 7 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[2026-05-16 20:37:18] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 8 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[20:37:20.783] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-16 20:37:21] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 9 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[2026-05-16 20:37:24] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 10 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[20:37:25.768] Announced as zerodev2 +[20:37:25.787] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-16 20:37:27] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 11 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[20:37:30.790] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-16 20:37:30] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 12 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[2026-05-16 20:37:33] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 13 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[20:37:35.793] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-16 20:37:37] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 14 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[2026-05-16 20:37:40] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 15 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[20:37:40.797] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-16 20:37:43] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 16 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[20:37:45.800] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-16 20:37:46] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 17 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[2026-05-16 20:37:49] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 18 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[20:37:50.804] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-16 20:37:52] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 19 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[20:37:55.773] Announced as zerodev2 +[20:37:55.807] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +. +Reference ID : C0A80167 (rpi5.salemdata.net) +Stratum : 2 +Ref time (UTC) : Sun May 17 03:19:24 2026 +System time : 0.000000469 seconds fast of NTP time +Last offset : -0.000014609 seconds +RMS offset : 0.000193200 seconds +Frequency : 1.225 ppm slow +Residual freq : -0.000 ppm +Skew : 0.117 ppm +Root delay : 0.002808769 seconds +Root dispersion : 0.002602421 seconds +Update interval : 257.4 seconds +Leap status : Normal + + .-- Source mode '^' = server, '=' = peer, '#' = local clock. + / .- Source state '*' = current best, '+' = combined, '-' = not combined, +| / 'x' = may be in error, '~' = too variable, '?' = unusable. +|| .- xxxx [ yyyy ] +/- zzzz +|| Reachability register (octal) -. | xxxx = adjusted offset, +|| Log2(Polling interval) --. | | yyyy = measured offset, +|| \ | | zzzz = estimated error. +|| | | \ +MS Name/IP address Stratum Poll Reach LastRx Last sample +=============================================================================== +^* rpi5.salemdata.net 1 8 377 1113 -36us[ -51us] +/- 3088us +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ diff --git a/migration/preserved_runs/run14/20250617_0407_zerodev1_forensics.txt b/migration/preserved_runs/run14/20250617_0407_zerodev1_forensics.txt new file mode 100644 index 0000000..aac3460 --- /dev/null +++ b/migration/preserved_runs/run14/20250617_0407_zerodev1_forensics.txt @@ -0,0 +1,75 @@ +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ date; find ~/.reticulum -name 'BLEInterface.py' -o -name 'BLEFragmentationBackend.py' +Sun May 17 04:04:59 PDT 2026 +/home/jlpoole/.reticulum/interfaces/BLEInterface.py +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ date +Sun May 17 04:06:00 PDT 2026 +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ bluetoothctl show +bluetoothctl devices +systemctl status bluetooth --no-pager +journalctl -u bluetooth --since "2026-05-17 03:50" --no-pager +Controller B8:27:EB:82:B2:4C (public) + Manufacturer: 0x000f (15) + Version: 0x08 (8) + Name: zerodev1 + Alias: zerodev1 + Class: 0x00000000 (0) + Powered: yes + PowerState: on + Discoverable: no + DiscoverableTimeout: 0x000000b4 (180) + Pairable: no + UUID: Broadcast Audio Scan (0000184f-0000-1000-8000-00805f9b34fb) + UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb) + UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb) + UUID: Volume Control (00001844-0000-1000-8000-00805f9b34fb) + UUID: Audio Input Control (00001843-0000-1000-8000-00805f9b34fb) + UUID: Microphone Control (0000184d-0000-1000-8000-00805f9b34fb) + UUID: Volume Offset Control (00001845-0000-1000-8000-00805f9b34fb) + UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb) + Modalias: usb:v1D6Bp0246d0552 + Discovering: no + Roles: central + Roles: peripheral +Advertising Features: + ActiveInstances: 0x00 (0) + SupportedInstances: 0x05 (5) + SupportedIncludes: tx-power + SupportedIncludes: appearance + SupportedIncludes: local-name + SupportedCapabilities.MinTxPower: 0x0007 (7) + SupportedCapabilities.MaxTxPower: 0x0000 (0) + SupportedCapabilities.MaxAdvLen: 0x1f (31) + SupportedCapabilities.MaxScnRspLen: 0x1f (31) +Advertisement Monitor Features: + SupportedMonitorTypes: or_patterns +Device B8:27:EB:54:BF:0E zerodev2 +Device 67:CA:45:A3:29:B3 Galaxy A36 5G +● bluetooth.service - Bluetooth service + Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; preset: enabled) + Drop-In: /etc/systemd/system/bluetooth.service.d + └─override.conf + Active: active (running) since Fri 2026-05-15 16:00:22 PDT; 1 day 12h ago + Invocation: 2de2d55ee9504d0ab02ba373fc099bf2 + Docs: man:bluetoothd(8) + Main PID: 513 (bluetoothd) + Status: "Running" + Tasks: 1 (limit: 171) + CPU: 22.149s + CGroup: /system.slice/bluetooth.service + └─513 /usr/libexec/bluetooth/bluetoothd -E + +May 16 11:14:36 zerodev1 bluetoothd[513]: profiles/audio/micp.c:micp_detached() unable to f…essio +May 16 19:18:16 zerodev1 bluetoothd[513]: profiles/audio/micp.c:micp_detached() unable to f…essio +May 16 19:42:29 zerodev1 bluetoothd[513]: profiles/audio/micp.c:micp_detached() unable to f…essio +May 16 20:29:33 zerodev1 bluetoothd[513]: src/advertising.c:add_client_complete() Failed to…0x05) +May 16 20:34:45 zerodev1 bluetoothd[513]: src/advertising.c:add_client_complete() Failed to…0x05) +May 16 20:36:57 zerodev1 bluetoothd[513]: src/advertising.c:add_client_complete() Failed to…0x03) +May 17 03:38:35 zerodev1 bluetoothd[513]: src/advertising.c:add_client_complete() Failed to…0x05) +May 17 03:55:53 zerodev1 bluetoothd[513]: src/advertising.c:add_client_complete() Failed to…0x05) +May 17 04:06:02 zerodev1 bluetoothd[513]: Adv Monitor app :1.308 disconnected from D-Bus +May 17 04:06:02 zerodev1 bluetoothd[513]: Adv Monitor app :1.309 disconnected from D-Bus +Hint: Some lines were ellipsized, use -l to show in full. +May 17 03:55:53 zerodev1 bluetoothd[513]: src/advertising.c:add_client_complete() Failed to add advertisement: Authentication Failed (0x05) +May 17 04:06:02 zerodev1 bluetoothd[513]: Adv Monitor app :1.308 disconnected from D-Bus +May 17 04:06:02 zerodev1 bluetoothd[513]: Adv Monitor app :1.309 disconnected from D-Bus +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ diff --git a/migration/preserved_runs/run14/20250617_0407_zerodev2_forensics.txt b/migration/preserved_runs/run14/20250617_0407_zerodev2_forensics.txt new file mode 100644 index 0000000..896f241 --- /dev/null +++ b/migration/preserved_runs/run14/20250617_0407_zerodev2_forensics.txt @@ -0,0 +1,57 @@ +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ date; find ~/.reticulum -name 'BLEInterface.py' -o -name 'BLEFragmentationBackend.py' +Sun May 17 04:05:08 AM PDT 2026 +/home/jlpoole/.reticulum/interfaces/BLEInterface.py +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ date +Sun May 17 04:06:23 AM PDT 2026 +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ python3 - <<'PY' +import asyncio +from bleak import BleakScanner + +count = 0 +def cb(device, adv): + global count + count += 1 + print(device.address, device.name, adv.rssi, adv.service_uuids) + +async def main(): + scanner = BleakScanner(detection_callback=cb) + await scanner.start() + await asyncio.sleep(5) + await scanner.stop() + print("callbacks:", count) + +asyncio.run(main()) +PY +callbacks: 0 +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/migration/preserved_runs/run14/20250617_0416_zerodev1_forensics.txt b/migration/preserved_runs/run14/20250617_0416_zerodev1_forensics.txt new file mode 100644 index 0000000..7fb8cdf --- /dev/null +++ b/migration/preserved_runs/run14/20250617_0416_zerodev1_forensics.txt @@ -0,0 +1,115 @@ +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ date +Sun May 17 04:14:14 PDT 2026 +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ git status --short --branch +git rev-parse --show-toplevel +git rev-parse --abbrev-ref HEAD +git rev-parse HEAD +git log -1 --decorate --stat +git diff -- src/ble_reticulum/BLEInterface.py src/ble_reticulum/BLEFragmentationBackend.py src/ble_reticulum/BLEFragmentation.py +git diff -- migration/protocol_core migration/tests +git ls-files -s src/ble_reticulum/BLEInterface.py src/ble_reticulum/BLEFragmentationBackend.py src/ble_reticulum/BLEFragmentation.py +## c++migration...origin/c++migration +?? If.txt +?? If_full.txt +?? scripts/run_sync.sh +/usr/local/src/ble-reticulum +c++migration +7e3f88a41c7b726efcfd7373e998b68582c685eb +commit 7e3f88a41c7b726efcfd7373e998b68582c685eb (HEAD -> c++migration, origin/c++migration) +Author: John Poole +Date: Sat May 16 20:26:17 2026 -0700 + + After poor performance, added more logging output + + src/ble_reticulum/BLEInterface.py | 8 ++++++++ + 1 file changed, 8 insertions(+) +100644 87bea238796a11fd83fa08a9a4d3f717fb0b192d 0 src/ble_reticulum/BLEFragmentation.py +100644 3b69c4e9d1e341616f823f5004cdf9bdc17bb842 0 src/ble_reticulum/BLEFragmentationBackend.py +100644 4ed0eef62bea112141126aa0a792e6b20d46eb82 0 src/ble_reticulum/BLEInterface.py +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ date +Sun May 17 04:15:00 PDT 2026 +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ ls -l ~/.reticulum/interfaces +sha256sum ~/.reticulum/interfaces/BLEInterface.py src/ble_reticulum/BLEInterface.py +sha256sum ~/.reticulum/interfaces/BLEFragmentation.py src/ble_reticulum/BLEFragmentation.py +test -f ~/.reticulum/interfaces/BLEFragmentationBackend.py && sha256sum ~/.reticulum/interfaces/BLEFragmentationBackend.py src/ble_reticulum/BLEFragmentationBackend.py +total 300 +-rw-rw-r-- 1 jlpoole jlpoole 9751 May 15 12:19 BLEAgent.py +-rw-rw-r-- 1 jlpoole jlpoole 20471 May 15 12:19 BLEFragmentation.py +-rw-rw-r-- 1 jlpoole jlpoole 27092 May 15 12:19 BLEGATTServer.py +-rw-rw-r-- 1 jlpoole jlpoole 119128 May 15 12:19 BLEInterface.py +-rw-rw-r-- 1 jlpoole jlpoole 0 May 15 12:19 __init__.py +drwxrwxr-x 2 jlpoole jlpoole 4096 May 15 16:35 __pycache__ +-rw-rw-r-- 1 jlpoole jlpoole 7340 May 15 12:19 bluetooth_driver.py +-rw-rw-r-- 1 jlpoole jlpoole 107783 May 15 12:19 linux_bluetooth_driver.py +26c45246302229d893a5f907ac42c69bb451ed7cbebba3e79019f24e3aa2c7a2 /home/jlpoole/.reticulum/interfaces/BLEInterface.py +eed8f822cf6e50bf4d78a11fa15bdffc06a57b82c398a1b3d51c7959930c0ec6 src/ble_reticulum/BLEInterface.py +cbdd1814870fb6caed4c94b86eec041ce1f869ab75594e3bf07c4f74f2b02f97 /home/jlpoole/.reticulum/interfaces/BLEFragmentation.py +cbdd1814870fb6caed4c94b86eec041ce1f869ab75594e3bf07c4f74f2b02f97 src/ble_reticulum/BLEFragmentation.py +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ date +Sun May 17 04:15:29 PDT 2026 +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ find migration/protocol_core -maxdepth 2 -type f -name '*.so' -ls +python3 - <<'PY' +import sys +sys.path.insert(0, "migration/protocol_core") +import ble_protocol_core_cpp +print("module:", ble_protocol_core_cpp.__file__) +print("BLEFragmenter:", ble_protocol_core_cpp.BLEFragmenter) +print("BLEReassembler:", ble_protocol_core_cpp.BLEReassembler) +print("HDLCFramer:", ble_protocol_core_cpp.HDLCFramer) +PY + 263469 280 -rwxrwxr-x 1 jlpoole jlpoole 283680 May 16 18:18 migration/protocol_core/ble_protocol_core_cpp.cpython-313-aarch64-linux-gnu.so +module: /usr/local/src/ble-reticulum/migration/protocol_core/ble_protocol_core_cpp.cpython-313-aarch64-linux-gnu.so +BLEFragmenter: +BLEReassembler: +HDLCFramer: +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ date +Sun May 17 04:16:04 PDT 2026 +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ journalctl -u bluetooth --since "2026-05-17 03:50" --no-pager +rfkill list bluetooth +pgrep -af 'ble_dual_node_echo|python|rnsd|bleak|bluezero' +bluetoothctl show +May 17 03:55:53 zerodev1 bluetoothd[513]: src/advertising.c:add_client_complete() Failed to add advertisement: Authentication Failed (0x05) +May 17 04:06:02 zerodev1 bluetoothd[513]: Adv Monitor app :1.308 disconnected from D-Bus +May 17 04:06:02 zerodev1 bluetoothd[513]: Adv Monitor app :1.309 disconnected from D-Bus +0: hci0: Bluetooth + Soft blocked: no + Hard blocked: no +Controller B8:27:EB:82:B2:4C (public) + Manufacturer: 0x000f (15) + Version: 0x08 (8) + Name: zerodev1 + Alias: zerodev1 + Class: 0x00000000 (0) + Powered: yes + PowerState: on + Discoverable: no + DiscoverableTimeout: 0x000000b4 (180) + Pairable: no + UUID: Broadcast Audio Scan (0000184f-0000-1000-8000-00805f9b34fb) + UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb) + UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb) + UUID: Volume Control (00001844-0000-1000-8000-00805f9b34fb) + UUID: Audio Input Control (00001843-0000-1000-8000-00805f9b34fb) + UUID: Microphone Control (0000184d-0000-1000-8000-00805f9b34fb) + UUID: Volume Offset Control (00001845-0000-1000-8000-00805f9b34fb) + UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb) + Modalias: usb:v1D6Bp0246d0552 + Discovering: no + Roles: central + Roles: peripheral +Advertising Features: + ActiveInstances: 0x00 (0) + SupportedInstances: 0x05 (5) + SupportedIncludes: tx-power + SupportedIncludes: appearance + SupportedIncludes: local-name + SupportedCapabilities.MinTxPower: 0x0007 (7) + SupportedCapabilities.MaxTxPower: 0x0000 (0) + SupportedCapabilities.MaxAdvLen: 0x1f (31) + SupportedCapabilities.MaxScnRspLen: 0x1f (31) +Advertisement Monitor Features: + SupportedMonitorTypes: or_patterns +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ date; sudo btmgmt find +Sun May 17 04:16:30 PDT 2026 +Unable to start discovery. status 0x0b (Rejected) +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ diff --git a/migration/preserved_runs/run14/20250617_0416_zerodev2_forensics.txt b/migration/preserved_runs/run14/20250617_0416_zerodev2_forensics.txt new file mode 100644 index 0000000..6ba8199 --- /dev/null +++ b/migration/preserved_runs/run14/20250617_0416_zerodev2_forensics.txt @@ -0,0 +1,110 @@ +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ date +Sun May 17 04:14:10 AM PDT 2026 +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ git status --short --branch +git rev-parse --show-toplevel +git rev-parse --abbrev-ref HEAD +git rev-parse HEAD +git log -1 --decorate --stat +git diff -- src/ble_reticulum/BLEInterface.py src/ble_reticulum/BLEFragmentationBackend.py src/ble_reticulum/BLEFragmentation.py +git diff -- migration/protocol_core migration/tests +git ls-files -s src/ble_reticulum/BLEInterface.py src/ble_reticulum/BLEFragmentationBackend.py src/ble_reticulum/BLEFragmentation.py +## c++migration...origin/c++migration +/usr/local/src/ble-reticulum +c++migration +7e3f88a41c7b726efcfd7373e998b68582c685eb +commit 7e3f88a41c7b726efcfd7373e998b68582c685eb (HEAD -> c++migration, origin/c++migration) +Author: John Poole +Date: Sat May 16 20:26:17 2026 -0700 + + After poor performance, added more logging output + + src/ble_reticulum/BLEInterface.py | 8 ++++++++ + 1 file changed, 8 insertions(+) +100644 87bea238796a11fd83fa08a9a4d3f717fb0b192d 0 src/ble_reticulum/BLEFragmentation.py +100644 3b69c4e9d1e341616f823f5004cdf9bdc17bb842 0 src/ble_reticulum/BLEFragmentationBackend.py +100644 4ed0eef62bea112141126aa0a792e6b20d46eb82 0 src/ble_reticulum/BLEInterface.py +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ date +Sun May 17 04:15:06 AM PDT 2026 +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ ls -l ~/.reticulum/interfaces +sha256sum ~/.reticulum/interfaces/BLEInterface.py src/ble_reticulum/BLEInterface.py +sha256sum ~/.reticulum/interfaces/BLEFragmentation.py src/ble_reticulum/BLEFragmentation.py +test -f ~/.reticulum/interfaces/BLEFragmentationBackend.py && sha256sum ~/.reticulum/interfaces/BLEFragmentationBackend.py src/ble_reticulum/BLEFragmentationBackend.py +total 300 +-rw-rw-r-- 1 jlpoole jlpoole 9751 May 15 12:19 BLEAgent.py +-rw-rw-r-- 1 jlpoole jlpoole 20471 May 15 12:19 BLEFragmentation.py +-rw-rw-r-- 1 jlpoole jlpoole 27092 May 15 12:19 BLEGATTServer.py +-rw-rw-r-- 1 jlpoole jlpoole 119128 May 15 12:19 BLEInterface.py +-rw-rw-r-- 1 jlpoole jlpoole 7340 May 15 12:19 bluetooth_driver.py +-rw-rw-r-- 1 jlpoole jlpoole 0 May 15 12:19 __init__.py +-rw-rw-r-- 1 jlpoole jlpoole 107783 May 15 12:19 linux_bluetooth_driver.py +drwxrwxr-x 2 jlpoole jlpoole 4096 May 15 16:13 __pycache__ +26c45246302229d893a5f907ac42c69bb451ed7cbebba3e79019f24e3aa2c7a2 /home/jlpoole/.reticulum/interfaces/BLEInterface.py +eed8f822cf6e50bf4d78a11fa15bdffc06a57b82c398a1b3d51c7959930c0ec6 src/ble_reticulum/BLEInterface.py +cbdd1814870fb6caed4c94b86eec041ce1f869ab75594e3bf07c4f74f2b02f97 /home/jlpoole/.reticulum/interfaces/BLEFragmentation.py +cbdd1814870fb6caed4c94b86eec041ce1f869ab75594e3bf07c4f74f2b02f97 src/ble_reticulum/BLEFragmentation.py +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ date +Sun May 17 04:15:35 AM PDT 2026 +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ find migration/protocol_core -maxdepth 2 -type f -name '*.so' -ls +python3 - <<'PY' +import sys +sys.path.insert(0, "migration/protocol_core") +import ble_protocol_core_cpp +print("module:", ble_protocol_core_cpp.__file__) +print("BLEFragmenter:", ble_protocol_core_cpp.BLEFragmenter) +print("BLEReassembler:", ble_protocol_core_cpp.BLEReassembler) +print("HDLCFramer:", ble_protocol_core_cpp.HDLCFramer) +PY + 263465 280 -rwxrwxr-x 1 jlpoole jlpoole 283680 May 16 19:10 migration/protocol_core/ble_protocol_core_cpp.cpython-313-aarch64-linux-gnu.so +module: /usr/local/src/ble-reticulum/migration/protocol_core/ble_protocol_core_cpp.cpython-313-aarch64-linux-gnu.so +BLEFragmenter: +BLEReassembler: +HDLCFramer: +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ date +Sun May 17 04:16:10 AM PDT 2026 +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ journalctl -u bluetooth --since "2026-05-17 03:50" --no-pager +rfkill list bluetooth +pgrep -af 'ble_dual_node_echo|python|rnsd|bleak|bluezero' +bluetoothctl show +-- No entries -- +0: hci0: Bluetooth + Soft blocked: no + Hard blocked: no +Controller B8:27:EB:54:BF:0E (public) + Manufacturer: 0x000f (15) + Version: 0x08 (8) + Name: zerodev2 + Alias: zerodev2 + Class: 0x00000000 (0) + Powered: yes + PowerState: on + Discoverable: no + DiscoverableTimeout: 0x000000b4 (180) + Pairable: no + UUID: Broadcast Audio Scan (0000184f-0000-1000-8000-00805f9b34fb) + UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb) + UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb) + UUID: Volume Control (00001844-0000-1000-8000-00805f9b34fb) + UUID: Audio Input Control (00001843-0000-1000-8000-00805f9b34fb) + UUID: Microphone Control (0000184d-0000-1000-8000-00805f9b34fb) + UUID: Volume Offset Control (00001845-0000-1000-8000-00805f9b34fb) + UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb) + Modalias: usb:v1D6Bp0246d0552 + Discovering: no + Roles: central + Roles: peripheral +Advertising Features: + ActiveInstances: 0x00 (0) + SupportedInstances: 0x05 (5) + SupportedIncludes: tx-power + SupportedIncludes: appearance + SupportedIncludes: local-name + SupportedCapabilities.MinTxPower: 0x0007 (7) + SupportedCapabilities.MaxTxPower: 0x0000 (0) + SupportedCapabilities.MaxAdvLen: 0x1f (31) + SupportedCapabilities.MaxScnRspLen: 0x1f (31) +Advertisement Monitor Features: + SupportedMonitorTypes: or_patterns +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ date; sudo btmgmt find +Sun May 17 04:16:36 AM PDT 2026 +Unable to start discovery. status 0x0b (Rejected) +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ diff --git a/migration/preserved_runs/run14/20250617_0420_zerodev1_forensics.txt b/migration/preserved_runs/run14/20250617_0420_zerodev1_forensics.txt new file mode 100644 index 0000000..80adb66 --- /dev/null +++ b/migration/preserved_runs/run14/20250617_0420_zerodev1_forensics.txt @@ -0,0 +1,56 @@ +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ date +Sun May 17 04:19:32 PDT 2026 +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ sudo btmgmt info +sudo btmgmt status +hciconfig -a +busctl tree org.bluez /org/bluez +Index list with 1 item +hci0: Primary controller + addr B8:27:EB:82:B2:4C version 8 manufacturer 15 class 0x000000 + supported settings: powered connectable fast-connectable discoverable bondable link-security ssp br/edr le advertising secure-conn debug-keys privacy configuration static-addr phy-configuration + current settings: powered connectable le secure-conn + name zerodev1 + short name +hci0: Configuration options + supported options: public-address + missing options: +Invalid command in menu mgmt: status + +Use "help" for a list of available commands in a menu. +Use "menu " if you want to enter any submenu. +Use "back" if you want to return to menu main. +hci0: Type: Primary Bus: UART + BD Address: B8:27:EB:82:B2:4C ACL MTU: 1021:8 SCO MTU: 64:1 + UP RUNNING + RX bytes:537763 acl:15752 sco:0 events:12044 errors:0 + TX bytes:655688 acl:20740 sco:0 commands:1040 errors:0 + Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87 + Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 + Link policy: RSWITCH SNIFF + Link mode: PERIPHERAL ACCEPT +Can't read local name on hci0: Connection timed out (110) +Invalid bus service name: /org/bluez +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/migration/preserved_runs/run14/20250617_0420_zerodev2_forensics.txt b/migration/preserved_runs/run14/20250617_0420_zerodev2_forensics.txt new file mode 100644 index 0000000..c0971ce --- /dev/null +++ b/migration/preserved_runs/run14/20250617_0420_zerodev2_forensics.txt @@ -0,0 +1,56 @@ +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ date +Sun May 17 04:19:49 AM PDT 2026 +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ sudo btmgmt info +sudo btmgmt status +hciconfig -a +busctl tree org.bluez /org/bluez +Index list with 1 item +hci0: Primary controller + addr B8:27:EB:54:BF:0E version 8 manufacturer 15 class 0x000000 + supported settings: powered connectable fast-connectable discoverable bondable link-security ssp br/edr le advertising secure-conn debug-keys privacy configuration static-addr phy-configuration + current settings: powered connectable le secure-conn + name zerodev2 + short name +hci0: Configuration options + supported options: public-address + missing options: +Invalid command in menu mgmt: status + +Use "help" for a list of available commands in a menu. +Use "menu " if you want to enter any submenu. +Use "back" if you want to return to menu main. +hci0: Type: Primary Bus: UART + BD Address: B8:27:EB:54:BF:0E ACL MTU: 1021:8 SCO MTU: 64:1 + UP RUNNING + RX bytes:819939 acl:22021 sco:0 events:14200 errors:0 + TX bytes:514498 acl:16595 sco:0 commands:2560 errors:0 + Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87 + Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 + Link policy: RSWITCH SNIFF + Link mode: PERIPHERAL ACCEPT + Name: 'zerodev2' + Class: 0x000000 + Service Classes: Unspecified + Device Class: Miscellaneous, + HCI Version: 4.2 (0x8) Revision: 0x412 + LMP Version: 4.2 (0x8) Subversion: 0x2209 + Manufacturer: Broadcom Corporation (15) + +Invalid bus service name: /org/bluez +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ + + + + + + + + + + + + + + + + diff --git a/migration/preserved_runs/run14/20250617_0424_zerodev1_forensics.txt b/migration/preserved_runs/run14/20250617_0424_zerodev1_forensics.txt new file mode 100644 index 0000000..a7fdcfc --- /dev/null +++ b/migration/preserved_runs/run14/20250617_0424_zerodev1_forensics.txt @@ -0,0 +1,58 @@ +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ date +Sun May 17 04:22:05 PDT 2026 +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ sudo hciconfig hci0 down +sudo hciconfig hci0 up +bluetoothctl show +sudo btmgmt find +Can't init device hci0: Connection timed out (110) +Controller B8:27:EB:82:B2:4C (public) + Manufacturer: 0x000f (15) + Version: 0x08 (8) + Name: zerodev1 + Alias: zerodev1 + Class: 0x00000000 (0) + Powered: no + PowerState: on + Discoverable: no + DiscoverableTimeout: 0x000000b4 (180) + Pairable: no + UUID: Broadcast Audio Scan (0000184f-0000-1000-8000-00805f9b34fb) + UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb) + UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb) + UUID: Volume Control (00001844-0000-1000-8000-00805f9b34fb) + UUID: Audio Input Control (00001843-0000-1000-8000-00805f9b34fb) + UUID: Microphone Control (0000184d-0000-1000-8000-00805f9b34fb) + UUID: Volume Offset Control (00001845-0000-1000-8000-00805f9b34fb) + UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb) + Modalias: usb:v1D6Bp0246d0552 + Discovering: no + Roles: central + Roles: peripheral +Advertising Features: + ActiveInstances: 0x00 (0) + SupportedInstances: 0x05 (5) + SupportedIncludes: tx-power + SupportedIncludes: appearance + SupportedIncludes: local-name + SupportedCapabilities.MinTxPower: 0x0007 (7) + SupportedCapabilities.MaxTxPower: 0x0000 (0) + SupportedCapabilities.MaxAdvLen: 0x1f (31) + SupportedCapabilities.MaxScnRspLen: 0x1f (31) +Advertisement Monitor Features: + SupportedMonitorTypes: or_patterns +Unable to start discovery. status 0x0f (Not Powered) +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ date +Sun May 17 04:23:53 PDT 2026 +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ + + + + + + + + + + + + diff --git a/migration/preserved_runs/run14/20250617_0424_zerodev2_forensics.txt b/migration/preserved_runs/run14/20250617_0424_zerodev2_forensics.txt new file mode 100644 index 0000000..34f308e --- /dev/null +++ b/migration/preserved_runs/run14/20250617_0424_zerodev2_forensics.txt @@ -0,0 +1,58 @@ +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ date +Sun May 17 04:24:00 AM PDT 2026 +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ sudo hciconfig hci0 down +sudo hciconfig hci0 up +bluetoothctl show +sudo btmgmt find +Controller B8:27:EB:54:BF:0E (public) + Manufacturer: 0x000f (15) + Version: 0x08 (8) + Name: zerodev2 + Alias: zerodev2 + Class: 0x00000000 (0) + Powered: yes + PowerState: on + Discoverable: no + DiscoverableTimeout: 0x000000b4 (180) + Pairable: no + UUID: Broadcast Audio Scan (0000184f-0000-1000-8000-00805f9b34fb) + UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb) + UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb) + UUID: Volume Control (00001844-0000-1000-8000-00805f9b34fb) + UUID: Audio Input Control (00001843-0000-1000-8000-00805f9b34fb) + UUID: Microphone Control (0000184d-0000-1000-8000-00805f9b34fb) + UUID: Volume Offset Control (00001845-0000-1000-8000-00805f9b34fb) + UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb) + Modalias: usb:v1D6Bp0246d0552 + Discovering: no + Roles: central + Roles: peripheral +Advertising Features: + ActiveInstances: 0x00 (0) + SupportedInstances: 0x05 (5) + SupportedIncludes: tx-power + SupportedIncludes: appearance + SupportedIncludes: local-name + SupportedCapabilities.MinTxPower: 0x0007 (7) + SupportedCapabilities.MaxTxPower: 0x0000 (0) + SupportedCapabilities.MaxAdvLen: 0x1f (31) + SupportedCapabilities.MaxScnRspLen: 0x1f (31) +Advertisement Monitor Features: + SupportedMonitorTypes: or_patterns +Unable to start discovery. status 0x0b (Rejected) +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ date +Sun May 17 04:24:04 AM PDT 2026 +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ + + + + + + + + + + + + + diff --git a/migration/preserved_runs/run14/20250617_0426_zerodev1_forensics.txt b/migration/preserved_runs/run14/20250617_0426_zerodev1_forensics.txt new file mode 100644 index 0000000..597c04e --- /dev/null +++ b/migration/preserved_runs/run14/20250617_0426_zerodev1_forensics.txt @@ -0,0 +1,58 @@ +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ date +Sun May 17 04:26:01 PDT 2026 +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ sudo systemctl restart bluetooth +bluetoothctl power on +bluetoothctl show +sudo btmgmt find +Failed to set power on: org.bluez.Error.Busy +Controller B8:27:EB:82:B2:4C (public) + Manufacturer: 0x000f (15) + Version: 0x08 (8) + Name: BlueZ 5.82 + Alias: BlueZ 5.82 + Class: 0x00000000 (0) + Powered: no + PowerState: off-enabling + Discoverable: no + DiscoverableTimeout: 0x000000b4 (180) + Pairable: no + UUID: Broadcast Audio Scan (0000184f-0000-1000-8000-00805f9b34fb) + UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb) + UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb) + UUID: Volume Control (00001844-0000-1000-8000-00805f9b34fb) + UUID: Audio Input Control (00001843-0000-1000-8000-00805f9b34fb) + UUID: Microphone Control (0000184d-0000-1000-8000-00805f9b34fb) + UUID: Volume Offset Control (00001845-0000-1000-8000-00805f9b34fb) + UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb) + Modalias: usb:v1D6Bp0246d0552 + Discovering: no + Roles: central + Roles: peripheral +Advertising Features: + ActiveInstances: 0x00 (0) + SupportedInstances: 0x05 (5) + SupportedIncludes: tx-power + SupportedIncludes: appearance + SupportedIncludes: local-name + SupportedCapabilities.MinTxPower: 0x0007 (7) + SupportedCapabilities.MaxTxPower: 0x0000 (0) + SupportedCapabilities.MaxAdvLen: 0x1f (31) + SupportedCapabilities.MaxScnRspLen: 0x1f (31) +Advertisement Monitor Features: + SupportedMonitorTypes: or_patterns +Unable to start discovery. status 0x0f (Not Powered) +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ + + + + + + + + + + + + + + diff --git a/migration/preserved_runs/run14/20250617_0426_zerodev2_forensics.txt b/migration/preserved_runs/run14/20250617_0426_zerodev2_forensics.txt new file mode 100644 index 0000000..d41a672 --- /dev/null +++ b/migration/preserved_runs/run14/20250617_0426_zerodev2_forensics.txt @@ -0,0 +1,58 @@ +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ date +Sun May 17 04:26:11 AM PDT 2026 +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ sudo systemctl restart bluetooth +bluetoothctl power on +bluetoothctl show +sudo btmgmt find +Failed to set power on: org.bluez.Error.Busy +Controller B8:27:EB:54:BF:0E (public) + Manufacturer: 0x000f (15) + Version: 0x08 (8) + Name: BlueZ 5.82 + Alias: BlueZ 5.82 + Class: 0x00000000 (0) + Powered: yes + PowerState: on + Discoverable: no + DiscoverableTimeout: 0x000000b4 (180) + Pairable: no + UUID: Broadcast Audio Scan (0000184f-0000-1000-8000-00805f9b34fb) + UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb) + UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb) + UUID: Volume Control (00001844-0000-1000-8000-00805f9b34fb) + UUID: Audio Input Control (00001843-0000-1000-8000-00805f9b34fb) + UUID: Microphone Control (0000184d-0000-1000-8000-00805f9b34fb) + UUID: Volume Offset Control (00001845-0000-1000-8000-00805f9b34fb) + UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb) + Modalias: usb:v1D6Bp0246d0552 + Discovering: no + Roles: central + Roles: peripheral +Advertising Features: + ActiveInstances: 0x00 (0) + SupportedInstances: 0x05 (5) + SupportedIncludes: tx-power + SupportedIncludes: appearance + SupportedIncludes: local-name + SupportedCapabilities.MinTxPower: 0x0007 (7) + SupportedCapabilities.MaxTxPower: 0x0000 (0) + SupportedCapabilities.MaxAdvLen: 0x1f (31) + SupportedCapabilities.MaxScnRspLen: 0x1f (31) +Advertisement Monitor Features: + SupportedMonitorTypes: or_patterns +Unable to start discovery. status 0x0b (Rejected) +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ + + + + + + + + + + + + + + diff --git a/migration/preserved_runs/run14/202605170342_zerodev1_Constitution_Python.txt b/migration/preserved_runs/run14/202605170342_zerodev1_Constitution_Python.txt new file mode 100644 index 0000000..770f492 --- /dev/null +++ b/migration/preserved_runs/run14/202605170342_zerodev1_Constitution_Python.txt @@ -0,0 +1,86 @@ +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ # zerodev1 Command clump START +date +chronyc tracking +chronyc sources -v +echo . + +PYTHONPATH=src:migration/protocol_core \ +BLE_RETICULUM_FRAGMENTATION_BACKEND=python \ +BLE_RETICULUM_FRAGMENTATION_BACKEND_REPORT=1 \ +timeout 60 python3 examples/ble_dual_node_echo.py \ + --ble-role peripheral \ + --message-file /home/jlpoole/US_Constitution.txt \ + --message-chunk-size 900 \ + --announce-only-when-disconnected \ + --verbosity "critical" + +echo . +chronyc tracking +chronyc sources -v +# zerodev1 Command clump END +Sun May 17 03:38:26 PDT 2026 +Reference ID : C0A80167 (rpi5.salemdata.net) +Stratum : 2 +Ref time (UTC) : Sun May 17 10:31:17 2026 +System time : 0.000095564 seconds fast of NTP time +Last offset : +0.000127859 seconds +RMS offset : 0.000450036 seconds +Frequency : 1.054 ppm slow +Residual freq : +0.018 ppm +Skew : 0.071 ppm +Root delay : 0.003878563 seconds +Root dispersion : 0.002428314 seconds +Update interval : 2069.0 seconds +Leap status : Normal + + .-- Source mode '^' = server, '=' = peer, '#' = local clock. + / .- Source state '*' = current best, '+' = combined, '-' = not combined, +| / 'x' = may be in error, '~' = too variable, '?' = unusable. +|| .- xxxx [ yyyy ] +/- zzzz +|| Reachability register (octal) -. | xxxx = adjusted offset, +|| Log2(Polling interval) --. | | yyyy = measured offset, +|| \ | | zzzz = estimated error. +|| | | \ +MS Name/IP address Stratum Poll Reach LastRx Last sample +=============================================================================== +^* rpi5.salemdata.net 1 9 277 428 -1972us[-1845us] +/- 6159us +. +[03:38:27.825] Starting node zerodev1 +[03:38:27.825] Reticulum config: ~/.reticulum +[03:38:27.825] Runtime config: /tmp/ble_reticulum_poc_zerodev1_w86obw7s +[03:38:30.530] Loaded identity: /home/jlpoole/.reticulum/ble_reticulum_poc_zerodev1.identity +[03:38:30.531] Destination hash: <926e6d3b35b7d5940be7edeb47c41b78> +[03:38:30.531] Use this hash as --peer on the other node. +[03:38:30.531] Message file mode: /home/jlpoole/US_Constitution.txt (44225 bytes) +[03:38:30.531] Periodic heartbeats are disabled in message file mode. +[03:38:30.535] Announced <926e6d3b35b7d5940be7edeb47c41b78> as zerodev1 +Failed to register advertisement: org.bluez.Error.Failed: Failed to register advertisement +[03:39:00.540] Announced <926e6d3b35b7d5940be7edeb47c41b78> as zerodev1 +[03:39:30.545] Announced <926e6d3b35b7d5940be7edeb47c41b78> as zerodev1 +. +Reference ID : C0A80167 (rpi5.salemdata.net) +Stratum : 2 +Ref time (UTC) : Sun May 17 10:31:17 2026 +System time : 0.000090630 seconds fast of NTP time +Last offset : +0.000127859 seconds +RMS offset : 0.000450036 seconds +Frequency : 1.054 ppm slow +Residual freq : +0.018 ppm +Skew : 0.071 ppm +Root delay : 0.003878563 seconds +Root dispersion : 0.002499574 seconds +Update interval : 2069.0 seconds +Leap status : Normal + + .-- Source mode '^' = server, '=' = peer, '#' = local clock. + / .- Source state '*' = current best, '+' = combined, '-' = not combined, +| / 'x' = may be in error, '~' = too variable, '?' = unusable. +|| .- xxxx [ yyyy ] +/- zzzz +|| Reachability register (octal) -. | xxxx = adjusted offset, +|| Log2(Polling interval) --. | | yyyy = measured offset, +|| \ | | zzzz = estimated error. +|| | | \ +MS Name/IP address Stratum Poll Reach LastRx Last sample +=============================================================================== +^* rpi5.salemdata.net 1 9 277 499 -1972us[-1845us] +/- 6159us +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ diff --git a/migration/preserved_runs/run14/202605170342_zerodev2_Constitution_Python.txt b/migration/preserved_runs/run14/202605170342_zerodev2_Constitution_Python.txt new file mode 100644 index 0000000..d726603 --- /dev/null +++ b/migration/preserved_runs/run14/202605170342_zerodev2_Constitution_Python.txt @@ -0,0 +1,115 @@ +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ # zerodev2 Command clump START +date +chronyc tracking +chronyc sources -v +echo . + +PYTHONPATH=src:migration/protocol_core \ +BLE_RETICULUM_FRAGMENTATION_BACKEND=python \ +BLE_RETICULUM_FRAGMENTATION_BACKEND_REPORT=1 \ +timeout 60 python3 examples/ble_dual_node_echo.py \ + --ble-role both \ + --message-file /home/jlpoole/US_Constitution.txt \ + --peer 926e6d3b35b7d5940be7edeb47c41b78 \ + --announce-only-when-disconnected + +echo . +chronyc tracking +chronyc sources -v +# zerodev2 Command clump END +Sun May 17 03:38:28 AM PDT 2026 +Reference ID : C0A80167 (rpi5.salemdata.net) +Stratum : 2 +Ref time (UTC) : Sun May 17 10:34:15 2026 +System time : 0.000035021 seconds fast of NTP time +Last offset : +0.000029072 seconds +RMS offset : 0.000145113 seconds +Frequency : 0.882 ppm slow +Residual freq : +0.001 ppm +Skew : 0.032 ppm +Root delay : 0.003424152 seconds +Root dispersion : 0.001730551 seconds +Update interval : 2065.1 seconds +Leap status : Normal + + .-- Source mode '^' = server, '=' = peer, '#' = local clock. + / .- Source state '*' = current best, '+' = combined, '-' = not combined, +| / 'x' = may be in error, '~' = too variable, '?' = unusable. +|| .- xxxx [ yyyy ] +/- zzzz +|| Reachability register (octal) -. | xxxx = adjusted offset, +|| Log2(Polling interval) --. | | yyyy = measured offset, +|| \ | | zzzz = estimated error. +|| | | \ +MS Name/IP address Stratum Poll Reach LastRx Last sample +=============================================================================== +^* rpi5.salemdata.net 1 10 377 252 -1235us[-1206us] +/- 5005us +. +[03:38:29.583] Starting node zerodev2 +[03:38:29.583] Reticulum config: ~/.reticulum +[03:38:29.583] Runtime config: /tmp/ble_reticulum_poc_zerodev2_tmxlchwb +[03:38:32.305] Loaded identity: /home/jlpoole/.reticulum/ble_reticulum_poc_zerodev2.identity +[03:38:32.306] Destination hash: +[03:38:32.307] Use this hash as --peer on the other node. +[03:38:32.307] Message file mode: /home/jlpoole/US_Constitution.txt (44225 bytes) +[03:38:32.307] Periodic heartbeats are disabled in message file mode. +[03:38:32.312] Announced as zerodev2 +[03:38:32.312] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +Advertisement registered +[03:38:37.316] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:38:40] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 3 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:38:42.320] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:38:43] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 4 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[2026-05-17 03:38:46] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 5 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:38:47.323] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:38:49] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 6 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:38:52.327] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:38:52] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 7 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[2026-05-17 03:38:55] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 8 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:38:57.330] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:38:58] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 9 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[2026-05-17 03:39:01] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 10 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:39:02.318] Announced as zerodev2 +[03:39:02.334] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:39:04] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 11 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:39:07.337] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:39:07] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 12 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[2026-05-17 03:39:10] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 13 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:39:12.342] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:39:13] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 14 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[2026-05-17 03:39:16] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 15 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:39:17.345] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:39:19] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 16 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:39:22.349] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:39:22] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 17 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[2026-05-17 03:39:25] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 18 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:39:27.352] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:39:28] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 19 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:39:32.323] Announced as zerodev2 +[03:39:32.356] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +. +Reference ID : C0A80167 (rpi5.salemdata.net) +Stratum : 2 +Ref time (UTC) : Sun May 17 10:34:15 2026 +System time : 0.000034603 seconds fast of NTP time +Last offset : +0.000029072 seconds +RMS offset : 0.000145113 seconds +Frequency : 0.882 ppm slow +Residual freq : +0.001 ppm +Skew : 0.032 ppm +Root delay : 0.003424152 seconds +Root dispersion : 0.001798140 seconds +Update interval : 2065.1 seconds +Leap status : Normal + + .-- Source mode '^' = server, '=' = peer, '#' = local clock. + / .- Source state '*' = current best, '+' = combined, '-' = not combined, +| / 'x' = may be in error, '~' = too variable, '?' = unusable. +|| .- xxxx [ yyyy ] +/- zzzz +|| Reachability register (octal) -. | xxxx = adjusted offset, +|| Log2(Polling interval) --. | | yyyy = measured offset, +|| \ | | zzzz = estimated error. +|| | | \ +MS Name/IP address Stratum Poll Reach LastRx Last sample +=============================================================================== +^* rpi5.salemdata.net 1 10 377 317 -1235us[-1206us] +/- 5005us +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ diff --git a/migration/preserved_runs/run14/202605170357_zerodev1_Constitution_Python.txt b/migration/preserved_runs/run14/202605170357_zerodev1_Constitution_Python.txt new file mode 100644 index 0000000..d536c92 --- /dev/null +++ b/migration/preserved_runs/run14/202605170357_zerodev1_Constitution_Python.txt @@ -0,0 +1,86 @@ +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ # zerodev1 Command clump START +date +chronyc tracking +chronyc sources -v +echo . + +PYTHONPATH=src:migration/protocol_core \ +BLE_RETICULUM_FRAGMENTATION_BACKEND=python \ +BLE_RETICULUM_FRAGMENTATION_BACKEND_REPORT=1 \ +timeout 60 python3 examples/ble_dual_node_echo.py \ + --ble-role peripheral \ + --message-file /home/jlpoole/US_Constitution.txt \ + --message-chunk-size 900 \ + --announce-only-when-disconnected \ + --verbosity "critical" + +echo . +chronyc tracking +chronyc sources -v +# zerodev1 Command clump END +Sun May 17 03:55:44 PDT 2026 +Reference ID : C0A80167 (rpi5.salemdata.net) +Stratum : 2 +Ref time (UTC) : Sun May 17 10:31:17 2026 +System time : 0.000017311 seconds fast of NTP time +Last offset : +0.000127859 seconds +RMS offset : 0.000450036 seconds +Frequency : 1.054 ppm slow +Residual freq : +0.018 ppm +Skew : 0.071 ppm +Root delay : 0.003878563 seconds +Root dispersion : 0.003558447 seconds +Update interval : 2069.0 seconds +Leap status : Normal + + .-- Source mode '^' = server, '=' = peer, '#' = local clock. + / .- Source state '*' = current best, '+' = combined, '-' = not combined, +| / 'x' = may be in error, '~' = too variable, '?' = unusable. +|| .- xxxx [ yyyy ] +/- zzzz +|| Reachability register (octal) -. | xxxx = adjusted offset, +|| Log2(Polling interval) --. | | yyyy = measured offset, +|| \ | | zzzz = estimated error. +|| | | \ +MS Name/IP address Stratum Poll Reach LastRx Last sample +=============================================================================== +^* rpi5.salemdata.net 1 9 375 24m -1972us[-1845us] +/- 6159us +. +[03:55:45.701] Starting node zerodev1 +[03:55:45.701] Reticulum config: ~/.reticulum +[03:55:45.701] Runtime config: /tmp/ble_reticulum_poc_zerodev1_y9m6ktvg +[03:55:48.404] Loaded identity: /home/jlpoole/.reticulum/ble_reticulum_poc_zerodev1.identity +[03:55:48.405] Destination hash: <926e6d3b35b7d5940be7edeb47c41b78> +[03:55:48.405] Use this hash as --peer on the other node. +[03:55:48.405] Message file mode: /home/jlpoole/US_Constitution.txt (44225 bytes) +[03:55:48.405] Periodic heartbeats are disabled in message file mode. +[03:55:48.409] Announced <926e6d3b35b7d5940be7edeb47c41b78> as zerodev1 +Failed to register advertisement: org.bluez.Error.Failed: Failed to register advertisement +[03:56:18.414] Announced <926e6d3b35b7d5940be7edeb47c41b78> as zerodev1 +[03:56:48.419] Announced <926e6d3b35b7d5940be7edeb47c41b78> as zerodev1 +. +Reference ID : C0A80167 (rpi5.salemdata.net) +Stratum : 2 +Ref time (UTC) : Sun May 17 10:31:17 2026 +System time : 0.000012381 seconds fast of NTP time +Last offset : +0.000127859 seconds +RMS offset : 0.000450036 seconds +Frequency : 1.054 ppm slow +Residual freq : +0.018 ppm +Skew : 0.071 ppm +Root delay : 0.003878563 seconds +Root dispersion : 0.003629639 seconds +Update interval : 2069.0 seconds +Leap status : Normal + + .-- Source mode '^' = server, '=' = peer, '#' = local clock. + / .- Source state '*' = current best, '+' = combined, '-' = not combined, +| / 'x' = may be in error, '~' = too variable, '?' = unusable. +|| .- xxxx [ yyyy ] +/- zzzz +|| Reachability register (octal) -. | xxxx = adjusted offset, +|| Log2(Polling interval) --. | | yyyy = measured offset, +|| \ | | zzzz = estimated error. +|| | | \ +MS Name/IP address Stratum Poll Reach LastRx Last sample +=============================================================================== +^* rpi5.salemdata.net 1 9 375 25m -1972us[-1845us] +/- 6159us +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ diff --git a/migration/preserved_runs/run14/202605170357_zerodev2_Constitution_CPP.txt b/migration/preserved_runs/run14/202605170357_zerodev2_Constitution_CPP.txt new file mode 100644 index 0000000..59f128d --- /dev/null +++ b/migration/preserved_runs/run14/202605170357_zerodev2_Constitution_CPP.txt @@ -0,0 +1,115 @@ +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ # zerodev2 CPP Command clump START +date +chronyc tracking +chronyc sources -v +echo . + +PYTHONPATH=src:migration/protocol_core \ +BLE_RETICULUM_FRAGMENTATION_BACKEND=cpp \ +BLE_RETICULUM_FRAGMENTATION_BACKEND_REPORT=1 \ +timeout 60 python3 examples/ble_dual_node_echo.py \ + --ble-role both \ + --message-file /home/jlpoole/US_Constitution.txt \ + --peer 926e6d3b35b7d5940be7edeb47c41b78 \ + --announce-only-when-disconnected + +echo . +chronyc tracking +chronyc sources -v +# zerodev2 Command clump END +Sun May 17 03:55:46 AM PDT 2026 +Reference ID : C0A80167 (rpi5.salemdata.net) +Stratum : 2 +Ref time (UTC) : Sun May 17 10:51:34 2026 +System time : 0.000000118 seconds slow of NTP time +Last offset : +0.000424384 seconds +RMS offset : 0.000192255 seconds +Frequency : 0.855 ppm slow +Residual freq : +0.059 ppm +Skew : 0.088 ppm +Root delay : 0.003333773 seconds +Root dispersion : 0.001527501 seconds +Update interval : 1038.1 seconds +Leap status : Normal + + .-- Source mode '^' = server, '=' = peer, '#' = local clock. + / .- Source state '*' = current best, '+' = combined, '-' = not combined, +| / 'x' = may be in error, '~' = too variable, '?' = unusable. +|| .- xxxx [ yyyy ] +/- zzzz +|| Reachability register (octal) -. | xxxx = adjusted offset, +|| Log2(Polling interval) --. | | yyyy = measured offset, +|| \ | | zzzz = estimated error. +|| | | \ +MS Name/IP address Stratum Poll Reach LastRx Last sample +=============================================================================== +^* rpi5.salemdata.net 1 10 377 252 +21us[ +446us] +/- 2873us +. +[03:55:47.641] Starting node zerodev2 +[03:55:47.641] Reticulum config: ~/.reticulum +[03:55:47.641] Runtime config: /tmp/ble_reticulum_poc_zerodev2_f8191cdg +[03:55:50.361] Loaded identity: /home/jlpoole/.reticulum/ble_reticulum_poc_zerodev2.identity +[03:55:50.362] Destination hash: +[03:55:50.362] Use this hash as --peer on the other node. +[03:55:50.362] Message file mode: /home/jlpoole/US_Constitution.txt (44225 bytes) +[03:55:50.362] Periodic heartbeats are disabled in message file mode. +[03:55:50.365] Announced as zerodev2 +[03:55:50.366] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +Advertisement registered +[03:55:55.371] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:55:58] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 3 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:56:00.374] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:56:01] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 4 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[2026-05-17 03:56:04] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 5 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:56:05.378] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:56:07] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 6 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:56:10.381] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:56:10] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 7 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[2026-05-17 03:56:13] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 8 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:56:15.384] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:56:16] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 9 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[2026-05-17 03:56:19] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 10 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:56:20.372] Announced as zerodev2 +[03:56:20.388] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:56:22] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 11 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:56:25.391] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:56:25] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 12 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[2026-05-17 03:56:28] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 13 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:56:30.395] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:56:31] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 14 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[2026-05-17 03:56:34] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 15 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:56:35.398] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:56:37] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 16 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:56:40.401] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:56:40] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 17 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[2026-05-17 03:56:43] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 18 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:56:45.405] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +[2026-05-17 03:56:46] [Critical] BLEInterface[BLE Interface] driver critical: Scanner callback failure detected (0 callbacks for 19 consecutive scans). Bluetooth stack requires reboot. - Exception: BleakScanner callbacks not invoked +[03:56:50.377] Announced as zerodev2 +[03:56:50.408] Requesting path to <926e6d3b35b7d5940be7edeb47c41b78> +. +Reference ID : C0A80167 (rpi5.salemdata.net) +Stratum : 2 +Ref time (UTC) : Sun May 17 10:51:34 2026 +System time : 0.000000119 seconds slow of NTP time +Last offset : +0.000424384 seconds +RMS offset : 0.000192255 seconds +Frequency : 0.855 ppm slow +Residual freq : +0.059 ppm +Skew : 0.088 ppm +Root delay : 0.003333773 seconds +Root dispersion : 0.001602486 seconds +Update interval : 1038.1 seconds +Leap status : Normal + + .-- Source mode '^' = server, '=' = peer, '#' = local clock. + / .- Source state '*' = current best, '+' = combined, '-' = not combined, +| / 'x' = may be in error, '~' = too variable, '?' = unusable. +|| .- xxxx [ yyyy ] +/- zzzz +|| Reachability register (octal) -. | xxxx = adjusted offset, +|| Log2(Polling interval) --. | | yyyy = measured offset, +|| \ | | zzzz = estimated error. +|| | | \ +MS Name/IP address Stratum Poll Reach LastRx Last sample +=============================================================================== +^* rpi5.salemdata.net 1 10 377 318 +21us[ +446us] +/- 2873us +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ diff --git a/migration/reports/fragmentation_cpp_equivalence_20260516_1718.md b/migration/reports/fragmentation_cpp_equivalence_20260516_1718.md index 5af7157..b432df5 100644 --- a/migration/reports/fragmentation_cpp_equivalence_20260516_1718.md +++ b/migration/reports/fragmentation_cpp_equivalence_20260516_1718.md @@ -68,3 +68,369 @@ migration/tests/test_fragmentation_cpp_equivalence.py::TestHDLCFramerCppEquivale ## Interpretation This establishes phase-1 behavioral equivalence for the protocol-core fragmentation/reassembly layer. The C++ code is not yet integrated into BLEInterface.py for live Reticulum/BLE traffic. + +## Tests on Pi Zero 2W + +Note: I had to install the following on zerodev1: +```bash +sudo apt install python3-pybind11/stable +sudo apt install python3-distlib/stable +sudo apt install python3-setuptools/stable +sudo apt install python3-pytest +sudo apt install python3-pytest-asyncio/stable +``` +I performed: +```bash +git pull +git switch c++migration +cd /usr/local/src/ble-reticulum/migration/protocol_core +python3 setup.py build_ext --inplace + +``` +#### Example: +```bash +jlpoole@zerodev1:/usr/local/src/ble-reticulum/migration/protocol_core $ python3 setup.py build_ext --inplace +running build_ext +building 'ble_protocol_core_cpp' extension +creating build/temp.linux-aarch64-cpython-313/usr/local/src/ble-reticulum/migration/protocol_core +aarch64-linux-gnu-g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -I/usr/lib/python3/dist-packages/pybind11/include -I/usr/include/python3.13 -c /usr/local/src/ble-reticulum/migration/protocol_core/ble_protocol_core.cpp -o build/temp.linux-aarch64-cpython-313/usr/local/src/ble-reticulum/migration/protocol_core/ble_protocol_core.o -fvisibility=hidden -g0 -std=c++17 +creating build/lib.linux-aarch64-cpython-313 +aarch64-linux-gnu-g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 build/temp.linux-aarch64-cpython-313/usr/local/src/ble-reticulum/migration/protocol_core/ble_protocol_core.o -L/usr/lib/aarch64-linux-gnu -o build/lib.linux-aarch64-cpython-313/ble_protocol_core_cpp.cpython-313-aarch64-linux-gnu.so +copying build/lib.linux-aarch64-cpython-313/ble_protocol_core_cpp.cpython-313-aarch64-linux-gnu.so -> +jlpoole@zerodev1:/usr/local/src/ble-reticulum/migration/protocol_core +``` +### Results on Pi Zero 2W + +```bash +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ BLE_RETICULUM_FRAGMENTATION_BACKEND=cpp python3 -m pytest migration/tests/test_fragmentation_backend_shim.py -q +====================================== test session starts ====================================== +platform linux -- Python 3.13.5, pytest-8.3.5, pluggy-1.5.0 +rootdir: /usr/local/src/ble-reticulum +configfile: pytest.ini +plugins: typeguard-4.4.2, asyncio-0.25.1 +asyncio: mode=Mode.AUTO, asyncio_default_fixture_loop_scope=function +collected 7 items + +migration/tests/test_fragmentation_backend_shim.py ....... [100%] + +======================================= 7 passed in 4.08s ======================================= +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ BLE_RETICULUM_FRAGMENTATION_BACKEND=auto python3 -m pytest migration/tests/test_fragmentation_backend_shim.py -q +====================================== test session starts ====================================== +platform linux -- Python 3.13.5, pytest-8.3.5, pluggy-1.5.0 +rootdir: /usr/local/src/ble-reticulum +configfile: pytest.ini +plugins: typeguard-4.4.2, asyncio-0.25.1 +asyncio: mode=Mode.AUTO, asyncio_default_fixture_loop_scope=function +collected 7 items + +migration/tests/test_fragmentation_backend_shim.py ....... [100%] + +======================================= 7 passed in 3.49s ======================================= +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ BLE_RETICULUM_FRAGMENTATION_BACKEND=python python3 -m pytest migration/tests/test_fragmentation_backend_shim.py -q +====================================== test session starts ====================================== +platform linux -- Python 3.13.5, pytest-8.3.5, pluggy-1.5.0 +rootdir: /usr/local/src/ble-reticulum +configfile: pytest.ini +plugins: typeguard-4.4.2, asyncio-0.25.1 +asyncio: mode=Mode.AUTO, asyncio_default_fixture_loop_scope=function +collected 7 items + +migration/tests/test_fragmentation_backend_shim.py ....... [100%] + +======================================= 7 passed in 3.48s ======================================= +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ BLE_RETICULUM_FRAGMENTATION_BACKEND=cpp python3 -m pytest migration/tests/test_fragmentation_cpp_equivalence.py -q +====================================== test session starts ====================================== +platform linux -- Python 3.13.5, pytest-8.3.5, pluggy-1.5.0 +rootdir: /usr/local/src/ble-reticulum +configfile: pytest.ini +plugins: typeguard-4.4.2, asyncio-0.25.1 +asyncio: mode=Mode.AUTO, asyncio_default_fixture_loop_scope=function +collected 28 items + +migration/tests/test_fragmentation_cpp_equivalence.py ............................ [100%] + +====================================== 28 passed in 1.25s ======================================= +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ BLE_RETICULUM_FRAGMENTATION_BACKEND=cpp python3 -m pytest tests/test_fragmentation.py -q +====================================== test session starts ====================================== +platform linux -- Python 3.13.5, pytest-8.3.5, pluggy-1.5.0 +rootdir: /usr/local/src/ble-reticulum +configfile: pytest.ini +plugins: typeguard-4.4.2, asyncio-0.25.1 +asyncio: mode=Mode.AUTO, asyncio_default_fixture_loop_scope=function +collected 19 items + +tests/test_fragmentation.py ................... [100%] + +====================================== 19 passed in 1.17s ======================================= +jlpoole@zerodev1:/usr/local/src/ble-reticulum $ + +``` +### zerodev2 +```bash +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ date +Sat May 16 07:13:26 PM PDT 2026 +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ # START COMMAND MASS PASTE +BLE_RETICULUM_FRAGMENTATION_BACKEND=cpp python3 -m pytest migration/tests/test_fragmentation_backend_shim.py -q +BLE_RETICULUM_FRAGMENTATION_BACKEND=auto python3 -m pytest migration/tests/test_fragmentation_backend_shim.py -q +BLE_RETICULUM_FRAGMENTATION_BACKEND=python python3 -m pytest migration/tests/test_fragmentation_backend_shim.py -q + +# test cpp only +BLE_RETICULUM_FRAGMENTATION_BACKEND=cpp python3 -m pytest migration/tests/test_fragmentation_cpp_equivalence.py -q +BLE_RETICULUM_FRAGMENTATION_BACKEND=cpp python3 -m pytest tests/test_fragmentation.py -q +# END COMMAND MASS PASTE + +===================================== test session starts ===================================== +platform linux -- Python 3.13.5, pytest-8.3.5, pluggy-1.5.0 +rootdir: /usr/local/src/ble-reticulum +configfile: pytest.ini +plugins: typeguard-4.4.2, asyncio-0.25.1 +asyncio: mode=Mode.AUTO, asyncio_default_fixture_loop_scope=function +collected 7 items + +migration/tests/test_fragmentation_backend_shim.py ....... [100%] + +====================================== 7 passed in 4.16s ====================================== +===================================== test session starts ===================================== +platform linux -- Python 3.13.5, pytest-8.3.5, pluggy-1.5.0 +rootdir: /usr/local/src/ble-reticulum +configfile: pytest.ini +plugins: typeguard-4.4.2, asyncio-0.25.1 +asyncio: mode=Mode.AUTO, asyncio_default_fixture_loop_scope=function +collected 7 items + +migration/tests/test_fragmentation_backend_shim.py ....... [100%] + +====================================== 7 passed in 3.48s ====================================== +===================================== test session starts ===================================== +platform linux -- Python 3.13.5, pytest-8.3.5, pluggy-1.5.0 +rootdir: /usr/local/src/ble-reticulum +configfile: pytest.ini +plugins: typeguard-4.4.2, asyncio-0.25.1 +asyncio: mode=Mode.AUTO, asyncio_default_fixture_loop_scope=function +collected 7 items + +migration/tests/test_fragmentation_backend_shim.py ....... [100%] + +====================================== 7 passed in 3.45s ====================================== +===================================== test session starts ===================================== +platform linux -- Python 3.13.5, pytest-8.3.5, pluggy-1.5.0 +rootdir: /usr/local/src/ble-reticulum +configfile: pytest.ini +plugins: typeguard-4.4.2, asyncio-0.25.1 +asyncio: mode=Mode.AUTO, asyncio_default_fixture_loop_scope=function +collected 28 items + +migration/tests/test_fragmentation_cpp_equivalence.py ............................ [100%] + +===================================== 28 passed in 1.25s ====================================== +===================================== test session starts ===================================== +platform linux -- Python 3.13.5, pytest-8.3.5, pluggy-1.5.0 +rootdir: /usr/local/src/ble-reticulum +configfile: pytest.ini +plugins: typeguard-4.4.2, asyncio-0.25.1 +asyncio: mode=Mode.AUTO, asyncio_default_fixture_loop_scope=function +collected 19 items + +tests/test_fragmentation.py ................... [100%] + +===================================== 19 passed in 1.15s ====================================== +jlpoole@zerodev2:/usr/local/src/ble-reticulum $ + +``` + +## Real Life Tests +I tried running the Constitution real life tests, the results were the same, e.g. 36 seconds. I ask Codex: +``` +I want to confirm that this command utilized the CPP library: +BLE_RETICULUM_FRAGMENTATION_BACKEND=cpp timeout 60 python3 examples/ble_dual_node_echo.py \ + --ble-role both \ + --message-file /home/jlpoole/US_Constitution.txt \ + --peer 926e6d3b35b7d5940be7edeb47c41b78 \ + --announce-only-when-disconnected +``` +and the response was "No, that command almost certainly did not use the C++ library." + +### Commands +#### zerodev1 +```bash +# zerodev1 Command clump START +date +chronyc tracking +chronyc sources -v +echo . + +PYTHONPATH=src:migration/protocol_core \ +BLE_RETICULUM_FRAGMENTATION_BACKEND=cpp \ +timeout 60 python3 examples/ble_dual_node_echo.py \ + --ble-role peripheral \ + --message-file /home/jlpoole/US_Constitution.txt \ + --message-chunk-size 900 \ + --announce-only-when-disconnected \ + --verbosity "critical" + +echo . +chronyc tracking +chronyc sources -v +# zerodev1 Command clump END + +``` +#### zerodev2 +```bash +# zerodev2 Command clump START +date +chronyc tracking +chronyc sources -v +echo . + +PYTHONPATH=src:migration/protocol_core \ +BLE_RETICULUM_FRAGMENTATION_BACKEND=cpp \ +timeout 60 python3 examples/ble_dual_node_echo.py \ + --ble-role both \ + --message-file /home/jlpoole/US_Constitution.txt \ + --peer 926e6d3b35b7d5940be7edeb47c41b78 \ + --announce-only-when-disconnected + +echo . +chronyc tracking +chronyc sources -v +# zerodev2 Command clump END + +``` +### Analysis of logs +```bash +(rnsenv) jlpoole@jp /usr/local/src/ble-reticulum/scripts $ ./analyze_reticulum_file_transfer_20260516_1130.pl ../tmp/run11/20260516_1942_zerodev1_cross_Constitution_CPP.txt ../tmp/run11/20260516_1942_zerodev2_cross_Constitution_CPP.txt +Reticulum BLE file transfer analysis +Generated: 2026-05-16 20:06:22 PDT +Input files: + ../tmp/run11/20260516_1942_zerodev1_cross_Constitution_CPP.txt + ../tmp/run11/20260516_1942_zerodev2_cross_Constitution_CPP.txt + +Log provenance summary: + 20260516_1942_zerodev1_cross_Constitution_CPP.txt receiver=zerodev1 date='Sat May 16 19:40:49 PDT 2026' command_lines=19 post_marker_lines=589 + 20260516_1942_zerodev2_cross_Constitution_CPP.txt receiver=zerodev2 date='Sat May 16 07:40:51 PM PDT 2026' command_lines=18 post_marker_lines=585 + +Chrony clock notes from logs: + 20260516_1942_zerodev1_cross_Constitution_CPP.txt + System time : 0.000026803 seconds slow of NTP time + System time : 0.000000015 seconds fast of NTP time + 20260516_1942_zerodev2_cross_Constitution_CPP.txt + System time : 0.000093383 seconds slow of NTP time + System time : 0.000082251 seconds slow of NTP time + +Declared outbound sends observed in logs: + sender=zerodev1 file=US_Constitution.txt chunks= 140 bytes= 44225 chunk_data_bytes=316 + sender=zerodev2 file=US_Constitution.txt chunks= 148 bytes= 44225 chunk_data_bytes=n/a + +Direction: zerodev1->zerodev2 + file : US_Constitution.txt + chunks received : 140 of 140 + completeness : 100.00% + missing chunks : none + duplicate chunks : none + payload bytes RX : 44225 + first chunk RX : 19:41:11.196 + last chunk RX : 19:41:47.125 + receiver span : 35.929 s + sender span : 14.294 s + payload rate RX span : 1230.9 B/s 9847.2 bit/s + payload rate TX span : 3094.0 B/s 24751.9 bit/s + one-way latency min/median/mean/p95/max/stddev: 247.972 / 11245.970 / 11221.742 / 21098.446 / 21883.147 / 6380.215 ms + receiver inter-chunk gap min/median/mean/p95/max/stddev: 194.000 / 243.000 / 258.482 / 294.000 / 342.000 / 36.423 ms + sender inter-chunk gap min/median/mean/p95/max/stddev: 101.903 / 102.917 / 102.833 / 103.330 / 108.473 / 0.971 ms + +Direction: zerodev2->zerodev1 + file : US_Constitution.txt + chunks received : 148 of 148 + completeness : 100.00% + missing chunks : none + duplicate chunks : none + payload bytes RX : 44225 + first chunk RX : 19:41:11.099 + last chunk RX : 19:41:45.468 + receiver span : 34.369 s + sender span : 15.512 s + payload rate RX span : 1286.8 B/s 10294.2 bit/s + payload rate TX span : 2851.0 B/s 22807.9 bit/s + one-way latency min/median/mean/p95/max/stddev: 212.916 / 9686.723 / 9699.188 / 18206.516 / 19069.768 / 5489.943 ms + receiver inter-chunk gap min/median/mean/p95/max/stddev: 145.000 / 243.000 / 233.803 / 246.000 / 292.000 / 23.638 ms + sender inter-chunk gap min/median/mean/p95/max/stddev: 103.950 / 105.904 / 105.525 / 107.442 / 109.099 / 1.094 ms + +Hello/handshake RX records: + zerodev1 -> zerodev2 recv=19:41:10.864 latency= 102.376 ms message='hello back' + zerodev2 -> zerodev1 recv=19:41:10.874 latency= 176.319 ms message='hello' + +Caution: one-way latency assumes sender and receiver clocks are synchronized. +Your chronyc tracking output helps bound this error, but it is not a substitute for ACK/round-trip timing. +(rnsenv) jlpoole@jp /usr/local/src/ble-reticulum/scripts $ + + +``` +Sunday May 17, 2026 12:08 PM - after exensive testing and forensic runs on run 13, I finally rebooted both Pis and I extended the timeout from 60 to 90. The bilateral Constitution test worked. + +```bash +rnsenv) jlpoole@jp /usr/local/src/ble-reticulum/scripts $ date; ./analyze_reticulum_file_transfer_20260516_1130.pl ../tmp/run15/20260517_0439_zerodev1_Constitution_CPP.txt ../tmp/run15/20260517_0439_zerodev2_Constitution_CPP.txt +Sun May 17 04:52:33 PDT 2026 +Reticulum BLE file transfer analysis +Generated: 2026-05-17 04:52:33 PDT +Input files: + ../tmp/run15/20260517_0439_zerodev1_Constitution_CPP.txt + ../tmp/run15/20260517_0439_zerodev2_Constitution_CPP.txt + +Log provenance summary: + 20260517_0439_zerodev1_Constitution_CPP.txt receiver=zerodev1 date='Sun May 17 04:44:06 PDT 2026' command_lines=21 post_marker_lines=591 + 20260517_0439_zerodev2_Constitution_CPP.txt receiver=zerodev2 date='Sun May 17 04:44:08 AM PDT 2026' command_lines=20 post_marker_lines=587 + +Chrony clock notes from logs: + 20260517_0439_zerodev1_Constitution_CPP.txt + System time : 0.000602999 seconds fast of NTP time + System time : 0.000000797 seconds slow of NTP time + 20260517_0439_zerodev2_Constitution_CPP.txt + System time : 0.000199690 seconds slow of NTP time + System time : 0.000000200 seconds fast of NTP time + +Declared outbound sends observed in logs: + sender=zerodev1 file=US_Constitution.txt chunks= 140 bytes= 44225 chunk_data_bytes=316 + sender=zerodev2 file=US_Constitution.txt chunks= 148 bytes= 44225 chunk_data_bytes=n/a + +Direction: zerodev1->zerodev2 + file : US_Constitution.txt + chunks received : 140 of 140 + completeness : 100.00% + missing chunks : none + duplicate chunks : none + payload bytes RX : 44225 + first chunk RX : 04:44:33.283 + last chunk RX : 04:45:09.259 + receiver span : 35.976 s + sender span : 14.299 s + payload rate RX span : 1229.3 B/s 9834.3 bit/s + payload rate TX span : 3092.8 B/s 24742.6 bit/s + one-way latency min/median/mean/p95/max/stddev: 246.163 / 11275.384 / 11238.875 / 21147.058 / 21922.931 / 6402.281 ms + receiver inter-chunk gap min/median/mean/p95/max/stddev: 191.000 / 244.000 / 258.820 / 297.300 / 341.000 / 36.970 ms + sender inter-chunk gap min/median/mean/p95/max/stddev: 101.924 / 102.945 / 102.872 / 104.299 / 109.563 / 0.917 ms + +Direction: zerodev2->zerodev1 + file : US_Constitution.txt + chunks received : 148 of 148 + completeness : 100.00% + missing chunks : none + duplicate chunks : none + payload bytes RX : 44225 + first chunk RX : 04:44:33.284 + last chunk RX : 04:45:07.703 + receiver span : 34.419 s + sender span : 15.470 s + payload rate RX span : 1284.9 B/s 10279.2 bit/s + payload rate TX span : 2858.7 B/s 22869.8 bit/s + one-way latency min/median/mean/p95/max/stddev: 254.424 / 9806.025 / 9750.358 / 18371.803 / 19203.224 / 5533.436 ms + receiver inter-chunk gap min/median/mean/p95/max/stddev: 145.000 / 243.000 / 234.143 / 246.700 / 292.000 / 24.080 ms + sender inter-chunk gap min/median/mean/p95/max/stddev: 103.738 / 104.216 / 105.239 / 108.147 / 122.931 / 2.539 ms + +Hello/handshake RX records: + zerodev2 -> zerodev1 recv=04:44:32.951 latency= 118.171 ms message='hello' + zerodev1 -> zerodev2 recv=04:44:32.963 latency= 113.954 ms message='hello back' + +Caution: one-way latency assumes sender and receiver clocks are synchronized. +Your chronyc tracking output helps bound this error, but it is not a substitute for ACK/round-trip timing. +(rnsenv) jlpoole@jp /usr/local/src/ble-reticulum/scripts $ +``` \ No newline at end of file diff --git a/scripts/analyze_reticulum_file_transfer_20260516_1130.pl b/scripts/analyze_reticulum_file_transfer_20260516_1130.pl index 9d1cfe6..2e33906 100755 --- a/scripts/analyze_reticulum_file_transfer_20260516_1130.pl +++ b/scripts/analyze_reticulum_file_transfer_20260516_1130.pl @@ -2,6 +2,17 @@ # ./analyze_reticulum_file_transfer_20260516_1130.pl 20250516_1115_zerodev1.txt 20250516_1115_zerodev2.txt # ./analyze_reticulum_file_transfer_20260516_1130.pl --detail 20250516_1115_zerodev1.txt 20250516_1115_zerodev2.txt # ./analyze_reticulum_file_transfer_20260516_1130.pl --csv chunks_$(date +%Y%m%d_%H%M).csv 20250516_1115_zerodev1.txt 20250516_1115_zerodev2.txt +# +=pod +Below works: +./analyze_reticulum_file_transfer_20260516_1130.pl ../tmp/run11/20260516_1918_zerodev1_cross_Constitution_CPP.txt ../tmp/run11/20260516_1918_zerodev2_cross_Constitution_CPP.txt + +Below failed with: No RX file_chunk records with send_epoch= were found. + +./analyze_reticulum_file_transfer_20260516_1130.pl ../tmp/run11/20260516_1942_zerodev1_cross_Constitution_CPP.txt ../tmp/run11/20260516_1942_zerodev2_cross_Constitution_CPP.txt + +=cut +# # chmod 755 analyze_reticulum_file_transfer_20260516_1130.pl # 2026-05-16 ChatGPT # $Header$ @@ -224,7 +235,8 @@ sub parse_file { ++$line_no; if ($in_command_clump) { push @commands, $line; - if ($line =~ /^#\s*End of command clump\s*$/) { + if ($line =~ /^#\s*End of command clump\s*$/ + || $line =~ /^#\s*zerodev\d+ Command clump END\s*$/) { $in_command_clump = 0; } next;