Replacing Vector Robot Brain Board


Worked for 46 sec
Thought for 25 sec — any "No Connect" pins as well. I should probably run the .
Thought for 12 sec
5/6 Run ERC/DRC checks

Inspect current schematic nets around J1, U1, U2, and headers

Rewire schematic as listen-only 4-wire Vector tap

Update component roles/notes for beginner-safe use

Re-place/re-route passive wiretap PCB

Run ERC/DRC checks

Summarize what changed and remaining risks

Thought for 13 sec
Completed 10 design checks — found 4 issues.
Getting a schematic overview.
Getting a layout overview.
there are 2 wires (one red and one black) that go into the part thats attached to the board.. on each side.
Created a project doc

Passive Wiretap Board Status

View Document

This board has been redesigned as a safe listen-only wiretap for the Vector head/body 4-wire cable. It no longer includes the ESP32-C3 or ac...
Done — I redesigned it as a passive listen-only wiretap.
What changed:
  • Removed ESP32-C3 and level-shifter from the signal path.
  • Kept only headers + protection resistors.
  • Mapped the confirmed Vector wires:
    • black GND
    • red VMAIN
    • white BODY_RX
    • green TX1.8
  • Routed the simplified PCB.
  • Ran ERC/DRC checks: no errors/warnings came back in the checked categories.
Saved status here:
Passive Wiretap Board Status
Open item:
  • This is still a hand-wired/probe board, not the final drop-in Vector connector board.
Document, BOM, export
Create wiring guide
Check BOM cost
Export files
Review manufacturability

J2
R2
Resistance
10kΩ
R1
Resistance
10kΩ
R3
Resistance
100kΩ
J1
Actual Reverse Engineering Deliverables
Generated Toolkit
A downloadable Python toolkit was generated for the Vector head/body protocol reverse-engineering workflow.
File generated:
  • vector-re-toolkit.zip
Contents:
  • README.md
  • requirements.txt
  • tools/parse_saleae_uart.py
  • tools/packet_cluster.py
  • tools/detect_baud_notes.md
  • vector_body/messages.py
  • vector_body/protocol.py
  • vector_body/transport.py
  • diagnostics/body_cli.py
  • docs/hardware_capture_checklist.md
  • docs/connector_map_template.csv
  • docs/capture_log_template.csv
  • tests/test_protocol.py
What The Toolkit Does
UART capture parsing
tools/parse_saleae_uart.py:
  • Reads Saleae-style UART CSV exports.
  • Supports TX and RX capture files.
  • Sorts bytes by timestamp.
  • Splits likely packets using an inter-byte timing gap.
  • Prints timestamp, direction, length, hex bytes, and ASCII hint.
Packet clustering
tools/packet_cluster.py:
  • Reads parsed packet text.
  • Groups packets by direction, length, and byte prefix.
  • Helps spot repeated message types.
Protocol stubs
vector_body/messages.py and vector_body/protocol.py:
  • Define packet/message classes.
  • Provide checksum/packet-analysis placeholders.
  • Are intentionally conservative because the real protocol must be learned from captures.
Guarded diagnostic CLI
diagnostics/body_cli.py:
  • Skeleton CLI for future serial diagnostics.
  • Refuses to transmit unless explicitly launched with --unsafe-enable-tx.
  • This is intentional because transmitting to Vector’s body board before decoding the protocol could damage hardware or trigger unsafe motor behavior.
Hardware Capture Checklist
Required tools
  • Logic analyzer with UART decoder.
  • Multimeter.
  • Fine probe hooks or soldered test wires.
  • Common ground connection.
  • Optional oscilloscope.
  • Optional 2.8 V-safe USB UART adapter or level shifter for later transmit tests.
Signals to identify first
  • GND
  • 2.8 V logic rail
  • VBAT / battery voltage
  • BODY_TX
  • BODY_RX
  • TXD
  • RXD
  • SCL2
  • SDA2
  • USB D+
  • USB D-
Capture sessions to record
  1. Robot powered off / battery connected idle.
  2. Boot sequence from cold start.
  3. Idle after boot.
  4. Wake/listen event.
  5. Voice command that causes no movement.
  6. Voice command that causes movement.
  7. Manual lift/head movement if possible.
  8. Docking/charging event.
  9. Low-battery or charger attach/detach event if safe.
Capture settings
  • Start with passive high-impedance probing only.
  • Capture BODY_TX and BODY_RX simultaneously.
  • Try common UART baud rates if unknown: 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600.
  • Logic threshold should match observed logic level, likely around 2.8 V logic.
  • Do not inject signals yet.
  • Do not drive motors from external hardware yet.
Naming convention
Use filenames like:

Text


captures/uart/2026-07-06_boot_115200_bodytx.csv
captures/uart/2026-07-06_boot_115200_bodyrx.csv
captures/uart/2026-07-06_move_forward_115200_bodytx.csv
captures/uart/2026-07-06_move_forward_115200_bodyrx.csv
Connector Map Template
For each connector/pad group, record:

CSV Data


connectorpinlabelwire_colormeasured_voltage_offmeasured_voltage_onsignal_guessconfidencenotes
P11GNDblack00GNDhigh
P122V8red02.8logic powermedium
P13BODY_TXunknownUARTlow
Capture Log Template
For each logic-analyzer capture, record:

CSV Data


capture_iddaterobot_statesignalsbaudlogic_thresholdfilename_txfilename_rxnotes
0012026-07-06cold bootBODY_TX/BODY_RX1152001.4Vboot_tx.csvboot_rx.csv
Next Step
Collect one clean boot capture of BODY_TX/BODY_RX and run:

Bash


python tools/parse_saleae_uart.py --tx boot_tx.csv --rx boot_rx.csv --gap-ms 10
python tools/packet_cluster.py parsed_packets.txt
Then update the protocol stubs based on repeated packet patterns.
  • Generated Toolkit

  • What The Toolkit Does

  • UART capture parsing

  • Packet clustering

  • Protocol stubs

  • Guarded diagnostic CLI

  • Hardware Capture Checklist

  • Required tools

  • Signals to identify first

  • Capture sessions to record

  • Capture settings

  • Naming convention

  • Connector Map Template

  • Capture Log Template

  • Next Step