Prototyping · Study deck

Development Environments: Selection and Setup Evidence

A toolchain that works on one laptop is not yet a project environment.

Voltage Vera is your guide for this deck.

environments
iotclass.org

After studying this chapter

Learning objectives

You will be able to:

  • Define what evidence a software development environment must leave for an IoT prototype.
  • Match environment families to prototype stage, board risk, language risk, team workflow, and debugging need.
  • Record board profiles, build inputs, dependency versions, configuration, and upload commands without exposing secrets.
  • Decide when a simulator, REPL, vendor SDK, project-based toolchain, or CI build adds useful evidence.
iotclass.org

Major section

In 60 Seconds

The source file is the same, but the environment has become hidden part of the design.

  • Firmware is the code stored on a device.
  • The failure should point to a recorded difference instead of guesswork.
  • A repeated build does not prove the device is safe in the field.
  • A development environment is not just an editor.

Why it matters

One build works; the other fails because a board package changed and a local library was never recorded.

iotclass.org

Major section

Start With the Story

Two learners can write the same sensor sketch and get different results because their board package, compiler, library version, upload tool, serial monitor, or simulator setup is different.

  • The environment is part of the prototype, not a background detail.
  • If it is invisible, the evidence cannot travel.
  • This chapter starts from that practical problem.
iotclass.org

Major section

Environment Choice Guides Proof

The environment decides what the team can rebuild, upload, observe, and hand off.

  • A fast editor helps only if the build path and debugging evidence can be repeated by someone else.
  • An environment choice should leave a path another builder can repeat.
  • If the compiler, dependency, profile, or hardware changes, rerun the path before reusing the claim.
A development environment should turn a prototype question into a repeatable target profile, build path, run record, and handoff decision.
A development environment should turn a prototype question into a repeatable target profile, build path, run record, and handoff decision.
iotclass.org

Major section

Environment Choice Guides Proof (continued)

A PlatformIO project can pin board profiles and libraries in the repository.

  • The PlatformIO project and board profile define the target, while the build record keeps its configuration, command, and expected artifact beside source.
  • For IoT prototypes, environment choice also decides how much board-specific behavior is visible: pin maps, clock setup, flash partitioning, RAM pressure, driver versions, simulator gaps, upload mode, and live logs.
  • The best choice is therefore not the most advanced tool.
iotclass.org

Major section

Environment Choice Guides Proof (continued)

As the prototype moves beyond first contact, the environment should expose more of the risk.

  • ESP-IDF can make partition tables, sdkconfig options, FreeRTOS settings, and monitor output explicit.
  • Zephyr with west can show board overlays, devicetree bindings, Kconfig choices, and a repeatable build command.
  • A pump controller may need the upload method, watchdog reset log, and relay-disable observation before reviewers discuss architecture style.
iotclass.org

Major section

Hidden Local State Misleads

The build record should name the git revision, build ID, binary size, warning state, partition map, and generated configuration.

  • Many firmware failures are environment failures with a hardware symptom.
  • A library cached on one laptop, a silent board-package update, a different compiler flag, or a missing upload setting can change behavior without changing the source file under review.
  • The under-the-hood rule is to preserve the boundary between environment evidence and device evidence.
iotclass.org

Major section

Environment Families

Specific products change, but the evidence role stays stable.

  • A starter IDE is useful for first contact with a board and a serial reading.
  • A project toolchain adds versioned dependencies, board profiles, and commands that a teammate can repeat.
  • A scripting environment can speed gateway or data exploration, while a simulator or harness tests logic before hardware is available.
Environment family fit map
Environment family fit map
iotclass.org

Major section

Environment Families (continued)

Starter IDE: Best when the risk is first contact with a board, sensor, serial output, or a simple loop.

  • Project-based toolchain: Best when the prototype needs multiple files, versioned dependencies, several target boards, unit tests, or team review.
  • Vendor SDK: Best when the evidence depends on low-power modes, secure boot, radio stack behavior, RTOS services, memory layout, or silicon-specific features.
  • Scripting or REPL environment: Best when the prototype needs fast data exploration, MicroPython-style board interaction, gateway logic, or Linux-based device automation.
iotclass.org

Deck summary

Key takeaways

The source file is the same, but the environment has become hidden part of the design.

  • Two learners can write the same sensor sketch and get different results because their board package, compiler, library version, upload tool, serial monitor, or simulator setup is different.
  • The environment decides what the team can rebuild, upload, observe, and hand off.
  • A PlatformIO project can pin board profiles and libraries in the repository.
  • As the prototype moves beyond first contact, the environment should expose more of the risk.
iotclass.org

Retrieval practice

Recall check

Voltage Vera says: answer from memory, then check your reasoning.

Q1A teammate can open the source files, but cannot rebuild the firmware because the board profile and library versions are unknown. What evidence should the environment record add first?

AEditor theme, file tree, screenshot of a green build, and a note that the latest local run looked successful.
BOriginal laptop owner, local folder path, and a request to avoid reinstalling tools.
CA newer SDK choice, before recording the current board package and build path.
DBoard profile, dependency versions, build command, and expected artifact for a clean checkout.
Show answer

Answer: D A clean build record should let another reviewer recreate the firmware artifact and then compare upload and observation evidence.

iotclass.org

Print reference

Answers

Answer key.

  1. D · A clean build record should let another reviewer recreate the firmware artifact and then compare upload and observation evidence.
iotclass.org