Skip to content

Commit 6e54d68

Browse files
committed
Merge remote-tracking branch 'refs/remotes/origin/master'
2 parents eb56d8f + a463548 commit 6e54d68

127 files changed

Lines changed: 9647 additions & 5077 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/FUNDING.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ polar: # Replace with a single Polar username
1313
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
1414
thanks_dev: # Replace with a single thanks.dev username
1515
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
16+
- https://paypal.me/oldrev

README.md

Lines changed: 55 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1-
# BorneoIoT: A State-of-the-Art Full-Stack Open-Source Aquarium LED WiFi Dimmer
1+
# BorneoIoT: Professional Aquarium Lighting Platform
22

33
![Firmware Build Status](https://github.com/borneo-iot/borneo/actions/workflows/fw-ci.yml/badge.svg)
44
![Firmware Release Status](https://github.com/borneo-iot/borneo/actions/workflows/fw-release.yml/badge.svg)
55
![App Build Status](https://github.com/borneo-iot/borneo/actions/workflows/flutter-ci.yml/badge.svg)
6+
[![Hardware: OSHWA Certified](https://img.shields.io/badge/Hardware-OSHWA%20CN000017-green)](https://certification.oshwa.org/cn000017.html)
7+
[![License: GPL-3.0](https://img.shields.io/badge/License-GPL--3.0-blue)](LICENSE)
8+
[![License: CERN-OHL-S-2.0](https://img.shields.io/badge/Hardware%20License-CERN--OHL--S--2.0-lightgrey)](LICENSE-HARDWARE)
9+
610

711
![BorneoIoT Banner](assets/borneo-repo-banner.jpg)
812

@@ -11,75 +15,88 @@
1115
<a href="https://docs.borneoiot.com"><b>Documentation</b></a> •
1216
<a href="https://github.com/borneo-iot/borneo/discussions"><b>Forum</b></a> •
1317
<a href="https://discord.gg/EFJTm7PpEs"><b>Discord</b></a> •
14-
<a href="https://flasher.borneoiot.com"><b>Web Firmware Flasher</b></a>
1518
</p>
1619

1720
<p align="center">
1821
<a href="https://www.crowdsupply.com/borneo-iot/buce-aquarium-led-controller" target="_blank" rel="noopener">
1922
<img alt="Crowd Supply: Subscribe" src="https://img.shields.io/badge/Subscribe-Crowd%20Supply-009999?style=for-the-badge&logo=crowdsupply" />
2023
</a>
21-
</p>
22-
24+
<a href="https://flasher.borneoiot.com">
25+
<img src="https://img.shields.io/badge/⚡%20Flash%20Firmware-Web%20Flasher-blue?style=for-the-badge" alt="Web Flasher">
26+
</a>
2327

24-
---
28+
</p>
2529

26-
**Borneo-IoT** is a professional-grade, modular open-source smart aquarium platform designed for aquarium enthusiasts and DIYers. It provides a complete end-to-end solution—from hardware schematics to embedded firmware and a modern mobile app—to build and control high-performance aquarium LED lighting systems.
2730

28-
## One System, Three Pillars
31+
> **Production-grade open-source stack for aquarium LED dimmers.**
32+
> Hardware designs, embedded firmware, and mobile controls. Ready for weekend builds or product integration.
2933
3034
This project delivers a full-stack solution for smart aquarium LED:
3135

3236
1. **Hardware**: Certified open-source PCB designs targeting the ESP32 family, featuring 6-channel PWM dimming and modular architecture.
3337
2. **Firmware**: A robust ESP-IDF based firmware implementing CoAP/CBOR protocols, sunrise/sunset simulation, and cooling control.
3438
3. **Mobile App**: A cross-platform Flutter application for intuitive real-time control, scheduling, and device management.
3539

36-
---
40+
## Quick Start
3741

38-
## ️Key Features
42+
**New users:** Follow the **[step-by-step guide](https://docs.borneoiot.com/getting-started/quick-start.html)** to flash firmware and connect your first device.
3943

40-
### Powerful Hardware
41-
- **OSHWA Certified**: Pro-grade designs (Model BLC06MK1) using [Horizon EDA](https://horizon-eda.org).
42-
[![OSHWA Badge](assets/buce-oshwa.svg)](https://certification.oshwa.org/cn000017.html)
43-
- **High Performance**: Optimized for ESP32/ESP32-C3/C5 with unified board definitions.
44-
- **Precision Dimming**: 6-channel PWM with smooth 12-bit resolution and soft-start technology.
45-
- **Expandable**: Reference designs for LED lamps, drivers, and even dosing pumps.
44+
**No toolchain required**, flash directly from Chrome/Edge Browser:
4645

47-
### Intelligent Firmware
48-
- **Dynamic Control**: Graphical sunrise/sunset curves with millisecond-smooth transitions.
49-
- **Reliable**: SNTP time synchronization and PID-controlled active cooling system.
50-
- **Production Ready**: Full support for over-the-air (OTA) updates and automated QA testing.[^1]
51-
- **Extensible Architecture**: Zephyr-inspired driver abstraction for easy porting and expansion.
46+
1. Connect ESP32/ESP32-C3/ESP32-C5 via USB
47+
2. Visit **[flasher.borneoiot.com](https://flasher.borneoiot.com)**
48+
3. Download the app and power on
5249

53-
### Modern Control
54-
- **Cross-Platform**: Modern UI built with Flutter for iOS, Android, and beyond.
55-
- **Unified Protocol**: Uses CoAP + CBOR for efficient, low-latency device communication.
56-
- **Developer Friendly**: Includes a Python API client for custom automation scripts.
50+
[Full Getting Started Guide](https://docs.borneoiot.com/getting-started)
5751

58-
---
52+
## Features
5953

60-
## Repository Structure
54+
### Hardware
6155

62-
| Directory | Content | Description |
63-
| :--- | :--- | :--- |
64-
| [**`hw/`**](hw/) | **Hardware** | PCB designs (Horizon EDA), 3D models, and PDF schematics.[^2] |
65-
| [**`fw/`**](fw/) | **Firmware** | ESP-IDF source code for LED dimmers and upcoming devices. |
66-
| [**`client/`**](client/) | **Mobile App** | Flutter source code for the cross-platform mobile application. |
67-
| [**`borneopy/`**](borneopy/) | **Python SDK** | Python client library for desktop control and scripting. |
56+
- **6 or 10 PWM channels**, 12-bit resolution (4096 steps), up to 19kHz
57+
- **Flicker-free**, suitable for aquarium photography
58+
- **22×30mm core module**, fits slim LED fixtures
59+
- ESP32-C3/C5 native, WiFi + Bluetooth LE
6860

69-
---
61+
[Schematics & BoM](hw/)
62+
63+
![Ulva-6](assets/ulva6.jpg)
64+
65+
### Firmware
7066

71-
[^1]: The open-source project does not provide mass production-related fixtures or specialized factory software.
72-
[^2]: PDF datasheets are provided; however, raw template source files for some documents are excluded.
67+
- **Sunrise/sunset curves** with millisecond-smooth transitions
68+
- **SNTP time sync**: automatic, no manual adjustment
69+
- **Active cooling control**: temperature-based fan/PWM throttling
70+
- **OTA updates**: over-the-air firmware upgrades
71+
- **CoAP + CBOR protocol**: efficient, low-latency device communication
72+
73+
[Source code](fw/)[Protocol docs](https://docs.borneoiot.com/protocol)
74+
75+
### Mobile App
76+
77+
- **Cross-platform**: iOS, Android, Windows, built with Flutter
78+
- **Real-time control**: dimming, scheduling, scene presets
79+
- **Multi-device**: group control, cloud-free local network
80+
- **Developer API**: Python client for automation
81+
82+
[App source](client/)[Python SDK](borneopy/)
83+
84+
## Repository Guide
85+
86+
| Directory | Contents | Entry Point |
87+
|-----------|----------|-------------|
88+
| [`hw/`](hw/) | PCB designs (Horizon EDA), Gerbers, 3D models | [`hw/README.md`](hw/) |
89+
| [`fw/`](fw/) | ESP-IDF firmware, CoAP protocol | [`fw/README.md`](fw/) |
90+
| [`client/`](client/) | Flutter mobile app | [`client/README.md`](client/) |
91+
| [`borneopy/`](borneopy/) | Python client library | [`borneopy/README.md`](borneopy/) |
7392

7493
## Getting Started
7594

76-
- **New Users**: Check out our [**Getting Started Guide**](https://docs.borneoiot.com/getting-started).
95+
- **New Users**: Check out our [**Quick Start Guide**](https://docs.borneoiot.com/getting-started/quick-start.html).
7796
- If you are a new user looking to quickly experience our firmware, you can directly use our web firmware flasher to flash the latest version of the firmware to your ESP32 series development board: https://flasher.borneoiot.com/
7897
- **Hardware**: Find schematics and BoM files in the [`hw/`](hw/) directory.
7998
- **Firmware**: Compilation instructions are available in the [`fw/`](fw/) folder.
8099

81-
---
82-
83100
## Project Status
84101

85102
| Component | Status | Details |
@@ -88,8 +105,6 @@ This project delivers a full-stack solution for smart aquarium LED:
88105
| **Firmware** | Beta | Full-featured and stable on my personal tanks for years. |
89106
| **Mobile App** | Beta | Core functionality working. |
90107

91-
---
92-
93108
## Roadmap
94109

95110
Check our [milestones](https://github.com/borneo-iot/borneo/milestones) for the latest development updates and upcoming features.
@@ -102,8 +117,6 @@ Check our [milestones](https://github.com/borneo-iot/borneo/milestones) for the
102117
- **Discord**: [Connect with Developers](https://discord.gg/EFJTm7PpEs)
103118
- **Email**: [info@binarystarstech.com](mailto:info@binarystarstech.com)
104119

105-
---
106-
107120
## Licenses
108121

109122
- **Software/Firmware**: Dual-licensed under [**GPL-3.0+**](LICENSE) and Enterprise licenses.

assets/ulva6.jpg

107 KB
Loading

client/AGENTS.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,13 @@ Borneo Client is a cross-platform Flutter application for controlling Borneo-IoT
6060

6161
### Localization
6262

63-
- To handle localization: First, run the script `python .\scripts\update_translations.py .` to extract and update translation files.
64-
- Then, translate the `.po` files.
63+
- To manage translation assets, use the helper script under `scripts/bopo.py`.
64+
- `python .\scripts\bopo.py update <project_path>` – generate/update the
65+
`messages.pot` and all `.po` files based on Dart source strings.
66+
- `python .\scripts\bopo.py missing <project_path>` – list any
67+
untranslated entries (`msgstr` empty) across `.po` files along with path and line
68+
number. This is useful for spotting work still to be done.
69+
- After running the update command, translate or review the `.po` files as needed.
6570
- During development tasks, do not modify `.po` files temporarily; translate them uniformly before release.
6671

6772
Use the following patterns for localizing user-visible text with `flutter_gettext`:

0 commit comments

Comments
 (0)