Files
AeroAlign/hardware/schematics/sensor_node_wiring.md
T
2026-03-12 06:55:33 +01:00

3.7 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 IMU
  • IMU 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_ENABLED disabled 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

  1. Verify 3.3V rail before plugging the ESP32 in.
  2. Confirm MPU6050 address 0x68 with AD0 tied low.
  3. Keep SDA/SCL leads short on S3 builds.
  4. On the Slave, set the Master MAC in config.cpp.
  5. Build and flash:
    • cd firmware/master && pio run
    • cd firmware/slave && pio run -e esp32-s3

Troubleshooting

No MPU6050 detected

  • Check GPIO4 and GPIO5
  • 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_ENABLED is 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