Project Name: Slow-Sweep Turntable Modification (Project SLOW-SWEEP)Target Platform: ComXim MTxM_V6.01 Mainboard / Dual 50BYJ46-20 SteppersDevelopment Environment: CLI Execution Engine via ClaudePrimary Hardware: ESP32-S3-WROOM-1 (N16R8, 16MB Flash, 8MB PSRAM)1. Project Objective & ScopeThe goal of this project is to modify a stock ComXim 15.8-inch heavy-duty motorized turntable to achieve ultra-slow, highly repeatable, and reliable continuous rotation at a target rate of one full revolution every 20 to 30 minutes (1,200 to 1,800 seconds).Phase 1 Scope (Current): Non-Destructive Serial InterceptionWe will install the ESP32-S3 inline to snif and inject commands over the native UART4 bus exposed on the mainboard (Vc, Gd, Rx, Tx test pads). The ESP32-S3 will be powered via its onboard USB-C port from a laptop, running a simple CLI-configured pass-through sketch to monitor and fuzz the stock ASCII CT Command Set at 115200 baud.Phase 2 Scope (Contingent): Direct Hardware OverdriveIf the stock STC 8H8K64U microcontroller firmware rejects slow-speed injection or times out under long command delays, we will transition to bypassing the factory board entirely, driving the dual 15V bipolar steppers directly via external low-noise drivers (e.g., TMC2209) orchestrated by the ESP32-S3.2. Technical Profile: Hardware BaselineComponentSpecification / ParameterDetailsMicrocontrollerESP32-S3-WROOM-1 (N16R8)32-bit dual-core, 16MB Flash, 8MB PSRAM, Native USB-CTurntable MCUsSTC 8H8K64U (Onboard)Stock 8051-core managing remote and motor driversTarget BusUART4 (Vc, Gd, Rx, Tx)115200 Baud, 8N1, $100\,\Omega$ inline protection resistorsMotors2× 50BYJ46-20 Geared Steppers15V Bipolar, 33.3:1 internal reduction ratio, high-resistance3. Immediate Action Plan & CLI SetupTo establish the hardware tap, run the stock mainboard under normal barrel jack power while bridging the logic lines to the ESP32-S3.Physical Wiring Diagram ComXim Mainboard (UART4) ESP32-S3 Dev Board +-----------------------+ +--------------------+ | Gd (Ground) | ------------ | GND | | Rx (Receive) | ------------ | TX1 (e.g., GPIO17)| | Tx (Transmit) | ------------ | RX1 (e.g., GPIO18)| +-----------------------+ +--------------------+ Safety Note: Do not connect the Vc pad from the ComXim board to the ESP32-S3. The ComXim rail may be regulated to 5V or higher; the ESP32-S3 logic pins are strictly 3.3V tolerant. Running a shared ground (Gd to GND) is sufficient for signaling since the ESP32-S3 will pull its own power via USB-C.4. Phase 1 Monitoring & Signal-Sniffing FirmwareBelow is the lean, low-overhead initialization script optimized for compilation via command-line tools (such as arduino-cli or platformio). It configures Serial (USB-C to Laptop CLI) and Serial1 (Hardware UART to the ComXim board) to act as a bidirectional sniffer.C++#include // Define ESP32-S3 Hardware UART1 Pins for ComXim Interface #define COM_RX_PIN 18 // Connects to ComXim Tx #define COM_TX_PIN 17 // Connects to ComXim Rx #define BAUDRATE 115200 void setup() { // Initialize USB-C Serial for Laptop CLI Debugging Serial.begin(BAUDRATE); while (!Serial) { ; } // Wait for terminal connection // Initialize Hardware Serial 1 connected to ComXim Mainboard Serial1.begin(BAUDRATE, SERIAL_8N1, COM_RX_PIN, COM_TX_PIN); Serial.println("\n=============================================="); | "PROJECT SLOW-SWEEP: CLI BUS MONITOR ACTIVE" | Serial.println("=============================================="); Serial.println("Listening for ComXim Remote/MCU transactions..."); } void loop() { // Pass data from ComXim Mainboard -> Laptop CLI if (Serial1.available()) { Serial.print("[COMXIM]: "); while (Serial1.available()) { char c = Serial1.read(); Serial.print(c); } } // Pass manual strings injected from Laptop CLI -> ComXim Mainboard if (Serial.available()) { String cmd = Serial.readStringUntil('\n'); cmd.trim(); // Strip carriage returns if (cmd.length() > 0) { Serial.print("[INJECTING]: "); Serial.println(cmd); // Append expected protocol terminator if omitted if (!cmd.endsWith(";")) { cmd += ";"; } Serial1.print(cmd); } } } 5. Next Steps for the CLI WorkspaceFlash the Code: Deploy the code above to your ESP32-S3 using your local build environment.Boot the Monitor: Open your favored terminal monitor (e.g., minicom, screen, or tio) at 115200 baud.Establish Baseline: Press buttons on the factory infrared remote. Verify if ASCII strings like CR+OK; or directional telemetry dump out to your console.Once your physical tap is verified and we see data scrolling on your laptop, let me know what strings reveal themselves, and we will issue our first fine-stepped CT+TURNSINGLE commands to evaluate the firmware's limits. Ready when you are.