arduino / arduino/ArduinoCore-avr

Use communication interface classes from ArduinoCore API

Open
#580 0 comments 0 reactions 0 assignees Claimed by @giulcioffi View on GitHub
enhancement
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.