Open Automotive Controller
A 32-pin automotive controller with open hardware and firmware. Two CAN FD buses, two LIN, twelve analog inputs and six protected outputs on an Arm Cortex-M7 running TockOS, reprogrammable in the vehicle over CAN.
Overview
Automotive controllers have always been closed: closed hardware, closed software, closed ecosystems. You buy what's available, work within what's supported, and hope the vendor's roadmap matches yours.
Chameleon is open by design. It's built from automotive-qualified parts and runs TockOS, an embedded operating system written in Rust, where each application is isolated from the others and from the kernel by the processor's memory protection.
Rust isn't common in vehicles yet. That's what the name is about: Chameleon fits into an environment where it isn't expected, and the same board can take on different jobs, such as CAN gateway, data logger or output controller, depending on the applications loaded onto it.
The housing is a standard 32-pin automotive enclosure, so there's no custom tooling. The schematic and design files will be published. Build it, modify it, learn from it.
Hardware
Dashed lines are enable paths: ignition, the MCU's self-hold and CAN0 bus wake turn on the 5 V supply; the window watchdog controls the 3.3 V supply and the MCU reset. The protected battery rail feeds both converters, the sensor supply, the high-side switch and the transceivers.
32-Pin Connector · Functional Layout
Molex 0643340100. Columns A–F are low-current terminals, G–H high-current. Hover or tab to a pin for its signal.
Design Notes
Firmware
Chameleon runs TockOS. The kernel is written in Rust; applications can be written in Rust or C and are loaded separately from the kernel. Each one runs in its own memory region enforced by the Cortex-M7's memory protection unit, and several applications can share the CAN buses at once.
Everything can be updated from the vehicle's CAN bus with standard UDS diagnostic services, so the enclosure stays closed. Measured on the development board, CAN FD transfers write flash at about 59 KB/s.
Specifications