Insights / IoT / Connected Products
IoT device development: from working prototype to a fleet you can support
How to take a connected device from a working prototype to a product you can manufacture, update and support, with verified examples.

The short answer
IoT device development is the joint engineering of hardware, embedded firmware, connectivity, cloud and the application, which succeed or fail together. A proof of concept shows that the core function works. A product you can ship also has a tested onboarding flow, defined behaviour without a network, a recoverable firmware update path, per-unit identity created on the production line, and an owner for the fleet after launch. Most of the cost and risk sits in those conditions, not in the feature list.
Key takeaways
- Specify the data path across device, radio, app and cloud in one document; otherwise nobody owns the bottleneck.
- A chip that supports several radios is not a product that runs them all at once: specify and test the combinations you need.
- Recoverable updates need flash space and a rollback rule, so they belong in the first hardware architecture.
- Write offline and update requirements as measurable acceptance criteria before you ask anyone for an estimate.
The prototype works. Now what?
The prototype sits on a bench next to a dev kit, joins the office Wi-Fi, streams readings to a dashboard, and an engineer re-flashes it whenever something changes. The next question sounds simple: what does it take to put several thousand of these in customers’ homes, vehicles or plants, and keep them working for years?
Most of the answer is work the demo never had to do. A shipped device must be set up by a stranger, survive days without a network, accept new firmware without a technician, prove its identity to your cloud from the first boot, and stay supportable after the original team has moved on.
Five decisions to make before you commit to an architecture
- Who sets the device up, and what they have with them: a phone, a gateway, an installer tool or nothing.
- What the device must do while it is offline, and for how long.
- How firmware reaches a unit in the field, and what happens if an update is interrupted.
- How each unit gets its identity and credentials on the production line.
- Which layers already exist, who owns them, and which ones you are allowed to change.
The unknowns to settle first, and the assumption to test in each
Estimates go wrong when the brief describes features and the cost sits in conditions. “The device sends temperature to the app” can be a short task or a long programme depending on the answers below. For each condition, the right-hand column names the assumption that hurts most if it is wrong, and how to test it early.
| Condition | Why it moves the architecture | Assumption to test first |
|---|---|---|
| Who installs and sets it up | Onboarding, documentation and support tools differ for a homeowner, a trained installer and a factory integrator. | People can finish setup without help: watch first-time users do it in their own homes or sites. |
| Power source and service life | Radios, reporting interval and firmware sleep strategy follow from it. | The battery lasts the required time: measure current over a full duty cycle on near-final hardware. |
| Behaviour without connectivity | Schedules, safety functions, buffering and local control need state that survives on the device. | The device can hold the data of the longest outage: size the buffer from logging interval and outage length. |
| Target unit cost at volume | It limits the microcontroller, radio module, sensors and enclosure. | The bill of materials meets the target: get quotes at the first production volume, not dev-kit prices. |
| Markets | Radio and security obligations differ between the EU, the UK and the US. | You know which rules apply: check scope with a test laboratory before the hardware freezes. |
| Support period | Update infrastructure, certificate lifetimes, cloud costs and components must last that long. | Parts and certificates stay available: check lifecycle notices and expiry dates. |
| What already exists | Existing boards, cloud, apps or third-party modules shape the work as much as new requirements. | Third-party documentation matches real behaviour: test the interfaces on real hardware before estimating. |
How hardware, firmware, connectivity, cloud and app depend on each other
It is tempting to split a connected product into a hardware contract, a firmware contract, a cloud team and an app agency. Each can meet its own specification while the product still fails, because system performance is set where the layers meet.
Example: a heart-monitoring sensor where four layers had to be specified together
Monitoring Life was developing Sensocor: a sensor unit that records heart signals, a patient app and a portal for doctors. The company already had the sensor hardware with Arduino-based firmware and an Android app reading the sensor’s Bluetooth Serial stream. It had no cloud backend, no doctor portal and no build pipeline.
- Problem. Recordings had to reach the doctor’s portal intact. Sampling rate, Bluetooth throughput, the app and the backend all decided whether the data path congested.
- Constraint. Assembled units could not be re-flashed without opening the enclosure, and the unit runs on a battery.
- Choice. Indeema moved the firmware to ESP-IDF, replaced Bluetooth Serial with Bluetooth Low Energy and protected pairing, added firmware delivery through the app, reworked the Android app, and built the Azure backend and the doctor portal. It also proposed schematic and PCB changes for USB programming on the bench. Measurements start and stop from the app, so the unit records only when needed.
- Trade-off. Firmware and app had to change together instead of patching the old serial data path.
- Verified result. The four layers work as one data path, and sensor firmware is updated through the app instead of by opening the enclosure. The published case reports no throughput, latency or battery figures, and the PCB change is described as a proposal.
- Lesson for you. Write one specification for the data path, not one per layer, and decide how a sealed device will be updated before the enclosure is final.
- Sensor unitClient hardware; ESP-IDF firmware by Indeema. Records heart signals; measurements start and stop on command from the app.
- Bluetooth LE linkReplaced Bluetooth Serial to remove congestion; protected pairing between the unit and the app.
- Patient appAndroid app: discovery, pairing, signal display, start and stop, file upload and firmware updates.
- Azure backend.NET API; recordings in Blob Storage, calculated indicators in Azure SQL; builds and unit tests in Azure DevOps.
- Doctor portalAngular web portal where doctors review recordings and indicators remotely.
Firmware travels the other way: image in Blob Storage, fetched by the app, delivered to the sensor over Bluetooth LE.
Worked numbers: how much Bluetooth LE can carry
Vendor-documented reference and illustrative calculation. These are not Sensocor measurements; that case publishes no throughput figures.
| Figure | Value | Type and conditions |
|---|---|---|
| Theoretical ceiling for application data | 244 bytes per about 1,400 µs, roughly 1.394 Mbit/s | Illustrative calculation: a 251-byte link-layer payload minus 7 bytes of L2CAP and ATT headers, with Memfault’s per-exchange timing on LE 2M PHY and no losses |
| Measured best case | 1,376.2 kbps | Vendor-documented (Nordic S140): notifications, ATT MTU 247, 251-byte payload, 400 ms connection interval, interference-free, an application that never waits |
| Measured at a shorter interval | 1,327.5 kbps | Same Nordic table, 50 ms connection interval |
What it changes. Compare your data rate (sampling rate × channels × bytes per sample) with these ceilings, not with the radio’s raw bit rate. If it lands near them, plan buffering, compression or a different link. If it is a small fraction, the risk moves to the phone side: negotiated connection parameters, background limits and how fast the app reads.
The decisions that move budget, schedule, battery and unit cost
There is no universally best protocol, microcontroller or cloud, only choices that fit a set of conditions. The trade-offs later in this article summarise the main ones. Two decisions most often fix the architecture early: the system-on-chip and the connectivity path.
Example: one SoC for several control channels in a ventilation unit
Prana makes decentralised ventilation units with heat recuperation. For its next generation, Prana Platinum, the electronics, firmware, sensor architecture and user experience were redesigned, on top of Prana’s existing ThingsBoard cloud.
- Problem. The unit had to accept control from the mobile app over Wi-Fi or Bluetooth LE, an IR remote, Matter smart-home platforms and its physical controls.
- Constraint. One controller had to cover those channels with enough I/O and a stable supply chain, without a connectivity co-processor. Motor switching noise could disturb sensor readings.
- Choice. Indeema evaluated seven SoC families against I/O, connectivity, supply-chain and ecosystem criteria and chose the ESP32-C6. Motors get dedicated supplies, separate from isolated rails for the MCU and sensors, with per-channel current sensing that also feeds diagnostics. Operating modes run as an explicit state machine, and schedules fall back to an on-board real-time clock when the network drops.
- Trade-off. One chip simplifies the board and concentrates the product on one vendor’s silicon, SDK and supply.
- Verified result. A defined architecture on ESP32-C6 with isolated power, FreeRTOS firmware with self-diagnostics, the four control channels above and ThingsBoard extensions, developed on prototype hardware with Prana. The case lists Thread and Zigbee among the chip’s radios, not as delivered features.
- Lesson for you. Choose the SoC against every channel you need and the supply chain, not against the first prototype. Design for the moment the network disappears: a schedule that depends on cloud time stops when the router does.
Connectivity options by condition
The right link depends on where the device lives, how it is powered and who pays for data. This comparison describes typical fits, not rankings.
| Option | Typical fit | Watch for |
|---|---|---|
| Wi-Fi directly to the cloud | Mains-powered home and office devices with a router nearby | Onboarding to the user’s network, router changes, power draw on batteries |
| Bluetooth LE through a phone | Wearables and personal devices used near their owner | Data reaches the cloud only when the app runs; background limits on mobile platforms |
| Bluetooth LE or a custom radio to a hub | Many low-power sensors in one building | The hub becomes a product of its own; radio traffic and pairing at scale |
| Thread (IEEE 802.15.4 mesh) | Low-power smart-home devices in a home with a Thread border router | Depends on a border router; mesh behaviour must be tested in real homes |
| Matter over Wi-Fi or Thread | Smart-home devices that must work with major ecosystems | Matter sits on top of the transport; product certification and interoperability testing add schedule |
| Cellular (LTE-M, NB-IoT, LTE Cat 1) | Mobile or remote assets without local infrastructure | Coverage gaps, data plans, module approvals and power-saving modes |
| LoRaWAN or another LPWAN | Small, infrequent payloads over long distances | Low data rates; downlink and firmware updates are constrained |
A proof of concept is not a production-ready product
A proof of concept answers one question: can the core function work? It is valuable because it ignores most of the product. The risk starts when a successful demo is treated as most of the way to launch.
| Stage | Main question | Typical outputs | Move on when |
|---|---|---|---|
| Discovery | What are we building, for whom, under which constraints? | Requirements, constraints, risks, first architecture | Each open technical risk has a named test |
| Proof of concept | Does the core function work on the candidate platform? | Bench prototype on recommended parts, measurements of the risky function | The riskiest assumption is confirmed, or the platform is replaced |
| Engineering prototype | Does the whole system work end to end? | Own or near-final board; firmware, cloud and app connected | Setup, offline behaviour and an update pass on real hardware |
| Pilot or beta | Does it work for real users in real places? | Small batch in the field, support process, feedback loop | Field issues are understood and the fixes are in the design |
| Production readiness | Can it be manufactured, provisioned and approved? | Provisioning scripts, test fixtures, compliance documentation, release pipeline | Every unit leaves the line with identity, tested firmware and a known configuration |
| Operation | Can the fleet be updated, monitored and supported? | Monitoring, update jobs, environments, incident and vulnerability process | Never, while devices are in the field |
Hardware teams often call the later stages EVT, DVT and PVT: engineering validation (does the design work?), design validation (does it pass environmental, reliability and pre-compliance tests?) and production validation (can the factory build it repeatably?). The names matter less than the rule: each stage has written exit criteria, and firmware, cloud and app readiness are part of them.
Example: what a proof of concept proved, and what it left open
A maker of in-building communication systems wanted an indoor monitor that shows analog video from an installed door camera on a smartphone, and had proposed the ESP32-P4 without testing it for this video path. Indeema wrote the requirements and specification, assembled a feasibility prototype from manufacturer-recommended parts, and wrote firmware that digitises PAL video, encodes it with the SoC’s hardware video encoder and streams it over Wi-Fi. Espressif’s RTSP component was not built for full multimedia use and its source was not available, so the team wrote its own.
- Proved: the ESP32-P4 can carry this video path end to end to a computer on the network, with colour calibrated to the analog source.
- Left open: the smartphone client, productisation, and published latency or image-quality figures. The prototype streamed to a PC precisely so those could be evaluated before app work.
- Lesson for you: a good proof of concept is narrow and states what it did not cover. Ask for its exit criteria in writing and treat the next stage as a separate decision.
Where products fail after the demo: onboarding
Four areas rarely appear in a demo and almost always appear in support tickets: onboarding, connectivity loss, firmware updates and provisioning. Onboarding is the first real use of the product, done by someone who has not read the manual, and it touches every layer: app permissions and pairing, the device’s provisioning mode, network credentials or a hub, account linking, and recovery when a step fails.
For UBreez, users had to connect a device and set their own acceptable ranges without technical help; a beta with a small user group led to written user guidelines. In a hub-based smart-home system, Indeema’s part of a multi-team app was the BLE connectivity API and the in-app flow that onboards devices and connects them to the cloud.
Designing for connectivity loss
A device that loses its connection must decide what to keep, what to drop and what to do locally. That is a product decision with an engineering cost, not an edge case.
Example: telemetry that survives coverage gaps on an electric bike
An e-bike maker already had two hardware revisions of its vehicle control and telemetry unit and a backend; the unit’s embedded software was basic. Indeema’s scope was the embedded application on those boards, described in the e-bike telemetry case.
- Problem. The unit had to keep working when its cellular module could not reach the network, without losing telemetry.
- Constraint. Queued telemetry competes for limited on-device storage, and an update interrupted by connection loss must not leave the unit unusable.
- Choice. Modem handling, telemetry reporting and updates run as separate real-time tasks on ThreadX. Telemetry is queued on the device within its storage limit, and the update flow was designed so an interrupted download leaves the unit able to recover. QA verified each milestone build against acceptance criteria agreed at the start.
- Trade-off. Any on-device queue forces a policy for a full buffer. That policy decides which data the business can lose, so the product owner has to agree it.
- Verified result. A real-time application that connects over cellular, reports to the existing backend, keeps telemetry through coverage gaps, accepts updates over the air and is configured from a PC over USB. The case does not publish buffer sizes, outage durations or recovery-test counts.
- Lesson for you. Specify offline behaviour as requirements: how long, how much data, what is dropped first, and what the user sees.
- OnlineThe modem task holds the cellular connection; the reporting task sends telemetry to the client’s backend.
- Coverage lostThe unit keeps controlling and monitoring the vehicle; reporting switches to the on-device queue.
- Queue within the storage limitTelemetry is stored locally, sized so that messages are not lost and storage does not run out.
- Buffer full: policy to defineWhat is dropped first, and whether the drop is reported, must be agreed with the product owner.
- Coverage backQueued telemetry is sent to the backend and live reporting resumes.
- Update interruptedA download cut by connection loss leaves the unit able to recover and retry, not unusable.
Back to Online: the same states repeat on every outage, so test them on every firmware release.
Worked numbers: sizing the offline buffer
Illustrative calculation. The inputs are assumptions chosen for the example, not data from the e-bike project, whose case publishes no buffer figures.
| Input | Value | Basis |
|---|---|---|
| Record size | 32 bytes | Assumed: timestamp, position, speed, battery and status flags |
| Logging interval | One record every 10 s | Assumed |
| Outage to survive | 72 hours | Assumed |
| Records to hold | 72 × 3,600 ÷ 10 = 25,920 | Arithmetic |
| Raw data | 25,920 × 32 bytes = 829,440 bytes, about 0.83 MB | Arithmetic; file system, indexing and wear levelling add more |
What it changes. The result decides whether the queue fits in spare internal flash or needs an external flash chip, which changes the bill of materials, and how long the device can be offline before the drop policy starts. Halving the logging interval or doubling the outage doubles the storage.
Firmware updates you can recover from
Delivering a firmware image is not the same as a recoverable update architecture. Delivery gets the image onto the device. Recovery decides what happens when power or the link fails at any point, and it shapes the hardware, because it usually needs flash for a second image.
What a recoverable update architecture specifies
- Where the new image is stored while the old one keeps running.
- How the image is authenticated, and who holds the signing keys.
- When the device switches to the new image, and the self-test it must pass first.
- The rule for returning to the previous image after a failed start or a power cut.
- How rollouts are staged, paused and stopped, and how each device reports its version.
Our published cases describe different parts of this. In Sensocor the app delivers images to the sensor over Bluetooth LE. Cube Air firmware downloads updates over HTTPS. The e-bike unit’s update flow was designed to recover from an interrupted download. In the hub-based smart-home system Indeema built CI/CD with automated tests and versioning for ESP-IDF firmware, and AWS sandbox, development, pre-production and production environments with OTA update jobs. None of these pages documents secure boot, image signing or A/B rollback, so treat those as items to specify, not as precedents.
Worked numbers: the flash budget for recoverable updates
Illustrative calculation on vendor-documented rules. The image size is an assumption; the partition rules come from Espressif’s ESP-IDF documentation. Other platforms differ in detail but follow the same logic.
| Item | Value | Basis |
|---|---|---|
| Firmware image | 1.5 MB | Assumed size of your application |
| Two OTA app slots | 2 × 1.5 MB = 3 MB | Vendor-documented: ESP-IDF OTA needs at least two app slots and an OTA data partition |
| OTA data partition | 0x2000 bytes (8 KB) | Vendor-documented: Espressif partition-table guide |
| Optional factory slot | Another 1.5 MB, so 4.5 MB of application space | Espressif’s example partition table includes a factory slot next to the two OTA slots |
| Slot alignment | 64 KB boundaries | Vendor-documented: app partitions are aligned to 0x10000 |
What it changes. With a factory slot, the application space alone exceeds a 4 MB flash part, before NVS, logs or an offline queue. Either drop the factory slot and rely on two OTA slots with rollback, or choose a larger flash part, and decide it before the board layout is frozen.
Identity, provisioning and the fleet
Every unit needs its own identity and credentials to talk to your cloud. On a prototype an engineer creates them by hand; on a production line it must be automatic, auditable and fast enough for the line.
Example: provisioning manufactured air-quality monitors
Cube Air is an indoor air monitor for a property developer building premium hotels and condominiums, which was entering device production for the first time with purifier drawings and no in-house hardware team.
- Problem. Each manufactured unit needed its own cloud identity and certificates before it reached a resident.
- Constraint. The first-generation unit had to fit inside the client’s purifier; the second became a standalone desktop device in the client’s dimensions with an added CO2 sensor.
- Choice. Indeema built a serverless AWS back end on AWS IoT Core with production scripts that create a database entry per device, obtain its certificates and flash them to non-volatile storage. Firmware publishes data over MQTT with TLS, receives configuration over MQTT, downloads updates over HTTPS and calculates the air-quality index on the device, so the LED and the cloud show the same value.
- Trade-off. Serverless services remove servers to run and tie operating cost and limits to the provider’s pricing and quotas.
- Verified result. Two device generations prepared as prototypes for beta testing, connected end to end with the back end and a Flutter app, with provisioning scripts for manufactured devices. The case makes no claim about production volumes.
- Lesson for you. Treat provisioning as a manufacturing deliverable: who runs the script, where keys are generated and stored, and how a failed unit is handled on the line.
When you depend on someone else’s hardware or firmware
Many products contain a part the product owner does not control: an OEM battery management system, a camera API from another company, a module with closed firmware. SuperVolt batteries use an OEM battery management system whose firmware is not Indeema’s work; Indeema rebuilt the companion app. The BMS documentation was incomplete, so the team reverse-engineered its behaviour, worked through it with the OEM and reported discrepancies, and isolated support for older batteries in its own modules.
Lesson for you. Budget interface discovery for every third-party component, name who resolves disagreements between documentation and behaviour, and isolate support for older hardware so it does not block new features.
Compliance: what applies, and who does what
Regulation now shapes a connected device’s update and security design, not only its radio. Check scope for your product: the points below are common cases, not a rule for every device.
- EU radio cybersecurity until the Cyber Resilience Act takes over. Since 1 August 2025, Delegated Regulation (EU) 2022/30 has applied the Radio Equipment Directive’s cybersecurity requirements to internet-connected radio equipment and some other categories; the EN 18031 series are the harmonised standards. Regulation (EU) 2026/339 repeals it with effect from the day the Cyber Resilience Act applies in full, and equipment placed on the market before then stays under market surveillance against those requirements.
- EU Cyber Resilience Act. Manufacturers’ obligations to report actively exploited vulnerabilities and severe incidents apply from 11 September 2026. Most other requirements, including security by design, vulnerability handling, security updates and conformity assessment, apply from 11 December 2027 to products with digital elements in its scope.
- UK and US. The UK’s product security regime for consumer connectable products has applied since 29 April 2024. In the US, a device that transmits needs FCC equipment authorisation before it is marketed; the FCC Cyber Trust Mark is a voluntary label.
Conformity assessment is the manufacturer’s job
In the EU the manufacturer carries out the conformity assessment, draws up the EU declaration of conformity and affixes the CE marking. CE marking is the manufacturer’s declaration, not a certificate issued by someone else. A notified body takes part only where the procedure requires it: under the Radio Equipment Directive, for example, when harmonised standards are not applied in full, which matters because EN 18031 is cited with restrictions; under the Cyber Resilience Act, for some higher-risk product classes. Test laboratories produce reports. An engineering partner designs to the requirements and prepares test builds and technical documentation. A pre-certified radio module reduces radio testing, but the finished product still needs its own assessment.
Turning requirements into acceptance criteria
Vague requirements produce estimates nobody can hold to. Write each critical behaviour as a test with conditions and a pass rule. The example below is illustrative: the bracketed values are placeholders to replace with your own, not results from our projects.
| Vague requirement | Testable acceptance criterion | What it forces you to decide |
|---|---|---|
| “The device works offline.” | With the network off for [outage length] at a logging interval of [interval], no record is lost up to [buffer capacity]; after reconnection all buffered records reach the cloud in order within [catch-up time]. | Buffer size, storage type, catch-up bandwidth, order guarantees |
| “It handles a full buffer.” | When the buffer is full, the oldest non-alarm records are dropped first and the drop count is reported with the next upload. | Which data the business can lose, and how support sees it |
| “Updates are safe.” | Power is cut at [number] random points during download and first boot on [number of units]; every unit returns to a working image without manual action and reports its version. | Second image slot, self-test, rollback rule, test fixture |
| “Setup is easy.” | [Number] first-time users finish setup in their own homes without help within [time]; every failed step shows a message that support can identify. | Onboarding flow, error states, support tooling |
What to prepare before asking for an estimate
A useful estimate needs constraints more than features. Copy the template, answer what you can and keep “unknown” where you do not know yet: unknowns tell a partner where discovery is needed.
CONNECTED PRODUCT BRIEF
(Answer what you can. "Unknown" is a useful answer.)
PRODUCT AND USERS
- What the device does:
- Who installs it:
- Who uses it day to day:
ENVIRONMENT AND POWER
- Indoor or outdoor, temperature range:
- Mounting and mobility:
- Connectivity available on site:
- Mains, rechargeable or primary battery:
- Required time between charges or battery changes:
VOLUMES AND COST
- Pilot quantity:
- First production volume:
- Target unit cost at that volume:
MARKETS
- Countries or regions of sale:
- Approvals or test reports you already hold:
WHAT ALREADY EXISTS (owner, documentation)
- Hardware and enclosure:
- Firmware:
- Cloud or backend:
- Apps:
- Third-party modules or APIs:
OFFLINE BEHAVIOUR AND UPDATES
- What must keep working without the network:
- Longest outage to survive:
- Data that may be dropped first:
- Field updates required, and who may trigger them:
DATA AND INTEGRATIONS
- What is sent, and how often:
- Retention and access:
- Systems to integrate (ecosystems, ERP, SCADA, other devices):
MANUFACTURING AND SUPPORT
- Contract manufacturer (chosen or not, who):
- Who owns provisioning and end-of-line testing:
- Support period after sale:
- What your team, the partner and other suppliers each own:
RISKS AND ACCEPTANCE
- The assumptions that would hurt most if wrong:
- How you will decide the product is ready (tests, pilot, sign-off):
- Dates that drive the timeline (pilots, trade shows, funding, regulation):Still at the idea stage? Start with starting an IoT project. Comparing vendors? Use how to choose an IoT development partner. The disciplines behind this article are described on our embedded firmware, IoT hardware development and post-production support pages.
Talk to an engineer
Send us your brief, including the unknowns
Paste the brief or describe where your product is stuck. An Indeema engineer will reply with the decisions your product still needs before an estimate is meaningful, and which we would test first.
Engineering trade-offs
Pre-certified radio module instead of a custom RF design
- You gain
- Less RF design work and a shorter path through radio testing.
- You pay
- A higher unit price, less layout freedom, and the finished product still needs its own conformity assessment.
- Choose it when
- Volumes are moderate, the schedule is tight, or the team has no RF and approvals experience in house.
One SoC with several radios on board
- You gain
- No connectivity co-processor, a simpler board and bill of materials.
- You pay
- The radios share one front end and one vendor’s silicon, SDK and supply.
- Choose it when
- The combinations you need run stably on that chip in your tests, and supply and ecosystem were part of the evaluation.
Processing on the device instead of in the cloud
- You gain
- Less bandwidth, local behaviour when offline, and the device and the cloud show the same derived value.
- You pay
- More firmware work and memory, and every algorithm change needs a firmware update.
- Choose it when
- The result must be visible on the device, the link is slow or intermittent, or data volume drives cost.
Managed and serverless cloud services
- You gain
- No fleet of servers to run; device identity, messaging and update jobs come built in.
- You pay
- Operating cost and limits follow the provider’s pricing and quotas.
- Choose it when
- The team is small and the operations budget matters more than portability.
One cross-platform app codebase
- You gain
- One codebase for iOS and Android, lower maintenance, aligned releases.
- You pay
- Bluetooth behaviour still needs careful testing on each platform.
- Choose it when
- The app is mainly setup, control and data display, and the team can test BLE on both platforms.
Hidden work that rarely appears in the first estimate
These items are real work in most connected products. Decide which apply to yours instead of discovering them late; for how they turn into a budget, see how much an IoT solution costs.
- Provisioning and factory tooling: per-unit credentials, test fixtures, firmware flashing, end-of-line tests, labels and serial numbers.
- Update infrastructure: signing keys and their custody, release channels, staged rollouts, version reporting, rollback.
- Environments and pipelines: automated firmware and cloud builds, test environments separated from production, traceable versions.
- Field diagnostics: logs that survive a reboot, remote log collection, connection-quality reporting, support tooling.
- Ownership flows: sharing, transfer to a new owner, factory reset, removing a device from an account.
- Compliance work: radio and safety testing, technical documentation, a vulnerability-handling process.
- Recurring costs: data plans, cloud services, certificate renewals, app-store accounts, monitoring.
- Component lifecycle: second sources, end-of-life notices and the board revisions they cause.
Where we've built this
Our scope differs from project to project: the path from sensor selection to the app, as with Cube Air (two prototype generations prepared for beta testing); one layer on a client’s own boards and backend, as with the e-bike telemetry unit; or the app around someone else’s firmware, as with SuperVolt.
Case studyBuilding an indoor air monitor and companion app across two device generationsCube Air: sensor selection, ESP-IDF firmware, a serverless AWS back end with production provisioning scripts, and a Flutter app for a first-time device maker.Questions engineers ask
What is the difference between IoT device development and connected product development?
The terms overlap. IoT device development usually means the device itself: electronics, firmware and connectivity. Connected product development covers the whole system a customer buys and uses: the device, the cloud, the apps and the processes to manufacture, update and support it.
Can a development kit go into production?
Sometimes, at low volumes, but a dev kit is designed for flexibility, not for unit cost, enclosure fit, power consumption or long-term availability. Most products move to a custom board, or a board built around a pre-certified module, before production.
Do we need over-the-air updates in the first version?
If the product falls under the EU Cyber Resilience Act, it must be able to receive security updates once the Act applies in full, and the update path affects flash size, the bootloader and the cloud. Outside regulated markets a field update path is still usually cheaper than a recall or a technician visit, so plan it in the first architecture.
Who is responsible for compliance and CE marking?
The manufacturer that places the product on the EU market. It carries out the conformity assessment, draws up the EU declaration of conformity and affixes the CE marking. A notified body is involved only where the chosen procedure requires it. Test laboratories produce reports, and an engineering partner designs to the requirements and prepares builds and technical documentation.
Was this useful?
Where this shows up in our work
SolutionConnected Product Engineering: One System, Not Isolated PartsNeed hardware, firmware, connectivity, cloud and apps engineered as one system, from prototype to a fleet in the field?Apply this to your product
Discuss your connected product
Sources
- Commission Delegated Regulation (EU) 2022/30 (Radio Equipment Directive, cybersecurity), EUR-Lex accessed 28 October 2026
- Regulation (EU) 2024/2847 (Cyber Resilience Act), EUR-Lex accessed 28 October 2026
- The UK Product Security and Telecommunications Infrastructure (PSTI) regime, GOV.UK accessed 28 October 2026
- Equipment authorization, Federal Communications Commission accessed 28 October 2026
- Cyber Trust Mark, Federal Communications Commission accessed 28 October 2026
- Commission Delegated Regulation (EU) 2026/339 repealing Delegated Regulation (EU) 2022/30, EUR-Lex accessed 28 October 2026
- Directive 2014/53/EU (Radio Equipment Directive), EUR-Lex accessed 28 October 2026
- ESP32-C6 product overview, Espressif accessed 28 October 2026
- RF coexistence on ESP32-C6, ESP-IDF Programming Guide, Espressif accessed 28 October 2026
- A Practical Guide to BLE Throughput, Memfault Interrupt (2019) accessed 28 October 2026
- Nordic SoftDevice S140 specification: BLE data throughput accessed 28 October 2026
- ESP-H264 component description, Espressif ESP-Techpedia accessed 28 October 2026
- Partition Tables, ESP-IDF Programming Guide, Espressif accessed 28 October 2026
- Over The Air Updates (OTA), ESP-IDF Programming Guide, Espressif accessed 28 October 2026