Custom Energy-TechEnd-to-end AIoT engineering

Launch the energy product you cannot buy off a shelf.

Sensor to model — board, firmware, connectivity, cloud, data, applications and the models on top. Take the whole stack, or the two layers you are missing.

Talk to an Engineer

Tell us where you are, and we will show you the seam

Eight layers between a sensor and a decision. Switch any of them to see what we would build, what comes back, and how many handovers that leaves.

What would you like built

Switch any layer between yours and ours. The seam is drawn where ownership changes.

An engagement can enter and leave at any layer
How a reading travels
PCBoursPartsoursFirmwareoursLinkoursCloudoursDataoursAppsoursAIours
Shape of the engagementEnd to end
Layers we build8of 8
Handovers0
Nothing here is a package. Every one of these has been sold on its own.
Layer by layer

What each layer is actually made of

The tools we build it with, what comes back at the end of it, and how long one pass through it usually takes. Every one of these has been sold on its own.

01

Circuit and PCB design

The board itself — analogue front end, power, isolation and layout, drawn to the accuracy class the meter has to hold.

Stack-up

How many copper layers the board gets, and what that buys.

Typical fab capability · cost shown as an index, not a price
Copper layersMains on the board
Cross-section, top to bottom
  1. Top copperSignal and parts
  2. Prepreg
  3. Inner 1Solid ground plane
  4. Core
  5. Inner 2Power planes, split by rail
  6. Prepreg
  7. Bottom copperSignal and the isolated side
Relative fab cost×1.6
Minimum track / gap5 mil / 5 mil
Fab lead time6–9days
Controlled impedance

50 Ω single-ended, 90 Ω differential

Return path

Every signal has an unbroken plane under it

Where this stack is the right answer

Three-phase metering, USB or Ethernet on board, any radio module.

What the mains section adds, at any layer count

Creepage and clearance to IEC 62052-11, a keep-out under the barrier no plane may cross, slots milled beneath the optocouplers, and surge parts sized forIEC 61000-4-5. On two layers this decides the outline, not the parts.

Cost is relative to the same board built on two layers. Lead times are for prototype quantities from a standard offshore fab, before assembly.
What comes back

Schematic, layout, Gerber and ODB++, bring-up notes, DFM review

Built with
Capture and layout
Altium DesignerKiCadCadence OrCADAllegro
Simulation
LTspiceQSPICESaturn PCB ToolkitSI and PI checks
Metering front end
ADE7880ADE9000Shunt and CTRogowski integrators
Standards worked to
IEC 62052-11IEC 62053-21/22IPC-2221BIEC 61000-4-5
How long one pass takes
  1. Schematic capture24wk
  2. Layout and routing25wk
  3. Fab and assembly of prototypes23wk
  4. Bring-up and rework24wk

816weeksAdded up from the stages above, for one pass. The prototype and field-trial loop can run more than once, and no honest figure says in advance how many.

02

Parts, sourcing and manufacture

Turning a working prototype into something a factory can build twice — second sources, a qualified line, and a workmanship class agreed before the first panel runs.

What the line owes you

Quantity and workmanship class, and the obligations they pull in.

Standard offshore assembly · cost shown as an index, not a price
QuantityWorkmanship class
Relative cost per unit×1.40
Typical order250–1,000units
Lead time6–9wk
Test coverage at this class
  • Visual to IPC-A-610 Class 2
  • AOI
  • Functional test
Sampling and acceptance

GB/T 2828.1 general level II, AQL 1.0 major / 2.5 minor.

Single SMT line, first article signed before the run.

Tooling this quantity needs

Stencil, a test jig, and a reflow profile proven on this board.

Class 2 — what it means

Dedicated service equipment. Continued function expected; uninterrupted service is not required.

Named on every purchase order, at every quantity

ISO 9001 quality systemRoHS 2011/65/EUREACHIPC J-STD-001 solderingCCC where the product ships into China

Per-unit cost is an index against ten thousand units at Class 2 on the same board. Standards listed are the ones the purchase order has to name.
What comes back

Costed BOM, second sources, supplier qualification, first-article report

Built with
Search and lifecycle
OctopartFindchipsSiliconExpertZ2Data
Distribution
Digi-KeyMouserArrowLCSC
Fabrication and assembly
JLCPCBPCBWayShenzhen and Dongguan SMT lines
Workmanship standards
IPC-A-610 Class 2/3IPC-6012IPC J-STD-001GB/T 2828.1
Compliance
CCCRoHS 2011/65/EUREACHISO 9001IATF 16949
Test coverage
AOIFlying probeX-ray for BGAFunctional test jig
How long one pass takes
  1. BOM costing and second sourcing12wk
  2. Supplier qualification and quote23wk
  3. Tooling, stencil, first article24wk
  4. Pilot run and inspection35wk

814weeksAdded up from the stages above, for one pass. The prototype and field-trial loop can run more than once, and no honest figure says in advance how many.

03

Firmware

What the board does when nobody is watching it — sampling, control, holding readings through an outage, and a signed way to change its mind later.

Controller bench

