Making Hardware Simple.

The Problem

Robotic systems are fragmented.

MAIN COMPUTE Linux · ROS node vendor tool async IMU / SNS I²C 400 kHz CAMERAS USB3 · GbE POWER SYS Ethernet MOTOR CTRL CAN · UART BATTERY / BMS isolated CAN ACTUATORS mixed drivers EMB. MCU SPI slave BRIDGE USB-CAN ADAPTER USB-CAN CONV DC-DC duplicate IF 200 Hz bridge no DC sync custom firmware vendor tool 1 kHz BUS KEY CAN SPI I²C UART USB Eth MAIN COMPUTE Linux · ROS node vendor tool async BRIDGE USB-CAN ADAPTER USB-CAN IMU / SNS I²C 400 kHz CAMERAS USB3 · GbE POWER SYS Ethernet MOTOR CTRL CAN · UART BATTERY / BMS isolated CAN ACTUATORS mixed drivers no DC sync 200 Hz 1 kHz bridge vendor tool
Typical integration · many buses, ad hoc bridges, no shared timing.

the solution

co:systemone stack for the whole robot.

A unified EtherCAT architecture, a centralized real-time control API and modular hardware designed to snap together. Build and iterate at software speed.

Unified architecture

One bus. One clock. One API. From the ADC of a sensor to the developer's function call.

Centralized real-time control

Deterministic sub-millisecond loops running on real-time Linux, coordinating every device.

Modular hardware

co:motion, co:power, co:sense and co:battery. Modules engineered to compose.


products

Hardware that composes.

Motion, power, sensing and batteries. Designed to snap together into a complete robot, or to drop into yours.

Products

co:system

Full stack, one API.

python
import cosystem as cs

# Initialize slaves
cs.scan_network()

# Get slaves
imu = cs.get_slave(SlaveId.IMU)
camera_motor = cs.get_slave(SlaveId.CAMERA_MOTOR)
wheels = cs.motion.get_controllers(SlaveId.WHEEL_MOTORS)
camera_motor.kp = 10.0
wheels.mode = cs.motion.MotionMode.VELOCITY

# Different ways to control motors via the API
camera_motor.angle = pi / 4
wheels.control_vel([1.0, 1.0, 1.0, 1.0])

# Print some real time data
print("IMU Orientation:", imu.euler)
print("DC/DC Regulator Voltage:", cs.power.get_regulator(id=0).voltage)
co:system · stacktop → bottom
  • Developer API
    C++ core · Python bindings · logging
  • Real-time control loop
    Deterministic · low-jitter · sub-ms
  • EtherCAT master
    Topology · sync · distributed clocks
  • Devices
    co:motion · co:power · co:sense
bus
EtherCAT · 100 Mb/s
loop
1 kHz typ. · jitter < 20 µs
sync
Distributed clocks · hw-timestamped

A coprod engineer working through field-oriented control equations and EtherCAT register maps on a whiteboard

simulation

Drive co:dodo in your browser.

The same trained policies that run on the real robot, stepping real physics in your tab. MuJoCo compiled to WebAssembly, ONNX inference at 50 Hz. No install, no backend.

runs entirely in this tab · no backend Full screen


how we work

Ten values.

Go to values
early adopters

Build robots like software systems.

We work with teams building real robots. Tell us what you're building.