Car makers can develop software in-house, independent of the actual hardware it will run on. They can use their own fleet management and over-the-air (OTA) cloud infrastructure to deploy apps to a fleet of prototypes or end products. Each of those apps defines a vehicle function that is run and encapsulated by our
veecle operating system called NoS. It controls the rest of the car using our middleware.
Veecle sits between a legacy E/E architecture and modern UI and Cloud frameworks. Veecle abstracts an E/E architecture and provides unified control over it via a modern API. Veecle allows companies to develop “Apps” using unified APIs to interact with in-vehicle functions. An optional front-end framework is provided through Android Automotive support.
On the car side, our software includes NoS, a real-time asynchronous runtime that operates on embedded controllers. It seamlessly interacts with existing Electronic Control Units (ECUs) using popular network protocols like CAN, FlexRay, LIN, Ethernet, and digital I/O. NoS acts as a secure gateway to the vehicle, offering authenticated publish/subscribe access to all data within. It enables over-the-air (OTA) updates for any NoS-based controller and supports OTA pass-through.
NoS simplifies in-vehicle functions by abstracting them, allowing these functionalities to be exposed securely over the network through a comprehensive API. Developers can manually program NoS tasks or automatically generate them from data matrices, such as CAN .dbc files.
- ARM-based MCUs (ST, NXP and Infineon)
- CPUs such as ARM-64 or x64
Note: We are actively working on adding support for Infineon AURIX, and you can follow our progress on GitHub.
Real-time APIs for Seamless Integration with NoS
Nteract is a powerful set of real-time APIs designed to interconnect various tools for development, deployment, data visualization, data storage, and fleet management with one or more NoS instances. It acts as a secure gateway, bridging the connected world with the highly secure in-vehicle domain. These APIs communicate with the vehicle through NoS, enabling domain separation and access control.
Key Features of Nteract:
- Flexible Backend Support: Nteract is designed to support one or more backends, providing the ability to publish and subscribe to data. Currently, we offer support for Android Automotive (AAOS), enabling customers to develop isolated “apps” on AAOS for faster, consumer-grade experiences while minimizing the need for safety-critical embedded code. Additionally, we are actively working on integrating with ROS-2 (Robot Operating System) and REST-like services, with an expected release in Q3 2023.
- Designed to run on infotainment: Nteract is compatible with CPUs such as ARM-64 and x86-64, making it suitable for in-house development. However, the restricted API can also be utilized by end customers, including phone apps, fleet management systems, and more.
tricore-probe is the first debug connector for Infineon TriCore chips. It allows to deploy and debug rust programs with little effort on Tricore chips. It uses publicly available Infineon tools to interface with the chips debug controller. As its name suggests, it is inspired by
probe-run and depends on the
defmt framework to integrate seemlessly just as
Veecle core aspects
Entirely written in Rust
Rust provides very strong code quality guarantees: No dynamic memory allocation or dynamic types. The system is deterministic. Compatibility to community tools: packet managers, IDEs, code analysers etc.
Kernel- and hardware agnostic
The runtime only requires minimal integration: It ships with our in-house developed micro-kernel (usable for non safety critical/real-time). We also support production microkernels like PXROS (in the future also freeRTOS, zephyrOS, QNX)
Rapid and usable
One of our core paradigms is to maximise developer experience, a property often overlooked in embedded programming. Happy developers produce better code. We provide one-liners to update, compile, test, launch and debug: no custom/complicated tools needed. Designed to write, test and deploy hundreds of different event-based tasks.
Async, type-safe and secure by design
Inspired by ROS-2 (middleware) and node.js (runtime), we focus on modern programming paradigms for parallelism (via Rust async*), correct code usage (via Type-states APIs**), system functions (OTA, debugging, management, …) work out of the box in isolated tasks.