Welcome to the hdctools repository. This project contains the software stack for interacting with ChromeOS hardware debug targets, most notably the Servo family of debug boards (Servo v2, Servo v4, Servo Micro, C2D2, SuzyQable, etc.).
The core component of this repository is servod, a daemon that abstracts the complex hardware interfaces (I2C, UART, SPI, GPIO) of the Servo ecosystem into a unified control plane.
hdctools is transitioning to the Fission architecture. This represents a major modernization effort for the repository, including:
servod communication.servod and its dependencies are now heavily Dockerized for reproducible development, testing, and deployment.local_agent and Docker Orchestrator workflow for scalable Hardware-in-the-Loop (HIL) and labstation testing.servod, ec-3po, power measurement, and specific Servo hardware revisions.This project requires strict adherence to code quality and testing standards.
Always run the test suite before submitting a CL. The testing framework leverages Docker for consistency:
./scripts/run-servod-tests
Check for pylint errors using pre-commit:
pre-commit run pylint --all-files
Commits in this project are pushed to ChromeOS Gerrit. Ensure your commit messages follow the standard formatting and always include a BUG= and TEST= line.
component: concise description of changes Longer explanation of why these changes were made, what bugs they fix, and how the new architecture handles the problem. BUG=b:12345678 TEST=scripts/run-servod-tests and manual validation steps