Skip to content
View Vanderhell's full-sized avatar

Block or report Vanderhell

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Vanderhell/README.md

Hi, I'm Vanderhell πŸ‘‹

I build industrial software, embedded firmware tools, and small deterministic engines for systems that have to keep working when conditions are not ideal.

LOX means Liquid Oxygen β€” the brand name I use for my embedded and systems projects. For me, it stands for concentrated engineering: compact code, high pressure, clear contracts, and behavior that can be tested instead of guessed.

My work is focused on practical C/C#/C++ tooling for production, diagnostics, firmware reliability, industrial communication, data acquisition, and edge systems. The common thread is simple: build tools that are small enough to understand, strict enough to trust, and useful outside of demos.

My usual design bias:

  • deterministic behavior
  • small integration surface
  • clear failure modes
  • zero or minimal dependencies
  • caller-owned state where possible
  • tests before claims
  • real-world tooling over showcase code

Collaboration

I am looking for people who can test, break, review, and validate embedded C projects on real hardware.

Useful feedback areas:

  • embedded C testing
  • MCU and board-level validation
  • storage and power-loss testing
  • reliability and diagnostics
  • industrial and edge use cases
  • examples, integration feedback, and documentation review

If you work with firmware, MCU platforms, RTOS/bare-metal systems, industrial devices, or constrained edge systems, I am interested in practical feedback β€” especially reports that include hardware, configuration, failure cases, and test evidence.


Main projects

πŸ—„οΈ loxdb β€” Deterministic embedded database for MCU/edge systems

loxdb is a compact C99 embedded database for firmware, dataloggers, controllers, and small edge runtimes.

It is built for cases where a full SQL database is too heavy, but raw files, ad-hoc structs, or fragile flash layouts are not enough.

loxdb combines three storage models behind one API surface:

  • KV storage for configuration, cache entries, and TTL-backed state
  • Time-series storage for sensor samples, counters, and rolling telemetry
  • Fixed-schema relational tables for small indexed structured records

Core design:

  • one allocation at lox_init()
  • fixed RAM budgeting
  • zero external dependencies
  • RAM-only or storage-backed operation
  • optional WAL-backed persistence and recovery
  • embedded-first storage HAL
  • predictable behavior under constrained memory

loxdb is not a tiny SQLite clone. SQLite is excellent, but it targets a different operating point. loxdb is intentionally narrower: deterministic storage for constrained firmware where predictable memory, small API surface, and recoverable writes matter more than SQL features.

License: MIT open-source core.
Commercial extension: loxdb_pro_docs contains public API-level documentation for the planned/commercial PRO module set.


🧩 loxdb_pro β€” Commercial production modules around loxdb core

loxdb_pro_docs documents the public integration-facing API for the commercial loxdb_pro layer.

The PRO layer is intended for embedded products that need more than local storage. It adds the production-facing pieces around the core database: validation, integrity checks, policy gates, observability, migration, transport, recovery planning, and host tooling.

Planned/module areas include:

  • security and integrity
  • runtime safety validation
  • metrics, logging, monitoring, and alerting
  • policy gates, quotas, retention, and scheduling
  • backup and schema migration
  • replication and transport framing
  • OTA planning and rollback hooks
  • CLI tooling
  • optional SD card and NAND/FTL adapters

The public repository intentionally contains documentation only. The implementation and proprietary validation procedures are not published there.


πŸ›‘οΈ loxguard β€” Guard Blocks for embedded C firmware

loxguard is a lightweight C99 guard-runtime for embedded C.

It introduces Guard Blocks and Checked Guard Blocks: explicit execution boundaries around risky firmware paths such as parsers, protocol handlers, optional modules, recovery-sensitive routines, and code that should never fail silently.

Instead of only failing with an assert or watchdog reset, loxguard turns unsafe execution states into structured runtime evidence:

  • lifecycle events
  • policy decisions
  • blackbox records
  • reports
  • CSV/KV import-export paths
  • optional persistence and ecosystem adapters

