Industrial manufacturing · ongoing

Predictive maintenance across two CNC plants

Spindle failures stopped lines without warning, and the maintenance window was booked around a calendar rather than the state of the machine.

ModbusGreengrassTensorFlow LiteNestJSReact
31%less unplanned downtime
210machines instrumented
11 daysaverage warning before failure
2plants live, third in rollout

The situation

Two plants, roughly two hundred CNC machines between them, ranging from four to twenty-two years old. Maintenance ran on a fixed calendar: every machine serviced on the same interval whether it needed it or not, and failures happening anyway in between.

What made it hard

The machines could not be modified. Anything that touched the control system voided support contracts, so instrumentation had to be entirely external — clamp-on current sensors and adhesive accelerometers, retrofitted without opening a cabinet.

The data problem was harder than the hardware one. Eleven years of maintenance records existed, but the failure descriptions were free text written by six different technicians, and the same spindle bearing fault appeared under four different phrasings.

How we built it

Instrument without touching the machine

Vibration and current draw, sampled at the gateway. Together they characterise a spindle well enough to detect bearing degradation and tool wear without any cooperation from the machine controller.

Fix the labels before building a model

We spent five weeks with the maintenance leads consolidating eleven years of free-text records into a controlled vocabulary. This was unglamorous and was the single highest-value part of the project — the first model trained on cleaned labels outperformed everything built on the raw data.

Inference at the edge

A quantised TensorFlow Lite model runs on the gateway. The plant network is not reliable and the cloud round-trip added nothing useful, so detection happens locally and only conclusions are published upstream.

A ranked worklist, not an alarm

Nobody wanted a 2am page about a bearing that has eleven days left. Predictions accumulate into a morning worklist ordered by urgency and by what is already scheduled, so maintenance is planned rather than reactive. This framing is why the system is still used.

What changed

Unplanned downtime fell 31% across the two instrumented plants, with an average of eleven days of warning before failure. A third plant is in rollout. The model ran in shadow mode for six weeks before anyone was allowed to act on it, which is why the maintenance team trusts it.

What we would tell the next team

  • Label quality dominated model architecture. Five weeks of vocabulary work beat every algorithmic improvement we tried afterwards.
  • Delivery format decided adoption. The same predictions as pages would have been ignored inside a month; as a morning list they became routine.
  • Shadow mode is not optional. Six weeks of being scored without consequence is what bought the team's confidence.
Figures are the client's own

Results above were measured by the client against their own baseline. We are happy to arrange a reference call where the contract allows it.

Tell us what you are trying to measure

An engineer reads every message and replies within one working day. The first call is a conversation about your problem, not a sales script.

See engagement models