I’ve been building CanKit, a small, unified C# API for CAN bus.
But instead of asking you to read an API first, here’s something you can run right now:
🧪 A ready-to-run CAN listener/sender
- Connect to different devices/backends (Support PCan-Basic, Kvaser Canlib, ZlgCan, SocketCAN. And need install drivers first)
- Send & receive frames
- Set ID filters (if hardware not support will use software filter)
- Flip between CAN 2.0 and CAN FD where supported
🔍 capability discovery
Before opening a channel, query what the device supports (e.g., CAN FD availability, filter capabilities).
This reduces guesswork and speeds up bring-up.
✅ CI-friendly: fake backend
Hardware-less pipelines are real: the fake backend lets us run CI tests and examples without a CAN dongle attached.
If you’re evaluating CanKit in your own project, you can use this backend for your tests too.
🧩 What is CanKit?
CanKit is a C# library aiming to smooth over vendor differences so your app code stays portable.
It’s 0.3.2 and iterating quickly—expect changes while we stabilize the API with community feedback.
🗂️ Help fill the compatibility matrix (testers wanted!)
Have a CAN device? Please:
- Run the demo
- Share device model, backend, OS, bit rate, CAN 2.0 / FD, and whether filters worked
- Include a short log or open an issue/PR
Even a quick “works on @ 250 kbps” is valuable.
Links