RSS Amplifier

javatask.dev · Jun 27, 2026

The Factory That Pays for Itself, Part 1: One Camera, Twenty Bins

0
Sign in to vote or save

Andrii Melashchenko · javatask.dev

Most kanban automation breaks on economics before it breaks on technology. A weight sensor per bin costs $75–96 in hardware (vendor-published: eTurns SensorBins, Paragon Robotics) plus a per-stockroom monthly SaaS subscription. eTurns’ own full-service tier — SensorBins hardware plus “Manage” SaaS at $249/stockroom/month — totals approximately $217,680 over three years for a 20-stockroom, 400-bin fleet: roughly an order of magnitude more than the entire three-year capital and NRE investment in the vision system (~$16,200). The recurring subscription alone, at that rate, exceeds the vision system’s total capital within approximately three months. Even at eTurns’ own cheapest published tier ($40/stockroom/month, ~$67,200 over three years for the fleet), the recurring subscription overtakes the vision system’s capital within approximately twenty months. The technology works; the question this series measures is whether the unit economics can work differently.

The autonomous e-Kanban vision cell addresses this at the topology level, not the model level. A single overhead 1080p camera mounted above an assembly cell covers twenty bins. A single industrial edge server — one Simply NUC extremeEDGE EE-3200, priced at approximately $4,000 (planning estimate, 2026; SNUC does not publish list pricing) — runs the complete application control plane for every cell in the factory: twenty cells, 400 bins total, one server, no cloud inference, no SaaS subscriptions. The model is commodity; the topology is the economic argument.

This post establishes the factory topology and the gated duty cycle that makes it work. It is Part 1 of The Factory That Pays for Itself, a series that documents one system exercising the full software-defined industrial edge stack end-to-end — mechanism by mechanism, number by number. The economics are in Part 5; the sensor layer is in Part 2.

A dark flat-vector brand figure showing the factory-wide e-Kanban topology. In the center, a single EE-3200 server box is labeled ‘AMD Ryzen 7 8840U · 38 TOPS · NANO-BMC · 54 W max’. Twenty assembly cell icons are arranged in a 4×5 grid connected by clean electric-blue lines to the server. Each cell icon shows one small overhead camera symbol above a 4×5 arrangement of twenty bin rectangles. A bold label at the top reads ‘1 EE-3200 : 20 cells : 400 bins’. A callout box in the upper right shows ‘1 camera : 20 bins’ with a bracket arrow. The bottom caption reads ‘factory-wide amortisation — no per-bin power, no per-bin SaaS’. Dark background, brand palette.

This post is Part 1 of The Factory That Pays for Itself. The series is the worked-example capstone to The Software-Defined Industrial Edge, which proves the 19-standard mechanism stack post by post. The parent series’ Part 1 established why Podman Quadlets are the correct runtime substrate for brownfield edge — the same substrate the EE-3200 hosts without a cluster control plane or a container-orchestration layer on the box. Part 2 of the parent series established Margo as the vendor-neutral deployment standard that makes workloads portable across devices. This series does not re-explain those mechanisms — it exercises them in one system and shows what they cost. Part 2 of this series will examine the sensor layer: the passive printed bin and how it produces a clean BinObservation. The team and ownership decisions this topology raises — who operates the box and where it sits in the org — are examined in Who Runs the Box? on javatask.systems.


The factory topology: 1 EE-3200, 20 cells, 400 bins#

The 1:10 blast-radius cap often cited for OT edge deployments — one controller per ten cells, so a failure affects at most one production line — reflects a safety-critical default. E-Kanban does not qualify as safety-critical: a stockout is a recoverable operational event, not a safety incident. With that constraint removed, the single $4,000 server amortises factory-wide, and its per-bin contribution becomes a minor cost driver rather than the headline risk.

LayerComponentCount (factory)
Edge serverEE-3200, AMD Ryzen 7 8840U (confirm Pro/commercial variant with SNUC quote), fanless1
Assembly cellsEach with one overhead 1080p IP camera20
Passive binsColor-Blocked Ramp liner + AprilTag marker400 (20 per cell)

