MCPcopy Index your code
hub / github.com/Forairaaaaa/Monica

github.com/Forairaaaaa/Monica @v1.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0.0 ↗ · + Follow
15,052 symbols 42,114 edges 2,066 files 3,161 documented · 21%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Monica

视频介绍:https://www.bilibili.com/video/BV1AP411Q7dk

硬件开源:https://oshwhub.com/eedadada/monica

原理图

  • 主控:ESP32-S3,32M 外置 Flash
  • IMU:BMI270 + BM150 (抬手唤醒、计步器、指南针)
  • 电源管理:AXP2101
  • 其他:SD卡槽、RTC、蜂鸣器、MIC、气压传感、按键
  • 屏幕:1.8寸 Amoled 368*448
  • 电池:402728 400毫安

PCB

  • 单面四层0.8MM,元件比较密集
  • 1.27MM 母座用于下载和 USB 连接
  • 引出串口和 I2C 接口等,预留用于底板拓展

程序

应用、驱动层解耦

  • SimpleKV:简单的 Key-Value (键-值) 内存数据库框架,实现两层的数据交互。使用 (字符串) 索引数据,切断应用层和驱动层的数据耦合。
  • Lvgl: 使用 Lvgl 作上层应用默认图形库,及其文件系统接口

因此,只要设备适配 Lvgl ,就可以直接使用这套 Mooncake UI框架,如 Linux :

驱动层

  • HAL:外设驱动的对象抽象
  • Hardware Manager:硬件管理层。负责底层的 硬件初始化、运行时的 状态维护更新,例如自动睡眠、抬手唤醒、计步器更新等
  • USB MSC 模式:为了读写 SD 卡方便,同时按 电源 按键启动时,会进入 USB MSC 模式,SD 卡会被挂载成 U盘,接上 USB 即可直接读写

应用层

  • App 基类、安装卸载框架:所有 App 的对象基类,描述了 App 的基础框架。安装卸载框架实现简单的 App 列表管理

  • App 生命周期管理:支持前后台的 App 运行生命周期 调度器 (单线程,单前台,多后台) ,使用 状态机 (FSM)实现

  • 系统内置 APP:都是在 App 层之上实现的应用,但 启动动画启动器 会被 Framwaork 框架特殊调用

用户自定义表盘

watch_faces 目录下的每一个文件夹都视作一个表盘

  • background 目录:存放表盘背景资源 (png、gif)
  • number 目录:存放从0~9的时间数字资源 (png)
  • face.json :资源描述文件,如时间数字坐标等
watch_faces/
|
├── AyanamiRei
│   ├── background
│   │   ├── background.png
│   ├── face.json
│   └── number
│       ├── 0.png
│       ├── ~
│       └── 9.png
|
├── FloatingNum
│   ├── background
│   │   └── background.png
│   ├── face.json
│   └── number
│       ├── 0.png
│       ├── ~
│       └── 9.png
|
└── PixelThinking
  ├── background
  │   ├── background.png
  ├── face.json
  └── number
      ├── 0.png
      ├── ~
      └── 9.png

模型

存在问题:

  • 目前模型只能选激光烧结,树脂打印会有缝
  • 按键位置有偏移,需要按靠上部位

Core symbols most depended-on inside this repo

lv_obj_add_style
called by 551
Firmware/SourceCode/components/lvgl/src/core/lv_obj_style.c
deserializeJson
called by 343
Firmware/SourceCode/components/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp
lv_scr_act
called by 332
Firmware/SourceCode/components/lvgl/src/core/lv_disp.h
lv_area_get_width
called by 263
Firmware/SourceCode/components/lvgl/src/misc/lv_area.h
print
called by 260
Firmware/SourceCode/components/LovyanGFX/src/lgfx/v1/LGFXBase.hpp
lv_event_send
called by 232
Firmware/SourceCode/components/lvgl/src/core/lv_event.c
memoryUsage
called by 232
Firmware/SourceCode/components/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp
lv_label_create
called by 210
Firmware/SourceCode/components/lvgl/src/widgets/lv_label.c

Shape

Function 9,385
Method 3,869
Class 1,601
Enum 197

Languages

C++53%
C46%
Python2%
Ruby1%
TypeScript1%

Modules by API surface

Firmware/SourceCode/components/ArduinoJson/extras/tests/catch/catch.hpp1,345 symbols
Firmware/SourceCode/components/lvgl/src/extra/libs/png/lodepng.c247 symbols
Firmware/SourceCode/components/lvgl/rlottie/src/lottie/rapidjson/document.h210 symbols
Firmware/SourceCode/components/lvgl/rlottie/src/vector/stb/stb_image.h207 symbols
Firmware/SourceCode/components/LovyanGFX/src/lgfx/v1/misc/colortype.hpp203 symbols
Firmware/SourceCode/components/LovyanGFX/src/lgfx/v1/LGFXBase.hpp201 symbols
Firmware/SourceCode/components/BMI270_BMM150/src/utilities/BMI270-Sensor-API/bmi2.c195 symbols
Firmware/SourceCode/components/lvgl/rlottie/src/lottie/lottiemodel.h193 symbols
Firmware/SourceCode/components/lvgl/rlottie/src/lottie/rapidjson/schema.h175 symbols
Firmware/SourceCode/managed_components/espressif__tinyusb/hw/mcu/dialog/da1469x/SDK_10.0.8.105/sdk/bsp/include/cmsis_gcc.h136 symbols
Firmware/SourceCode/components/LovyanGFX/src/lgfx/utility/miniz.c131 symbols
Firmware/SourceCode/components/LovyanGFX/src/lgfx/utility/result.hpp115 symbols

For agents

$ claude mcp add Monica \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page