Skip to content

Commit 9e5dfb3

Browse files
moffa90claude
andcommitted
docs: remove phase references and future roadmap items
- Remove development phases from documentation - Remove gRPC optional dependency - Clean up TBD placeholders with actual values - Update hardware documentation with EMC2305 specs - Simplify architecture diagrams 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 4be7126 commit 9e5dfb3

6 files changed

Lines changed: 17 additions & 121 deletions

File tree

CLAUDE.md

Lines changed: 2 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
1414

1515
**Target Platform:** Multiplatform Linux (Banana Pi, Raspberry Pi, generic Linux systems with I2C support)
1616

17-
**Current Phase:** Phase 1 - Core Driver Development (Completed with critical fixes)
18-
1917
## Development Commands
2018

2119
### Driver Testing
@@ -46,9 +44,6 @@ i2cdetect -y [bus_number]
4644
# Install in development mode
4745
pip3 install -e .
4846

49-
# Install with gRPC support
50-
pip3 install -e ".[grpc]"
51-
5247
# Install development dependencies
5348
pip3 install -e ".[dev]"
5449
```
@@ -59,16 +54,13 @@ pip3 install -e ".[dev]"
5954

6055
```
6156
┌─────────────────────────────────────────┐
62-
│ High-Level API (TBD) │ <- API Layer (gRPC/REST)
63-
│ - Fan control service │
64-
│ - Monitoring endpoints │
57+
│ Application Code │
6558
└──────────────┬──────────────────────────┘
6659
6760
┌──────────────▼──────────────────────────┐
6861
│ Fan Controller Driver │ <- Hardware Abstraction
6962
│ - Speed control │
7063
│ - RPM monitoring │
71-
│ - Temperature sensing │
7264
│ - Configuration management │
7365
└──────────────┬──────────────────────────┘
7466
@@ -126,7 +118,7 @@ pip3 install -e ".[dev]"
126118
### Hardware Limitations
127119
- **I2C bus speed**: Typically 100 kHz or 400 kHz (check device requirements)
128120
- **No hot-plug**: Devices must be present at initialization
129-
- **Chip-specific limitations**: [TBD - Add specific chip constraints]
121+
- **Chip-specific limitations**: See EMC2305 datasheet for detailed constraints
130122

