Arduino Language The Arduino Language is the de-facto standard for embedded programming on hundreds of architectures and hardware platforms. It is a domain-specific language implemented using a subset of the C++ syntax which makes it abstract enough to be ported to any other programming language. The aim is to provide a full abstraction API over the lower level calls required by the various platforms, standardizing the coding experience and promoting reusable content and examples that can be ported easily on any hardware. The Arduino Language includes: the core API, i.e. a set of built-in classes, functions and constants that all platform-specific implementations shall provide see the sources here) the official libraries whose goal is to provide abstractions over the most used concepts, devices and data types How to contribute ❇️ Join the discussion on the evolution of the language! Inspect the existing official and third-party Arduino cores to spot inconsistencies or APIs that should be considered for standardization Inspect the existing official and third-party Arduino libraries to spot opportunities to make them more portable by extending the Arduino language over concepts that were not standardized yet Help us improving the language reference Help us improving the unit testing coverage of the core API and the official libraries See also Sketch specification Coding style guide Credits This project is maintained by the Arduino team with the help of the community. Please consider buying original Arduino boards which is the best way to make sure our effort can continue in the long term for the benefit of the entire ecosystem that relies on the Arduino language and framework.