No description
Find a file
2026-07-20 21:31:46 +02:00
.agent_states fix: resolve resource leaks causing host freeze, add production test suite 2026-07-20 21:28:30 +02:00
.opencode Merge branch 'dev' into develop 2026-07-20 21:30:54 +02:00
agents refactor: rewrite AGENTS.md as project soul, fix motor star-delta bug 2026-04-06 14:52:55 +02:00
configs agent(pm): Deploy & validate 5 instances on RPi5 — fixes for InfluxDB init, config, historical data, state machine 2026-05-31 18:18:13 +02:00
data phase(4): check valve and PRV models - backflow prevention, pressure relief at 11 bar 2026-04-25 18:35:52 +02:00
docker fix: update ports for RPi5 deployment (8300/8301) and fix Dockerfile 2026-03-22 11:09:48 +01:00
docs Merge branch 'dev' into develop 2026-07-20 21:30:54 +02:00
scripts Merge branch 'dev' into develop 2026-07-20 21:30:54 +02:00
src chore: remove __pycache__ pulled in from develop merge 2026-07-20 21:31:46 +02:00
tasks tasks: add delegation tasks for all milestones 2026-03-21 11:05:49 +01:00
tests chore: remove __pycache__ pulled in from develop merge 2026-07-20 21:31:46 +02:00
.coverage fix: Correct state machine, demand_flow, and motor speed issues 2026-05-03 19:20:20 +02:00
.env.example feat(data): Add InfluxDB time-series storage with 1sec sampling 2026-05-03 15:48:12 +02:00
.gitignore security: remove exposed token, fix lockfile drift, add root .gitignore 2026-06-01 15:33:47 +02:00
.issue_num phase(4): check valve and PRV models - backflow prevention, pressure relief at 11 bar 2026-04-25 18:35:52 +02:00
AGENTS.md refactor: AGENTS.md v2 based on Opus4.6 feedback 2026-04-06 16:20:37 +02:00
check_syntax.py fix: critical stability and performance fixes for RPi5 deployment 2026-05-25 09:25:58 +02:00
docker-compose.influxdb.yml fix: resolve resource leaks causing host freeze, add production test suite 2026-07-20 21:28:30 +02:00
docker-compose.yml fix: resolve resource leaks causing host freeze, add production test suite 2026-07-20 21:28:30 +02:00
Dockerfile fix: HEALTHCHECK port parameterized, add build: sections, fix InfluxDB URL 8086→8087 2026-06-01 18:44:28 +02:00
FIELD_TEST_REPORT.md fix: Correct state machine, demand_flow, and motor speed issues 2026-05-03 19:20:20 +02:00
forgejo_tools.py chore: add comprehensive .gitignore, add forgejo_tools for issue/PR creation 2026-03-22 09:37:42 +01:00
GIT_WORKFLOW.md docs: update GIT_WORKFLOW.md with mandatory branch deletion rule 2026-04-06 16:04:17 +02:00
GOAL.md fix: correct failing tests in M2 and M3 2026-03-21 11:10:44 +01:00
gotchas.md docs: log security investigation, update session state 2026-06-01 15:59:31 +02:00
pyproject.toml feat(data): Add InfluxDB time-series storage with 1sec sampling 2026-05-03 15:48:12 +02:00
qa_physics_test.sh fix: Correct state machine, demand_flow, and motor speed issues 2026-05-03 19:20:20 +02:00
qa_physics_tolerance.py fix: Correct state machine, demand_flow, and motor speed issues 2026-05-03 19:20:20 +02:00
qa_results.csv agent(pm): Deploy & validate 5 instances on RPi5 — fixes for InfluxDB init, config, historical data, state machine 2026-05-31 18:18:13 +02:00
qa_validate.sh agent(pm): Deploy & validate 5 instances on RPi5 — fixes for InfluxDB init, config, historical data, state machine 2026-05-31 18:18:13 +02:00
qa_validation.sh agent(pm): Deploy & validate 5 instances on RPi5 — fixes for InfluxDB init, config, historical data, state machine 2026-05-31 18:18:13 +02:00
README.md docs: rewrite README.md for stakeholders 2026-04-06 15:33:34 +02:00
requirements.txt docs: add gotchas entry, update session state, preserve LLM pipeline (not in prod) 2026-06-01 15:13:31 +02:00
SESSION_STATE.md fix: resolve resource leaks causing host freeze, add production test suite 2026-07-20 21:28:30 +02:00
STATE.md docs: update STATE.md - session wrap up 2026-04-07 2026-04-07 13:28:44 +02:00
test_oil_fix.py fix: critical stability and performance fixes for RPi5 deployment 2026-05-25 09:25:58 +02:00

CCS3200 Compressor Emulator

A software emulator that simulates real industrial air compressors


What Is This?

Industrial factories use large air compressors to power their equipment. These compressors are expensive, loud, and use a lot of energy.

Our software emulator mimics how a real compressor works - same physics, same controls, same responses - but runs on a small computer (Raspberry Pi 5).

Why does this matter?

  • Engineers can test control software without expensive hardware
  • Factory automation can be developed and validated before deployment
  • Training environments can simulate real-world scenarios safely
  • Debugging can happen without risking real equipment

What We Built

A complete compressor emulator that includes:

  • Physics simulation - Models how air pressure, temperature, and flow behave
  • Motor control - Simulates star-delta and variable frequency drives
  • State machine - Follows real compressor startup/shutdown sequences
  • Industrial protocols - Modbus TCP/RTU for PLC integration
  • Web dashboard - Real-time monitoring and control
  • Data recording - Historical trends and event logging

Progress

Milestone Status
Foundation (structure, config, logging) ✅ Complete
Physics Core (tank, motor, compressor models) ✅ Complete
Controller Logic (state machine, alarm handling) ✅ Complete
Industrial Protocols (Modbus TCP/RTU) ✅ Complete
Web API (sensors, control, configuration) ✅ Complete
Data Recording (time-series, events) ✅ Complete
Profile Management (preset configurations) ✅ Complete
Raspberry Pi 5 Deployment ✅ Deployed

All 217+ automated tests passing


What's Working Now

  • Start/stop compressor with realistic startup sequence
  • Monitor tank pressure, oil temperature, motor current, power usage
  • Adjust demand (how much air is being used)
  • Automatic load/unload based on pressure settings
  • Record sensor data over time
  • Connect via Modbus from any PLC software

What's Next

Near Term

  • Multi-compressor support - Simulate entire factory air networks
  • Fault injection - Test how systems handle sensor failures, leaks, overheating
  • Weather effects - Temperature and humidity impact on compressor behavior
  • Improved dashboard - Better visualizations and controls

Future Ideas

  • Energy consumption analysis and optimization
  • Predictive maintenance simulation
  • Integration with real factory SCADA systems

How To Use

Local Development

docker-compose up

Access at: http://localhost:8302

Production (Raspberry Pi 5)

Running at: http://nazimyildiz.com:8300

API Documentation

http://nazimyildiz.com:8300/docs


Project Team

This project follows the engineering philosophy defined in AGENTS.md.

Core principles:

  • Physics accuracy before speed
  • Verify everything with tests
  • No shortcuts on quality
  • Zero tolerance for unknowns

Documentation

  • AGENTS.md - Project philosophy and standards
  • docs/ARCHITECTURE.md - Technical architecture
  • docs/COMPRESSOR_STATE.md - How the state machine works
  • docs/PHYSICS_VALIDATION_TEST_PLAN.md - Physics model verification

License

Internal project - contact authors for details