A single EE-3200 at $4,000, spread across 400 bins, costs $10.00 per bin in server hardware over the life of the system — approximately 25% of the total three-year per-bin cost. The dominant cost driver is not the server; it is calibration non-recurring engineering (NRE) at approximately $20 per bin, or approximately 49% of total. That fact is developed in Part 5; it begins here: the server price is not the swing factor.

The 1:20 ratio — one camera per twenty bins — is the structural lever. Competing approaches are 1:1 (one weight sensor per bin) or reader-bounded (one RFID reader covering a cell, but at a different cost profile). At 20 bins per camera, the $200 camera-and-mount line for the cell contributes $10.00 per bin in hardware cost. The passive printed bin liner — which replaces the powered sensor entirely — adds $0.50 per bin. No mechanics, no power, no per-bin electronics.


What the EE-3200 actually runs#

The EE-3200 is not a perception node that sends frames to a cloud model. It runs the entire system:

  • strands-py recursive agentic control loop (model-agnostic orchestration, AWS open source, Apache 2.0)
  • SQLite graph store — embedded, on-box provenance and episodic memory with fast local writes and zero extra service
  • Gated local LLM — a 7–14B quantized model on the AMD Radeon 780M iGPU via the llama.cpp Vulkan backend, for the batching and replenishment judgment layer
  • On-box vision-language model (Qwen3-VL-8B) — reads each bin’s rectified camera crop and returns a fill-level reading, loopback-only on the iGPU, no cloud egress, ~7.7–11.4 s/frame measured
  • Episode and DecisionTrace provenance store (see Part 4)
  • NANO-BMC out-of-band management — remote reboot and recovery without a field visit

The hardware specification:

FeatureSpecification
ProcessorAMD Ryzen 7 8840U (Hawk Point, 8-core Zen 4; confirm Pro/commercial variant with SNUC quote)
Integrated GPUAMD Radeon 780M (RDNA 3, 12 CUs)
AI performanceUp to 38 TOPS (NPU + iGPU + CPU combined; AMD platform rating)
MemoryUp to 96 GB LPDDR5
StorageUp to 26 TB NVMe
Network4× 2.5 GbE + 1× BMC management port
EnclosureFanless aluminium, DIN-rail or 1U rackmount
Operating temperature−40 °C to +85 °C
SecurityTPM 2.0
ManagementNANO-BMC out-of-band (serial, power cycling, virtual drive, firmware update)
Max power draw54 W under load

No video ever leaves the node. No frames go to a cloud API. No tokens are billed per cycle. The 38 TOPS figure is AMD’s stated platform-level rating for the 8840U; actual inference throughput for the specific workload depends on quantization and runtime. Local LLM inference runs on the Vulkan path via llama.cpp — the pragmatic near-term route for the Radeon 780M iGPU on Linux, pending more mature ROCm support for integrated graphics.

The NANO-BMC deserves explicit attention. In an OT environment, sending a technician to reset a locked-up node can mean hours of downtime on the affected line. The NANO-BMC gives the operator remote serial access, power cycling, and firmware update capability from the IT network — eliminating the category of failure that requires physical presence. For an unattended factory-floor appliance with no local keyboard and screen, this is a load-bearing operational property.


The gated duty cycle#

The control loop fires every 120 seconds — 720 times per day per cell, 14,400 times per day across the 20-cell factory. The critical design constraint is: no model invocation in the hot path of an idle cycle. A cycle at this cadence means any per-cycle cloud or LLM cost inverts the economics completely. The gate — developed in detail in Part 3 — is what makes the 720-cycle cadence sustainable.

The duty cycle sequence, using the strands-py ReWOO Planner/Worker/Solver pattern:

