Skip to content
Early access openRev 0.1Robots in the lab 0001Local --:--:--
//Follow one reading

Connected sensor node

A small sealed box screwed onto a pump motor on a plant floor. Most of the time it sleeps. It wakes to measure how the motor is vibrating and how warm it runs, sends a few numbers to a gateway on the wall, and goes back to sleep, on one battery, for years.

Step 1 of 6: Sample

Step 01 of 06, on the machine

Sample

A timer wakes the node. The drive-end bearing's vibration travels up the stud into the base, and the accelerometer over the stud records a burst of it on three axes, thousands of readings in about a second. The temperature sensor takes one reading.

What it costs

To last five years on the listed 4,000 mAh cell, the node can draw at most 91 µA on average, every wake and every send included, and less once the cell's own self-discharge is counted.

Derived from the Samsung INR21700-40T lithium-ion cell catalogue row

Why it is hard, and what is at work

A damaged bearing shows as short knocks that repeat tens to a few hundred times a second, and each knock rings the metal at several thousand cycles a second. Catching that ringing needs thousands of samples a second, and every sample is paid for from the battery, so the node samples in short bursts and sleeps in between.

Parts working at this step
  • Sealed enclosure and mounting stud

    An aluminium base screwed onto the motor by a steel stud, under a plastic lid sealed with a gasket. The stud carries the motor's vibration into the node, and the plastic lets the radio out.

  • Vibration and temperature sensors

    An accelerometer on a small board bonded to the base, right over the stud, measures vibration on three axes. A temperature sensor beside it reads the base, which warms and cools with the motor's drive end, lagging the bearing and running cooler than it.

  • Battery and power monitor

    One 21700 lithium cell powers the node for years. A current monitor on the board measures what each wake costs, so the remaining charge can be estimated and reported.

Step 02 of 06, on the machine

Filter

The microcontroller works the burst down to a few numbers: the overall vibration level, the energy in the frequency bands where bearing faults show, the peak, and the temperature. The raw samples are thrown away.

What it costs

About 24 KB of samples in, about 40 bytes out: 4,096 readings on three axes at 2 bytes each become a handful of numbers.

Estimate

Why it is hard, and what is at work

Sending a summary instead of raw data is what makes the battery last, and it means the server never sees the samples. If the summary leaves out the band a new fault shows in, nobody finds out until the firmware changes.

Parts working at this step
  • Microcontroller

    A microcontroller sleeps almost all the time. On a timer it wakes, collects a burst of samples, works them down to a few numbers, such as the overall vibration level and the energy in the bands where bearing faults show, and hands them to the radio.

Step 03 of 06, on the machine

Send

The radio wakes, sends the summary to the gateway on the building column, and waits for the acknowledgement. Then everything but a timer switches off until the next reading. A summary that gets no acknowledgement stays in the node's memory and goes with the next one.

What it costs

If each send keeps the radio on for about 1 s at about 100 mA, a reading every 10 minutes spends about 1,460 mAh a year, about 167 µA on average for the radio alone and nearly twice the 91 µA budget. That is why a node meant to last years usually sends by Bluetooth Low Energy or another low-power radio that stays on for milliseconds instead of a second.

Estimate

Why it is hard, and what is at work

The radio is the most expensive thing the node does. A retry after a lost acknowledgement means the gateway may receive the same reading twice, so each reading carries a sequence number.

Parts working at this step
  • Radio and antenna

    A Wi-Fi and Bluetooth module at the end of the board sends the summary to the gateway by Bluetooth Low Energy, waits for the acknowledgement, and switches off.

  • Gateway on the wall

    A small computer in a box on a building column listens for the nodes in its part of the plant, timestamps and stores what they send, and forwards it to the server over the plant network or a cellular modem.

Step 04 of 06, across the fleet

Store

