System Architecture
Power flows along the thick edges (48 V battery bus, stepped down for logic). Control and telemetry are shown with dotted edges.
flowchart TD
%% Styling Definitions
classDef power fill:#ffebee,stroke:#c62828,stroke-width:2px,color:#000
classDef logic fill:#e3f2fd,stroke:#1565c0,stroke-width:2px,color:#000
classDef actuator fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px,color:#000
classDef bus fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#000,shape:circle
%% Power Generation & Storage
SP["☀️ 400W Solar Panel<br/>(45V Voc)"]:::power
MPPT["Boost MPPT<br/>Charge Controller"]:::power
BATT["🔋 16S LiFePO4 Battery<br/>(48V Nominal)"]:::power
BMS["EVAL-ADBMS6830BMSW<br/>(16S BMS)"]:::logic
%% Splitting Nodes
SPLIT_48(("48V<br/>Bus")):::bus
SPLIT_12(("12V<br/>Bus")):::bus
%% Actuation Subsystem
DRV_AZ["TMC5160-HV<br/>Azimuth Driver"]:::actuator
DRV_EL["TMC5160-HV<br/>Elevation Driver"]:::actuator
MOT_AZ["NEMA 23<br/>Azimuth Slew"]:::actuator
MOT_EL["NEMA 23<br/>Elevation Slew"]:::actuator
%% Power Distribution
DC_48_12["DC-DC Buck<br/>(48V to 12V)"]:::power
DC_12_5["DC-DC Buck<br/>(12V to 5V)"]:::power
USB_PD["Marine USB-C PD<br/>(65W Output)"]:::power
%% Logic Controller
ESP["🧠 ESP32<br/>Microcontroller"]:::logic
%% Power Routing
SP ==>|DC| MPPT
MPPT ==>|58.4V Charge| BATT
BATT ==> SPLIT_48
%% 48V Branch
SPLIT_48 ==> DRV_AZ
SPLIT_48 ==> DRV_EL
SPLIT_48 ==> DC_48_12
DRV_AZ ==>|High Current Phase| MOT_AZ
DRV_EL ==>|High Current Phase| MOT_EL
%% 12V and 5V Branch
DC_48_12 ==> SPLIT_12
SPLIT_12 ==> USB_PD
SPLIT_12 ==> DC_12_5
DC_12_5 ==>|5V Logic Power| ESP
%% Data Routing
ESP -.->|SPI| DRV_AZ
ESP -.->|SPI| DRV_EL
ESP -.->|isoSPI| BMS
BMS -.->|Cell Sensing| BATT
ESP -.->|UART / VE.Direct| MPPT
Mechanical Assembly
Drag the Explode Distance slider to separate the four structural layers: concrete footer + steel pedestal, SDE3 slew drive, 80/20 frame + adapter plate, and the solar panel payload. The whole stack is tilted to mimic an active tracking angle.
Interactive Kinematics Demo
Drag the sliders to drive the azimuth and elevation joints. Left-click and drag in the scene to rotate the camera; scroll to zoom. The red arrow shows the panel's normal vector.
Project write-up in progress — notes coming soon.