What it runs on, and what it has to do — which together pick the part.

Datasheet currents · arithmetic shown below the figure
Powered byWorkload
Recommended partSTM32G0 or STM32L4
Expected life7.0months
Average draw35µA
Where that figure comes from
  • Sleep current3µA
  • Awake current8.0mA
  • Duty cycle0.40%
  • Usable capacity180mAh

CR2032, derated. Peak current matters more than average — a radio burst can brown out a tired cell.

RTOS

Bare-metal super-loop

A fixed cadence with no concurrency needs no scheduler, and a super-loop is easier to prove correct.

Memory the build assumes
  • Flash256 KB
  • RAM64 KB
Update path

MCUboot with A/B slots and a signed image, rolling back on a failed boot.

At 256 KB the two slots are tight — the image gets compressed, or the update becomes a swap rather than a dual-bank.

Currents are typical datasheet values. A real budget is measured on the bench — the datasheet never includes your antenna.
What comes back

Repository, sampling and control logic, signed OTA path, test rig

Built with
Languages
C11C++17Rust (embedded)MicroPython for rigs
Controllers
STM32 G0 / G4 / L4 / H7ESP32-S3ESP32-C6nRF52840nRF9160RP2040Renesas RA
RTOS
ZephyrFreeRTOSThreadXBare-metal super-loop
Toolchain
ESP-IDFSTM32CubenRF Connect SDKPlatformIOCMakearm-none-eabi-gcc
Debug and test
SEGGER J-Link and OzoneRTT loggingSaleaeCeedlingHardware in the loop
Update path
MCUbootA/B slotsSigned imagesRollback on failed boot
How long one pass takes
  1. Bring-up and drivers24wk
  2. Application and control logic36wk
  3. OTA and provisioning23wk
  4. Soak and field build24wk

917weeksAdded up from the stages above, for one pass. The prototype and field-trial loop can run more than once, and no honest figure says in advance how many.

05

Cloud

Where the fleet lands — on your tenant, on ours, or inside your own building when the data is not allowed to leave it.

Topology

What sits in each position, and who is holding the keys.

Reference architecture · the shape, not a bill of materials
ProviderWhere it runs
The chain, device to dashboard
  1. IngestIoT Hubyou operate
  2. StreamEvent Hubsyou operate
  3. StoreData Exploreryou operate
  4. ServeAKSyou operate
  5. WatchAzure Monitoryou operate
Stages you operate5of 5
IdentityEntra ID
Who holds the keys

You hold the keys. We are given scoped access for the build and it is revoked at handover.

What leaving looks like

Nothing to migrate. We leave, the system stays where it is.

Why this provider gets chosen

The default where the client already runs Microsoft identity — one directory instead of two.

Every one of these is delivered as Terraform. Whoever owns the account, the definition of what is in it is a repository you can read.
What comes back

Infrastructure as code, on your account or ours, with a runbook

Built with
Azure
IoT HubEvent HubsAKSEntra ID
AWS
IoT CoreGreengrassKinesisEKS
Google Cloud
Pub/SubGKEBigQuery
Platforms and brokers
ThingsBoard CE and PEEMQXMosquittoNode-RED
Runtime and delivery
DockerKubernetesTerraformGitHub Actions
Observability
PrometheusGrafanaLokiOpenTelemetry
How long one pass takes
  1. Architecture and landing zone12wk
  2. Broker, ingest and identity24wk
  3. Infrastructure as code and environments23wk
  4. Hardening, backup and runbook23wk

712weeksAdded up from the stages above, for one pass. The prototype and field-trial loop can run more than once, and no honest figure says in advance how many.

06

Data and services

Readings arrive dirty, late, duplicated and in the wrong unit. This is the layer that decides what a number means before anyone bills against it.

Sizing

Devices, channels and cadence — and the store that follows from them.

Arithmetic on your inputs · byte figures are estimates
Channels per device
Points per day1.2M
Sustained write rate13/s
Channels12
What that costs to keep for a year
  • Uncompressed13.5 GB
  • Compressed, everything kept1.0 GB
  • Rollup policy, which changes nothing at this cadence1.0 GB

At this reporting interval there is nothing to roll up — the readings are already fifteen minutes apart, and four statistics per interval would be larger than the one reading they replace. The policy starts paying at a finer cadence.

What the store has to be at this rate

PostgreSQL with TimescaleDB

One node. Continuous aggregates for the dashboards, and nothing exotic.

What arrives that the arithmetic does not show

Readings land late, twice, out of order, and occasionally with a CT ratio nobody applied. Decoding DLMS/COSEM OBIS codes is the easy half. Deciding which of two conflicting readings you bill against is the half that takes the weeks.

Storage assumes 32 bytes per point raw and 2.4 bytes compressed, which is what regular metering data reaches in a columnar store. Your figures move with how many channels are actually distinct.
What comes back

Schema, ingest pipeline, validation rules, documented APIs

