Reverse engineering project for the 3irobotix CRL-200S robotic vacuum cleaner. This repository documents the hardware architecture, communication protocols, and component specifications with the goal of understanding and potentially rebuilding the robot's functionality from scratch.
- Hardware Reverse Engineering: Document PCB layout, identify components, and map connector pinouts
 - Protocol Analysis: Decode communication protocols for sensors and peripherals
 - Firmware Development: Build custom firmware to control the hardware (future goal)
 - Software Reimplementation: Create navigation and control algorithms (future goal)
 
- Lidar sensor protocol decoded and documented
 - Real-time Lidar visualization tool (Python)
 - Main motherboard component identification
 - Connector pinout mapping and documentation
 - A33-GD32F103 communication protocol reverse engineered
 - Original firmware binary analysis (AuxCtrl process)
 - Device access methods (SSH, debug mode) documented
 
- Detailed circuit analysis and tracing
 - Complete command ID mapping for MCU protocol
 
- Firmware development for GD32F1 MCU
 - Motor control implementation
 - Navigation algorithm development
 - Integration with custom control software
 
The 3irobotix CRL-200S uses a dual-processor architecture:
- Main CPU: Allwinner A33 (ARM Cortex-A7 Quad-Core) - likely handles high-level logic, WiFi, and user interface
 - Motor Control MCU: GigaDevice GD32F103VCT6 (ARM Cortex-M3) - handles real-time motor control and sensor interfacing
 - Lidar: 3irobotix Delta-2D with UART interface
 - Memory: 4Gbit DDR3L RAM, 2Gbit NAND Flash
 - Power: X-Powers AXP223 PMIC, 4-cell Li-ion battery with CN3704 charge controller
 - Connectivity: Realtek RTL8189ETV WiFi module
 
- Lidar Sensor Analysis - Protocol specification, pinout, and visualization tool
 - Motherboard Analysis - Component identification, connector mapping, and circuit analysis
- Component Diagram - Detailed component identification and connections
 - Connection Evidence - A33-GD32 hardware connection analysis
 
 
- GD32F1 MCU Protocol - Communication protocol between A33 and GD32F103
- GD32 Protocol - VERIFIED ⭐ - Complete verified protocol specification (RECOMMENDED)
 - Protocol Discovery Changelog - Evolution of understanding through 5 phases
 - CRC Algorithm Discovery - XOR checksum reverse engineering
 - Initial Protocol Analysis - Binary reverse engineering (contains outdated info, see notes)
 
 
- Software & Firmware Analysis - Original firmware analysis, system architecture, and device access methods
- AuxCtrl Binary Details - Deep analysis of the AuxCtrl process
 - Serial MITM Approach - PTY-based protocol capture method
 - Serial Logging Guide - Tools and techniques for packet capture
 - Test Results - Protocol testing outcomes
 
 
- Firmware Projects - Rust-based firmware for Allwinner A33
- AuxCtrl-Rust - Open-source GD32 communication library
 - Lidar Reader - Rust library for 3iRobotix Delta-2D Lidar
 
 
Real-time visualization tool for the 3irobotix Delta-2D Lidar sensor.
Requirements:
pip install pyserial matplotlibUsage:
- Connect Lidar to USB-UART adapter
 - Update serial port in 
scan.py(line 5) - Run: 
python Research/Lidar/scan.py 
The tool displays a real-time polar plot showing distance measurements at 360 degrees.
To enable extended debugging and logging:
- Create file 
/mnt/UDISK/debug_modeon the device - Reboot or restart the Monitor process
 - Logs will be written to 
/mnt/UDISK/log/ 
See Software Analysis for more details on the system architecture.
This is a personal reverse engineering project. Documentation improvements, protocol discoveries, and hardware analysis are welcome.
Apache 2.0 - See LICENSE file for details.