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-15
The "Unified Radar" Release
v1.6 merges the old standalone radar.mod (BLE hex grid scanner) and the
broken wifi.mod (v1.4 adapter stub with no main()) into the unified
proxalarm.mod binary. This eliminates ~30 KB of duplicate .text on
64 MB RAM devices, removes a redundant HCI connection, and provides a
single source-agnostic RF scanning API with a real WiFi integration stub.
Removed
- radar.mod (orebolt-radar/noise_radar.c) -- MERGED into proxalarm.
The old 19-cell hex grid BLE scanner is fully superseded by proxalarm's
radar_ui canvas renderer (rotating sweep, range rings, velocity vectors,
alarm overlay). The
modules/orebolt-radar/directory is deleted. - wifi.mod (orebolt-wifi/wifi.c) -- MERGED into proxalarm.
The v1.4 stub used the old callback pattern (
wifi_init(parent)) and had nomain()function, so it could never be fork+exec'd by the launcher. Its purpose (WiFi adapter control) is now served by bledsp's source-agnostic device table and thebledsp_poll_wifi()stub. Themodules/orebolt-wifi/directory is deleted.
Changed
- Module count: 17 .mod binaries + 1 standalone daemon (was 19 + 1).
- bledsp upgraded to unified RF scanning layer. New API:
bledsp_source_tenum gainsBLE_SRC_SIM(explicit sim mode).bledsp_get_source()/bledsp_cycle_source()for runtime source selection.bledsp_source_label()returns "BLE", "WIFI", or "SIM".bledsp_poll_wifi()stub with implementation roadmap (nl80211).bledsp_poll()now centralizes the "mark all inactive" step before dispatching toble_poll(),sim_poll(), orbledsp_poll_wifi().
- proxalarm main gains NEXT key handler. NEXT cycles the active RF source between BLE and WIFI at runtime, with live label update.
- H2_MOD_RADAR and H2_MOD_WIFI removed from h2_ui.h enum. Enum renumbered: PROXALARM is now ID 15, BITCHAT is ID 16.
- main.c module table: radar and wifi entries removed, all versions bumped to 1.6.
- Makefile.h2-core-v6.2 -> v6.3. BLUETOOTH_MODULES reduced to
just
proxalarm(wasradar proxalarm). radar and wifi build targets removed. - All documentation updated (ARCHITECTURE.md, README.md, this file). Stale references to radar.mod, wifi.mod, "19 modules" purged. Memory spec corrected to 64 MB (was incorrectly 128 MB).
Added (from earlier v1.6 work, preserved)
- proxalarm -- BLE Proximity Alarm (tripwire detector). Three-layer architecture: bledsp (BLE scanning + RSSI DSP smoothing), proxvec (kinematics engine with per-target state machine and velocity tracking), radar_ui (LVGL canvas radar display). Now unified with WiFi stub.
- Documentation hardening (BitChat nominative fair use analysis, module descriptions aligned to actual implementations).
[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.