All files and documentation related to the MeshEMS hardware.
The NESL 865B EMS board pairs an ESP32-S3 N16R8 (dual-core LX7, 16 MB flash, 8 MB PSRAM) with a purpose-built AC metering add-on and peripherals stack (Ethernet, SD Card reader, OLED display). For energy metering applications it supports either Modbus RTU energy meters (DDS238, CHD130, DDSU666 single-phase) or the CircuitSetup ATM90E32 6-channel SPI meter for 3-phase / multi-CT sites, in addition to the SHT20 temp/humidity sensor which communicates via Modbus. An optional external I2C PCF8574 8-channel SSR bank provide load-control outputs.
- Board Diagrams
- Hardware Overview
- Board Revisions
- Bill of Materials
- Related Repositories
- Contributing
- License
- Safety Disclaimer
- Maintainers
- Processor: Xtensa® dual-core 32-bit LX7 microprocessor, up to 240 MHz
- Memory: 16MB Flash + 8MB PSRAM (N16R8 variant)
- Connectivity: Wi-Fi 802.11 b/g/n and Bluetooth 5 (LE)
- USB: USB OTG interface with Type-C connector
- GPIO: 45 programmable GPIO pins
- Dimensions: 51mm x 25.5mm x 10mm
- Operating Voltage: 3.3V
- Datasheet: ESP32S3 Technical Reference Manual
- Development Board Datasheet: ESP32S3-DevKitC-1 Datasheet
- Industry-standard RS-485 interface for MODBUS RTU communication
- Built-in transceiver with automatic direction control
- 3-pin screw terminal for easy connection (A, B, GND)
- Supports baud rates up to 115200 bps
- Operating voltage: 5V (level-shifted from ESP32-S3 at 3.3V)
- Module Datasheet: RS-485 Transceiver Datasheet
- CAN 2.0B compliant controller and transceiver
- Supports standard (11-bit) and extended (29-bit) identifiers
- Maximum bitrate: 1 Mbit/s
- Screw terminals for CANH and CANL connections
- Integrated termination resistors (jumper selectable)
- Controller Datasheet: MCP2515 CAN Controller
- Transceiver Datasheet: TJA1051 CAN Transceiver
- BLE/BLE Mesh: Utilizing ESP32S3's built-in Bluetooth capabilities
- Button Array Interface: Analog input with voltage divider network
- Display: Optional 1.3" OLED display (SPI interface)
- USB Power: 5V via USB Type-C connector
- DC Power: 5VDC via screw terminals to on board, connects directly to 5VIN of ESP32 (5V input MAX).
Not UL/CE Certified for AC Applications: This development kit by itself is NOT certified for direct connection to AC mains.
- PCB Dimensions: 150mm x 90mm (main board)
- Mounting: 4x M3 mounting holes (3.2mm diameter)
| Revision | Year | Status | Diagram |
|---|---|---|---|
| NESL 865B | 2026 | Current | Board diagram |
| MeshEMS V001 | 2025 | Legacy | Board diagram |
Bill of Materials files live in bom/:
| File | Format | Notes |
|---|---|---|
| MeshEMS V3 BOM (w/o CS Energy Meter) | CSV | Compatible with NESL EMS Controller PCB 865B |
| MeshEMS V3 BOM (w/o CS Energy Meter) | XLSX | Source spreadsheet; Boards to build drives extended quantities |
- energy-iot/meshems-openami-metering — firmware that runs on this hardware (ESP32-S3 / PlatformIO)
- energy-iot/docs — platform documentation
Contributions to the hardware design, BOM, and documentation are welcome.
- Fork the repository and create a feature branch.
- Make your changes (board files, BOM updates, docs).
- Sign your commits with
git commit -s. - Open a pull request describing the change and the board revision it targets.
For broader context and integration ideas, see energy-iot/docs.
This project is licensed under the CERN Open Hardware Licence Version 2 – Weakly Reciprocal (CERN-OHL-W-2.0).
Note: CERN-OHL-W is a weakly reciprocal open-hardware licence. Modifications to the covered board design files (schematics, PCB layouts, gerbers) must be shared under the same licence, while it allows those design files to be combined with separately licensed components. See the CERN-OHL FAQ for details.
Failure to follow proper electrical safety practices could result in severe electric shock, fire, serious injury, or death.
Maintained by the energy-iot organization.


