9 Choosing a Hardware Platform
9.1 Start With the Story
Suppose a weather-station team can buy a starter board, a radio module carrier, a reference design, or a rugged gateway. Each option is tempting for a different reason, but the useful question is which one exposes the risk now: sensor noise, antenna placement, firmware upload, battery current, field mounting, or recovery after power loss.
This chapter treats platforms as evidence tools rather than shopping choices. A good platform decision names what the board will prove, what it cannot prove, and which measurement would disqualify it before the project depends on it.
9.2 Platform Is a Role
A hardware platform should be chosen because it answers the next prototype question with the least added uncertainty. The same board can be a learning tool, a throwaway demo platform, a production-intent module host, or the wrong abstraction depending on the stage.
For IoT work, the platform decision usually turns on five questions: local control, communication, power state, physical fit, and service path. A board that is excellent for firmware iteration may still hide enclosure, sleep-current, connector, antenna, or update risks.
Inspect Hardware Platform Role Map and communication in Figure 9.1 for platform is a role. To make platform is a role reviewable, compare Hardware Platform Role Map with communication in it. The figure ties this to and service path.
Read Hardware Platform Role Map with communication in Figure 9.1 for platform is a role. Compare it by setting Hardware Platform Role Map against communication under and service path. The choice depends on and service path. Preserve the and service path condition in the handoff for platform is a role.
- Starter role: prove pins, libraries, timing, sensor behavior, and debugging flow quickly.
- Connected-node role: prove embedded sensing, local outputs, sleep/wake behavior, and real message paths.
- Gateway role: prove local storage, protocol translation, offline behavior, dashboards, service logs, and field diagnostics.
For example, an ESP32 DevKitC, Raspberry Pi Pico W, Arduino Nano 33 IoT, STM32 Nucleo board, Nordic nRF52 DK, Adafruit Feather, or Seeed XIAO can all be useful IoT platforms, but they do not answer the same question. A Pico W may be a fast way to learn MicroPython GPIO and Wi-Fi behavior. An nRF52840 board may be better when Bluetooth Low Energy or Thread behavior matters. A Raspberry Pi or Compute Module may be a gateway platform when the evidence is local Linux services, files, camera input, or a dashboard. A custom carrier becomes useful when connector strain, test points, enclosure clearance, and assembly repeatability are the next unknowns.
For a first “build your own IoT” path, the practical options are usually a microcontroller, a single-board computer, or a phone-backed prototype. A microcontroller is the right shape when the learner must prove GPIO, sensor sampling, actuator timing, sleep current, and radio behavior. A single-board computer, including older DragonBoard 410c-style Linux boards, is the right shape when the evidence is local files, camera input, higher-level services, or gateway behavior. A smartphone can be a useful prototype surface when the question is location, camera, accelerometer, permission flow, or user interaction, but it should be recorded as a phone-mediated system rather than as proof that the final embedded node can meet power or recovery targets.
The platform choice should therefore be written as an evidence sentence: “Use this form because it can measure this risk now.” If the sentence only says “we know this board” or “it has enough compute”, the team has not chosen a platform role. The review should name the present evidence gap, the board or form that exposes it, the risk the form hides, and the exit signal for moving to a module carrier, gateway, or custom board.
9.3 A Raspberry Pi GPIO and Camera Proof Slice
An NPTEL Raspberry Pi walkthrough pairs two deliberately small proofs. The first uses a Raspberry Pi, LED, 100 ohm resistor, breadboard, and jumper wires to show that software can drive a physical output. The second connects the Raspberry Pi camera module through the board’s dedicated CSI slot and proves that the operating-system interface can reach the sensor. Together they separate three boundaries that a larger prototype can easily blur: wiring, software configuration, and captured output.
9.4 Capture the Evidence, Not Just the Demo
For the LED path, the source installs the Python development package and python-rpi.gpio, connects the LED’s negative terminal to ground and its positive terminal to an output pin, and edits a Python file with nano. The script selects GPIO.BOARD numbering, configures physical pin 11 as an output, drives it high and low with one- and two-second delays for five loop passes, and calls GPIO.cleanup(). A useful record therefore keeps the numbering mode, physical pin, resistor, wiring polarity, loop count, delays, and cleanup behavior together; “the LED blinked” alone loses the conditions that made the result repeatable.
For the camera path, the source places the ribbon cable in the dedicated CSI connector, boots the Pi, enables the camera through raspi-config, and reboots. It then captures image.jpg either with raspistill -o image.jpg or with a picamera.PiCamera() object and capture('image.jpg'). Preserve which path was used, the configuration step, the output filename, and the resulting file. These are provenance-bound source commands, so a present-day lab should still record the actual image, package, command, and interface it tested rather than treating a remembered command name as proof.
9.5 What the Two Paths Actually Exercise
The GPIO path crosses Python library, numbering mode, pin direction, external circuit, and timing. The camera path crosses physical connector, boot-time discovery, interface enablement, capture API, and filesystem output. A failure record should stop at the first boundary that lacks evidence: do not rewrite the blink loop before checking polarity and pin numbering, and do not debug image processing before proving that the camera interface can produce one file.
9.6 Practitioner: Shortlist by Risk Removed
A useful shortlist names what each platform form can prove. Arduino Uno, Arduino Nano 33 IoT, Raspberry Pi Pico W, ESP32 DevKit, STM32 Nucleo, Nordic nRF52 DK, and Adafruit Feather boards make different tradeoffs in pin access, radios, power, toolchains, shields, and ecosystem support. Raspberry Pi, Compute Module, BeagleBone, Jetson Nano, and small x86 gateways make different tradeoffs in Linux services, storage, camera/display support, and power draw.
Board names hide the silicon family underneath them, and the family is often the more durable piece of shortlist evidence. ARM Cortex-M and Cortex-A cores appear across many current designs (STM32, nRF52, and SAMD-based boards among them), classic Atmel/Microchip AVR and Microchip PIC parts still turn up in hobbyist kits and legacy firmware, TI’s MSP430 remains a common pick when deep-sleep current matters more than raw throughput, and 8051-derivative cores persist in cost-driven legacy designs long after the board that popularized them is gone. Naming the family, not just the board, keeps the shortlist honest about toolchain lock-in, second-source availability, and how much of a board’s convenience comes from the core versus a support layer stacked on top of it.
Gateway-class boards make a similar substitution at a coarser grain. A Raspberry Pi-class board is a single SoC pairing a multi-core CPU with an integrated GPU, working RAM, and a GPIO header (commonly 40 pins) plus a USB path that fans out to peripherals and a network interface. It is that CPU/GPU/RAM pairing, not the board’s form factor, that mostly sets the idle-power floor, the camera/display headroom, and how much local Linux service the gateway role can actually carry.
- Measure endpoint fit: boot time, sleep current, wake time, radio attach time, ADC noise, GPIO drive path, firmware update route, and watchdog recovery.
- Measure gateway fit: cold boot, service restart, storage resilience, offline queue length, local UI response, network reconnect, logs, and remote access.
- Measure physical fit: connector strain, mounting holes, antenna clearance, sensor exposure, enclosure clearance, cable exit, test-point access, and assembly repeatability.
- Measure transition cost: pinout migration, module availability, carrier-board complexity, library lock-in, supply risk, certifications, and custom-board effort.
Start with two or three plausible forms, not ten boards. For a battery sensor node, compare a development board with the target radio module, a module carrier, and a reference-design board. For a gateway, compare a Raspberry Pi-class single-board computer, an industrial gateway, and the lowest-power Linux-capable option that can still run the needed services. For each option, record the measurement that would disqualify it: active current, deep-sleep current, wake time, radio attach time, sensor noise, storage corruption after power loss, enclosure interference, or inability to recover firmware.
Use real evidence tools during the shortlist. A Nordic Power Profiler Kit II, Joulescope, bench supply with current limit, USB power meter, logic analyzer, oscilloscope, serial console, Wireshark trace, MQTT broker log, or systemd journal can make the platform comparison concrete. Firmware-tool evidence matters too: Arduino IDE, PlatformIO, ESP-IDF, Zephyr with west, STM32CubeIDE, pyOCD, OpenOCD, esptool.py, nrfjprog, and Raspberry Pi OS all change how fast the team can flash, log, recover, and repeat tests. The winning platform is the one that removes the current uncertainty without making the next transition unreasonably expensive.
Keep a rejected option in the record. If an ESP32 board was rejected because its USB-UART circuit and regulator hid sleep current, say so. If a Raspberry Pi was rejected because boot time, storage writes, or power draw were irrelevant to the sensor-node question, write that down. If a module carrier was deferred because the team had not stabilized pinout or sensor placement, record the exit criteria that would trigger it.
9.7 Convenience Hides Product Risk
Development convenience is real value, but it should be separated from deployment risk. USB power, breadboard headers, onboard LEDs, auto-reset circuits, SD cards, desktop Linux images, and shield ecosystems speed learning while hiding the behavior of the final device.
- Power risk: USB-powered demos can hide battery chemistry, regulator heat, inrush current, low-voltage lockout, and sleep leakage.
- Communication risk: lab Wi-Fi can hide LoRaWAN, LTE-M, NB-IoT, BLE, Ethernet, RS-485, Thread, or Matter commissioning behavior.
- Mechanical risk: jumper wires and shields can hide connector keying, cable strain, antenna placement, exposed sensors, gasket pressure, and service access.
- Operations risk: dev images can hide secure boot, signed OTA updates, credential storage, remote logs, recovery mode, and fleet provisioning.
Many board-level differences are hidden in support circuits rather than the main processor. A development board may include a USB-to-UART bridge, linear regulator, charger, power LED, level shifter, auto-reset circuit, pull resistors, boot-mode strapping, or solder-jumper defaults that are not present in the final design. Those parts can change idle current, reset timing, ADC noise, radio behavior, and first-power symptoms. The platform review should name which support circuits are part of the evidence and which are merely conveniences.
Software layers create similar risk. An Arduino core may hide ESP-IDF configuration, a vendor BSP may hide clock and pin defaults, and a Raspberry Pi image may hide Linux service dependencies, filesystem writes, udev rules, NetworkManager behavior, and shutdown recovery. A board that works in the lab can still fail the evidence question if it cannot expose boot logs, watchdog resets, radio reconnects, flash wear, certificate storage, or signed-update failure paths. When the platform includes a radio module, check the module datasheet and reference layout assumptions: antenna keep-out, ground plane, matching network, regulatory modular approval, and enclosure effects are not proven by a USB-powered bench demo.
The platform has done its job when it exposes the next risk clearly enough to choose the next form. That may mean moving from an Arduino-class starter board to an ESP32 or nRF52 connected node, from loose modules to a carrier board, from a laptop-hosted script to an embedded gateway, or from a module carrier to a custom PCB. The under-the-hood test is whether the next transition is based on measured behavior rather than the comfort of the board already on the bench.
9.8 Learning Objectives
By the end of this chapter, you will be able to:
- Explain the difference between a platform role and a specific board.
- Match platform forms to prototype evidence needs.
- Compare starter boards, connected controller boards, module carriers, gateway boards, and custom boards by the questions they answer.
- Decide when to move from a flexible platform to a more constrained hardware form.
- Write a platform selection record that preserves the rationale for later revision.
9.9 Platform Choice Is a Prototype Decision
Platform selection should begin with the next evidence gap, not with a familiar board name. A platform is useful when it reduces uncertainty without adding a larger problem.
Ask what the current prototype must prove:
A popular board can make early progress fast, but it can also hide power, connector, enclosure, service, or field-recovery risks. Keep the platform accountable to the prototype question.
9.10 Platform Forms and What They Prove
Each platform form answers a different class of question. Treat the form as a stage-gate choice.
Inspect 1. Prototype question and Communication in Figure 9.2 for platform forms and what they prove. At the decision point in platform forms and what they prove, keep both 1. Prototype question and Communication visible in it. connector and fit marks the next check.
Read 1. Prototype question with Communication in Figure 9.2 for platform forms and what they prove. Set its cases with 1. Prototype question and Communication as cases under connector and fit. The choice depends on connector and fit. The running argument in platform forms and what they prove therefore stays bounded.
9.10.1 Avoid False Comparisons
Comparing platforms by a single feature is usually misleading. A board with more processing headroom may be weaker for battery sleep. A board with fast software iteration may be weaker for deterministic I/O. A board with convenient connectors may be too large for the intended enclosure.
9.11 Platform Fit Matrix
A platform shortlist should be reviewed against constraints that can be measured or inspected. Use the matrix to record what each candidate can prove and where it may hide risk.
Inspect Evidence Area and lab-only success in Figure 9.3 for platform fit matrix. To test platform fit matrix, separate Evidence Area from lab-only success using it. The route closes at next gate.
Read Evidence Area with lab-only success in Figure 9.3 for platform fit matrix. Audit it by keeping Evidence Area, lab-only success, and next gate as separate entries. Both Evidence Area and lab-only success need evidence. Return to platform fit matrix with lab-only success explicitly tested.
Review these evidence areas:
Keep at least one rejected option in the review record. A good platform decision explains why the chosen form fits now and why a plausible alternative was not selected.
9.12 Transition Timing
Early platforms are flexible because they are easy to change. Later platforms are useful because they remove ambiguity. Move forward when the current platform is no longer answering the real question.
Inspect learning task done and local services in Figure 9.4 for transition timing. Before acting on transition timing, find the boundary between learning task done and local services on it. The remaining question is Measured behavior drives the move.
Read learning task done with local services in Figure 9.4 for transition timing. Step through it starting at learning task done, crossing local services, and closing on Measured behavior drives the move. A failure at local services changes the route from learning task done. The running argument in transition timing therefore stays bounded.
Use these transition signals:
Do not discard an early platform immediately. Keep it as a known-good comparison while the next platform is being brought up.
9.13 Worked Scenario: Cold Storage Monitor
A team is building a cold storage monitor for small facilities. The device must read several sensors, report events to a nearby gateway, keep working during short network outages, and fit inside a small enclosure with external probes.
9.13.1 Platform Path
9.13.2 Platform Review Record
prototype=cold-storage-monitor
stage=functional-prototype
current_question=can sensor nodes report events through a local gateway during intermittent network loss?
chosen_platform_form=connected-controller-node plus gateway-board
why_node=local sensing, low-energy state measurement, event retry, and warning output
why_gateway=local buffering, reconnect behavior, status display, and service logs
rejected_option=single gateway-only design because it cannot prove distributed probe placement
next_transition=module carrier for connectors, test points, and enclosure fit
9.14 Platform Handoff Record
When a platform is selected, leave a record that future reviewers can challenge. Platform decisions often become hard to revisit after firmware, wiring, and test fixtures accumulate around them.
Inspect Current Question and low-energy state readings in Figure 9.5 for platform handoff record. To test platform handoff record, trace Current Question toward low-energy state readings in it. The route closes at prototype stage.
Read Current Question with low-energy state readings in Figure 9.5 for platform handoff record. Work through it by keeping Current Question, low-energy state readings, and prototype stage as separate entries. Keep prototype stage separately reviewable. The conclusion in platform handoff record now has a named boundary.
Record:
9.15 Hardware Accelerators: Select by Workload Evidence
A microcontroller or application processor does not have to execute every workload alone. Select an accelerator only after profiling the real hot path and defining the product lifetime. The useful comparison is workload, programmability, energy per completed task, latency/jitter, non-recurring engineering (NRE), unit volume, toolchain risk, and the evidence available when the design must be maintained.
| Platform class | Strong fit | Main cost or limit | Evidence before selection |
|---|---|---|---|
| DSP | Repeated multiply-accumulate work, filtering, audio, communications | Specialised memory/compiler model; weaker fit for irregular control | Kernel profile, fixed/floating-point error, worst-case latency, energy/task, compiler/library version |
| FPGA | Deterministic parallel pipelines, custom interfaces, reconfigurable timing | HDL/tool skill, verification effort, static power, bitstream lifecycle | Timing closure, resource use, power at workload, interface tests, bitstream provenance and update/rollback |
| ASIC | Stable high-volume function with strict power/area/latency target | Highest NRE and longest change cycle; faults are expensive after fabrication | Frozen requirement, verification/coverage, process and volume case, yield, lifecycle supply and errata plan |
| Heterogeneous SoC | Control on CPU/MCU plus selected DSP/GPU/NPU/FPGA engines | Data movement, shared memory, scheduler, driver, and observability complexity | End-to-end trace including transfers, contention, fallback path, power states, driver/runtime compatibility |
Use a staged selection:
First, Measure the representative software path on the simplest viable processor. Next, Isolate the kernel that misses a deadline or energy budget; retain its inputs and expected outputs as a mutation-sensitive fixture. Then, Benchmark the complete path on each candidate, including data conversion, transfers, queueing, wake-up, and fallback—not just accelerator execution. After that, Price NRE, tools, verification, unit volume, supply, field updates, and the years the evidence must remain reproducible. Finally, Keep a processor-only safe or degraded path where the product risk requires it, and state which requirements that path cannot meet.
Record workload and deadline; accepted numeric error; average and worst-case latency; energy per completed task; memory and transfer cost; toolchain/runtime/bitstream or mask version; NRE and target volume; rejected alternatives; fallback; update/rollback path; lifecycle owner; and the measurement that reopens the decision. Peak operations per second alone is not selection evidence.
9.16 Knowledge Check
9.17 Match Platform Form to Evidence
9.18 Order the Platform Selection Review
9.19 Common Failure Patterns
The review names a board but does not explain whether it is acting as a starter board, connected controller, gateway, carrier, or transition path. The team cannot tell when the platform has stopped being useful.
A simulator can help with syntax, logic, or rough timing, but it does not prove connector orientation, power behavior, sensor noise, antenna placement, enclosure fit, or field recovery.
A platform with an easy setup can hide low-energy behavior, boot recovery, service access, or layout constraints. Review convenience separately from the evidence needed next.
The prototype stays on the same platform because the team never defined what evidence would trigger a carrier, gateway, or custom-board transition.
9.20 Summary
Hardware platforms are temporary evidence tools. Choose the platform form that answers the current prototype question, record the rejected alternatives, and define the transition risk before the team builds too much around a convenient board.
9.21 Key Takeaway
Prototype platforms are decision tools: select the board that exposes the right interfaces, ecosystem, power behavior, and migration path for the evidence you need.
9.22 What’s Next
First, AI, Wireless and Energy Kits - evaluate specialized kit categories without treating kits as architecture. Next, Industrial and Wearable Kits - review kit fit for constrained field environments. Then, Kit Selection Best Practices - apply platform evidence to kit selection. After that, MCU vs MPU - revisit controller-class decisions that sit underneath platform form choices.
