[15:46:48] === FOCUSED SCAN START === [15:46:48] WROOM=/dev/ttyACM0 ATOM=/dev/ttyACM1 MIC=hw:1,0 [15:46:50] [15:46:50] === PHASE 0: MIC CALIBRATION === [15:46:53] Ambient RMS=127.3 Beep threshold set to 1273.3 [15:46:53] Sending startstop to calibrate beep level... [15:46:58] Beep calibration: heard=False peak_rms=1204.0 threshold=1273.3 [15:46:58] WARNING: beep not detected above threshold — mic may be too far from turntable. [15:46:58] Adjusting threshold to 636.6 [15:47:03] [15:47:03] === PHASE 1: SPEED RANGE (CONTINUOUS MODE) === [15:47:03] Setting speed to FLOOR (25x slowdown)... [15:47:18] [MIN SPEED] Starting continuous CW... enc_start=-32018 [15:48:43] [MIN SPEED] 360deg in 77.1s = 1.28 min/rev [15:48:43] Setting speed to CEILING (25x speedup)... [15:49:01] [MAX SPEED] Starting continuous CW... enc_start=-35777 [15:49:39] [MAX SPEED] 360deg in 30.0s = 0.50 min/rev [15:49:46] [15:49:46] === PHASE 2: BACKLASH MEASUREMENT === [15:49:57] Control test (CW then CW, no direction change): [15:50:24] CW 180deg (1st): delta=-1140 counts (-171.0deg) dur=14.0s [15:50:44] CW 180deg (2nd): delta=-1134 counts (-170.1deg) dur=14.0s [15:50:45] Control: total=-341.1deg sum_expected=-341.1deg [15:50:45] Backlash test (CW then CCW reversal): [15:51:10] CW 180deg: delta=-1138 counts (-170.7deg) dur=14.0s [15:51:52] Backlash result: net displacement=1615 counts = 242.25deg [15:51:52] (0 would mean perfect return; positive = mechanical slop) [15:51:59] [15:51:59] === PHASE 3: FOCUSED COMMAND INVESTIGATION === [15:51:59] For each command: send, detect beep, wait settle, measure angle vs hypothesis [15:51:59] Noise threshold: >30 counts to count as real movement [15:52:28] 0x01 [CCW ~126deg?] [15:52:28] beep=True (peak=1203) delta=685 (102.75deg) CCW dur=8.0s total=11.4s [15:52:28] verdict: REAL MOVE [15:52:36] 0x03 [CW ~18deg?] [15:52:36] beep=True (peak=1203) delta=100 (15.0deg) CCW dur=1.0s total=5.0s [15:52:36] verdict: REAL MOVE [15:52:43] 0x04 [CW ~10deg?] [15:52:43] beep=True (peak=1203) delta=49 (7.35deg) CCW dur=0.0s total=4.0s [15:52:43] verdict: REAL MOVE [15:52:50] 0x05 [CW ~14deg?] [15:52:50] beep=True (peak=1203) delta=69 (10.35deg) CCW dur=0.0s total=4.0s [15:52:50] verdict: REAL MOVE [15:52:59] 0x06 [CW ~32deg?] [15:52:59] beep=True (peak=1203) delta=190 (28.5deg) CCW dur=2.0s total=6.0s [15:52:59] verdict: REAL MOVE [15:53:05] 0x08 [CW ~310deg? (360?)] [15:53:05] beep=True (peak=1203) delta=0 (0.0deg) NONE dur=0.0s total=3.0s [15:53:05] verdict: noise/no response [15:53:11] 0x09 [CW ~7deg?] [15:53:11] beep=True (peak=1203) delta=0 (0.0deg) NONE dur=0.0s total=3.0s [15:53:11] verdict: noise/no response [15:53:36] 0x0C [CW ~174deg? (180?)] [15:53:36] beep=True (peak=1204) delta=1125 (168.75deg) CCW dur=14.0s total=19.0s [15:53:36] verdict: REAL MOVE [15:53:54] 0x0D [CW ~100deg? (90?)] [15:53:54] beep=True (peak=1203) delta=724 (108.6deg) CCW dur=8.0s total=11.2s [15:53:54] verdict: REAL MOVE [15:54:01] 0x12 [CW ~15deg?] [15:54:01] beep=True (peak=1204) delta=77 (11.55deg) CCW dur=0.0s total=4.0s [15:54:01] verdict: REAL MOVE [15:54:11] 0x15 [CW ~25deg?] [15:54:11] beep=True (peak=1203) delta=46 (6.9deg) CCW dur=0.0s total=5.0s [15:54:11] verdict: REAL MOVE [15:54:27] 0x18 [CW ~85deg? (90?)] [15:54:27] beep=True (peak=1204) delta=540 (81.0deg) CCW dur=6.0s total=11.0s [15:54:27] verdict: REAL MOVE [15:54:38] 0x19 [CW ~9deg?] [15:54:38] beep=True (peak=1204) delta=113 (16.95deg) CCW dur=1.0s total=4.2s [15:54:38] verdict: REAL MOVE [15:54:52] 0x1A [CW ~43deg? (45?)] [15:54:52] beep=True (peak=1203) delta=302 (45.3deg) CCW dur=3.0s total=6.2s [15:54:52] verdict: REAL MOVE [15:55:07] 0x1C [CW ~44deg? (45?)] [15:55:07] beep=True (peak=1204) delta=297 (44.55deg) CCW dur=4.0s total=8.0s [15:55:07] verdict: REAL MOVE [15:55:22] 0x1D [CW ~45deg?] [15:55:22] beep=True (peak=1203) delta=294 (44.1deg) CCW dur=4.0s total=8.0s [15:55:22] verdict: REAL MOVE [15:55:37] 0x20 [CW ~46deg? (45?)] [15:55:37] beep=True (peak=1203) delta=306 (45.9deg) CCW dur=4.0s total=8.0s [15:55:37] verdict: REAL MOVE [15:55:44] [15:55:44] === FINAL SUMMARY === [15:55:44] Commands confirmed as real angle presets: [15:55:44] 0x01: 102.75deg CCW beep=True [CCW ~126deg?] [15:55:44] 0x03: 15.0deg CCW beep=True [CW ~18deg?] [15:55:44] 0x04: 7.35deg CCW beep=True [CW ~10deg?] [15:55:44] 0x05: 10.35deg CCW beep=True [CW ~14deg?] [15:55:44] 0x06: 28.5deg CCW beep=True [CW ~32deg?] [15:55:44] 0x0C: 168.75deg CCW beep=True [CW ~174deg? (180?)] [15:55:44] 0x0D: 108.6deg CCW beep=True [CW ~100deg? (90?)] [15:55:44] 0x12: 11.55deg CCW beep=True [CW ~15deg?] [15:55:44] 0x15: 6.9deg CCW beep=True [CW ~25deg?] [15:55:44] 0x18: 81.0deg CCW beep=True [CW ~85deg? (90?)] [15:55:44] 0x19: 16.95deg CCW beep=True [CW ~9deg?] [15:55:44] 0x1A: 45.3deg CCW beep=True [CW ~43deg? (45?)] [15:55:44] 0x1C: 44.55deg CCW beep=True [CW ~44deg? (45?)] [15:55:44] 0x1D: 44.1deg CCW beep=True [CW ~45deg?] [15:55:44] 0x20: 45.9deg CCW beep=True [CW ~46deg? (45?)] [15:55:44] [15:55:44] Commands with no real movement (noise or modal): [15:55:44] 0x08: beep=True [CW ~310deg? (360?)] [15:55:44] 0x09: beep=True [CW ~7deg?] [15:55:44] === DONE ===