OSS Tanbou

ArduinoCore-API — the hardware-independent API layer shared by Arduino cores

About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
306
Primary language
C++
License
LGPL-2.1
Repository last updated
Oct 12, 2025

Overview

ArduinoCore-API separates the official Arduino API from hardware-specific implementations. It centralizes common headers, API contracts, and hardware-independent implementations such as String so platform cores can share behavior instead of duplicating it.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Share the Arduino API contract across hardware cores

Platform-independent headers define common behavior while individual cores implement hardware-specific GPIO, timers, and related facilities.

Sources: [2]

Propagate shared implementation fixes across cores

Keeping common implementations in one layer means fixes and features can flow to all cores that consume ArduinoCore-API.

Sources: [2]

For developing Arduino-compatible cores and maintaining API consistency

Core maintainers can implement new hardware while preserving compatibility with the common Arduino programming model.

Sources: [2][4]

It is not an end-user library or complete hardware core

The README explicitly says the repository is not directly usable by final users. Typical Arduino users install platform cores through Boards Manager instead.

Sources: [2]

Official sources

  1. [1]arduino/ArduinoCore-API repository(2026-09-20)
  2. [2]ArduinoCore-API README(2026-09-20)
  3. [3]ArduinoCore-API LGPL-2.1 license(2026-09-20)
  4. [4]Arduino Language Reference(2026-09-20)
Supplemental curator note

This repository is not an installable Arduino core for end users. It defines the shared API layer consumed and implemented by platform-specific cores such as megaAVR, mbed, SAMD, and Renesas, as the README explicitly notes.

Try it in 3 steps

  1. 1

    Clone ArduinoCore-API

    Fetch the hardware-independent API layer rather than a board-specific Arduino core.

    git clone https://github.com/arduino/ArduinoCore-API.git && cd ArduinoCore-API
  2. 2

    Configure host-based unit tests

    Follow the README flow to configure tests that do not require a development board.

    cd test && mkdir -p build && cd build && cmake ..
  3. 3

    Build and run the test suite

    Use mock implementations to exercise the shared Arduino core API on the host.

    make && bin/test-ArduinoCore-API
Check the official README

Growth

Growth trends · Last 30 days

306 Stars

Trend data is still being collected.

Development activity

Last 90 days · weekly

Commits (last 30 days)
0
Open PRs
45
Issues opened
0
Issues closed
0
PRs opened
7
PRs merged
0

Issues

0 / 0

Jun 23Sep 20
Issues openedIssues closed

Pull requests

7 / 0

Jun 23Sep 20
PRs openedPRs merged

Maintenance

Median first response
Not specified
Issue response rate
No eligible issues

Based on up to the 100 newest issues opened by external users in the last 90 days. A first comment from an OWNER, MEMBER, or COLLABORATOR counts as a response; issues whose full comment history cannot be checked are excluded. The median and response rate update weekly.

Built with

Categories and tags

GitHub data

GitHub dataView detailed GitHub data

GitHub Topics

  • api
  • arduino
Stars
306
Forks
150
Watchers
37
Open issues
102
Contributors
37
Primary language
C++
License
LGPL-2.1
Repository last updated
Oct 12, 2025
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.