https://github.com/newmatik/esocore
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.
https://github.com/newmatik/esocore
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
Last synced: 4 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/newmatik/esocore
- Owner: newmatik
- Created: 2025-08-27T09:25:05.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2026-02-12T19:53:09.000Z (4 months ago)
- Last Synced: 2026-02-13T03:11:13.664Z (4 months ago)
- 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
- Language: C
- Homepage: http://www.esocore.com/
- Size: 64.4 MB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
# EsoCore
[](https://www.newmatik.com)
EsoCore (Edge Sensor Observation, Control, Operations, Reliability Engine) is an open-source industrial IoT platform
for monitoring factory machinery and equipment. It spans the full stack from PCB hardware and embedded firmware to a
Django REST API backend and a Nuxt.js user portal.
## Repository Structure
```text
esocore/
server/ Django REST API backend
portal/ Nuxt.js user portal (dashboard, devices, alerts)
website/ Public documentation site (static Nuxt.js, GitHub Pages)
firmware/ Embedded C firmware for Edge (STM32H7) and sensors (STM32G0)
hardware/ PCB designs (Altium), BOMs, Gerber, STEP, schematics
tools/ Utility scripts (BOM sync, STEP linter)
assets/ Shared icons and images
```
## Tech Stack
| Layer | Technology |
|-------|------------|
| Backend | Python 3.11+, Django 5, Django REST Framework, Poetry |
| Portal | TypeScript, Nuxt 4 (Vue 3), Nuxt UI, Tailwind CSS 4, Pinia |
| Website | TypeScript, Nuxt 4 (Vue 3), static generation, GitHub Pages |
| Firmware | C (C11), STM32H7 / STM32G0, ARM GCC, GNU Make |
| Hardware | Altium Designer, 4-layer FR4 PCBs |
## Prerequisites
- **Python 3.11+** and [Poetry](https://python-poetry.org/) for the server
- **Node 22+** and [pnpm 9+](https://pnpm.io/) for the portal and website
- **ARM GCC** (`arm-none-eabi-gcc`) and **GNU Make** for the firmware
## Getting Started
### Server (Django REST API)
```bash
cd server
poetry install
poetry run python manage.py migrate
poetry run python manage.py createsuperuser
poetry run python manage.py runserver
```
The API is served at `http://localhost:8000/api/` with Swagger docs at `http://localhost:8000/api/docs/`.
See `server/README.md` for full setup, authentication, and deployment details.
### Portal (Nuxt.js)
```bash
cd portal
pnpm install
pnpm run dev
```
The portal runs at `http://localhost:3000`.
See `portal/README.md` for configuration and branding details.
### Website (Documentation)
```bash
cd website
pnpm install
pnpm run dev
```
To generate the static site for production:
```bash
pnpm run generate
```
See `website/README.md` for deployment instructions.
### Firmware
```bash
cd firmware
make all # Build Edge + all sensors
make edge # Build Edge only
make vibration # Build a single sensor target
make help # List all available targets
```
Requires the ARM GCC toolchain. See `firmware/README.md` for architecture and protocol details.
## Hardware
PCB designs, schematics, and BOMs are organized under `hardware/`:
- `hardware/edge/` -- Edge device (STM32H747, dual Ethernet, RS-485, WiFi, IEPE inputs, safety I/O)
- `hardware/sensors/` -- RS-485 sensor modules
- vibration, acoustic, current, air quality, light, oil quality, pressure, temperature spot, proximity position
- `hardware/cables/` -- Cable assemblies
CAD files are in each device's `altium/` folder (open the `.PcbDoc` projects with Altium Designer).
See `hardware/README.md` and individual sensor READMEs for specifications.
### BOM Management
Canonical BOM CSVs live in each device folder under `hardware/`. The website reads CSVs from
`website/public/bom/` for public rendering. After editing any BOM in `hardware/`, run:
```bash
python3 tools/sync_bom_data.py
```
## Protocols
The Edge device supports industrial fieldbus protocols:
- Modbus RTU (RS-485, isolated) and Modbus TCP (Ethernet)
- PROFIBUS DP (DB-9, switchable termination)
- PROFINET Device (over Ethernet)
## Documentation
- [Hardware: Edge](website/content/esocore-edge.md) -- Core device specifications and connectivity
- [Hardware: Sensors](website/content/esocore-sensors.md) -- Sensor module catalog and applications
- [Installation Guide](website/content/getting-started/installation-guide.md) -- Full setup walkthrough
- Full docs are published at [www.esocore.com](https://www.esocore.com)
## Open Source
Source code: [github.com/newmatik/esocore](https://github.com/newmatik/esocore)
## Legal
Copyright 2026 Newmatik. All rights reserved.
Licensed under the Apache License, Version 2.0. See `website/content/license.md` for details.