Skip to main content

Windows CAN simulator and testing tool with GUI and CLI.

Project description

CAN Simulator

A cross-platform CAN (Controller Area Network) message generator with both a GUI and CLI.

This tool is useful for:

  • Testing CAN-based devices
  • Developing CAN parsers
  • Prototyping embedded systems
  • Generating repeatable CAN traffic
  • Teaching or debugging CAN messaging behavior

The simulator provides:

  • Customizable CAN messages
  • Support for extended (29-bit) and standard (11-bit) IDs
  • J1939-style and NMEA-style demo messages
  • Live-editable values (speed, heading, GNSS position, temperatures, etc.)
  • User-defined raw CAN frames
  • Start/Stop message scheduler
  • JSON save/load support for profiles
  • Multiple CAN backends (virtual, socketcan, Kvaser, PCAN, neoVI, etc.)

Features

✔ GUI Mode

  • Real-time editing of GNSS and engine-like values
  • Add, edit, or delete raw CAN frames
  • Enable/disable individual messages
  • Switch between multiple predefined message profiles
  • Save/load full simulator configurations
  • Event log with timestamps

✔ CLI Mode

py -m can_sim.cli --interface virtual --channel vcan0 --profile "GNSS only"

Useful for:

  • Automated testing
  • Headless environments
  • Generating consistent CAN traffic

Installation

pip install PyQt6 python-can

Optional extras:

pip install filelock

Running the GUI

py -m can_sim.gui

Running the CLI

py -m can_sim.cli --interface virtual --channel vcan0

Common CAN backends:

--interface kvaser
--interface pcan
--interface socketcan
--interface virtual
--interface neovi

Project Structure

can_sim/
    bus.py              # CAN bus interface wrapper
    cli.py              # Command-line entrypoint
    engine.py           # Background scheduler and message timing engine
    gui.py              # PyQt GUI interface
    profiles.py         # Demo message profiles and encoders

Roadmap (future versions)

  • Modular GUI (split into components)
  • Multi-frame (fast-packet) NMEA messages
  • J1939 transport protocol (TP.CM/TP.DT)
  • Real-time charts/visualization widgets
  • Multi-channel CAN output
  • Profile editor UI
  • Plugin system for custom message generators

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

win_can_tool-1.0.0.tar.gz (17.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

win_can_tool-1.0.0-py3-none-any.whl (17.9 kB view details)

Uploaded Python 3

File details

Details for the file win_can_tool-1.0.0.tar.gz.

File metadata

  • Download URL: win_can_tool-1.0.0.tar.gz
  • Upload date:
  • Size: 17.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for win_can_tool-1.0.0.tar.gz
Algorithm Hash digest
SHA256 e84523699f173b88790f3ba2f487210b4d54a6ffffe89c78bd199d9b9eb7daac
MD5 baeb5f0b54be3480c5c20a41a8d7276d
BLAKE2b-256 216ad46a5ff452d0b57cc179b365cd25a9a0d47f65019a85f44dfe85f5092cb1

See more details on using hashes here.

File details

Details for the file win_can_tool-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: win_can_tool-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 17.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for win_can_tool-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b646adb6dac77dcda1e4173d176891b11bfbfa5be4ba699d5f3e77933e7a6a94
MD5 be30182bd4069bab25e88699f9b705b4
BLAKE2b-256 38bd5b53e5c476a563ed0508d0ec8f7d0d945d20c946d95232e5208a7cf9b239

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page