The gateway forwards the plant's readings to the server, which stores them by node and time. Across 1,000 nodes in 40 plants, some readings arrive late, some twice, and some gateways go quiet. The gateway is an ordinary Linux computer: you enroll it in Device to Cloud Flywheel once, and Device to Cloud Flywheel holds its configuration files and tasks as declared state and reports when it drifts. Storing the readings and sorting out duplicates is the job of your gateway software and your server.

What it costs

About 5.8 MB a day for the whole fleet: 1,000 nodes sending about 40 bytes every 10 minutes. The raw samples would be about 3.5 GB a day.

Estimate

Device to Cloud Flywheel solution: Laptops, desktops, and Raspberry Pis

The fleet view shows 1,000 sensor nodes to show the problem at that size; Device to Cloud Flywheel has been run on fleets of single digits to low tens of devices.

Why it is hard, and what is at work

A gateway that is quiet because the plant network is down looks the same, from the server, as one that has failed. With 40 gateways and no one at most of them, reaching one to fix it cannot mean driving there.

Parts working at this step
  • Gateway on the wall

    A small computer in a box on a building column listens for the nodes in its part of the plant, timestamps and stores what they send, and forwards it to the server over the plant network or a cellular modem.

Where Device to Cloud Flywheel fits: Laptops, desktops, and Raspberry Pis

A handful of ordinary computers you look after, a home server, a few Pis, the machines under someone's desk. Today you keep a VPN up so you can SSH in and fix things by hand.

Demo

examples/ordinary-computers/demo.sh

Needs a running stack; nothing else.

The repository is private while the first release lands, so this demo cannot be run from this page. Write to hello@devicetocloud.ai and we will tell you when it opens.

From the solution page, punctuation adjusted.

Step 05 of 06, across the fleet

Alert

On one pump, the energy in the bearing band has been rising for two weeks. Your monitoring software raises an alert, and the maintenance team decides to slow the pump until the bearing is changed. If the pump runs on a drive that the gateway reaches over Modbus, Device to Cloud Flywheel's Modbus solution covers that step: the speed is set by name, a name not in the register map is refused, and the change is kept in the command history. The solution's driver writes to a simulated register file and has moved no real drive.

What it costs

About 3 false alarms a day if each of 1,000 nodes raises one a year.

Estimate

Device to Cloud Flywheel solution: PLC and Modbus machines

The fleet view shows 1,000 sensor nodes to show the problem at that size; Device to Cloud Flywheel has been run on fleets of single digits to low tens of devices.

Why it is hard, and what is at work

An alert nobody trusts is ignored. Too sensitive and it fires on every pump that starts up cold; too dull and it fires after the bearing has failed. Device to Cloud Flywheel does not decide what counts as a fault: the thresholds are your team's.

Where Device to Cloud Flywheel fits: PLC and Modbus machines

Industrial machines speaking Modbus behind a small computer. The meaning of a register is knowledge that currently lives in someone's head.

Demo

embodiments/modbus-machine/demo.sh

Needs a running stack, uv. Drives the Modbus mock, not a PLC.

The repository is private while the first release lands, so this demo cannot be run from this page. Write to hello@devicetocloud.ai and we will tell you when it opens.

From the solution page.

Step 06 of 06, across the fleet

Update

New node firmware adds the band the team wished it had. Device to Cloud Flywheel handles the gateway half: a staged rollout gives each gateway a configuration file naming the firmware version its nodes should run, one plant first, with a pause and a rollback before the rest. Fetching the image, copying it over the radio into each sealed node, and switching over are the gateway software's and the node firmware's job. A rollback returns the gateways' configuration; the nodes go back only if the gateway software sends them the old image.

What it costs

About 1 GB to move if the firmware image is about 1 MB and goes to 1,000 nodes, over radio links sized for 40-byte summaries.

Estimate

Device to Cloud Flywheel solution: Laptops, desktops, and Raspberry Pis

A second product, Device to Cloud Engineer, is an engineer agent that writes the device code a machine like this runs. It is in development, and there is nothing to try yet.

The fleet view shows 1,000 sensor nodes to show the problem at that size; Device to Cloud Flywheel has been run on fleets of single digits to low tens of devices.

