commit 6ebbe40cf4bda6b05c57107560874ad618848922 Author: milo Date: Fri Dec 5 14:34:29 2025 -0500 Initial Readme diff --git a/README.md b/README.md new file mode 100644 index 0000000..c2ce613 --- /dev/null +++ b/README.md @@ -0,0 +1,94 @@ +# Samson eFit Module – Internal README (MVP Implementation) + +## Purpose +Build a compact, motor-controlled resistance unit with basic wireless control and encoder-based feedback. +Stay within MVP scope and avoid feature creep until core functionality works. + +--- + +## MVP Core Goals +- Smooth electronic resistance using BLDC + driver +- Wireless control of load (ESP32 → PWM) +- Encoder-based feedback to maintain commanded resistance +- Basic safety limits (current/thermal) +- Minimal UI (phone/Pi/serial) + +--- + +## Current Components (Received) + +| # | Component | Purpose | Notes | +|---|-----------|---------|------| +| 1 | Waveshare 4" Round DSI Touch Display | UI | Use later; not MVP-critical | +| 2 | AS5600 Magnetic Encoders (5 pcs) | Angle/rep sensing | High priority for control loop | +| 3 | Milwaukee M18 Battery Adapters (2 pcs) | Power source | Portable demos; regulate as needed | +| 4 | 400W BLDC Motor Controllers (2 pcs) | Motor driving | PWM control with FWD/REV/Brake | + +--- + +## High-Level Architecture (MVP) +- **ESP32**: PWM output + encoder reading + wireless interface +- **BLDC Driver**: Drives motor phases based on PWM +- **AS5600 Encoder**: Shaft position/velocity feedback over I²C +- **Power**: 18V battery via adapter (regulate for ESP32) +- **UI**: Minimal (phone > Pi display for later) + +--- + +## Implementation Order (Milestones) +1) Bench-test BLDC controller + motor (no load) +2) Read encoder position/velocity reliably +3) Close feedback loop (PWM adjusted from encoder) +4) Add safety limits (brake/stop/overcurrent handling) +5) Wireless interface to set target resistance +6) Optional: Pi display UI after stable MVP + +--- + +## Firmware Tasks (ESP32) +- PWM generation + tuning +- Encoder I²C driver (AS5600) +- Resistance control loop (angle/speed → PWM adjust) +- Safety watchdogs (fault detection) +- Simple wireless command interface + +--- + +## Hardware Tasks +- Encoder magnet mounting on pulley/shaft +- Secure motor + driver on bench fixture +- Power routing + regulation +- Fusing + emergency stop provisions + +--- + +## Power Notes +- M18 battery: 18V nominal +- Driver acceptable: 6–60V +- ESP32 requires regulated 5V/3.3V +- Add DC-DC regulator if powering both from same source + +--- + +## Scope Limiters (Avoid Feature Creep) +Not MVP: +- Full AI workout planning +- Cloud accounts or server database +- Advanced touchscreen interface +- Subscription model + +MVP success = controllable electronic resistance + encoder feedback loop. + +--- + +## Testing Targets +- Commanded resistance holds within stable margin +- Encoder data noise acceptable +- No uncontrolled torque spikes +- Safe stop behavior verified + +--- + +## Notes to Ourselves +If it does not directly help us **control and stabilize resistance**, it waits until after MVP. +