duty cycle fires (every ~120 s)
  → orchestrator PLANS the cycle (no tool calls, no LLM cost)
  → bin-vision-skill captures 1 frame, corrects perspective, runs the on-box VLM (Qwen3-VL-8B)
  → emits BinObservation JSON per bin (see Part 2)
  → stability filter absorbs single-frame noise, updates the bin's belief state
  → if NO threshold crossing detected: return (no LLM invocation, no further cost)
  → if threshold crossing AND consensus window W satisfied AND no open order:
      → orchestrator SOLVES from gathered evidence only (ReWOO)
      → memory-provenance stages command WITH Episode + DecisionTrace
      → BeforeToolCallEvent hook validates provenance — blocks on failure
      → replenishment command emitted, fully auditable
  → context compaction preserves trace lineage

The vast majority of cycles — most bins are adequately stocked at any given 2-minute check — exit after the stability filter applies the belief update, without invoking the LLM. The model only runs on genuine threshold crossings. In a well-stocked production cell, that is a small number of events per day. The cost consequence of this gate is the subject of Part 3; the harness that makes the gate reliable and auditable is Part 4.


Why factory-wide amortisation matters#

The economic argument for vision-based e-Kanban rests on two structural properties that are architectural, not incidental:

1. The server cost does not scale with factory size. In the weight-sensor VMI model, hardware costs are strictly proportional to bin count ($85 per bin). In the vision model, the $4,000 server is fixed — a one-time cost that amortises across however many bins the factory has. At 400 bins, the server contributes $10.00 per bin. At 600 bins on 30 cells, it drops to $6.67 per bin. The per-bin cost and the competitive multiple both improve with factory size.

2. Recurring costs go to zero. The $0 recurring software and cloud inference cost is the load-bearing architectural assumption of the model. The SQLite graph store, Strands, the on-box vision model, and the local LLM are all self-hosted on the EE-3200. No per-cycle API call, no monthly SaaS subscription. The only recurring cost is electricity: approximately €22–33 per year for the EE-3200 node in gated mode (planning estimate, 2026; power figures are in EUR per German industrial tariff ~€0.25/kWh; all other figures are in USD). The detailed power model is in Part 3.

These two properties are independent of the model chosen, independent of the vendor, and independent of the number of SKUs the system tracks. They are consequences of the topology: one server, factory-wide, self-hosted.

This single cell is not a toy deployment. It exercises every layer of the open-standards stack the parent series describes — from commodity compute and Podman Quadlets at the base to MCP-pattern agency and an A2A replenishment command at the top. That is the grounded case for standardisation is industrialisation: one buildable system, the whole stack.

A dark flat-vector diagram titled “One e-Kanban Cell Exercises the Whole Stack” with seven layered bands, each mapping an open standard on the left to the cell’s concrete component on the right via an arrow: eBPF + commodity compute to EE-3200 edge server; OCI + Podman Quadlets to systemd .container units; Margo to device + ERP interop; MQTT + Apache Iceberg to BinObservation to Iceberg; KitOps ModelKit to an on-box VLM (Qwen3-VL); MCP + strands-py to provenance-gated harness; A2A to replenishment order to ERP.

The three-year per-bin cost (~$40.50), the multiple versus the vendor-published reference — up to ~13× vs the full-service tier, 4×–13× across published tiers — and the NRE payback calculation are all developed from these two properties in Part 5. All figures carry the “planning estimate, 2026” qualification and depend on EE-3200 pricing that is not publicly listed. Obtain a volume quote from SNUC before any procurement decision.


What comes next#

The topology table establishes what the system is and what it costs at the server level. What it does not yet explain is how a $0.50 printed bin liner produces a reliable, noise-tolerant fill-level reading — or why that reading is good enough to trigger a replenishment command to an ERP system.

Part 2 examines the sensor layer: the Color-Blocked Ramp printed bin design, the AprilTag SKU marker, the homography perspective correction that makes a single overhead camera reliable across twenty bins at different distances, and the 30-minute consensus filter that eliminates operator-hand occlusions. The BinObservation JSON that emerges from the sensor layer is what the gated duty cycle in Part 3 acts on — and where the cost lever of Part 3 begins.

Read the original on javatask.dev

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.