Add support for the more efficient ElmüSoft Candlelight Protocol
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 30/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Active
- Tech stack
- python
- Domain
- networking
Research direction
Start with the linked detailed project description and the Python demo in the ElmüSoft Candlelight 2.5 firmware repository to understand the protocol and its required functionality. Then review python-can's existing Candlelight support and determine the integration entry points. Done means python-can supports the new protocol's USB transfer and feedback features without losing legacy support.
Written by the indexing model from the issue text.
Description
Hello
The legacy Candlelight protocol from Geschwister Schneider has not been designed very well.
It has several design errors.
The transfer over USB is far from optimal. For each CAN FD packet 80 bytes are transferred over USB no matter how many data bytes the CAN packet has.
There is no useful error feedback and there is no feedback if a Tx packet has been acknowledged on CAN bus.
The legacy Candlelight protocol only sends a FAKE echo back to the host computer, even if the Tx packet has never been sent to CAN bus.
You have a big problem to find out WHY CAN bus does not work without a useful feedback.
Therefore I designed the new ElmüSoft Candlelight 2.5 protocol with lots of improvements, lots of new features and the maximum USB transfer speed that is possible.
I wrote a Python demo application that contains ready-to-use classes that can be copied and pasted into any Python project. They could also be integrated into python-can.
The firmware runs on several CAN bus adapters with STM32G431, STM32G473 and STM32G0B1 processors.
The Python classes were tested on Windows where they use WinUSB and on Linux where they use libusb.
Here you find a detailed description of the entire project:
https://netcult.ch/elmue/CANable%20Firmware%20Update/
The sourcecode is on Github:
https://github.com/Elmue/CANable-2.5-firmware-Slcan-and-Candlelight
The Python demo shows all the functionality of the new firmware:
And here a snippet of my manual with comparison between legacy and ElmüSoft Candlelight protocol in my firmware:
- Dominant language
- Python
- Stars
- 1.6k
- Forks
- 697
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from hardbyte/python-can
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 78/100
hardbyte/python-can#2077 · 1 comment · 1 reaction ·
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 68/100
hardbyte/python-can#1922 · 1 reaction ·
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 68/100
hardbyte/python-can#2092 ·
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 68/100
hardbyte/python-can#2091 ·
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 72/100
hardbyte/python-can#2083 ·
All issues in hardbyte/python-can
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100