{"id":44720185,"url":"https://github.com/newmatik/esocore","last_synced_at":"2026-02-15T15:54:20.265Z","repository":{"id":312078420,"uuid":"1045504988","full_name":"newmatik/EsoCore","owner":"newmatik","description":"Industrial IoT monitoring platform  with modular STM32 sensor modules for vibration/acoustic/current/pressure/temperature, Altium Designer hardware, firmware, BOMs, and cloud API specs for telemetry, OTA, and alerts.","archived":false,"fork":false,"pushed_at":"2026-02-12T19:53:09.000Z","size":67527,"stargazers_count":0,"open_issues_count":15,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-13T03:11:13.664Z","etag":null,"topics":["acoustic-monitoring","altium-designer","current-sensing","edge-computing","firmware","fusion360","hardware-design","industrial-iot","modbus","predictive-maintenance","profibus","profinet","rs-485","sensor-network","stm32","temperature-monitoring","vibration-monitoring"],"latest_commit_sha":null,"homepage":"http://www.esocore.com/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/newmatik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"custom":["https://www.newmatik.com"]}},"created_at":"2025-08-27T09:25:05.000Z","updated_at":"2026-02-12T19:51:22.000Z","dependencies_parsed_at":"2025-08-29T13:20:28.094Z","dependency_job_id":null,"html_url":"https://github.com/newmatik/EsoCore","commit_stats":null,"previous_names":["newmatik/edgesentinel","newmatik/esocore"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/newmatik/EsoCore","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/newmatik%2FEsoCore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/newmatik%2FEsoCore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/newmatik%2FEsoCore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/newmatik%2FEsoCore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/newmatik","download_url":"https://codeload.github.com/newmatik/EsoCore/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/newmatik%2FEsoCore/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29483268,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T15:33:17.885Z","status":"ssl_error","status_checked_at":"2026-02-15T15:32:53.698Z","response_time":118,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["acoustic-monitoring","altium-designer","current-sensing","edge-computing","firmware","fusion360","hardware-design","industrial-iot","modbus","predictive-maintenance","profibus","profinet","rs-485","sensor-network","stm32","temperature-monitoring","vibration-monitoring"],"created_at":"2026-02-15T15:54:18.801Z","updated_at":"2026-02-15T15:54:20.261Z","avatar_url":"https://github.com/newmatik.png","language":"C","funding_links":["https://www.newmatik.com"],"categories":[],"sub_categories":[],"readme":"# EsoCore\n\n[![Sponsor](https://img.shields.io/badge/Sponsor-Newmatik-blue?style=for-the-badge\u0026logo=github-sponsors)](https://www.newmatik.com)\n\nEsoCore (Edge Sensor Observation, Control, Operations, Reliability Engine) is an open-source industrial IoT platform\nfor monitoring factory machinery and equipment. It spans the full stack from PCB hardware and embedded firmware to a\nDjango REST API backend and a Nuxt.js user portal.\n\n## Repository Structure\n\n```text\nesocore/\n  server/       Django REST API backend\n  portal/       Nuxt.js user portal (dashboard, devices, alerts)\n  website/      Public documentation site (static Nuxt.js, GitHub Pages)\n  firmware/     Embedded C firmware for Edge (STM32H7) and sensors (STM32G0)\n  hardware/     PCB designs (Altium), BOMs, Gerber, STEP, schematics\n  tools/        Utility scripts (BOM sync, STEP linter)\n  assets/       Shared icons and images\n```\n\n## Tech Stack\n\n| Layer | Technology |\n|-------|------------|\n| Backend | Python 3.11+, Django 5, Django REST Framework, Poetry |\n| Portal | TypeScript, Nuxt 4 (Vue 3), Nuxt UI, Tailwind CSS 4, Pinia |\n| Website | TypeScript, Nuxt 4 (Vue 3), static generation, GitHub Pages |\n| Firmware | C (C11), STM32H7 / STM32G0, ARM GCC, GNU Make |\n| Hardware | Altium Designer, 4-layer FR4 PCBs |\n\n## Prerequisites\n\n- **Python 3.11+** and [Poetry](https://python-poetry.org/) for the server\n- **Node 22+** and [pnpm 9+](https://pnpm.io/) for the portal and website\n- **ARM GCC** (`arm-none-eabi-gcc`) and **GNU Make** for the firmware\n\n## Getting Started\n\n### Server (Django REST API)\n\n```bash\ncd server\npoetry install\npoetry run python manage.py migrate\npoetry run python manage.py createsuperuser\npoetry run python manage.py runserver\n```\n\nThe API is served at `http://localhost:8000/api/` with Swagger docs at `http://localhost:8000/api/docs/`.\n\nSee `server/README.md` for full setup, authentication, and deployment details.\n\n### Portal (Nuxt.js)\n\n```bash\ncd portal\npnpm install\npnpm run dev\n```\n\nThe portal runs at `http://localhost:3000`.\n\nSee `portal/README.md` for configuration and branding details.\n\n### Website (Documentation)\n\n```bash\ncd website\npnpm install\npnpm run dev\n```\n\nTo generate the static site for production:\n\n```bash\npnpm run generate\n```\n\nSee `website/README.md` for deployment instructions.\n\n### Firmware\n\n```bash\ncd firmware\nmake all          # Build Edge + all sensors\nmake edge         # Build Edge only\nmake vibration    # Build a single sensor target\nmake help         # List all available targets\n```\n\nRequires the ARM GCC toolchain. See `firmware/README.md` for architecture and protocol details.\n\n## Hardware\n\nPCB designs, schematics, and BOMs are organized under `hardware/`:\n\n- `hardware/edge/` -- Edge device (STM32H747, dual Ethernet, RS-485, WiFi, IEPE inputs, safety I/O)\n- `hardware/sensors/` -- RS-485 sensor modules\n  - vibration, acoustic, current, air quality, light, oil quality, pressure, temperature spot, proximity position\n- `hardware/cables/` -- Cable assemblies\n\nCAD files are in each device's `altium/` folder (open the `.PcbDoc` projects with Altium Designer).\nSee `hardware/README.md` and individual sensor READMEs for specifications.\n\n### BOM Management\n\nCanonical BOM CSVs live in each device folder under `hardware/`. The website reads CSVs from\n`website/public/bom/` for public rendering. After editing any BOM in `hardware/`, run:\n\n```bash\npython3 tools/sync_bom_data.py\n```\n\n## Protocols\n\nThe Edge device supports industrial fieldbus protocols:\n\n- Modbus RTU (RS-485, isolated) and Modbus TCP (Ethernet)\n- PROFIBUS DP (DB-9, switchable termination)\n- PROFINET Device (over Ethernet)\n\n## Documentation\n\n- [Hardware: Edge](website/content/esocore-edge.md) -- Core device specifications and connectivity\n- [Hardware: Sensors](website/content/esocore-sensors.md) -- Sensor module catalog and applications\n- [Installation Guide](website/content/getting-started/installation-guide.md) -- Full setup walkthrough\n- Full docs are published at [www.esocore.com](https://www.esocore.com)\n\n## Open Source\n\nSource code: [github.com/newmatik/esocore](https://github.com/newmatik/esocore)\n\n## Legal\n\nCopyright 2026 Newmatik. All rights reserved.\nLicensed under the Apache License, Version 2.0. See `website/content/license.md` for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnewmatik%2Fesocore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnewmatik%2Fesocore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnewmatik%2Fesocore/lists"}