arduino / arduino/ArduinoCore-samd

Timeout on SERCOM I2C functions

Open
#621 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
C
Stars
502
Forks
740
PR merge metrics
No merged PRs in 30d

Description

We are currently testing a timeout implementation (without timer/interrupts) for the SERCOM I2C functions, because we saw that the SAMD21 can freeze on communication errors or hardware problems. The implementation also fixes the recursion problem in `startTransmissionWIRE()`.

Changes: https://github.com/awatterott/ArduinoCore-samd/commit/64b6fca042eb2d72834af3c8e37ea9bf353ccfc3

Contributor guide

No contributing guide indexed for this repository

Research direction

Review the linked commit and trace the SERCOM I2C functions, especially startTransmissionWIRE(). Compare the timeout behavior with the existing communication-error paths and verify that hardware or bus failures no longer freeze communication and that the recursion problem is resolved.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
embedded-iot
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.