Current scope includes checked span/arena primitives, Guard Block lifecycle tracking, failure reporting, policy decisions, local blackbox evidence, and host-tested integration paths.

loxguard does not claim full memory safety for arbitrary C code and is not a safety-certified framework. Its value is narrower and practical: make risky execution paths easier to detect, record, inspect, and react to in small embedded C systems.


🚨 loxalarm β€” Deterministic alarm-state core for embedded firmware

loxalarm is a small, heap-free C99 alarm state-machine core for embedded firmware.

It models the lifecycle of one process alarm condition with behavior that is usually scattered across application code, HMI logic, PLC glue, or vendor-specific runtime layers.

It includes:

  • on-delay and off-delay handling
  • latching and acknowledge flow
  • shelving for maintenance or temporary suppression
  • reason flags and transition visibility
  • snapshot/restore support for caller-owned persistence

loxalarm is designed for firmware that needs PLC-style alarm semantics without depending on a PLC vendor stack, HMI runtime, operating system, network protocol, or dynamic memory.

It is not a safety-certified alarm system, historian, HMI, or OPC UA/MQTT/Modbus binding. Its value is narrower: a deterministic runtime alarm object that higher-level firmware, diagnostics, logging, persistence, or UI layers can consume.

License: MIT.


πŸ” loxseq β€” Power-loss-aware step sequencer for embedded C firmware

loxseq is a small, heap-free C99 step sequencer for firmware workflows that must survive reset, brownout, watchdog recovery, or power loss.

It checkpoints step progress to caller-provided storage and computes a recovery verdict on reboot, so firmware does not have to blindly restart a physical process from the beginning.

Core ideas:

  • CRC-protected persistent checkpoint record
  • per-step resume policy
  • conservative recovery downgrades
  • tick-driven execution using caller-provided now_ms
  • caller-owned state
  • no heap, globals, or floating point
  • optional branching via loxseq_set_next_step and LOXSEQ_STEP_BRANCH

Typical use cases include fill/heat/drain sequences, calibration flows, provisioning, controlled shutdown/startup flows, and multi-step maintenance procedures.

loxseq is not an RTOS scheduler, workflow language, database, or general task engine. Its value is narrower: deterministic step execution with explicit reboot recovery semantics.

License: MIT.


πŸ” loxperm β€” Permissive / interlock evaluator for embedded firmware

loxperm is a small, heap-free C99 single-header library for evaluating permissives and interlocks.

It gives firmware a deterministic answer to a simple but important question: is this action allowed to start, and is it still allowed to continue?

Core features:

  • explainable deny mask
  • first-out detection
  • qualifier times for conditions that must remain true for a duration
  • optional latching
  • maintenance bypass support
  • caller-owned state
  • no heap, no floating point, and no hidden mutable runtime state

Typical use cases include pump starts, valve movement, actuator enable gates, machine interlocks, maintenance overrides, and process-control diagnostics where the firmware must explain exactly why an operation is blocked.

loxperm is not a safety-certified interlock system or PLC replacement. Its value is narrower: deterministic, explainable permission logic for embedded C firmware.

License: MIT.


🧬 loxc β€” Trainable C99 text codec for domain-specific payloads

loxc is an experimental trainable text codec written in C99.

It is designed for cases where the developer already knows the shape of the transmitted or stored text: MQTT payloads, telemetry messages, logs, JSON-like records, protocol text, or repetitive domain-specific data.

Instead of trying to be a universal compressor, loxc lets you train a codec table from representative sample data, export that table, transfer it, and load it later in an application, tool, or embedded runtime.

Core ideas:

  • frequency-based symbol selection
  • matrix-based symbol layout
  • nested submatrices for less frequent data
  • binary encoded output
  • trained lookup tables
  • predictable table-driven decoding
  • small C99 integration surface

loxc is not intended to compete with gzip, zstd, brotli, or lz4. Those are mature general-purpose compression systems.

The value of loxc is narrower: provide a small trainable codec option for developers who know their data and want a compact table-driven encoding path for specific text payloads.

It is not encryption and not a universal archive format.


⏱️ loxbudget β€” Deterministic admission control for embedded operations

loxbudget is a small, heap-free C99 library that decides whether an embedded operation should run β€” and at what level β€” based on configurable resource budgets, rate windows, and optional calibration.

It works as a deterministic pre-flight gate in front of risky firmware work: MQTT publish, OTA update, flash write, log burst, debug dump, parser invocation, queue allocation, or any operation that must be degraded, delayed, rejected, or allowed under pressure.

Core design:

  • deterministic check / enter / leave decisions per operation profile
  • no heap, no floats, no global mutable state
  • caller-owned storage
  • optional audit ring buffer for recent decisions
  • optional rate windows and lifetime limits
  • optional calibration and diagnostic strings
  • single-header amalgamated distribution option
  • stable public API starting at v1.0.0 (semver)

Typical use cases:

  • prevent MQTT storms from exhausting queue slots
  • block OTA when voltage or flash budget is unsafe
  • degrade logging under memory pressure
  • reject non-critical work during survival mode
  • enforce flash-write lifetime budgets

loxbudget is not a scheduler, allocator, watchdog, logger, profiler, or RTOS replacement. Its value is narrower: an admission-control layer that gives firmware a deterministic answer to "may this operation run right now, and how?".

License: MIT.


Project map

Project Description Tech
loxdb Deterministic embedded database for constrained systems and microcontrollers. KV, time-series, and fixed-schema relational tables behind one C99 API. C99
loxdb_pro_docs Public API-level documentation for the commercial loxdb_pro module set. Docs / C API contracts
loxguard Embedded C guard-runtime for supervised execution boundaries, failure events, policy decisions, and blackbox evidence. C99
loxalarm Deterministic alarm-state core for embedded firmware. Handles on/off delays, latching, acknowledge flow, shelving, reason flags, and snapshot/restore support. C99
loxseq Power-loss-aware step sequencer for embedded firmware. Provides checkpointed step progress and reboot recovery/resume policy per step. C99
loxperm Heap-free permissive/interlock evaluator with explainable deny mask, first-out detection, qualifier times, latching, and maintenance bypass. C99
loxc Experimental trainable C99 text codec for domain-specific payloads using trained lookup tables, matrix-based symbol layout, nested submatrices, and binary encoded output. C99
loxbudget Deterministic, heap-free admission-control library for embedded firmware. Pre-flight gate for risky operations based on resource budgets, rate windows, and calibration. C99
micro-toolkit Collection of small composable embedded C99 libraries. C99
embedded-guard libraries Health, watchdog, boot, panic, OTA, and flash support libraries. C99
IOBusMonitor Multi-protocol desktop tool for Modbus TCP/RTU and Siemens S7 PLCs. C#
RTULogSuite Modbus RTU logging toolchain: ESP32 firmware + Windows visualization app. C++ / C#
iotspool Persistent store-and-forward MQTT queue for embedded systems. C99

πŸ”§ micro-toolkit β€” Modular C99 libraries for embedded systems

A collection of composable embedded libraries sharing the same philosophy:

no heap, no dependencies, no code generation β€” just #include and go.

Toolkit modules:

  • microsh β€” debug shell with history and tab completion.
  • microlog β€” multi-backend structured logging.
  • microfsm β€” table-driven finite state machine engine.
  • microres β€” retry with backoff, circuit breaker, and rate limiter.
  • microconf β€” schema-driven config with CRC and flash storage.
  • microcbor β€” minimal CBOR encoder/decoder.
  • micoring β€” generic lock-free SPSC ring buffer.
  • microtimer β€” software timer manager for one-shot and periodic timers.
  • microbus β€” topic-based event/pub-sub bus.
  • iotspool β€” persistent MQTT store-and-forward queue.

πŸ”— embedded-guard β€” Safety, monitoring & recovery

