220 lines
14 KiB
HTML
220 lines
14 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="description" content="Download the Open Battery Information desktop app for Windows, macOS and Linux — a self-contained build of the OBI-1 tool with native serial-port access, no browser needed.">
|
|
<title>Download — Open Battery Information</title>
|
|
<link rel="stylesheet" href="css/style.css">
|
|
<link rel="stylesheet" href="css/landing.css">
|
|
<link rel="stylesheet" href="css/download.css">
|
|
<script src="js/theme.js"></script>
|
|
<script src="js/reveal.js" defer></script>
|
|
</head>
|
|
<body>
|
|
<nav class="navbar">
|
|
<a class="brand" href="index.html">Open Battery <span class="accent">Information</span></a>
|
|
<button id="nav-toggle" class="nav-toggle" type="button" aria-label="Open navigation menu" aria-expanded="false">
|
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
|
|
</button>
|
|
<div class="nav-links">
|
|
<a href="index.html">Home</a>
|
|
<a href="setup.html">Get started</a>
|
|
<a href="firmware/uploader.html">Flash firmware</a>
|
|
<a href="obi.html">OBI-1</a>
|
|
<a href="download.html" class="active">Download</a>
|
|
<a class="nav-icon" href="https://github.com/OpenBatteryInformation/openbatteryinformation.github.io" target="_blank" rel="noopener" aria-label="View source on GitHub"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a>
|
|
<button id="theme-toggle" class="theme-toggle" type="button" aria-label="Switch to light mode">
|
|
<svg class="icon-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41"/></svg>
|
|
<svg class="icon-moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg>
|
|
</button>
|
|
</div>
|
|
</nav>
|
|
|
|
<header class="hero">
|
|
<h1>Get the desktop app for your <span class="accent">platform</span></h1>
|
|
<p class="tagline">
|
|
The same OBI-1 experience as the browser version, wrapped in a self-contained
|
|
app for Windows, macOS and Linux. No browser needed — serial access is built in.
|
|
Nothing leaves your machine.
|
|
</p>
|
|
<div class="hero-actions">
|
|
<a href="#platforms"><button class="primary btn-lg">Download now</button></a>
|
|
<a href="obi.html"><button class="btn-lg">Try it in the browser</button></a>
|
|
</div>
|
|
<p class="hero-note"><span id="latest-version">Checking for the latest release…</span></p>
|
|
</header>
|
|
|
|
<main>
|
|
<section class="section" id="platforms">
|
|
<h2>Pick your platform</h2>
|
|
<p class="section-sub">Installers are built automatically from this repository for every release.</p>
|
|
<div class="feature-grid download-grid">
|
|
<div class="feature-card download-card" data-platform="win">
|
|
<span class="icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4l7-1v7H4z"/><path d="M4 13h7v7l-7-1z"/><path d="M13 3l7 1v6h-7z"/><path d="M13 11h7v6l-7 1z"/></svg></span>
|
|
<h3>Windows</h3>
|
|
<p>NSIS installer for Windows 10 and 11. Works with the same Arduino and USB drivers as the web version.</p>
|
|
<a class="download-btn primary" href="https://github.com/OpenBatteryInformation/openbatteryinformation.github.io/releases/latest" data-asset="setup" download>Download for Windows</a>
|
|
<span class="download-meta">64-bit · <span class="download-asset">.exe</span></span>
|
|
</div>
|
|
<div class="feature-card download-card" data-platform="mac">
|
|
<span class="icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 2C7.5 2 3 5.5 3 10c0 5 4 8 9 12 5-4 9-7 9-12 0-4.5-4.5-8-9-8z"/><circle cx="12" cy="10" r="3"/></svg></span>
|
|
<h3>macOS</h3>
|
|
<p>Apple-silicon and Intel builds packaged as a DMG. Right-click → Open the first time to bypass Gatekeeper.</p>
|
|
<a class="download-btn primary" href="https://github.com/OpenBatteryInformation/openbatteryinformation.github.io/releases/latest" data-asset="mac" download>Download for macOS</a>
|
|
<span class="download-meta">Intel + Apple Silicon · <span class="download-asset">.dmg</span></span>
|
|
</div>
|
|
<div class="feature-card download-card" data-platform="linux">
|
|
<span class="icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="4" r="2"/><path d="M12 6v8"/><path d="M8 10h8l-2 9a2 2 0 0 1-2 1.3A2 2 0 0 1 10 19z"/></svg></span>
|
|
<h3>Linux</h3>
|
|
<p>AppImage for any distro plus a .deb for Debian/Ubuntu. Serial access is native, so no browser setup needed.</p>
|
|
<a class="download-btn primary" href="https://github.com/OpenBatteryInformation/openbatteryinformation.github.io/releases/latest" data-asset="linux" download>Download for Linux</a>
|
|
<span class="download-meta">AppImage + deb · <span class="download-asset">.AppImage</span></span>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="section">
|
|
<h2>Why the desktop app?</h2>
|
|
<p class="section-sub">Same hardware, same tool — with fewer steps to get going.</p>
|
|
<div class="steps">
|
|
<div class="step">
|
|
<span class="step-num"></span>
|
|
<h3>No browser needed</h3>
|
|
<p>Serial access is built straight into the app, so there's nothing to install or configure first. Just run it and connect.</p>
|
|
</div>
|
|
<div class="step">
|
|
<span class="step-num"></span>
|
|
<h3>Offline and private</h3>
|
|
<p>The app bundles the OBI-1 page itself. It works without internet, and your battery data never leaves your machine.</p>
|
|
</div>
|
|
<div class="step">
|
|
<span class="step-num"></span>
|
|
<h3>Always up to date</h3>
|
|
<p>Downloads come from GitHub Releases. Every new tag builds fresh installers in CI, so you always grab the latest firmware.</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="section">
|
|
<div class="card">
|
|
<h2>System requirements</h2>
|
|
<ul class="req-list">
|
|
<li>
|
|
<span class="req-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg></span>
|
|
<span><span class="req-title">An Arduino Uno with a USB cable</span>
|
|
<span class="req-detail">The desktop app talks to the board over a native serial connection, so the same genuine-or-compatible Uno with the optiboot bootloader is required.</span></span>
|
|
</li>
|
|
<li>
|
|
<span class="req-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="16" height="10" x="2" y="7" rx="2" ry="2"/><line x1="22" x2="22" y1="11" y2="13"/></svg></span>
|
|
<span><span class="req-title">A supported battery</span>
|
|
<span class="req-detail">Currently the Makita LXT 18 V packs (BL18xx / BL14xx) via the Arduino OBI interface, matching the web version.</span></span>
|
|
</li>
|
|
<li>
|
|
<span class="req-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"/><path d="m9 12 2 2 4-4"/></svg></span>
|
|
<span><span class="req-title">Open source</span>
|
|
<span class="req-detail">Everything is GPL-3.0 licensed. Build it yourself from source any time — instructions are in the README.</span></span>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="section">
|
|
<div class="warning">
|
|
<h3><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"/><path d="M12 9v4"/><path d="M12 17h.01"/></svg> Note about macOS Gatekeeper</h3>
|
|
<p>
|
|
The macOS build is not notarized with Apple, so the first launch shows a "cannot verify developer" warning.
|
|
Right-click the app and choose <strong>Open</strong>, then confirm. If you prefer, build it yourself from
|
|
source with your own signing identity.
|
|
</p>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="section">
|
|
<h2>Frequently asked questions</h2>
|
|
<p class="section-sub">About the desktop build.</p>
|
|
<details class="faq">
|
|
<summary>Is the desktop app different from the browser version?</summary>
|
|
<div class="faq-body">
|
|
Functionally it's the same code, packaged with Electron. The only real difference is that serial access is
|
|
native — no browser or secure HTTPS page required — and the page ships bundled with the app.
|
|
</div>
|
|
</details>
|
|
<details class="faq">
|
|
<summary>Why is there no installer for my architecture?</summary>
|
|
<div class="faq-body">
|
|
Installers are built in CI for the main targets: Windows x64, macOS (Intel and Apple Silicon) and Linux
|
|
x64. If you need something else, open an issue or build from source — it takes one command.
|
|
</div>
|
|
</details>
|
|
<details class="faq">
|
|
<summary>Do I still need to flash the Arduino firmware?</summary>
|
|
<div class="faq-body">
|
|
Yes. The desktop app bundles the same <a href="firmware/uploader.html">firmware uploader</a> as the web
|
|
version — open the "Flash firmware" page inside the app, plug in the Uno and flash. The newest firmware
|
|
ships with each release.
|
|
</div>
|
|
</details>
|
|
<details class="faq">
|
|
<summary>How are the installers built?</summary>
|
|
<div class="faq-body">
|
|
Every tagged release triggers a GitHub Actions workflow that packages the app on Windows, macOS and Linux
|
|
runners and attaches the installers to the release. Build logs are public.
|
|
</div>
|
|
</details>
|
|
</section>
|
|
</main>
|
|
|
|
<footer class="site-footer">
|
|
<p><strong>Open Battery Information</strong> — an open-source web port of the
|
|
<a href="https://github.com/mnh-jansson/open-battery-information">open-battery-information</a> project.</p>
|
|
<p>Released under the GPL-3.0 license. Independent project, not affiliated with Makita.</p>
|
|
<p><a href="https://github.com/OpenBatteryInformation/openbatteryinformation.github.io/releases">All releases</a> · <a href="https://github.com/OpenBatteryInformation/openbatteryinformation.github.io">Source code</a></p>
|
|
</footer>
|
|
|
|
<script>
|
|
(function () {
|
|
const RELEASES_PAGE = 'https://github.com/OpenBatteryInformation/openbatteryinformation.github.io/releases/latest';
|
|
const API_URL = 'https://api.github.com/repos/OpenBatteryInformation/openbatteryinformation.github.io/releases/latest';
|
|
|
|
function pickAsset(assets, kind) {
|
|
if (!Array.isArray(assets)) return null;
|
|
let picks;
|
|
if (kind === 'win') {
|
|
picks = assets.filter((a) => /\.exe$/i.test(a.name));
|
|
} else if (kind === 'mac') {
|
|
picks = assets.filter((a) => /\.dmg$/i.test(a.name));
|
|
} else {
|
|
picks = assets.filter((a) => /\.AppImage$/i.test(a.name));
|
|
}
|
|
return picks.length ? picks[0] : null;
|
|
}
|
|
|
|
fetch(API_URL)
|
|
.then((res) => (res.ok ? res.json() : Promise.reject(new Error(String(res.status)))))
|
|
.then((release) => {
|
|
const version = release.tag_name || release.name || '';
|
|
const badge = document.getElementById('latest-version');
|
|
if (badge) {
|
|
badge.textContent = version
|
|
? 'Latest release: ' + version + (release.published_at ? ' · ' + new Date(release.published_at).toLocaleDateString() : '')
|
|
: 'Latest release ready to download.';
|
|
}
|
|
document.querySelectorAll('.download-card').forEach((card) => {
|
|
const kind = card.dataset.platform;
|
|
const asset = pickAsset(release.assets, kind);
|
|
const link = card.querySelector('.download-btn');
|
|
if (!asset) return;
|
|
link.href = asset.browser_download_url;
|
|
link.setAttribute('download', asset.name);
|
|
});
|
|
})
|
|
.catch(() => {
|
|
const badge = document.getElementById('latest-version');
|
|
if (badge) badge.textContent = 'Downloads are published to GitHub Releases.';
|
|
});
|
|
})();
|
|
</script>
|
|
</body>
|
|
</html>
|