adafruit / adafruit/Adafruit_Arduino_Boards
Bundled Wire library is outdated relative to upstream Arduino core
- Dominant language
- C
- Stars
- 52
- Forks
- 35
- PR merge metrics
- No merged PRs in 30d
Description
The Wire library bundled in [adafruit-avr-1.4.15.tar.bz2](https://adafruit.github.io/arduino-board-index/boards/adafruit-avr-1.4.15.tar.bz2) that’s sourced in [this repository](https://github.com/adafruit/Adafruit_Arduino_Boards/tree/master/libraries/Wire) is outdated relative to the [upstream Arduino core](https://github.com/arduino/ArduinoCore-avr/tree/master/libraries/Wire). This is a problem because, although the Adafruit AVR core delegates most things to the upstream Arduino core, the outdated Adafruit copy of the Wire library shadows the upstream’s, rendering upstream improvements invisible when targeting an Adafruit board. For example, the timeout-oriented additions from upstream aren’t available when targeting an Adafruit board. The upstream code has also received numerous bugfixes since the Adafruit fork was established.
The Adafruit Wire fork was created at c43723032711b8608980597f52042b1c27b445ba (2016-01-15) to add ATtiny support according to the Wire interface presumably absent from upstream. This appears to have been forked from [arduino/ArduinoCore-avr `da5830c4bf62`](https://github.com/arduino/ArduinoCore-avr/tree/da5830c4bf62ba69508f1048bf969635d8c7d2d8/libraries/Wire) (2015-03-26). [Quite a number of changes](https://github.com/arduino/ArduinoCore-avr/commits/master/libraries/Wire) have been made to upstream Wire since then, but aside from [arduino/ArduinoCore-avr `eab6601ebc4ff`](https://github.com/arduino/ArduinoCore-avr/commit/eab6601ebc4ff975086fe9a69a816f550b22b8f0) of 2015-08-25 and [arduino/ArduinoCore-avr `7b2f6fc02881`](https://github.com/arduino/ArduinoCore-avr/commit/7b2f6fc02881ec6a01a3b1d4ae248202232c4c6c) of 2016-03-09 (both at 7157b88f4a683aa069d877b217f96c1063df01aa, 2021-11-25), it doesn’t look like any of the improvements have been brought to the Adafruit fork.
Can the local forked copy of the Wire library be synced with the updated upstream version, and ideally be kept up to date with the upstream over time?
Contributor guide
No contributing guide indexed for this repository
Research direction
Compare libraries/Wire in this repository with the linked upstream ArduinoCore-avr libraries/Wire history, starting from the Adafruit fork commit and the two noted upstream commits. Determine which upstream changes can be synchronized while retaining the fork’s ATtiny support. Done means the local Wire copy reflects the relevant upstream fixes and timeout additions without losing Adafruit board compatibility.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- embedded-iot
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100