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

OpenNMC front panel overview

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.

  • boot0 holds U-Boot and the bootloader environment
  • BOOT is mounted at /boot/system read-only
  • rootA and rootB are the A/B root filesystem slots
  • userdata uses 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:

  1. expands the eMMC partition table to the end of the device
  2. creates partition 4 as userdata
  3. formats userdata as ext4 and mounts it at /userdata
  4. copies /home onto persistent storage and bind-mounts it back
  5. runs the ESP32 factory-flash step if needed
  6. 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.pem with 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