Built with
Time series stores
TimescaleDBInfluxDBClickHousePostgreSQL
Streaming
KafkaRedpandaMQTT bridge
Transform
PythonpandasPolarsdbtAirflow
Protocol decode
DLMS/COSEM OBIS codesModbus register mapsIEC 61850
Interfaces
REST with OpenAPIGraphQLgRPCWebhooks
Validation
Gap detectionCT-ratio normalisationUnit reconciliationLate-arrival handling
How long one pass takes
  1. Schema and OBIS or register mapping13wk
  2. Ingest and validation pipeline35wk
  3. API surface24wk
  4. Backfill and reconciliation13wk

715weeksAdded up from the stages above, for one pass. The prototype and field-trial loop can run more than once, and no honest figure says in advance how many.

07

Applications

The screens the work gets judged on. Six people open the same platform, and each of them should see one job rather than everyone’s job.

Who sees what

Pick a job, and watch most of the product disappear.

A representative role model · yours is defined in workshop
Hidden from this role6of 12
ScopeOne building, every meter in it
Screens
  • Live readingsvisible
  • Trends and historyvisible
  • Alarms and eventsvisible
  • Control and setpointsvisible
  • Tariffs and rateshidden
  • Billing and invoiceshidden
  • Asset registervisible
  • Commissioninghidden
  • Audit loghidden
  • Users and roleshidden
  • Scheduled reportsvisible
  • API keyshidden
What they can change

Schedules and setpoints within limits an administrator set.

What they can take away
  • Monthly consumption, XLSX
  • Scheduled PDF summary
Why it is drawn this way

Everything about one building, nothing about any other. The setpoint limits are why this role can be handed out freely.

Roles, scoping and export permissions are consistently about a third of an application build. They are also the part that cannot be retrofitted cheaply once real data is in.
What comes back

Operator and customer interfaces, roles, exports

Built with
Web
Next.jsReactTypeScriptRechartsvisx
Mobile
React NativeFlutter
Identity and access
OIDC and OAuth2KeycloakEntra IDRole-based access
Reporting
CSV and XLSXScheduled PDFWebhooksEmbedded dashboards
Quality
PlaywrightVitestaxe accessibility checksi18n and RTL
How long one pass takes
  1. Flows and wireframes13wk
  2. Component system23wk
  3. Screens and data binding48wk
  4. Roles, exports and UAT24wk

918weeksAdded up from the stages above, for one pass. The prototype and field-trial loop can run more than once, and no honest figure says in advance how many.

08

Energy-tech AI

Models trained on your own metering and load data. The first honest output of this layer is often that the history is too thin to model — which is worth knowing before it is paid for.

Feasibility

The question, the data you have, and whether those two are compatible.

Minimums from practice · accuracy given as a band, never a promise
What do you want answered
Verdict on the data you haveFeasible
Minimum history12months
Model family

Gradient boosting on calendar and weather features — XGBoost or LightGBM, with a seasonal-naive baseline it has to beat.

What good looks like

MAPE 4–9% day-ahead at feeder level; worse on a single building, which is noisier than a feeder.

What it cannot do

It cannot forecast a load that has never happened — a new tenant, a new machine, a new tariff.

What this question needs

A full year, because the model has to have seen a summer and a winter. Weather history helps more than any modelling choice.

The first stage of any model engagement is a data audit, and it is priced to be worth buying on its own. It ends in one of these three verdicts, in writing.
What comes back

Models on your own metering and load data, with a backtest

Built with
Modelling
Pythonscikit-learnXGBoostLightGBMPyTorchstatsmodels
Optimisation
PyomoOR-ToolsMILP dispatch
Serving
MLflowONNX RuntimeFastAPI
On the device
TFLite MicroCMSIS-NN
Method
IPMVP Option C baselinesWalk-forward backtestDrift monitoring
How long one pass takes
  1. Data audit and feasibility23wk
  2. Baseline model24wk
  3. Evaluation and backtest23wk
  4. Deployment and monitoring24wk

814weeksAdded up from the stages above, for one pass. The prototype and field-trial loop can run more than once, and no honest figure says in advance how many.

How an engagement runs

The stage durations above are for one pass. This is the figure that says why a total cannot be given.

Briefwhat must existFeasibilitycan it be builtPrototypeone on the benchField trialone on the siteProductionvolume, handoveras many times as the problem needsNO FIXED COUNT · NO FIXED DURATION · AN ENGAGEMENT CAN ENTER AND LEAVE AT ANY STAGE
The loop is the point. Prototype and field trial trade places as many times as the problem needs, and no honest schedule can say in advance how many. An engagement can also enter at any stage — most arrive with a brief, some arrive with a board that does not work.

How we work with you

Engagements run under NDA, and most of what we build carries your name rather than ours. Ask, and we will tell you which references we can name for work like yours.

You own what you paid for. Design files, firmware source, schematics and the infrastructure definition are assigned to you at handover — including the parts we would rather keep. Anything we bring in that predates the engagement is licensed to you outright rather than rented back.

See how a saving gets measured

Tell us what has to exist

Bring the problem at whatever stage it is in — a requirement, a failing board, or a platform that will not integrate. The first conversation is about which of the eight layers you actually need.

Talk to an Engineer