131123
### I2C Bus Sharing
132124
- **Multiple services may use the same I2C bus** - always use I2C locking
@@ -263,10 +255,6 @@ scp /tmp/ventus-deploy.tar.gz user@target:/tmp/
263255
ssh user@target "cd /opt && tar xzf /tmp/ventus-deploy.tar.gz && pip3 install -r requirements.txt"
264256
```
265257

266-
### Systemd Service (TBD)
267-
268-
Will be added in Phase 2 for automatic startup and monitoring.
269-
270258
## Known Issues and Gotchas
271259

272260
### I2C Permissions
@@ -289,26 +277,6 @@ sudo chmod 1777 /var/lock
289277
### Bus Speed Configuration
290278
Some devices require specific I2C bus speeds. Configure via device tree or kernel module parameters.
291279

292-
## Development Phases
293-
294-
### Phase 1: Core Driver (Current)
295-
- ✅ Project structure and templates
296-
- 🔄 I2C communication layer
297-
- 🔄 Fan controller driver implementation
298-
- 🔄 Basic examples and tests
299-
300-
### Phase 2: Advanced Features (Planned)
301-
- gRPC API (optional)
302-
- Automatic fan curves (temperature-based)
303-
- PID controller implementation
304-
- Systemd service integration
305-
306-
### Phase 3: Tools & Monitoring (Planned)
307-
- CLI client
308-
- Web dashboard
309-
- Real-time monitoring
310-
- Logging and diagnostics
311-
312280
## Code Style Standards
313281

314282
### Python Standards
@@ -349,12 +317,6 @@ Some devices require specific I2C bus speeds. Configure via device tree or kerne
349317
- Handle sensor errors
350318
- Provide calibration options if needed
351319

352-
## Reference Projects
353-
354-
This project follows patterns established in:
355-
- **bananapi-i2c-led-board (luminex)** - I2C driver architecture, gRPC API patterns
356-
- **go-cyacd** - Professional code structure, documentation standards
357-
358320
## Quick Reference
359321

360322
### Essential Commands

PRODUCTION_READINESS.md

Lines changed: 2 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
## Executive Summary
77

8-
The EMC2305 driver library is now production-ready for use as a driver/library component. All critical gaps have been addressed, making it suitable for integration into applications that will provide higher-level features like gRPC APIs, web dashboards, etc.
8+
The EMC2305 driver library is now production-ready for use as a driver/library component. All critical gaps have been addressed, making it suitable for integration into applications.
99

1010
## Completed Improvements
1111

@@ -157,8 +157,6 @@ from emc2305 import (
157157
### For Internal Use ✅
158158
The library is **immediately ready** for:
159159
- Integration into applications
160-
- Building gRPC/REST APIs on top
161-
- Creating monitoring dashboards
162160
- Developing fan control services
163161
- Testing and validation
164162

@@ -172,21 +170,6 @@ The library is **ready** for public release with:
172170

173171
---
174172

175-
## What's NOT Included (By Design)
176-
177-
These are **application-layer features** and are intentionally excluded from the driver library:
178-
179-
❌ gRPC/REST API server
180-
❌ Web dashboard
181-
❌ CLI client application
182-
❌ Systemd service integration
183-
❌ Automatic temperature-based fan curves
184-
❌ Monitoring/alerting system
185-
186-
**Rationale:** These belong in applications that use the library, not in the driver itself.
187-
188-
---
189-
190173
## Installation
191174

192175
### From Source (Development)
@@ -203,9 +186,6 @@ pip install -e ".[config]"
203186

204187
# Development tools
205188
pip install -e ".[dev]"
206-
207-
# gRPC support (if building API server)
208-
pip install -e ".[grpc]"
209189
```
210190

211191
---
@@ -264,24 +244,6 @@ PYTHONPATH=. python3 examples/python/test_fsc_mode.py
264244

265245
---
266246

267-
## Next Steps for Application Development
268-
269-
Now that the driver library is production-ready, applications can be built on top of it:
270-
271-
### Phase 2: Application Layer (Recommended)
272-
1. **gRPC API Server** - Remote control and monitoring
273-
2. **REST API** - HTTP-based interface
274-
3. **CLI Client** - Command-line control tool
275-
4. **Configuration Service** - Centralized config management
276-
277-
### Phase 3: Advanced Features (Optional)
278-
5. **Web Dashboard** - Real-time monitoring UI
279-
6. **Automatic Fan Curves** - Temperature-based control
280-
7. **Systemd Integration** - Service management
281-
8. **Logging & Monitoring** - Telemetry and diagnostics
282-
283-
---
284-
285247
## Production Checklist
286248

287249
- [x] Core driver functionality complete
@@ -333,4 +295,4 @@ The library provides a solid foundation for building fan control applications, m
333295
- CI/CD pipeline integration
334296
- Third-party consumption
335297

336-
**Recommended:** Proceed with building application-layer features (gRPC/REST APIs, dashboards, etc.) on top of this solid driver foundation.
298+
**Available on PyPI:** `pip install microchip-emc2305`

docs/development/README.md

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,8 @@ This directory contains development notes, implementation decisions, and technic
1919
- Performance measurements
2020
- Compatibility testing
2121

22-
## Development Phases
22+
## Completed Features
2323

24-
### Phase 1: Core Driver ✅ (Completed)
2524
- [x] Project structure and templates
2625
- [x] I2C communication layer with validation
2726
- [x] Fan controller driver implementation
@@ -30,17 +29,6 @@ This directory contains development notes, implementation decisions, and technic
3029
- [x] Configuration lock race condition fix
3130
- [x] Magic numbers replaced with named constants
3231

