Skip to content

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.

Notifications You must be signed in to change notification settings

newmatik/EsoCore

Repository files navigation

EsoCore

Sponsor

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

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 for the server
  • Node 22+ and pnpm 9+ for the portal and website
  • ARM GCC (arm-none-eabi-gcc) and GNU Make for the firmware

Getting Started

Server (Django REST API)

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)

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)

cd website
pnpm install
pnpm run dev

To generate the static site for production:

pnpm run generate

See website/README.md for deployment instructions.

Firmware

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:

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

Open Source

Source code: 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.

About

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.

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

Contributors 3

  •  
  •  
  •