Replacing Vector Robot Brain Board

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
GND
J2
R3 P2 - J2 2
GND
J1 Pin_3 - R1 P1
J1 Pin_4 - R2 P1
J1 Pin_4 - R2 P1
R2 P2 - J2 5
J1 Pin_3 - R1 P1
R1 P2 - J2 4
J1 Pin_2 - R3 P1
J1 Pin_2 - R3 P1
R2 P2 - J2 5
R3 P2 - J2 2
R1 P2 - J2 4
R2
Resistance
10kΩ
R1
Resistance
10kΩ
R3
Resistance
100kΩ
J1

Refine this doc
Ask about this doc
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


connector,pin,label,wire_color,measured_voltage_off,measured_voltage_on,signal_guess,confidence,notes
P1,1,GND,black,0,0,GND,high,
P1,2,2V8,red,0,2.8,logic power,medium,
P1,3,BODY_TX,unknown,,,UART,low,
Capture Log Template
For each logic-analyzer capture, record:

Csv


capture_id,date,robot_state,signals,baud,logic_threshold,filename_tx,filename_rx,notes
001,2026-07-06,cold boot,BODY_TX/BODY_RX,115200,1.4V,boot_tx.csv,boot_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

Vector Robot Smart Brain Replacement thumbnail
Custom replacement brain board for Anki Vector Robot 2.0 that preserves stock robot functions while offloading conversation, context, and LLM behavior to a home server.

Properties

Pricing & Availability

Distributor

Qty 1

Digi-Key

$1.33

Mouser

$1.44

Controls