# yangyuanxin/embedded-product-collect architecture

> Architecture diagram of the GitHub repository yangyuanxin/embedded-product-collect, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/yangyuanxin/embedded-product-collect
- Repository: https://github.com/yangyuanxin/embedded-product-collect
- Video tour (about a minute): https://gitdiagram.com/yangyuanxin/embedded-product-collect/video

## Overview

This repository is a collection of independent MCU product projects, not one application with a shared runtime. Its principal workflow is therefore per-project: firmware interacts with a device-specific interface and produces a device action or user-facing function. The tree identifies examples including a soldering iron, clock, and charging equipment. The sampled H7-TOOL sources document USB mass-storage callbacks backed by eMMC and DAPLink virtual-filesystem transfer handling; other project internals were not sampled, so their wiring is intentionally not inferred.

Main entry points: [`23.安富莱H7-TOOL/User/st_usb/usbd_mass_storage/usbd_storage.c`](https://github.com/yangyuanxin/embedded-product-collect/blob/master/23.%E5%AE%89%E5%AF%8C%E8%8E%B1H7-TOOL/User/st_usb/usbd_mass_storage/usbd_storage.c) (USB MSC interface), [`23.安富莱H7-TOOL/Libraries/CMSIS/Driver/Include/Driver_Storage.h`](https://github.com/yangyuanxin/embedded-product-collect/blob/master/23.%E5%AE%89%E5%AF%8C%E8%8E%B1H7-TOOL/Libraries/CMSIS/Driver/Include/Driver_Storage.h) (Storage driver API), [`23.安富莱H7-TOOL/Libraries/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_storage_template.c`](https://github.com/yangyuanxin/embedded-product-collect/blob/master/23.%E5%AE%89%E5%AF%8C%E8%8E%B1H7-TOOL/Libraries/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_storage_template.c) (MSC template), [`00.白光烙铁(STC15XX)/User/main.c`](https://github.com/yangyuanxin/embedded-product-collect/blob/master/00.%E7%99%BD%E5%85%89%E7%83%99%E9%93%81(STC15XX)/User/main.c) (Soldering iron)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_examples["Firmware examples"]
  node_collection["MCU project collection"]
  node_iron["Soldering iron<br/>[main.c]"]
  node_clock["iLook clock<br/>[main.c]"]
  node_evcharger["AC charger<br/>[main.c]"]
  node_dccharger["DC charger<br/>[server.c]"]
end

subgraph group_h7storage["H7 storage"]
  node_h7usb["USB MSC interface<br/>[usbd_storage.c]"]
  node_emmc[("eMMC device")]
  node_storageapi["Storage driver API<br/>[Driver_Storage.h]"]
  node_storage_template["MSC template"]
  node_daplink["DAPLink VFS<br/>[vfs_manager.c]"]
end

subgraph group_platform["MCU platform"]
  node_stm32["STM32 platform<br/>[sys_hw.c]"]
end

node_developer(("Project user"))
node_usbhost(("USB host"))

node_developer -->|"selects project"| node_collection
node_collection -->|"includes firmware"| node_iron
node_collection -->|"includes firmware"| node_clock
node_collection -->|"includes firmware"| node_evcharger
node_collection -->|"includes firmware"| node_dccharger
node_usbhost -->|"requests blocks"| node_h7usb
node_h7usb -->|"reads/writes blocks"| node_emmc
node_h7usb -.->|"separate transfer handling"| node_daplink
node_storage_template -->|"exposes MSC callbacks"| node_usbhost
node_storageapi -.->|"defines storage operations"| node_emmc

click node_iron "https://github.com/yangyuanxin/embedded-product-collect/blob/master/00.%E7%99%BD%E5%85%89%E7%83%99%E9%93%81(STC15XX)/User/main.c"
click node_clock "https://github.com/yangyuanxin/embedded-product-collect/blob/master/01.iLook.Time%E4%BA%A7%E5%93%81%E7%BA%A7%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE(STM32)/iClock_DEV_SDK_V5.0.0/Projects/main.c"
click node_evcharger "https://github.com/yangyuanxin/embedded-product-collect/blob/master/02.%E5%B0%8F%E5%8C%BA%E7%94%B5%E5%8A%A8%E8%BD%A6%E5%85%85%E7%94%B5%E6%A1%A9%E8%AE%BE%E5%A4%87(STM32)/USER/main.c"
click node_dccharger "https://github.com/yangyuanxin/embedded-product-collect/blob/master/03.%E7%9B%B4%E6%B5%81%E5%85%85%E7%94%B5%E6%A1%A9%E7%A8%8B%E5%BA%8F(STM32_RTT)/src/server.c"
click node_h7usb "https://github.com/yangyuanxin/embedded-product-collect/blob/master/23.%E5%AE%89%E5%AF%8C%E8%8E%B1H7-TOOL/User/st_usb/usbd_mass_storage/usbd_storage.c"
click node_storageapi "https://github.com/yangyuanxin/embedded-product-collect/blob/master/23.%E5%AE%89%E5%AF%8C%E8%8E%B1H7-TOOL/Libraries/CMSIS/Driver/Include/Driver_Storage.h"
click node_storage_template "https://github.com/yangyuanxin/embedded-product-collect/blob/master/23.%E5%AE%89%E5%AF%8C%E8%8E%B1H7-TOOL/Libraries/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_storage_template.c"
click node_daplink "https://github.com/yangyuanxin/embedded-product-collect/blob/master/23.%E5%AE%89%E5%AF%8C%E8%8E%B1H7-TOOL/User/daplink/source/daplink/drag-n-drop/vfs_manager.c"
click node_stm32 "https://github.com/yangyuanxin/embedded-product-collect/blob/master/01.iLook.Time%E4%BA%A7%E5%93%81%E7%BA%A7%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE(STM32)/iClock_DEV_SDK_V5.0.0/Projects/System/src/sys_hw.c"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_collection,node_iron,node_clock,node_evcharger,node_dccharger,node_developer toneBlue
class node_h7usb,node_emmc,node_storageapi,node_storage_template,node_daplink toneAmber
class node_stm32 toneMint
class node_usbhost toneIndigo
```

## Components

### Firmware examples

- **MCU project collection**
- [Soldering iron](https://github.com/yangyuanxin/embedded-product-collect/blob/master/00.%E7%99%BD%E5%85%89%E7%83%99%E9%93%81(STC15XX)/User/main.c): `00.白光烙铁(STC15XX)/User/main.c`
- [iLook clock](https://github.com/yangyuanxin/embedded-product-collect/blob/master/01.iLook.Time%E4%BA%A7%E5%93%81%E7%BA%A7%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE(STM32)/iClock_DEV_SDK_V5.0.0/Projects/main.c): `01.iLook.Time产品级开源项目(STM32)/iClock_DEV_SDK_V5.0.0/Projects/main.c`
- [AC charger](https://github.com/yangyuanxin/embedded-product-collect/blob/master/02.%E5%B0%8F%E5%8C%BA%E7%94%B5%E5%8A%A8%E8%BD%A6%E5%85%85%E7%94%B5%E6%A1%A9%E8%AE%BE%E5%A4%87(STM32)/USER/main.c): `02.小区电动车充电桩设备(STM32)/USER/main.c`
- [DC charger](https://github.com/yangyuanxin/embedded-product-collect/blob/master/03.%E7%9B%B4%E6%B5%81%E5%85%85%E7%94%B5%E6%A1%A9%E7%A8%8B%E5%BA%8F(STM32_RTT)/src/server.c): `03.直流充电桩程序(STM32_RTT)/src/server.c`

### H7 storage

- [USB MSC interface](https://github.com/yangyuanxin/embedded-product-collect/blob/master/23.%E5%AE%89%E5%AF%8C%E8%8E%B1H7-TOOL/User/st_usb/usbd_mass_storage/usbd_storage.c): `23.安富莱H7-TOOL/User/st_usb/usbd_mass_storage/usbd_storage.c`
- **eMMC device**
- [Storage driver API](https://github.com/yangyuanxin/embedded-product-collect/blob/master/23.%E5%AE%89%E5%AF%8C%E8%8E%B1H7-TOOL/Libraries/CMSIS/Driver/Include/Driver_Storage.h): `23.安富莱H7-TOOL/Libraries/CMSIS/Driver/Include/Driver_Storage.h`
- [MSC template](https://github.com/yangyuanxin/embedded-product-collect/blob/master/23.%E5%AE%89%E5%AF%8C%E8%8E%B1H7-TOOL/Libraries/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_storage_template.c): `23.安富莱H7-TOOL/Libraries/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_storage_template.c`
- [DAPLink VFS](https://github.com/yangyuanxin/embedded-product-collect/blob/master/23.%E5%AE%89%E5%AF%8C%E8%8E%B1H7-TOOL/User/daplink/source/daplink/drag-n-drop/vfs_manager.c): `23.安富莱H7-TOOL/User/daplink/source/daplink/drag-n-drop/vfs_manager.c`

### MCU platform

- [STM32 platform](https://github.com/yangyuanxin/embedded-product-collect/blob/master/01.iLook.Time%E4%BA%A7%E5%93%81%E7%BA%A7%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE(STM32)/iClock_DEV_SDK_V5.0.0/Projects/System/src/sys_hw.c): `01.iLook.Time产品级开源项目(STM32)/iClock_DEV_SDK_V5.0.0/Projects/System/src/sys_hw.c`

### Other components

- **Project user**
- **USB host**

## Connections

- Project user → MCU project collection: selects project
- MCU project collection → Soldering iron: includes firmware
- MCU project collection → iLook clock: includes firmware
- MCU project collection → AC charger: includes firmware
- MCU project collection → DC charger: includes firmware
- USB host → USB MSC interface: requests blocks
- USB MSC interface → eMMC device: reads/writes blocks
- USB MSC interface → DAPLink VFS: separate transfer handling
- MSC template → USB host: exposes MSC callbacks
- Storage driver API → eMMC device: defines storage operations