Why it is hard, and what is at work

A node that loses power halfway through writing new firmware must still start. It keeps two copies and goes back to the old one if the new one does not check in. On a plant floor, a node that stops working after an update means a technician, a ladder, and a stopped pump.

Parts working at this step
  • Microcontroller

    A microcontroller sleeps almost all the time. On a timer it wakes, collects a burst of samples, works them down to a few numbers, such as the overall vibration level and the energy in the bands where bearing faults show, and hands them to the radio.

  • Radio and antenna

    A Wi-Fi and Bluetooth module at the end of the board sends the summary to the gateway by Bluetooth Low Energy, waits for the acknowledgement, and switches off.

Where Device to Cloud Flywheel fits: Laptops, desktops, and Raspberry Pis

A handful of ordinary computers you look after, a home server, a few Pis, the machines under someone's desk. Today you keep a VPN up so you can SSH in and fix things by hand.

Demo

examples/ordinary-computers/demo.sh

Needs a running stack; nothing else.

The repository is private while the first release lands, so this demo cannot be run from this page. Write to hello@devicetocloud.ai and we will tell you when it opens.

From the solution page, punctuation adjusted.

And back

Back to 01 Sample, with the new firmware

The node wakes for its next reading and goes through the same steps, this time running the new firmware. Your server compares what it sends with the readings from before the update, so a change in the numbers can be told apart from a change in the bearing.

On the machine
Across the fleet
And back
//Every part in the cycle

Each subsystem has its own way to fail.

The catalogue examples are representative parts taken from vendor datasheets and product pages, each linked to its source. They show the kind of component each subsystem uses and the numbers that matter for it. They are not a bill of materials, and nobody has checked that they work together.

PartWhat it doesWhy it is hardCatalogue examples
Sealed enclosure and mounting studWorking at 01 sampleWhat it does. An aluminium base screwed onto the motor by a steel stud, under a plastic lid sealed with a gasket. The stud carries the motor's vibration into the node, and the plastic lets the radio out.Why it is hard. How the node is fixed changes what it measures: a stud into a spot-faced hole passes the highest frequencies, a glued pad passes somewhat fewer, and a magnet loses much of the range where early bearing wear shows. The box has to keep out washdown water and oil for years, and a metal lid would block the radio.Catalogue examples

The catalogue has no enclosure or fastener row.

Vibration and temperature sensorsWorking at 01 sampleWhat it does. An accelerometer on a small board bonded to the base, right over the stud, measures vibration on three axes. A temperature sensor beside it reads the base, which warms and cools with the motor's drive end, lagging the bearing and running cooler than it.Why it is hard. A damaged bearing shows itself as small, sharp knocks that repeat tens to a few hundred times a second and ring the metal at several thousand cycles a second, so the sensor has to be sampled fast and coupled stiffly to the metal. A sensor on a board that flexes on its standoffs picks up the board's own ringing and loses the bearing.Catalogue examples
accel range max 24 g · gyro range max 2,000 °/s · supply voltage 2.4 to 3.6 V
temp −55 to 150 °C · accuracy max 0.1 °C · resolution 16 bit

The BMI088 is an example of a MEMS accelerometer, built for drones and robots; its datasheet caps its sample rate well below what bearing faults need. A node meant to catch early bearing wear uses an accelerometer specified to several kilohertz; the catalogue has no such row.

MicrocontrollerWorking at 02 filter, 06 updateWhat it does. A microcontroller sleeps almost all the time. On a timer it wakes, collects a burst of samples, works them down to a few numbers, such as the overall vibration level and the energy in the bands where bearing faults show, and hands them to the radio.Why it is hard. Every millisecond awake costs battery, and a spectrum takes real arithmetic. The RP2040 listed has Cortex-M0+ cores without a floating-point unit, so the maths runs in fixed point or takes longer. Firmware mistakes are expensive: the box is sealed and bolted to a running machine, so every fix has to arrive over the radio, and an update that fails can strand the node.Catalogue examples
core 2 · core clock 133 MHz · sram 264 KB
core 2 · core clock 240 MHz · sram 512 KB

