👋 Hello!
Welcome to Embedded Artistry's GitHub repository collection!
If this is your first time coming across us, take a look at our Welcome page.
Repository Breakdown
We host a number of repositories, but not all of them are necessarily useful to our visitors - some are forks of repositories we rely on, and others support our development and website infrastructure.
Here's a breakdown of what we think might be interested for our visitors.
embedded-resources
The embedded-resources repository contains example code and other resources that are referenced in articles on our website.
Document Templates
We like to keep our documentation under revision control and in the same repository as our source code. The templates repo contains a number of documentation templates that we use on our projects.
Standard-like Libraries
We provide a number of "standard-like" libraries that can be used on embedded projects (primarily targeted at ARM microcontrollers, which is what we work on). These libraries are not necessarily standard conformant; we focus on including a subset of functionality that is useful in microcontroller development. For a more complete and conformant solution, we recommend picolibc.
- libc
- libcpp (llvm libcxx with modifications)
- libmemory - a memory management library for microcontrollers; provides a freelist
mallocimplementation along with sample RTOS wrappers - compiler-rt - wraps the llvm compiler-rt repository and enables users to use it in meson-based projects.
Reusable Infrastructure
- project-skeleton - The reusable skeleton we use to start new projects using the Meson build system; comes with out-of-the-box support for a number of tools and ensures every project starts with full CI support
- meson-buildsystem - Our reusable Meson build system modules
- cmake-project-skeleton - The reusable skeleton we use to start new projects using the CMake build system; comes with out-of-the-box support for a number of tools and ensures every project starts with full CI support
- cmake-buildsystem - Our reusable CMake build system modules
- cppcheck-rules - A collection of CppCheck rules that we use on our projects
- vale-styleguide - The vale style rules that we use for documentation linting on our projects
- jenkins-pipeline-lib - A collection of Jenkins functions that we use across our projects
Arduino
- arduino-logger - A logging framework for Arduino projects
- arduino-printf - A
printf()implementation for Arduino - athena-bootloader - a bootloader for AVRs that supports firmware updates over Ethernet
- AthenaEEPROM - EEPROM management library associated with the athena-bootloader project
- AthenaEthernetReset - library that will create a server which can be used to remotely reset the device, as well as to remotely enter the athena-bootloader mode so a sketch can be uploaded via TFTP.
- Meson build definitions for ArduinoCore-avr
Embedded Virtual Machine
We maintain two additional GitHub organizations for our Embedded Virtual Machine project. This project aims to demonstate techniques that can be used to improve embedded software development.
Contributor Guidelines
We welcome contributions from the community for all of our projects. If you are interested in contributing, please review the following information:
If you are unfamiliar with open source development, you will want to start with our Open Source Contribution Guide.

