Features & Specifications
Overview
OpenNMC is an open source UPS network management card for the APC / Schneider Electric SmartSlot.
It is built around the NetCube Systems Nagami System-on-Module and runs Buildroot Linux with Network UPS Tools and a Python3 web application.
OpenNMC is open source software and is intended to become open source hardware as well, with OSHW certification planned later.
Core Platform
| Area | Specification |
|---|---|
| SoM | NetCube Systems Nagami |
| CPU | Dual Core ARM Cortex-A7 @ 1.2 GHz |
| Memory | 128 MB DDR3 @ 800 MHz |
| Storage | 4 GB onboard eMMC |
| Boot media | 4 GB eMMC with boot0, BOOT FAT partition, A/B rootfs slots, and persistent userdata |
| OS | Buildroot Linux |
| UPS stack | Network UPS Tools (NUT) |
| Web interface | Python3 web application served by opennmc-web |
| Proxy service | NUT proxy for authenticated external NUT clients |
| Logging | UPS and system data logging service |
Board-Level Features
- SmartSlot power and communication are provided through the UPS slot interface.
- The expansion sockets are documented in Expansion Connector and the SmartSlot edge connector is documented in SmartSlot Pinout.
- The board includes an onboard USB hub for the extension USB ports and the USB-A host port.
- The board includes a DS3232MZ+ RTC and a replaceable CR1220 battery holder.
- The USB-C OTG control is handled by a TUSB320.
- The Nagami SoM includes an onboard ESP32 used for WiFi and Bluetooth.
- The standard image installs the OpenNMC frontend, backend, helper, PAM policy, lighttpd config, and SysV init scripts from the OpenNMC service Buildroot external tree.
External Interfaces
| Interface | Notes |
|---|---|
| Console | See Console |
| LEDs | See Power, LEDs, and Reset |
| USB OTG | See USB OTG |
| Reset | See Power, LEDs, and Reset |
| MicroSD | See MicroSD |
| USB Host | See USB Host |
| Ethernet | See Ethernet |
| Wireless | See WiFi / Bluetooth |

The front-panel overview image shows the physical port order and the RP-SMA placement above the MicroSD slot.
Expansion Interfaces
| Interface | Notes |
|---|---|
| USB2 | 3x USB 2.0 ports with shared over-current protection and VBUS_EN signals |
| I2C | 1x shared I2C bus |
| SPI | 1x SPI bus capable of QuadSPI |
| GPIO | 2x15 header carrying USB hub and SoM-derived signals |
| CARD | 2x8 header carrying unused SmartSlot signals |
See Expansion Connector for the full GPIO and CARD pinout, including the board revision differences and rail-loading notes.
Storage Layout
The eMMC user area uses a GPT layout with a dedicated boot partition and two root filesystem partitions.
The BOOT partition is a FAT filesystem, 8 MiB in size, and contains boot.scr.
boot0holds U-Boot and the bootloader environmentBOOTis mounted at/boot/systemread-onlyrootAandrootBare the A/B root filesystem slotsuserdatauses the remaining free space after partition 3
userdata is created on first boot as partition 4, formatted as ext4, and mounted at /userdata.
First Boot Behavior
On first boot OpenNMC:
- expands the eMMC partition table to the end of the device
- creates partition 4 as
userdata - formats
userdataas ext4 and mounts it at/userdata - copies
/homeonto persistent storage and bind-mounts it back - runs the ESP32 factory-flash step if needed
- marks the current RAUC slot as good after boot
Security And Updates
- The device does not implement Secure Boot.
- Software updates are installed with RAUC verity bundles.
- The signing keyring is embedded in the image at
/etc/rauc/keyring.pem. - Early units may ship with development keyrings.
- Later units will ship with production keyrings.
- Switching between development and production trains is done by replacing
/etc/rauc/keyring.pemwith the matching keyring and then installing a bundle from the same train. See Firmware Trains.
Product Code
| Field | Value |
|---|---|
| PCB codename | dobermann |
| Buildroot defconfig | netcube_dobermann_defconfig |
| Device part number | ONMC-DBRMN |