Skip to main content

python-can backend for Waveshare 2-CH-CAN-TO-ETH (13-byte TCP wire format over TCP)

Project description

CI PyPI version PyPI - Python Version

can-waveshare

python-can backend for the Waveshare 2-CH-CAN-TO-ETH bridge that uses a fixed 13‑byte TCP wire format. Works with python -m can.viewer/logger/player and plain can.Bus(...).

Transport: TCP server on the device (e.g., :20001 for CAN1, :20002 for CAN2).
Frames: 13 bytes: [flags/dlc][id:4][data:0..8 padded]

References

Install

pip install can-waveshare
# or from source (editable):
pip install -e .[dev]

Use with CLI

# Most portable: pass channel as host:port
python -m can.viewer -i waveshare -c 172.31.11.67:20001

# Or forward kwargs directly to the bus:
python -m can.viewer -i waveshare --bus-kwargs host=172.31.11.67 port=20001

Config via ~/.canrc

The stock CLIs read only the [default] section. Put this in ~/.canrc:

[default]
interface = waveshare
channel   = 172.31.11.67:20001

Then:

python -m can.viewer

If you want multiple profiles, either (a) swap rc files or (b) write a tiny launcher in code and use Bus(config_context="waveshare2") to select other sections.

Use in code

import can

# explicit kwargs:
with can.Bus(interface="waveshare", host="172.31.11.67", port=20001) as bus:
    bus.send(can.Message(arbitration_id=0x123, data=b"\x11\x22\x33", is_extended_id=False))
    print(bus.recv(1.0))

# or via channel (parses host:port, tcp://host:port, [ipv6]:port, or aliases can1/can2):
with can.Bus(interface="waveshare", channel="172.31.11.67:20001") as bus:
    print(bus.recv(1.0))

Features & Notes

  • CAN 2.0 (0..8 data bytes). CAN‑FD not supported by Waveshare wire format.
  • Software filters (can_filters) supported in the backend.
  • Best‑effort own‑echo suppression when receive_own_messages=False (default). Set True to see echoes.
  • Periodic TX via bus.send_periodic(...) works (python-can broadcast manager calls send() repeatedly).

License

Apache 2.0

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

can_waveshare-0.1.0.tar.gz (15.7 kB view details)

Uploaded Source

Built Distribution

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

can_waveshare-0.1.0-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file can_waveshare-0.1.0.tar.gz.

File metadata

  • Download URL: can_waveshare-0.1.0.tar.gz
  • Upload date:
  • Size: 15.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for can_waveshare-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a7f6681dce187bbaeea67b31cce0e32e74a1dac8198994d4b4fdda383eda80a6
MD5 c9a887e2ecf2122b2538a7cb2c253905
BLAKE2b-256 21faf5f6bc3b1ef2f02aeeb5af31c4f193d98c2e0f6e2e28acc5dd3e10d4076e

See more details on using hashes here.

Provenance

The following attestation bundles were made for can_waveshare-0.1.0.tar.gz:

Publisher: ci.yml on kstaniek/python-can-waveshare-eth

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file can_waveshare-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: can_waveshare-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for can_waveshare-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 039033b1cb9d9631198dddd4af860a0c1e3ede4fdc444c41b1adfe5dc9447548
MD5 f05fd7224922545f877a8e8464da34db
BLAKE2b-256 dfab239a5c1514c0a3541f64f671c60a09b05baa191ee92f1347ece6916c26f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for can_waveshare-0.1.0-py3-none-any.whl:

Publisher: ci.yml on kstaniek/python-can-waveshare-eth

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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