adafruit / adafruit/Adafruit_Arduino_Boards

Bundled Wire library is outdated relative to upstream Arduino core

Open
#20 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.