arduino / arduino/ArduinoCore-avr
Use communication interface classes from ArduinoCore API
- Dominant language
- C
- Stars
- 1.5k
- Forks
- 1.1k
- PR merge metrics
- No merged PRs in 30d
Description
The **ArduinoCore-API** project implements a standardized API for Arduino cores.
One of the advancements made in **ArduinoCore-API** is the creation of standardized classes for working with common communication interfaces:
- [`HardwareI2C`](https://github.com/arduino/ArduinoCore-API/blob/0f4e57ea193a00163ae59f0f0ff478feae7eb5db/api/HardwareI2C.h)
- [`HardwareSPI`](https://github.com/arduino/ArduinoCore-API/blob/0f4e57ea193a00163ae59f0f0ff478feae7eb5db/api/HardwareSPI.h)
- [`HardwareSerial`](https://github.com/arduino/ArduinoCore-API/blob/0f4e57ea193a00163ae59f0f0ff478feae7eb5db/api/HardwareSerial.h)
That advancement has not been ported to this platform's core. The `TwoWire` and `SPI` classes in this platform instead only inherit from the core's `Stream` class.
Please update this platform's core (and bundled SPI and Wire libraries) to use these standardized classes.
This will help with the standardization of function names. Changing the inheritance should not break anything.
### Additional context
#### Related
- https://github.com/arduino/ArduinoCore-avr/pull/329
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by comparing the core's TwoWire and SPI classes and the bundled SPI and Wire libraries with the referenced ArduinoCore-API HardwareI2C.h and HardwareSPI.h classes. Review the related pull request #329 before changing anything. Done means the core and bundled libraries use the standardized communication interface classes without breaking existing behavior.
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
- 25/100