Documenting Your Design
Introduction
A working breadboard prototype is not a finished design if nobody else can rebuild it. Documentation is part of embedded system architecture — the same way a pin map belongs next to your schematic. As a student, you document so teammates can review your work, coaches can assess it, and you can resume the project after a break without reverse-engineering your own wiring.
This article covers the four documents most prototype projects need: block diagram, pin map, wiring diagram, and bill of materials (BOM), plus requirements traceability to show your system meets its goals.
Good documentation takes less time when you update it as you build, not in a panic before the deadline. See the overview in Embedded system architecture.
Block diagram
A block diagram shows major subsystems and data flow at a glance — no every wire, just the big pieces.
Include:
- Microcontroller
- Sensor groups
- Actuator groups
- Power supply
- External systems (server, phone, PC) if connected
Draw it on paper, whiteboard, or export from your diagram tool. One page is enough for most student projects.
Pin map
A pin map is a table every firmware and hardware author needs. It is more detailed than the block diagram.
Suggested columns:
| Column | Example |
|---|---|
| Component | DHT22 |
| Interface | GPIO / I²C / SPI / UART |
| Pin(s) | GPIO 4 |
| Direction | Input / output / bus |
| Notes | 10 kΩ pull-up; logic level per datasheet |
Update the pin map when wiring changes. Your firmware drivers should match this table — if the map says pin 25 for the LED, the driver uses 25, not a magic number buried in the main loop.
Wiring diagram
A wiring diagram shows how components connect on the breadboard or PCB. It is not a photo of your desk — it is a deliberate drawing made with a tool intended for electronics documentation.
Tools
| Tool | Best for |
|---|---|
| Fritzing | Breadboard prototypes; beginners |
| KiCad, Eagle, Fusion 360 Electronics | Schematics and PCBs; intermediate/advanced |
Quality checklist
- Show power source, Vcc, and GND explicitly
- Route wires horizontally, vertically, or at 90° — avoid diagonal lines over labels
- Label every part with correct values (220 Ω, DHT22, your exact MCU board model)
- Red wire for Vcc, black for GND; use a third color if you mix 5 V and 3.3 V rails
- Power components from breadboard rails, not star-wired from MCU pins where possible
- Do not hide part numbers or LED polarity under other wires
Common wiring diagram mistakes
- Missing power supply or ground symbol
- Unlabeled parts or wrong resistor values
- LED reversed (long leg = anode, short = cathode)
- Wrong MCU board variant drawn
- Wires covering labels you need to read
- Wrong sensor model (e.g. DHT22 drawn as DHT11)
Add a short introductory paragraph above the diagram in your project docs explaining what a wiring diagram is and what this specific diagram shows.
Videos — Fritzing and circuit tools
Fritzing Tutorial - A Beginners Guide to Making Circuit & Wiring Diagrams
Create Arduino circuit and code — Circuito.io
Also try circuito.io for auto-generated wiring from a part list.
Bill of materials (BOM)
A bill of materials lists every part needed to build one unit, with enough detail to order replacements.
Required columns
| Column | Content |
|---|---|
| Part number | Manufacturer's ID (not only the shop SKU) |
| Manufacturer | Company that made the part |
| Description | Type, value, version (e.g. "Resistor 220 Ω, ¼ W, 5%") |
| Quantity | Count used in one build |
| Unit price | Cost of one item (EUR incl. VAT if applicable) |
| Subtotal | Quantity × unit price |
| Example URL | Clickable supplier or datasheet link |
BOM tips
- Include everything in the wiring diagram: MCU, breadboard, jumper wires, resistors, sensors, power supply
- Parts sold in packs (LEDs, resistors) — divide pack price by count for unit price
- Fill every cell; no empty fields
- Optional extras: tolerance, connector type (M/F), wire length, datasheet URL
Add introductory text above the table explaining what a BOM is and that it matches your wiring diagram.
Videos — bill of materials
What is a Bill of Materials (BOM)? Why is it Important?
Bill of Materials for a prototype or low volume electronics
An Intro to KiCad – Part 9: Generate BOM and Order Parts | DigiKey
Common BOM mistakes
- Missing jumper wires, breadboard, or power source
- Vague descriptions ("resistor" without value)
- Non-clickable URLs
- Missing subtotal column
- Listing whole pack price instead of per-unit cost
Requirements traceability
Requirements traceability links what the system must do to evidence that you built it. For each requirement, record:
- ID and description — what must be true
- Priority — e.g. MoSCoW (Must / Should / Could / Won't)
- How the architecture addresses it — hardware, firmware, or connectivity choice
- Compliant — yes or no
- Evidence — code snippet, screenshot, measurement, demo link
Example:
| Requirement | Architecture | Compliant | Evidence |
|---|---|---|---|
| Measure temperature every 10 s | DHT22 driver + periodic timer in sensor module | Yes | Debug log + code link |
| Remote LED override | HTTP server route /led?state=on |
Yes | curl demo + handler code |
| Battery life 8 h | Deep sleep between samples | No | Not yet measured |
Peer review helps: ask another student to check each "yes" against the evidence.
How documents fit together
| Document | Answers |
|---|---|
| Block diagram | What are the major pieces? |
| Pin map | Which pin does each component use? |
| Wiring diagram | How are they wired on the breadboard? |
| BOM | What parts do I need to buy or find? |
| Requirements table | Does the built system meet the goals? |
These artifacts should agree: every part in the diagram appears in the BOM; every pin in the map appears in the diagram; every "Must" requirement has proof.
Relevant topics
- Embedded system architecture
- Hardware architecture
- Basics of electronics
- Lab tools for prototyping
- Reading datasheets
- GitLab Markdown tables
Starting points
- Create a pin map template in your repo before the first wire.
- Open Fritzing (or your chosen tool) on day one of wiring — update as you go.
- Add a BOM row each time you place a new component on the breadboard.
- Write requirements in plain language before coding; add a compliance column later.
- Ask a peer to rebuild from your diagram only — gaps show up fast.
Focus points
- Document while building — retrofitting diagrams after teardown is painful.
- BOM matches diagram — if it is wired, it is listed, with specs and price.
- Labels on everything — in Fritzing and in the pin map; no "mystery GPIO".
- Evidence for every Must — "it works on my laptop" is not proof without a reproducible step.
- Introductory text — each diagram and table gets a sentence on what it is for.
- Version your docs — commit diagram exports to Git when the breadboard changes.
- Peer review — another pair of eyes catches missing pull resistors and BOM gaps.
Key points
- Documentation is a layer of architecture, not paperwork after the fact.
- Pin map + wiring diagram + BOM let others reproduce your prototype.
- Use proper tools (Fritzing, KiCad, etc.) and follow wire-color conventions.
- Requirements traceability connects goals to design choices and proof.
- Keep all documents consistent with each other and with the code.