Welcome to Embedded Artistry's GitHub repository collection!
If this is your first time coming across us, take a look at our Welcome page.
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.
The embedded-resources repository contains example code and other resources that are referenced in articles on our website.
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.
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
malloc
implementation along with sample RTOS wrappers - compiler-rt - wraps the llvm compiler-rt repository and enables users to use it in meson-based projects.
- 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-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
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.
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.