OxCC logo

OxCC

Free

A port of Open Source Car Control written in Rust

FreeFree tier
Type
Open Source

About OxCC

OxCC is a port of Open Source Car Control (OSCC) written in Rust, designed for the NUCLEO-F767ZI board (STM32F767ZI). It consolidates all OSCC modules—throttle, brake, steering, and CAN gateway—into a single firmware application. Built on the embedded-hal traits and patterns, OxCC leverages the on-chip bxCAN controller and an external CAN transceiver (e.g., SN65HVD230) for vehicle communication. The project targets autonomous driving and vehicle control experimentation, with configurations available for specific vehicles like the Kia Soul EV. Development requires Rust nightly, svd2rust, OpenOCD, and arm-none-eabi toolchain, with deployment via st-flash. The project is open source under Apache-2.0 or MIT license, currently featuring a rough pinout and evolving hardware layout.

Key Features

Port of Open Source Car Control (OSCC) written in Rust
Runs on NUCLEO-F767ZI (STM32F767ZI) board
Combines all OSCC modules (throttle, brake, steering, CAN gateway) into a single application
Built around embedded-hal traits and patterns
Uses on-chip bxCAN controller with external CAN transceiver support (e.g., SN65HVD230)
Configurable for Kia Soul EV vehicle with panic-over-abort strategy
Open source dual-licensed under Apache-2.0 or MIT
Requires Rust nightly and standard embedded development toolchain

Pros & Cons

Pros
  • Written in safe Rust, leveraging memory safety and concurrency guarantees
  • Portable design via embedded-hal traits, simplifying hardware abstraction
  • Open source under permissive dual license (Apache-2.0 / MIT)
  • Consolidates multiple OSCC modules into a single firmware, reducing complexity
  • Targets affordable and widely available STM32F767ZI development board
Cons
  • Requires Rust nightly compiler, limiting stability and compatibility
  • Only supports NUCLEO-F767ZI board; no official support for other STM32 variants
  • Hardware layout and pinout documentation are still in progress ('rough pinout')
  • External CAN transceiver needed (e.g., SN65HVD230), not included in board
  • No pre-built binaries; users must build from source with specific toolchain

Best For

Autonomous driving research and prototypingVehicle control system experimentation (throttle, brake, steering, CAN)Educational project for embedded Rust and automotive CAN bus developmentReplacement/extension of original OSCC firmware in a Rust environment

FAQ

What board does OxCC run on?
OxCC runs on the NUCLEO-F767ZI board featuring the STM32F767ZI microcontroller.
What are the main system dependencies?
Dependencies include Rust nightly, svd2rust, OpenOCD, gdb-arm-none-eabi, binutils-arm-none-eabi, and stlink for deployment.
How is OxCC licensed?
OxCC is dual-licensed under Apache License, Version 2.0 or the MIT license, at your option.
Does OxCC include all OSCC modules?
Yes, it combines throttle, brake, steering, and CAN gateway modules into a single application.
Is OxCC ready for production vehicles?
No, OxCC is an experimental project aimed at research and development. Hardware documentation is still in progress, and it should not be used on public roads.