Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ACK/NACK bytes for SLCAN #9

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

wiboticalex
Copy link

This fixes issue #8 and allows the adapter to work with UAVCAN.

The problem with the original ACK/NACK implementation seemed to be that if the CANable was in the middle of sending data over USB in the main loop and we got an interrupt, the interrupt would stomp over the in progress transfer causing bad things to happen. Moving all USB transfers into the main loop by storing the data in a buffer in interrupt context and polling when that buffer has something to send fixes this issue.

@chemicstry
Copy link

Beware that this firmware still has major frame loss issues. Fetching a long list of UAVCAN parameters fails atleast 25% of the time and with heavy bus load it is more like 90% failure. I tried fixing it by implementing fifo can rx buffer through interrupts but it did not solve the issue, maybe packets are lost during usb transmit. Either way this firmware is unusable with uavcan at current state.

The alternative https://github.com/HubertD/candleLight_fw firmware works perfectly, but it is linux socketcan only.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants