12 KiB
Executable File
Changelog
All notable changes to OreBolt OS are documented in this file. Format roughly follows Keep-a-Changelog; dates are YYYY-MM-DD.
[v1.6] -- 2026-07-14
The "Proximity Alarm" Release
v1.6 adds the first new module since the v1.5 restoration pass: proxalarm, a BLE proximity alarm (tripwire detector) with a clean 3-layer architecture. Also includes documentation hardening (module descriptions aligned to actual implementations, BitChat nominative fair use analysis).
Added
- proxalarm -- BLE Proximity Alarm (tripwire detector). The first
new module for the v1.6 cycle, designed for use in the dark as a
modern tripwire alarm. Three-layer architecture keeps hardware,
math, and display cleanly separated:
- bledsp (Hardware/DSP layer): BlueZ HCI LE scanning with rolling-
average RSSI smoothing. Falls back to simulation mode when no BT
hardware is present (all revisions without BLE, or development
hosts). Source-agnostic device table has a
bledsp_source_tenum (BLE_SRC_BLE,BLE_SRC_WIFI) ready for future WiFi RSSI integration without modifying the kinematics or display layers. - proxvec (Kinematics layer): Converts smoothed RSSI to abstract grid coordinates via a log-distance path-loss lookup table (no floating-point math). Per-target finite state machine (NEW -> APPROACHING -> STATIONARY -> RECEDING -> LOST) with radial velocity tracking. Configurable alarm radius triggers when a target enters the red zone.
- radar_ui (Presentation layer): LVGL canvas-based radar display.
320x240 RGB565 framebuffer (adapts to
H2_LCD_WIDTH/H2_LCD_HEIGHT). Features: 4 concentric range rings, rotating sweep line with dim trail, color-coded target blips (green=detection, orange=tracking, red=alarm), velocity vectors for approaching targets, and a flashing "!! ALERT !!" overlay when any target is in the alarm zone. - Input controls: ROTATE cycles sensitivity (4 presets: -40, -50, -60, -70 dBm near-threshold), PLAY toggles scan pause/resume, BACK exits. Status bar shows live target and alarm counts.
- Module is a multi-source binary (bledsp.c + proxvec.c + radar_ui.c
- proxalarm.c) -- first Orebolt OS module to use this pattern. Makefile.h2-core-v6.2 updated to support multi-source MODULES entries.
- bledsp (Hardware/DSP layer): BlueZ HCI LE scanning with rolling-
average RSSI smoothing. Falls back to simulation mode when no BT
hardware is present (all revisions without BLE, or development
hosts). Source-agnostic device table has a
Changed
- Module count: 19 .mod binaries + 1 standalone daemon (was 18 + 1).
- Documentation audit: all module descriptions in README.md and ARCHITECTURE.md aligned to actual v1.5 implementations. Five previously-incorrect module descriptions fixed (deploy, extract, noise, probe, nettaps).
- LICENSE.md section 8 added: "BitChat Naming: Nominative Fair Use" with full independent implementation disclaimer.
- Stale references purged: module counts (18 -> 19), version strings, "addon-emulator-1.0 package" reference in main.c removed.
[v1.5] -- 2026-07-14
The "Implementations Restored" Release
v1.4 shipped 18 module slots with zero functional code -- every module was a build-linkable stub that displayed a label and logged init/deinit. v1.5 restores all 12 original module implementations from the v1.3 upstream source set, adapted to the v1.4 build infrastructure and header API.
Fixed
- emulator_input_mapper build target no longer links against LVGL.
v1.4's
Makefile.h2-core-v6.1compiled the mapper stub with-llvgl, which would break the real standalone uinput daemon. v1.5'sMakefile.h2-core-v6.2builds the mapper with zero LVGL flags or libraries -- it is a pure uinput daemon. - main.c restored to fork/exec launcher model. v1.4's main.c ran a single monolithic LVGL event loop with all modules as stub callbacks. v1.5 restores the v1.3 fork/exec broker: the launcher shows the module menu, fork+execs the selected .mod binary, and waitpid() blocks until the child exits. Each module binary initializes its own LVGL instance and runs its own event loop.
- h2_ui.h merges v1.3 and v1.4 APIs. Provides both the
init_h2_graphics_runtime()inline bootstrap (for standalone .mod binaries) and theh2_module_tregistration API (for the launcher menu). Also defines H2 input event code constants (H2_KEY_PLAY, H2_KEY_BACK, etc.) used uniformly across all modules. - log_manager.h merges v1.3 and v1.4 logging. Provides both the v1.4 structured log level interface (LOG_INF/DBG/ERR macros, log_init/log_write/log_close) and the v1.3 flash-safe timed coalescer (timed_log_init/timed_log_write/timed_log_flush_to_media) with 64KB RAM buffer and configurable windowed disk flush.
- S99broker OREBOLT_VERSION fixed to 1.5 (was still "1.4").
Changed
- Module count in Makefile: 18 .mod binaries + 1 standalone daemon.
v1.4's Makefile listed 18 entries including emulator_input_mapper
as an LVGL module. v1.5 lists 18 .mod entries (rfid/wifi/glitch/
pwdb/bitchat remain stubs) plus a separate
mappertarget that builds the standalone daemon without LVGL. - Sub-Makefile bumped: Makefile.h2-core-v6.1 -> Makefile.h2-core-v6.2, Makefile.orebolt-v1.4 -> Makefile.orebolt-v1.5.
- Master Makefile updated to reference v6.2 and v1.5 sub-makefiles.
- radar module now links against -lbluetooth for BlueZ HCI calls.
- All restored modules use H2_KEY_BACK/H2_KEY_PLAY constants instead of hardcoded key codes (158/164), and include LOG_INF/LOG_ERR calls.
- vault upgraded to full PIN auth module. The original v1.3/v1.5 entropy-only display has been replaced with the complete Master Manifest vault implementation: 4-digit PIN entry with rotary encoder, non-volatile failure tracking, 300s lockout penalty, and dual wired/wireless identity modes with automatic USB/BLE state enforcement based on cable detection.
- studio upgraded to UAC2 Mixer Console. The original v1.3/v1.5 frequency analyzer has been replaced with the complete Master Manifest studio implementation: 4-channel mixer (GAME/DISCORD/ MIC/MUSIC) with per-channel volume bars, USB Consumer Control HID commands via /dev/hidg1 (vol up/down/mute), NEXT/PREV key channel switching, and hardware mute toggle with visual feedback.
- S99broker now sets system volumes to maximum on boot via
amixer sset 'Master' 100% unmuteandamixer sset 'Headphone' 100% unmute, matching the Master Manifest boot sequence.
Added
- 13 fully functional module implementations restored from v1.3
and Master Manifest:
- vault -- Crypto Security Token Vault Gateway. Full PIN authentication system (default 4-2-9-1) with rotary digit entry, non-volatile failure tracking via /data/vault/failures.dat, 3-attempt lockout with 300s penalty countdown. Dual identity modes: WIRED (USB composite gadget via enable_vault_usb.sh) and WIRELESS BLE (via enable_vault_ble.sh) with automatic switching based on USB cable detection. RAM key purge on BACK exit.
- nettaps -- USB Virtual Network Tap. Selectable time-window coalescer (30s/1m/2m/5m/10m), raw AF_PACKET capture on usb0, IP packet parsing, live LVGL console, flash-safe timed disk flush.
- scalpel -- Acoustic Scalpel Live Sound Synthesizer. NEW module from Master Manifest (Asset V). POSIX-threaded audio synthesis writing to /dev/dsp at 44.1kHz. SINE and SQUARE waveforms with real-time frequency tuning (20 Hz - 20 kHz) via rotary encoder in 10 Hz steps. PLAY toggles waveform.
- deploy -- Flash Storage Manager. statvfs("/") display of total/used/free MB with percentage, manual sync() via PLAY button.
- studio -- Studio Audio Class 2.0 Streaming Control Console. 4-channel mixer (GAME/DISCORD/MIC/MUSIC) with per-channel volume bars, NEXT/PREV key channel switching, PLAY toggles hardware mute. Sends USB Consumer Control HID commands (volume up/down/mute) to host via /dev/hidg1. DAC link status display (PCM 24-bit / 192 kHz).
- probe -- I2C Bus Hardware Scanner. Probes /dev/i2c-0 address space 0x03-0x77, displays responding devices with green highlighting.
- vterm -- FreeDOS Emulation Bridge. fork+exec dosbox with custom config, SIGTERM cleanup on BACK key, waitpid(WNOHANG) monitoring.
- radar -- BLE Device Radar Scanner. BlueZ HCI inquiry with RSSI (primary) or standard inquiry (fallback), 19-cell hexagonal heatmap grid, 3-tier RSSI color coding, auto-repeating scan loop.
- pauto -- Payload Automation (HID Keystroke Injector). Full OreBolt macro command language parser (DELAY, STRING, REM, modifier+key combos), USB HID keycode table (a-z, A-Z, 0-9, punctuation, F1-F12), rotary-scrollable payload picker, 8-byte report via /dev/hidg0.
- extract -- Mass Storage Extractor. Recursive copy from /mnt/target_media to /data/loot_drop/extracted/, skips symlinks, 4KB chunk copy, displays file/dir/byte counts.
- noise -- USB Hardware TRNG Stream. Generates 32-byte true entropy blocks via getrandom(GRND_RANDOM), pipes to host over CDC ACM serial (/dev/ttyGS0) at 100Hz.
- reset -- System Stack Purge/Reset. 3-state machine (CONFIRM->RUNNING->DONE), kills dosbox, brings usb0 down, deletes /data/loot_drop contents, calls sync().
- emulate -- Universal Retro Game Launcher. 17-type ROM database (NES/FDS/SNES/GB/GBC/GBA/Genesis/SMS/GameGear/PCE/ Atari2600/NeoGeoP), recursive /data/roms/ scan, 13-system filter with rapid-rotate cycling, fork+exec emulator launch, BACK kills child with SIGTERM.
- emulator_input_mapper standalone daemon -- fully integrated from addon-emulator-1.0 (no longer a separate addon package). Full 456-line uinput gamepad translator: rotary encoder to d-pad (V-mode/H-mode toggle, 3s auto-revert), PLAY/BACK to A/B (short) and START/SELECT (long 1.5s), PREV/NEXT to L/R shoulders, combo buttons for X/Y. Creates "H2 Virtual Gamepad" via /dev/uinput. Now built with -fstack-protector-strong -D_FORTIFY_SOURCE=2.
- S98emulator-input init script upgraded from addon-emulator-1.0.
Replaces the minimal start-stop-daemon wrapper with full PID tracking,
daemon existence checks, graceful TERM→KILL escalation (2s timeout),
stale pidfile detection, and
statuscommand. - ROM directory structure created in overlay/data/roms/ for 11 systems: nes, snes, gb, gbc, gba, genesis, sms, gg, pce, atari2600, ngp. Directories are created both at build time (makefile rom-dirs target) and shipped in the overlay tree.
- overlay/data/bt_config/paired_macs.txt -- Trusted accessory MAC allow-list for bt_input_daemon.sh autoconnect.
- overlay/data/chat_config/macros.txt -- 10 pre-defined BitChat mesh command templates (STATUS/ALERT/CMD/TEST/PANIC types).
Still Stubs (5 modules)
The following modules added in v1.4 remain as stubs pending real hardware implementations:
- rfid -- RFID reader (no hardware spec yet)
- wifi -- WiFi management (no driver support yet)
- glitch -- Glitch/fault injection (hardware-dependent)
- pwdb -- Password database (design phase)
- bitchat -- Mesh frontend (liborebolt.a has mod_bitchat_mesh.c with bloom filter, but the .mod UI stub needs real BLE mesh code)
[v1.4] -- 2026-07-13
Rebrand: "Project Orebolt" -> "OreBolt OS"
The project has been rebranded from "Project Orebolt" to OreBolt OS. The v1.4 release is a build-and-licensing cleanup pass. All 18 module .c files are build-linkable stubs. See the full v1.4 changelog for details on the SoC correction, SHA256SUMS fix, and AGPL licensing.
[v1.3] -- 2026-07-13 (pre-cleanup)
Initial public drop. Shipped the overlay tree and all 12 module implementations as standalone fork/exec binaries. Targeted the wrong SoC (T31 instead of X1000E). See v1.4 changelog for cleanup details.