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.