33-
### Phase 2: Advanced Features (Planned)
34-
- [ ] gRPC API
35-
- [ ] Automatic fan curves
36-
- [ ] PID controller
37-
- [ ] Systemd service
38-
39-
### Phase 3: Tools & Integration (Planned)
40-
- [ ] CLI client
41-
- [ ] Web dashboard
42-
- [ ] Monitoring and logging
43-
4432
## Technical Decisions
4533

4634
Document key technical decisions here as the project evolves:

docs/hardware/README.md

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,20 @@ Place the following documentation here:
2323

2424
## Hardware Specifications
2525

26-
**Fan Controller IC**: [TBD - Add chip model]
26+
**Fan Controller IC**: Microchip EMC2305 (5-channel PWM fan controller)
2727

28-
**I2C Addresses**: [TBD - List device addresses]
28+
**I2C Addresses**: Configurable via ADDR_SEL pin (0x4C, 0x4D, 0x5C, 0x5D, 0x5E, 0x5F)
2929

3030
**Supported Features**:
31-
- [ ] Fan speed control (PWM/DC)
32-
- [ ] RPM monitoring (tachometer)
33-
- [ ] Temperature sensing
34-
- [ ] Fault detection
31+
- [x] Fan speed control (PWM)
32+
- [x] RPM monitoring (tachometer)
33+
- [x] Fault detection (stall, spin failure, drive failure)
34+
- [x] Closed-loop RPM control (FSC mode with hardware PID)
3535

3636
**Electrical Specifications**:
37-
- Operating voltage: [TBD]
38-
- I2C bus speed: [TBD]
39-
- Fan power ratings: [TBD]
37+
- Operating voltage: 3.3V (VDD)
38+
- I2C bus speed: 100 kHz / 400 kHz
39+
- Fan power: 5V or 12V (separate rail)
4040

4141
## Quick Reference
4242

@@ -46,14 +46,9 @@ Place the following documentation here:
4646
# Scan I2C bus 0
4747
i2cdetect -y 0
4848

49-
# Expected output should show devices at:
50-
# [TBD - List expected addresses]
49+
# Expected output should show EMC2305 at configured address (e.g., 0x4D)
5150
```
5251

53-
### Pin Connections
54-
55-
[TBD - Add pinout diagram or table]
56-
5752
## Notes
5853

59-
Add any hardware-specific notes, quirks, or important considerations here.
54+
See the EMC2305 datasheet in this directory for complete hardware specifications.

pyproject.toml

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,6 @@ dev = [
4040
"mypy>=1.5",
4141
"ruff>=0.1.0",
4242
]
43-
grpc = [
44-
"grpcio>=1.60.0",
45-
"grpcio-tools>=1.60.0",
46-
"protobuf>=4.25.0",
47-
]
4843

4944
[project.urls]
5045
Homepage = "https://github.com/moffa90/python-emc2305"
@@ -53,7 +48,7 @@ Repository = "https://github.com/moffa90/python-emc2305"
5348
"Bug Tracker" = "https://github.com/moffa90/python-emc2305/issues"
5449

5550
[tool.setuptools]
56-
packages = ["emc2305", "emc2305.driver", "emc2305.proto", "emc2305.server"]
51+
packages = ["emc2305", "emc2305.driver"]
5752

5853
[tool.setuptools.package-data]
5954
emc2305 = ["py.typed"]

tests/README.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -136,12 +136,6 @@ i2cdetect -y 0
136136
- RPM monitoring
137137
- Fault detection
138138

139-
### ⏳ Future Tests (Planned)
140-
- Mock hardware tests (for CI/CD)
141-
- Performance benchmarks
142-
- Stress tests
143-
- Multi-device scenarios
144-
145139
## Writing Tests
146140

147141
### Test Structure

0 commit comments

Comments
 (0)