graph TB
subgraph "Core 0 - Application"
MPU[MPU Task
50ms sampling]
DISPLAY[Display Task
100ms refresh]
MAIN[Main Loop]
BUTTONS[Button Task]
end
subgraph "Core 1 - Network"
WIFI[WiFi Connection Task]
NETWORK[Network Stack Runner]
MQTT[MQTT Task]
end
subgraph "Shared Channels"
IMU_CH[(IMU_CHANNEL
size: 16)]
DISP_CH[(DISPLAY_CHANNEL
size: 8)]
CMD_CH[(CMD_CHAN
size: 8)]
EVT_CH[(EVT_CHAN
size: 8)]
IMU_LATEST[(IMU_LATEST
Mutex)]
end
subgraph "Hardware"
MPU_HW[MPU6050
I2C 0x68]
OLED[SSD1306
I2C]
BROKER[MQTT Broker]
end
MPU_HW -->|I2C Read| MPU
MPU -->|send| IMU_CH
IMU_CH -->|receive| MAIN
MAIN -->|try_send| DISP_CH
MAIN -->|mqtt_set_imu| IMU_LATEST
DISP_CH -->|receive| DISPLAY
DISPLAY -->|I2C Write| OLED
IMU_LATEST -->|try_lock| MQTT
MQTT <-->|TCP/IP| BROKER
BUTTONS -->|push_key| DISP_CH
style IMU_CH fill:#ff9999
style DISP_CH fill:#99ccff
style IMU_LATEST fill:#ffcc99