Original OLED UI Design based on Embedded Platform, with complete software, hardware and shell design.
基于嵌入式平台的原创 OLED UI 设计,包含软硬件与外壳方案
- Next Version will come to 1.0 Stable!
- 2025.12.02 | Full advance of modules and performance (V4)
- 2025.11.14 | Refactor Core of HinarUI
- 2025.09.19 | Add Li Ver of PCB/Shell (V3)
- 2025.05.06 | Create Shell of the board (V2)
- 2025.03.25 | Complete TESTVer.0.2 and PCB
- 2025.01.02 | Draw PCB (imperfect)
- 2024.11.17 | Module init
- 2024.10.14 | Status Machine Rebuild
- 2024.10.12 | Icon on
- 2024.10.09 | base on
HinarUI
├─ example/ # PlatformIO demo (esp-wrover-kit by default)
│ ├─ include/
│ ├─ lib/HinarUI/ # Linked library for the demo
│ └─ src/
├─ include/
│ ├─ boards/ # Board-level pin/I2C config
│ │ └─ esp_wrover_kit.h
│ ├─ fonts/ # Built-in fonts + optional.md for custom fonts
│ ├─ HinarUI/ # Core headers
│ └─ modules/
└─ src/ # Library sources (core + modules)
├─ boards/
├─ core/
└─ modules/
Main Doc on my website: Link2hinar | Supporting design PCB at oshwhub | Shell at Makerworld
One way is to open the EXAMPLE to understand.
About how to adapt this project on your board, here gives some tips:
-
Quick start as a library:
#include <Arduino.h> #include "HinarUI_Core.h" void setup() { menu.create(); } void loop() { menu.loop(); }
-
Board / pin adaptation:
- Edit
include/boards/esp_wrover_kit.hfor pins and I2C addresses:
static constexpr int I2C_SDA = 21; static constexpr int I2C_SCL = 22; static constexpr uint8_t OLED_ADDR = 0x3C; static constexpr int KEY_ENTER = 32; static constexpr int KEY_BACK = 35; // ... KEY_OFF/KEY_CYCLE/VBAT/CHARGE_SENSE etc. // SHT30_ADDR, OLED_ADDR 可按需要改为 0x3D/0x45
- 其他传感器/模块可参考现有模块的实现
- 若作为库引入其他工程,只需
#include "HinarUI_Core.h"并确保上述 pins 地址匹配
- Edit
Thanks for u here whatever this project can or not helps you, any problem please use issue or contact me by Gmail

