Skip to content

SolarBit Firmware V1.6

Latest

Choose a tag to compare

@CryptoIceMLH CryptoIceMLH released this 06 Nov 19:23

SolarBit OS - Version 1.6 Release Notes

πŸŽ‰ Version 1.6 - Advanced Miner Automation Update

Release Date: November 2025


πŸš€ Major Features

Advanced Miner Power Rail Automation System

Complete overhaul of the 12V and 5V miner power rail automation with intelligent multi-factor decision making.

New Features:

  • Independent Rail Configuration: 12V and 5V rails now have completely separate automation settings
  • Multi-Factor ON Logic: Miner rails turn ON only when ALL conditions are met:
    • Battery voltage β‰₯ user-defined threshold
    • Solar input wattage β‰₯ user-defined threshold
    • Conditions maintained for user-defined duration
  • Smart OFF Logic: Miner rails turn OFF when EITHER condition is met:
    • Battery voltage drops below threshold (immediate)
    • Solar wattage drops below threshold for defined duration
  • Persistent Configuration: All settings stored in EEPROM and survive reboots
  • User-Friendly UI: Expandable configuration panels in the Controls page
  • Prevents Power Cycling: Duration-based logic prevents rapid on/off cycling

Configurable Parameters (per rail):

Each rail (12V and 5V) has 6 independent parameters:

  1. ON Battery Voltage - Minimum battery voltage to enable (default: 13.7V)
  2. ON Solar Wattage - Minimum solar input wattage required (default: 15W)
  3. ON Duration - How long conditions must be met before turning ON (default: 10 seconds)
  4. OFF Battery Voltage - Battery voltage threshold to disable (default: 12.7V)
  5. OFF Solar Wattage - Solar wattage threshold to disable (default: 10W)
  6. OFF Duration - How long low wattage must persist before turning OFF (default: 10 seconds)

Default Behavior:

  • Turn ON: Battery β‰₯13.7V AND Solar β‰₯15W for 10 seconds
  • Turn OFF: Battery <12.7V OR Solar <10W for 10 seconds

πŸ”§ Technical Changes

Firmware (V1.6.ino)

New Data Structures:

  • Added MinerRailConfig struct with 6 parameters + runtime state tracking
  • Created global instances: miner12VConfig and miner5VConfig
  • Added default configuration constants

EEPROM Storage:

  • Allocated addresses 270-313 (~43 bytes) for miner configuration
  • Magic number validation: 0xBB88
  • Automatic defaults on first boot or invalid config

New Functions:

  • getSolarWattage() - Extracts wattage from solar sensor data string
  • loadMinerConfigFromEEPROM() - Loads saved configuration with fallback to defaults
  • saveMinerConfigToEEPROM() - Persists configuration to EEPROM
  • Complete rewrite of automatedMinerControl() - Implements new multi-factor logic

API Endpoints:

WiFi Server:

  • GET /getMinerConfig - Returns current configuration as JSON
  • POST /saveMinerConfig - Updates configuration (JSON body)

Ethernet Server:

  • GET /getMinerConfig - Mirror of WiFi endpoint
  • POST /saveMinerConfig - Mirror of WiFi endpoint

Setup Integration:

  • Miner configuration loaded automatically during boot
  • Debug logging shows loaded configuration values

User Interface Changes

HTML (index.html):

  • Removed hard-coded automation text ("Auto mode: ON at 13.7V, OFF at 12.7V")
  • Added expandable configuration panels for both rails
  • Integrated into Controls page under Miner Controls section
  • 6 input fields per rail with clear labels
  • Toggle buttons to show/hide configuration panels
  • Individual save buttons per rail

JavaScript (script.js):

  • toggleMinerSettings(rail) - Show/hide configuration panel
  • loadMinerConfig() - Fetch current settings from firmware
  • saveMinerConfig(rail) - POST new settings to firmware
  • Automatic configuration loading when panels are opened
  • Input validation and user feedback

CSS (style.css):

  • .miner-settings - Container styling
  • .miner-config-panel - Panel with card styling
  • .setting-row - Flex layout for labels and inputs
  • Responsive input styling with theme support
  • Dark mode compatible

πŸ› Bug Fixes

Compilation Fixes:

  • Fixed typo: sendEthernetJsonResponse β†’ sendEthernetJSONResponse
  • All function names now match declarations correctly

πŸ“ Version String Updates

Updated all version references from V1.5.1 to V1.6:

  • Firmware: All 5 section headers, debug logs, and fallback HTML
  • UI: Dashboard title, firmware version display, console logs
  • Documentation: Comments and headers updated

Total locations updated: 18 version strings across all files


πŸ”„ Breaking Changes

None - Fully Backward Compatible

  • Existing installations will automatically use default settings
  • Previous hard-coded behavior (13.7V ON, 12.7V OFF) preserved as defaults
  • EEPROM layout extended without affecting existing data
  • UI remains functionally identical for users who don't configure advanced settings

πŸ“¦ Files Modified

Firmware:

  • V1.6.ino - Core firmware with new automation system

Web Interface:

  • data/index.html - Updated Controls page with configuration panels
  • data/script.js - New JavaScript functions for configuration management
  • data/style.css - New styling for configuration panels

All Files:

  • Version strings updated to V1.6 throughout