How toyotainfotech/ramn works
RAMN is a miniature automotive CAN/CAN-FD testbed built from programmable ECUs. Its principal workflow is to generate or receive vehicle-network traffic, decode signals and update simulated sensors, actuators, and displays; users can also interact through USB and host-side diagnostic tools. Documented companion workflows include CARLA closed-loop driving, virtual CAN, and ECU bootloading. The sampled firmware shows the main simulation calls and screen dispatch, but not the complete CAN receive/transmit or host-script implementations, so those connections are limited to documented capabilities.
Main entry points: main.c RTOS application · usb_device.c USB composite device · carla CARLA integration · ramn_screen_manager.c Screen manager
Components 21
ECU runtime
- RTOS application
firmware/RAMNV1/Core/Src/main.c - Screen manager
firmware/RAMNV1/Core/Src/ramn_screen_manager.c - Display screens
firmware/RAMNV1/Core/Src - Persistent settings
firmware/RAMNV1/Core/Src/ramn_eeprom.c
Vehicle behavior
- Sensors
firmware/RAMNV1/Core/Src/ramn_sensors.c - Vehicle simulator
firmware/RAMNV1/Core/Src/ramn_simulator.c - Actuators
firmware/RAMNV1/Core/Src/ramn_actuators.c - Custom behavior
firmware/RAMNV1/Core/Src/ramn_customize.c
CAN and diagnostics
- DBC traffic
firmware/RAMNV1/Core/Src/ramn_dbc.c - CAN signal codecs
firmware/RAMNV1/Core/Src/ramn_can_database.c - Diagnostic protocols
firmware/RAMNV1/Core/Src
Device interfaces
- USB composite device
firmware/RAMNV1/USB_CompositeDevice/App/usb_device.c - CDC / serial CLI
firmware/RAMNV1/Core/Src/ramn_cdc.c - gs_usb adapter
firmware/RAMNV1/Core/Src/ramn_gsusb.c
Host tools
- Diagnostic scripts
scripts/diagnostics - Bootloader scripts
scripts/STbootloader - Virtual CAN bridge
scripts/vcand/RAMN_VCAND.py - CARLA integration
scripts/carla
Other components
- User
- CAN/CAN-FD network
- CARLA simulator
Connections 21
- RTOS application → Sensors: updates
- RTOS application → Vehicle simulator: updates
- RTOS application → Actuators: applies controls
- RTOS application → DBC traffic: sends traffic
- RTOS application → Custom behavior: updates
- RTOS application → Screen manager: runs display
- Screen manager → Display screens: dispatches updates
- User → Diagnostic scripts: runs
- Diagnostic scripts → Diagnostic protocols: sends requests
- User → Bootloader scripts: runs
- Bootloader scripts → USB composite device: programs ECU
- User → Virtual CAN bridge: runs
- Virtual CAN bridge → CAN/CAN-FD network: bridges traffic
- User → CARLA integration: runs
- CARLA integration → CARLA simulator: controls vehicle
- CARLA integration → CAN/CAN-FD network: exchanges traffic
- CAN/CAN-FD network → RTOS application: delivers frames
- USB composite device → CDC / serial CLI: routes serial data
- USB composite device → gs_usb adapter: routes CAN data
- gs_usb adapter → CAN/CAN-FD network: transmits frames
- DBC traffic → CAN signal codecs: uses codecs