The ESP32-S3 carries its own Wi-Fi and Bluetooth radio, so one chip can do both jobs. Neither row gives a sleep current, which is what decides battery life; that figure comes from each chip's datasheet.

Radio and antennaWorking at 03 send, 06 updateWhat it does. A Wi-Fi and Bluetooth module at the end of the board sends the summary to the gateway by Bluetooth Low Energy, waits for the acknowledgement, and switches off.Why it is hard. A plant floor is steel: motors, pipes, and racks reflect and block 2.4 GHz, and a link that works on the day it is installed can fail when a forklift parks in front of it. Joining Wi-Fi can keep the radio on far longer than the send itself, and the antenna needs clear space, so the cell cannot sit over it.Catalogue examples
supply voltage 3 to 3.6 V · transmit power 18 dBm

u-blox marks the NINA-W10 not recommended for new designs; it is listed because its numbers are published and it is widely deployed.

Battery and power monitorWorking at 01 sampleWhat it does. One 21700 lithium cell powers the node for years. A current monitor on the board measures what each wake costs, so the remaining charge can be estimated and reported.Why it is hard. Everything the node does is paid for from one cell that nobody wants to change. Left converting, the INA226 listed draws 0.33 mA, which alone would empty the 4,000 mAh cell in about 17 months, so even the monitor has to be put in its shutdown mode between readings.Catalogue examples
capacity 4,000 mAh · nominal voltage 3.6 V · discharge current max 35 A
resolution 16 bit · bus voltage 36 V · supply voltage 2.7 to 5.5 V

The cell listed is a rechargeable, high-current cell and shows the size and capacity class. A node built to run for years usually carries a primary lithium cell, which loses less charge sitting on a shelf; the catalogue has no such row.

Gateway on the wallWorking at 03 send, 04 storeWhat it does. A small computer in a box on a building column listens for the nodes in its part of the plant, timestamps and stores what they send, and forwards it to the server over the plant network or a cellular modem.Why it is hard. Readings arrive late, out of order, or twice after a retry, and each node's clock drifts. The gateway has to put every reading in order by node and sequence number, and keep what it holds when its own uplink is down.Catalogue examples
core 4 · core clock 2,400 MHz · memory 8 GB
downlink rate max 300 Mbit/s · uplink rate max 50 Mbit/s · transmit power 23 dBm

The modem is a mini PCI Express card; on a Raspberry Pi it sits in a USB adapter. A plant with its own network uses the Ethernet port instead.

The drawing is illustrative, not a validated design. Costs marked estimate are estimates; the others are worked out from the catalogue part named under them.

//Where to start

The fleet half of this machine, as Device to Cloud Flywheel solutions.

  • Laptops, desktops, and Raspberry Pis

    A handful of ordinary computers you look after, a home server, a few Pis, the machines under someone's desk. Today you keep a VPN up so you can SSH in and fix things by hand.

    docs/solutions/ordinary-computers.md (opens when the code is published)

    In the cycle at 04 store, 06 update. Quoted from the solution page, punctuation adjusted.

  • PLC and Modbus machines

    Industrial machines speaking Modbus behind a small computer. The meaning of a register is knowledge that currently lives in someone's head.

    docs/solutions/industrial-machines.md (opens when the code is published)

    In the cycle at 05 alert.

Neither of the two solution pages has a section that separates measured results from claims, so nothing on this page is quoted as measured.

These pages live in the Device to Cloud Flywheel repository, which is private while the first release lands. Write to hello@devicetocloud.ai for access, and we will tell you when it opens.

//Where we help

Building one? Device to Cloud Flywheel is the software for the fleet half of this loop, from the first sensor node on.

Store, Alert, and Update: the steps after the machine works. The flywheel moves the data and the releases for every machine you have; what to train on and when to ship stay your team's call.