# zhuhai-esp/esp32-c3-abrobot-oled architecture

> Architecture diagram of the GitHub repository zhuhai-esp/esp32-c3-abrobot-oled, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/zhuhai-esp/esp32-c3-abrobot-oled
- Repository: https://github.com/zhuhai-esp/esp32-c3-abrobot-oled

## Overview

This repository is a set of four standalone Arduino firmware examples for an ESP32-C3 OLED module, rather than one application. The principal user-visible workflows are either blinking the onboard LED, printing serial messages while blinking, rendering a static OLED demo, or connecting to Wi-Fi, synchronizing time, and showing a clock on the OLED. The clock firmware also enables ArduinoOTA. Each sketch implements its own setup/loop behavior in one source file; relationships shown are limited to those visible in the excerpts. The README gives no further capability details.

Main entry points: [`C3-ABrobot-Clock/src/main.cpp`](https://github.com/zhuhai-esp/esp32-c3-abrobot-oled/blob/main/C3-ABrobot-Clock/src/main.cpp) (Network clock), [`C3-ABRobot-CDC/src/main.cpp`](https://github.com/zhuhai-esp/esp32-c3-abrobot-oled/blob/main/C3-ABRobot-CDC/src/main.cpp) (CDC serial demo), [`C3-ABrobot-OLED/src/main.cpp`](https://github.com/zhuhai-esp/esp32-c3-abrobot-oled/blob/main/C3-ABrobot-OLED/src/main.cpp) (Static OLED demo), [`C3-ABrobot-Blink/src/main.cpp`](https://github.com/zhuhai-esp/esp32-c3-abrobot-oled/blob/main/C3-ABrobot-Blink/src/main.cpp) (LED blink)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_basic_demos["Basic firmware demos"]
  node_blink_firmware["LED blink<br/>[main.cpp]"]
  node_cdc_firmware["CDC serial demo<br/>[main.cpp]"]
end

subgraph group_display_demos["Display firmware demos"]
  node_oled_firmware["Static OLED demo<br/>[main.cpp]"]
end

subgraph group_clock_services["Clock connectivity"]
  node_clock_firmware["Network clock<br/>[main.cpp]"]
end

node_board_led(("Onboard LED"))
node_serial_console(("Serial console"))
node_oled_panel["OLED panel"]
node_wifi_network(("Wi-Fi network"))
node_ntp_servers(("NTP servers"))
node_ota_uploader(("OTA uploader"))

node_blink_firmware -->|"toggles"| node_board_led
node_cdc_firmware -->|"toggles"| node_board_led
node_cdc_firmware -->|"prints messages"| node_serial_console
node_oled_firmware -->|"toggles"| node_board_led
node_oled_firmware -->|"renders demo"| node_oled_panel
node_clock_firmware -->|"toggles"| node_board_led
node_clock_firmware -->|"renders clock"| node_oled_panel
node_clock_firmware -->|"configures Wi-Fi"| node_wifi_network
node_clock_firmware -->|"requests time"| node_ntp_servers
node_clock_firmware -->|"handles OTA"| node_ota_uploader

click node_blink_firmware "https://github.com/zhuhai-esp/esp32-c3-abrobot-oled/blob/main/C3-ABrobot-Blink/src/main.cpp"
click node_cdc_firmware "https://github.com/zhuhai-esp/esp32-c3-abrobot-oled/blob/main/C3-ABRobot-CDC/src/main.cpp"
click node_oled_firmware "https://github.com/zhuhai-esp/esp32-c3-abrobot-oled/blob/main/C3-ABrobot-OLED/src/main.cpp"
click node_clock_firmware "https://github.com/zhuhai-esp/esp32-c3-abrobot-oled/blob/main/C3-ABrobot-Clock/src/main.cpp"

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_blink_firmware,node_cdc_firmware toneBlue
class node_oled_firmware toneAmber
class node_clock_firmware,node_ntp_servers toneMint
class node_board_led,node_serial_console,node_oled_panel,node_wifi_network,node_ota_uploader toneIndigo
```

## Components

### Basic firmware demos

- [LED blink](https://github.com/zhuhai-esp/esp32-c3-abrobot-oled/blob/main/C3-ABrobot-Blink/src/main.cpp): `C3-ABrobot-Blink/src/main.cpp`
- [CDC serial demo](https://github.com/zhuhai-esp/esp32-c3-abrobot-oled/blob/main/C3-ABRobot-CDC/src/main.cpp): `C3-ABRobot-CDC/src/main.cpp`

### Display firmware demos

- [Static OLED demo](https://github.com/zhuhai-esp/esp32-c3-abrobot-oled/blob/main/C3-ABrobot-OLED/src/main.cpp): `C3-ABrobot-OLED/src/main.cpp`

### Clock connectivity

- [Network clock](https://github.com/zhuhai-esp/esp32-c3-abrobot-oled/blob/main/C3-ABrobot-Clock/src/main.cpp): `C3-ABrobot-Clock/src/main.cpp`

### Other components

- **Onboard LED**
- **Serial console**
- **OLED panel**
- **Wi-Fi network**
- **NTP servers**
- **OTA uploader**

## Connections

- LED blink → Onboard LED: toggles (evidence: `C3-ABrobot-Blink/src/main.cpp`)
- CDC serial demo → Onboard LED: toggles (evidence: `C3-ABRobot-CDC/src/main.cpp`)
- CDC serial demo → Serial console: prints messages (evidence: `C3-ABRobot-CDC/src/main.cpp`)
- Static OLED demo → Onboard LED: toggles (evidence: `C3-ABrobot-OLED/src/main.cpp`)
- Static OLED demo → OLED panel: renders demo (evidence: `C3-ABrobot-OLED/src/main.cpp`)
- Network clock → Onboard LED: toggles (evidence: `C3-ABrobot-Clock/src/main.cpp`)
- Network clock → OLED panel: renders clock (evidence: `C3-ABrobot-Clock/src/main.cpp`)
- Network clock → Wi-Fi network: configures Wi-Fi (evidence: `C3-ABrobot-Clock/src/main.cpp`)
- Network clock → NTP servers: requests time (evidence: `C3-ABrobot-Clock/src/main.cpp`)
- Network clock → OTA uploader: handles OTA (evidence: `C3-ABrobot-Clock/src/main.cpp`)
