Projects
Open Source Software
Maintainer
Simple Management Protocol (SMP)
SMP is widely used by embedded systems firmware to provide secure device firmware update (DFU) for MCUBoot.
smp
https://github.com/JPhutchins/smp
Python de/serialization of the Simple Management Protocol.
smpclient
https://github.com/intercreate/smpclient
Python transport layers for the Simple Management Protocol.
smpmgr
https://github.com/intercreate/smpmgr
Windows, macOS, & Linux CLI tool for interacting with embedded systems firmware and performing remote firmware updates "Over the Air" (OTA).
envr
https://github.com/JPHutchins/envr
envr is a self-contained zero-dependency cross-platform script that facilitates specification of environment variables, aliases, and additions to the system PATH.
envr unifies the command line development interface for [Windows, macOS, Linux] * [bash, zsh, powershell].
In a nutshell, your development environments and build systems won't need to maintain separate documentation or scripts for different OS and shells. For example, instead of providing separate instructions to Windows and Linux users for Python venv activation, all users would be directed to activate the environment with envr, which has the same syntax across all supported OS and shell combinations.
Test CMake
https://github.com/intercreate/test-cmake
test_cmake is a unit test framework for CMake projects. That is, it test CMake scripts themselves. Intercreate CMake has an example test suite that runs in GitHub workflows in order to prevent regressions in the CMake scripting.
Intecreate CMake
https://github.com/intercreate/ic-cmake
This CMake package adds build system metadata as both CMake variables and #defines. These are used to package well-named firmware release bundles for distribution.
Intercreate Macros
https://github.com/intercreate/ic-macros
The <ic_macros.h> header is mostly a repackaging of the utility C preprocessor macros found in Zephyr, which in turn tend to come from the Linux Kernel.
The Intercreate Macros project implements:
compatibility with any development environment (e.g. no dependency on Zephyr)
full cross-platform and cross-compiler test coverage
macros are single evaluation by default default
"safe" type casting macros 🤷♀️
comprehensive compile-time operations and assertions
Intercreate Macro Magic
https://github.com/intercreate/ic-macro-magic
Disclaimer: Ideologically, I no longer support attempts to improve C via the preprocessor and instead believe that all effort should go into replacing C entirely. However, some projects are "gonna be C" - still, meta programming like this should be used with extreme care!
The <ic_macro_magic.h> header contains many macros some some consider to be unnatural. It repackages uSHET/cpp_magic.h as well as the Zephyr macro loops and adds unit test coverage.
Required reading: http://jhnet.co.uk/articles/cpp_magic