Libraries that bridge embedded diagnostics, monitoring, recovery, and firmware lifecycle.

  • microhealth β€” runtime health monitor with metrics and threshold-based alerts.
  • microwdt β€” per-task software watchdog with escalation states.
  • microboot β€” boot and recovery manager with crash-loop detection.
  • microassert β€” unified panic system with hook chain and severity levels.
  • microota β€” OTA update flow with chunking, CRC, version checks, commit/rollback.
  • microflash β€” unified flash abstraction for NOR/EEPROM/FRAM/RAM-like storage.

πŸ›‘οΈ Bare-metal safety & diagnostics

Small utilities for writing safer and more debuggable embedded C.

  • panicdump β€” crash dump library for Cortex-M3/M4: capture on fault, survive reboot, decode offline.
  • MCU-Malloc-Tracker β€” deterministic heap diagnostics for bare-metal MCUs.
  • nvlog β€” power-loss safe append log for FRAM/EEPROM/NOR flash.
  • defer β€” automatic resource cleanup for C via DEFER() macro.
  • cguard β€” scope guards and result types for C.
  • safemath β€” overflow-checked arithmetic and buffer sizing helpers.
  • microcrypt β€” SHA-256, HMAC-SHA256, AES-128 ECB/CBC.
  • microdh β€” minimal X25519 key exchange for embedded systems.
  • microtest β€” single-header C test framework.

πŸ“¦ Binary formats & data engines

  • num8 β€” O(1) membership engine for 8-digit numbers using a fixed bitset.
  • IronFamily.FileEngine β€” binary IoT file engines: config, structured logs, and firmware update package formats.

🏭 Industrial IoT & protocols

Desktop tools and firmware for real-world industrial communication.

  • IOBusMonitor β€” multi-protocol desktop tool for Modbus TCP/RTU and Siemens S7 PLCs.
  • RTULogSuite β€” complete Modbus RTU logging toolchain: ESP32 firmware + Windows visualization.
  • iotspool β€” persistent store-and-forward MQTT queue.
  • uMesh β€” lightweight mesh networking stack for ESP32 over raw 802.11.
  • num8-lup β€” low-bandwidth update propagation protocol for constrained links.

πŸ–₯️ Desktop & .NET

  • MultiGpuHelper β€” C# library for scheduling compute workloads across multiple GPUs.
  • CrudFramework β€” lightweight CRUD framework for .NET, EF Core, SQLite/SQL Server, and WPF-ready bindings.

⚑ Hardware projects

  • securebox-hw β€” secure hardware password manager concept on ESP32-S3 with external encrypted storage.
  • Pragotron-Controller β€” minute-impulse controller for a Pragotron stepper clock.

Focus

I am interested in embedded reliability, deterministic storage, firmware diagnostics, industrial data systems, and practical AI-assisted engineering.

Most of my projects follow the same rule:

small code, clear contracts, real tests, and no claims without evidence.

Pinned Loading

  1. IOBusMonitor IOBusMonitor Public

    Multi-protocol desktop tool for reading, archiving and visualising data from Modbus (TCP / RTU) and Siemens S7 PLCs.

    C# 3 1

  2. uMesh uMesh Public template

    Lightweight open mesh protocol over raw 802.11 for ESP32

    C 6 2

  3. loxdb loxdb Public

    Predictable-memory embedded database for microcontrollers. KV, time-series, and relational engines with WAL recovery. C99, zero dependencies, verified on ESP32-S3.

    C 5

  4. loxguard loxguard Public

    Guard Blocks for embedded C: checked execution boundaries, failure events, recovery policy, and local blackbox evidence.

    C 1

  5. IronFamily.FileEngine IronFamily.FileEngine Public

    Internal IoT-focused monorepo for IronFamily binary engines (ICFG, ILOG, IUPD) with .NET/native implementations, deterministic testing, and performance benchmarking.

    C# 1 1

  6. num8 num8 Public

    O(1) membership engine for 8-digit numbers (00000000-99999999). Fixed 12.5 MB bitset file, CRC32-protected header, C99, zero dependencies, MIT.

    C 1