3.9 KiB
3.9 KiB
SkyLogic AeroAlign - IMU Node Wiring
Version: 2.0.0
Date: 2026-03-11
Scope: Master and IMU slave nodes for the combined AeroAlign + CoG platform
Overview
This document covers the current wiring for the angle-measurement nodes:
Master: ESP32-C3 or ESP32-S3, WiFi AP, web UI, ESP-NOW receiver, local IMUIMU Slave: ESP32-C3 or ESP32-S3, remote MPU6050 node over ESP-NOW
The Master and IMU Slave share the same MPU6050 wiring. The main difference is firmware role.
CoG-specific hardware is documented separately in cog_scale_wiring.md.
Supported ESP32 Pin Maps
ESP32-C3
| Signal | GPIO | Notes |
|---|---|---|
SDA |
GPIO4 |
MPU6050 I2C data |
SCL |
GPIO5 |
MPU6050 I2C clock |
BATTERY_ADC |
GPIO0 |
Battery divider midpoint |
STATUS_LED |
GPIO10 |
Optional |
ESP32-S3
| Signal | GPIO | Notes |
|---|---|---|
SDA |
GPIO4 |
MPU6050 I2C data |
SCL |
GPIO5 |
MPU6050 I2C clock |
BATTERY_ADC |
GPIO1 |
Only if divider is actually fitted |
STATUS_LED |
disabled | Board-dependent, firmware keeps it off by default |
Power Topology
LiPo 1S
|
+--> TP4056 BAT+/BAT-
|
+--> LDO VIN
|
+--> 3.3V rail --> ESP32 3V3
--> MPU6050 VCC
Notes
- A dedicated 3.3V regulator is still recommended for clean IMU behavior.
- The Master S3 configuration currently assumes battery monitoring may be absent.
- If no ADC divider is wired on the Master, leave
BATTERY_MONITOR_ENABLEDdisabled in config.h.
MPU6050 Wiring
| ESP32 | MPU6050 | Notes |
|---|---|---|
GPIO4 |
SDA |
I2C |
GPIO5 |
SCL |
I2C |
3V3 |
VCC |
Use 3.3V |
GND |
GND |
Common ground |
GND |
AD0 |
Sets address 0x68 |
Bus Settings
- ESP32-C3 default:
400 kHz - ESP32-S3 default:
100 kHz
The lower S3 bus speed is intentional and matches the current robust MPU6050 access code.
Battery Divider
Use the divider only on nodes that really need local battery reporting.
LiPo+
|
[10k]
|
+----> BATTERY_ADC
|
[10k]
|
GND
Current firmware assumptions
- IMU slaves: divider enabled in firmware
- Master C3: divider enabled
- Master S3: divider disabled by default until the ADC path is actually wired
Master Node Wiring Summary
| Block | Required | Notes |
|---|---|---|
| ESP32-C3 or ESP32-S3 | yes | master firmware |
| MPU6050 | yes | local reference IMU |
| LiPo + charger + regulator | yes | portable operation |
| Battery divider | optional | hidden in UI if absent |
IMU Slave Wiring Summary
| Block | Required | Notes |
|---|---|---|
| ESP32-C3 or ESP32-S3 | yes | slave firmware |
| MPU6050 | yes | same robust driver as Master |
| LiPo + charger + regulator | yes | remote node |
| Battery divider | recommended | transmitted to Master |
Bring-Up Checklist
- Verify
3.3Vrail before plugging the ESP32 in. - Confirm MPU6050 address
0x68withAD0tied low. - Keep SDA/SCL leads short on S3 builds.
- On the Slave, set the Master MAC in config.cpp.
- Build and flash:
cd firmware/master && pio runcd firmware/slave && pio run -e esp32-s3
Troubleshooting
No MPU6050 detected
- Check
GPIO4andGPIO5 - Check
AD0 -> GND - Reduce wire length
- Prefer the S3 default
100 kHz
Battery percentage missing on Master
- Expected on S3 unless the divider is fitted and
BATTERY_MONITOR_ENABLEDis enabled - The web UI now hides the metric when unavailable
Slave does not show up
- Recheck Master MAC in config.cpp
- Ensure Master AP channel and ESP-NOW channel match