Skip to content

Architecture

ERP ──▶ control center ──▶ bridge ──MQTT──▶ access points ──BLE ESL──▶ labels
 ▲                │           │
 └── webhooks ────┘           └── reports status, button presses, battery

The parts

Control center. Keeps the list of sites, bridges, access points, labels, templates and bindings, and works out what every label should show. It has a web interface, a REST API for your systems, and sends webhooks when something happens on the floor. It is built on Supabase (Postgres) with a Nuxt interface.

Bridge. A Docker container, one per site. It draws label images from templates, decides which access point serves which label, keeps a local copy of the desired state, and retries until every label confirms. It contains the MQTT broker the access points connect to.

Access points. Ceiling-mounted, powered over Ethernet. Each has a Bluetooth radio that runs the shelf-label side of the Bluetooth 5.4 standard and a network processor that talks to the bridge.

Labels. E-paper display, RGB LED, one button, NFC for pairing, and a battery. They listen to their access point about once a second, which is why the LED reacts within about two seconds.

Integrations. Your ERP calls the REST API and receives webhooks. For ERPNext there is a ready-made app.

Deployment modes

All modes run the same containers, so nothing is built twice and you can move between them.

ModeControl centerBridgeConnection
Merkora CloudHosted by usYour siteA tunnel publishes the bridge; the bridge calls the control center over HTTPS
Your cloudYour Supabase project and a web containerYour siteTunnel, VPN or open port
On premisesA server in your networkSame networkLocal network only

We recommend a tunnel (Cloudflare Tunnel or an open-source alternative). The bridge only needs outbound HTTPS.

Who owns what

  • Your ERP owns the business data: orders, boxes, magazines. Merkora reads it when a label needs it and does not keep its own copy of your orders.
  • The control center owns configuration and the desired content of each label.
  • The bridge owns the radio side: which label is paired with which access point, and the transfer queues. It also reports the actual state back.

When something changes in your ERP, it sends a short hint (document type and name). The control center then reads the current record through the ERP's API, so a lost or repeated hint never leaves a label wrong for long. A periodic reconcile catches anything missed.

How fast things happen

ActionTypical time
LED starts blinking after a requestabout 2 s
New image on a black-and-white stripunder 10 s
New image on a colour tileunder 40 s (the panel itself needs about 20 s)

Security

  • Requests from the control center to a bridge are signed with HMAC-SHA256 and expire after five minutes.
  • Bridges authenticate to the control center with their own token.
  • API keys are per organisation and stored hashed.
  • Labels and access points use the encryption of the Bluetooth shelf-label profile; labels ignore unencrypted commands.

merkora

Merkora is made by Newmatik, an electronics manufacturer in Germany. Software and firmware will be published under Apache-2.0 and the hardware under CERN-OHL-W-2.0.