This directory contains technical documentation about the PVRouter's software architecture, performance characteristics, and design decisions.
- Software Architecture - Overall system design and module relationships
- Memory Layout - RAM and Flash usage analysis
- Performance Characteristics - Timing analysis and benchmarks
- Interrupt System - ADC processing and ISR design
- Power Calculation Engine - Real power measurement algorithms
- Configuration System - Compile-time validation and type safety
- Contributing Guide - How to contribute to the project
- Testing Guide - Testing methodologies and tools
- Debugging Guide - Troubleshooting and diagnostic techniques
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ ADC Inputs │───▶│ Processing │───▶│ Load Control │
│ (V/I sensors) │ │ Engine │ │ (TRIACs) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐
│ Data Logging │
│ & Telemetry │
└──────────────────┘
- ADC Sampling: ~104μs per cycle (9.6 kHz)
- Memory Usage: 26.3% RAM, 27.8% Flash (Arduino Uno)
- Real-time Processing: Zero missed cycles
- Temperature Resolution: 0.01°C
- Power Accuracy: <1% with proper calibration
- ✅ Compile-time configuration validation
- ✅ Bounds checking for all array accesses
- ✅ Watchdog monitoring
- ✅ Polarity detection and confirmation
- ✅ Temperature range validation
- ✅ CRC verification for sensor data
For detailed information, see the individual documentation files.