Mermaid exampleBlock

Embedded System Block Diagram with Sensors and MCU

Hardware and firmware teams draw block diagrams on whiteboards constantly, and almost none of them end up in the repository. The block-beta type is a way to keep that sketch as text: a grid of labelled blocks with arrows, no layout engine deciding where things go.

  • block diagram mermaid
  • embedded system diagram
  • hardware block diagram
  • iot device architecture
Embedded System Block Diagram with Sensors and MCU

Sensors

ADC

Microcontroller

Radio module

Power supply

Flash storage

Open in editor → 9 linesrenders in GitHub, Notion, Obsidian

Mermaid code

block-beta
    columns 3
    Sensors["Sensors"] ADC["ADC"] MCU["Microcontroller"]
    Radio["Radio module"] Power["Power supply"] Flash["Flash storage"]
    Sensors --> ADC
    ADC --> MCU
    MCU --> Radio
    MCU --> Flash
    Power --> MCU

Paste this into any tool that renders Mermaid, or into the editor to change the theme and export PNG or SVG. Syntax reference: Block guide.

What this diagram shows

The diagram declares columns 3 and then lists six blocks that fill two rows in order: Sensors, ADC, and Microcontroller on top, Radio module, Power supply, and Flash storage below. The arrows trace the signal path from the analog sensors through the ADC into the MCU, and from the MCU out to the radio and flash. The Power to MCU arrow is the only one that crosses rows, which keeps the power domain visually separate from the data path.

Use block diagrams when position carries meaning and you want it fixed. A flowchart would reflow the same nodes based on edge count and hide the physical layout you are trying to show.

How to adapt it

  • Change columns 3 to match the widest row of your board layout; blocks fill rows left to right in the order written.
  • Give a wide component more room with a span, for example MCU["Microcontroller"]:2, so it occupies two columns.
  • Add a block for a debug or programming header and connect it to the MCU with a dotted arrow to mark it as development-only.
  • Rename the blocks to the actual part families you use (BME280, nRF52) once the bill of materials is fixed.

FAQ

How do I leave an empty cell in the grid?

Use the space keyword in place of a block. It occupies one cell so the following blocks shift right, which is how you align components across rows.

Can a block span several columns?

Yes. Append :N to the block, such as Bus["System bus"]:3, and it stretches across N columns of the current row.