Skip to content

JeeH - v1.30

There are many different frameworks for microcontrollers: Arduino, CMSIS, Espressif, MBed, STM32Cube, Zephyr, etc. Some cover a single vendor’s platform, others have support for a wide range of µC architectures.

JeeH is a runtime library written to be used alongside a main framework. The main focus is to support all the STM32 µC families, with very limited trial builds for AVRs, ESPs, and Teensy’s.

JeeH is written in modern C++ (C++11 and later), and uses templates (sparingly) to generate very compact and efficient code. Here is a minimal example for a Blue Pill (STM32F103):

#include <jee.h>

PinC<13> led;

int main () {
    enableSysTick();
    led.mode(Pinmode::out);

    while (true) {
        led = !led;
        wait_ms(250);
    }
}

This example compiles to less than 1200 bytes of flash and uses 150 bytes of RAM. Adding a serial port and calling printf will increase that by about 1 kB. There is virtually no overhead, as the C++ compiler is able to optimise the heck out of all this.

JeeH is made for PlatformIO, and can be used by adding lib_deps = JeeH to a project’s platformio.ini file - this wil automatically fetch it from GitHub.

Note

As of 2021, JeeH is work-in-progress. Features get added as I need them. It’s used in a lot of the more recent JeeLabs projects. There is no documentation other than the source code.

For more details, see https://registry.platformio.org/libraries/jcw/JeeH.