Skip to content

Reading schematics

By the end of this lesson you will:

  1. Identify basic component symbols and net names on a schematic
  2. Trace one signal from a microcontroller pin to an LED or a button on a board’s schematic
  • The schematic for the board you are using. A chip vendor’s dev kit usually has a schematic downloadable from that kit’s product page. If you cannot find one, ask your instructor or the board’s maintainer. Without a real schematic at all, every concept and practice exercise here can still be done with this page’s example schematic; the lab can only be done in part.
  • A TESAIoT Dev Kit that can run QWA309 Potentiometer Monitor and QWA309 Header I/O Test
  • A multimeter, and a logic analyzer

Two public documents about the TESAIoT Dev Kit disagree about the very same knobs.

  • The Potentiometer Monitor example’s README and its code label them VR1 = P15.5 and VR2 = P15.4
  • The SDK’s README for the QWA309 base board’s overlay states, in its board-notes section, “PCBA silkscreen swaps VR1↔VR2; schematic is authoritative (VR1=P15.4)” and another note that the SPI’s CS pin is P9.0, while the “9.2” silkscreen label is wrong, because P9.2 is MOSI

Who is right? This is not answered by choosing whichever document looks more trustworthy — it is answered by reading the schematic and measuring. The key observation is that both documents agree on the chip’s pin names (P15.4 through P15.7), and disagree only on the names people assigned (VR1, VR2). By the end of this lesson, you will be able to settle a question like this yourself, on your own board.

1. Symbols, reference designators, and values

Section titled “1. Symbols, reference designators, and values”
R (US) R (IEC) C + C polar diode LED NPN N-MOSFET GND 3V3 power net SW SCL net label
Common symbols: a resistor (the American style is a zig-zag, the IEC style is a box), a capacitor, a polarised capacitor, a diode, an LED, an NPN transistor, an N-channel MOSFET, ground, a power net's name, a switch, and a net label.

There are two common resistor styles: zig-zag (popular in America and Japan) and box (the IEC standard, popular in Europe). Both mean the same thing.

Reference designators. A letter states the type, and a number states its sequence, used consistently across the schematic, the board’s silkscreen, and the bill of materials (BOM).

Letter Type Letter Type
R Resistor U Chip (IC)
C Capacitor J, P, CN Connector
L Inductor SW Switch, button
D Diode, LED TP Test point
Q Transistor, MOSFET Y, X Crystal
FB Ferrite bead F Fuse

Writing values without a decimal point. Schematics often use a letter in place of the point, because a tiny dot is easy to lose when printed or copied.

4k7 = 4.7 kΩ 2R2 = 2.2 Ω 1M0 = 1.0 MΩ 100n = 100 nF 4p7 = 4.7 pF 1u0 = 1.0 µF

Codes printed on a chip resistor: the first two digits are the number, and the last digit is how many zeros follow. “103” = 10 × 10³ = 10 kΩ; “472” = 4.7 kΩ. The four-digit style uses the first three digits as the number: “4701” = 470 × 10¹ = 4.7 kΩ. Leaded ceramic capacitors use the same scheme in pF: “104” = 10 × 10⁴ pF = 100 nF.

A net is a group of points that are all electrically connected. A schematic can show what shares a net in several ways.

  • Wires drawn connected. Two wires meeting in a T shape with a junction dot are connected. Two wires crossing in an X shape with no dot are not connected.
  • Net labels. Two points carrying the same label are the same net, even with no wire drawn between them at all — used to avoid drawing wires across the whole page.
  • Power and ground symbols. Every “3V3” symbol anywhere on the schematic is the same net; likewise for every ground symbol.
  • Multiple sheets. A real board’s schematic usually spans several sheets. The first sheet is often a block diagram; net labels or off-sheet connectors carry a signal to another sheet. A hierarchical schematic uses sub-blocks that have their own input and output pins.

Meaningful signal names. A good name tells you immediately what the signal is, which voltage domain it belongs to, and at what level it operates. The TESAIoT Dev Kit’s header test program prints signal names in this style on screen, for example:

P13.3_GPIO_PWM5+_3V3 chip pin P13.3 | used as GPIO or PWM5's positive terminal | 3.3 V domain
P15.2_ADC_2_PWM3+_3V3 pin P15.2 | used as ADC channel 2 or PWM3's positive terminal | 3.3 V domain

Active-low signals usually carry one of several markers, such as an overbar over the name, starting with n or /, or ending in _N or #. For example, RESET_N, /CS, nWP, BTN_N all mean “active when 0.”

3. Tracing a signal from a chip pin to a component, and when the documentation disagrees with the board

Section titled “3. Tracing a signal from a chip pin to a component, and when the documentation disagrees with the board”
MCU IO1 IO2 R12 1k LED1 → sheet 2 BTN_N → sheet 2 sheet 2 LED1 D5 BTN_N 3V3 R40 10k SW3
An example schematic (drawn for practice, not a real board's schematic): on sheet 1, the MCU's pins IO1 and IO2 go out to labels LED1 and BTN_N. Sheet 2 has the same labels — points sharing a name are the same wire, even with no line drawn between them.

Steps for tracing a signal

  1. Find the microcontroller’s symbol (often split into several parts by port), then find the pin you care about
  2. Follow the wire until you reach a component or a label. If you find a label, search for the same name on every sheet (a PDF reader can search text)
  3. For every component you pass, record its reference designator, value, and orientation (e.g. which way an LED’s anode points)
  4. Keep going until you reach the end, usually a power rail or ground, then summarise it as a sentence, e.g. “pin IO1 drives LED1 active-high through 1 kΩ”
  5. Open the datasheet of any unfamiliar component alongside this. A component’s pins on a schematic are arranged for the drafter’s convenience, not to match their real position on the package.

When the silkscreen does not match the schematic. The schematic is the document used to create the board, so it is usually more trustworthy than a label printed on the board itself. But a schematic is also written by a person, has revisions, and can be wrong. The final answer must come from measurement: power off, and use continuity mode from a header pin to the component; or power on, run a program that you know drives a specific pin, and watch with a logic analyzer where the signal actually shows up.

The TESAIoT Dev Kit’s SDK warns of another case of overlapping names, in the cm33/io/04_gpio_led_button.c example: the code’s name CYBSP_USER_BTN1 points to CYBSP_SW1, but the board’s silkscreen reads SW2. Neither is wrong — they are names in different systems. What ties every name together is the chip’s pin.

Problem: using the example schematic in section 3, determine how LED1 and button SW3 work, and how the program must set up the pins.

LED1

  1. Sheet 1: pin IO1 → R12 (1 kΩ) → label LED1
  2. Sheet 2: label LED1 → D5 (LED, anode toward the label, cathode toward ground) → GND
  3. Conclusion: IO1 = 1 → current flows from IO1 through R12 and D5 to ground; the LED lights — this is active-high
  4. Current: with V_f = 2.0 V, (3.3 − 2.0) V / 1 kΩ = 1.3 mA
  5. Program: set IO1 as a push-pull output (on PSoC, CY_GPIO_DM_STRONG), starting at 0 so the LED does not flash on at power-up

SW3

  1. Sheet 1: pin IO2 → label BTN_N directly, with no resistor in between
  2. Sheet 2: label BTN_N → a point where R40 (10 kΩ) goes up to 3V3, and SW3 goes down to ground
  3. Conclusion: released, R40 pulls it up to 1; pressed, SW3 connects it to ground, giving 0 — this is active-low, matching the name’s _N suffix
  4. Current while pressed: 3.3 V / 10 kΩ = 0.33 mA
  5. Program: an external pull-up already exists, so setting IO2 as a no-pull input is enough (also enabling the internal pull-up would not be wrong, just unnecessary), and write pressed = !read(IO2)
  1. Translate these values: 4k7, 2R2, 100n, 1u0, and the chip resistor codes “103” and “4701,” and the ceramic capacitor code “104”
  2. Name the component type from its reference designator: U3, Q2, TP5, FB1, J4, Y1
  3. Break down the parts of the signal name P15.2_ADC_2_PWM3+_3V3, and say whether a 5 V signal can connect to this pin
  4. On a schematic, a horizontal and a vertical line cross in an X, with no junction dot. Are these two wires connected? What if it were a T shape with a dot?
  5. Which of these signal names are active-low: RESET_N, /CS, nWP, EN, SCL
  6. A board’s silkscreen labels the SPI’s CS pin as “9.2,” but the SDK says CS is P9.0 and P9.2 is MOSI. Design an experiment that confirms which pin is really CS, without opening the schematic.
  1. 4.7 kΩ, 2.2 Ω, 100 nF, 1.0 µF, 10 kΩ, 4.7 kΩ, and 100 nF
  2. U3 is a chip, Q2 is a transistor or MOSFET, TP5 is a test point, FB1 is a ferrite bead, J4 is a connector, Y1 is a crystal
  3. Chip pin P15.2 | used as ADC channel 2 or PWM3’s positive terminal | 3.3 V domain. A 5 V signal cannot connect, because it exceeds the pin’s voltage domain (see the lesson Logic levels)
  4. An X with no dot is not connected; a T with a dot is connected (a good schematic drafter avoids a dotted X-shaped junction, because a tiny dot can be lost when printed)
  5. RESET_N, /CS, and nWP
  6. One example: connect two logic analyzer channels to the header pin labelled “9.2” and to the suspected neighbouring pin, run the header test program, and press the SPI ESP32 button. Per the example’s code, the CS pin (P9.0) starts at 1 and drops to 0 for the whole transfer, while MOSI (P9.2) changes with every data bit on every clock. Whichever pin shows the CS-shaped waveform is the real CS.

Answer at least 4 of the 5 questions in quiz.yaml correctly.

Part A: trace a signal on a real schematic (if you have your board’s schematic)

  1. Find the first block-diagram sheet. Record how many sheets the schematic has, and what each one covers.
  2. Trace one user LED’s signal from the chip pin to ground or the supply rail. Record the reference designator and value of every component along the way, and conclude whether it is active-high or active-low. Then compare against the SDK, which states that the board’s LED lights when the pin is 1 (CYBSP_LED_STATE_ON = 1).
  3. Trace one user button’s signal. Is there an external pull-up resistor? If not, the program must enable the chip’s internal pull-up, matching the SDK setting the button to CY_GPIO_DM_PULLUP.
  4. Find the microcontroller’s decoupling capacitors. Count how many there are and what values they use — keep this for the next lesson.

Part B: which pin is VR1 on your board (TESAIoT Dev Kit)

  1. Run the Potentiometer Monitor example. Turn the knob the silkscreen labels VR1 all the way in one direction, and see which card on screen moves, and which pin it shows.
  2. Repeat for every knob, fill in the table, then conclude how the silkscreen, the example’s code, and the SDK’s description agree (or disagree) on your board.
  3. Write a short, one-paragraph proposal: if you were the documentation’s maintainer, how would you resolve this confusion? (Hint: refer to things primarily by the chip’s own pin name.)
Silkscreen label Pin the on-screen card shows Name the example’s code uses Per the schematic (if available)
VR1
VR2
VR3
VR4

Part C: read a signal name on the header. Run the header test program, press ADC In or PWM Out, and record the full signal name printed on screen. Break it down as in Practice question 3.

The course’s last lesson, PCB and EMC basics, takes us from schematic to real board — how a capacitor’s placement and a trace’s shape affect noise.

In Part B, which document did you trust before measuring, and did that trust change afterwards? How does this habit apply to other documentation you read every day?

Review questions

Answer on your own first, then open the answer.

  1. A resistor value on a schematic reads 4k7. What is it? (Objective 1)

    1. 47 kΩ
    2. 4.7 kΩ
    3. 470 Ω
    4. 4.7 Ω
    Show answer

    Answer: B. 4.7 kΩ

    ตัวอักษร k อยู่ตำแหน่งจุดทศนิยมและบอกหน่วย 4k7 จึงเป็น 4.7 kΩ ส่วน 4.7 Ω จะเขียนว่า 4R7

  2. Two wires cross on a schematic with no junction dot. What does it mean? (Objective 1)

    1. สองเส้นต่อกัน
    2. สองเส้นไม่ต่อกัน
    3. ต่อกันเฉพาะในหน้าเดียวกัน
    4. ต้องเปิดรายการชิ้นส่วนดู
    Show answer

    Answer: B. สองเส้นไม่ต่อกัน

    การต่อกันแสดงด้วยจุดดำ (junction dot) ซึ่งมักอยู่ที่จุดต่อรูปตัว T กากบาทที่ไม่มีจุดคือเส้นที่ลากผ่านกันเฉย ๆ

  3. What does the net name BTN_N tell you about the signal? (Objective 1)

    1. เป็นสัญญาณของปุ่มที่ทำงานเมื่อเป็น 0 (active-low)
    2. เป็นสัญญาณของปุ่มหมายเลข N
    3. เป็นสัญญาณแรงดันลบ
    4. เป็นสัญญาณที่ไม่ได้ใช้ (not connected)
    Show answer

    Answer: A. เป็นสัญญาณของปุ่มที่ทำงานเมื่อเป็น 0 (active-low)

    ท้าย _N (เช่นเดียวกับ /, n หรือขีดทับชื่อ) เป็นแบบแผนของสัญญาณ active-low ปุ่มที่ต่อลงกราวด์พร้อม pull-up จึงมักชื่อแบบนี้

  4. An MCU pin on sheet 1 goes to a net label LED1, and on sheet 3 a label LED1 connects to the anode of D5. Which is correct? (Objective 2)

    1. ไม่ต่อกัน เพราะไม่มีเส้นลากข้ามหน้า
    2. เป็น net เดียวกัน ขานั้นขับ D5 ได้
    3. ต่อกันเฉพาะเมื่อมีจัมเปอร์บนบอร์ด
    4. ต้องดูป้ายบนแผ่นวงจรเท่านั้นจึงจะรู้
    Show answer

    Answer: B. เป็น net เดียวกัน ขานั้นขับ D5 ได้

    ป้ายชื่อเดียวกันในแผนผังเดียวกันคือ net เดียวกัน ไม่ว่าจะอยู่หน้าไหน นี่คือวิธีที่แผนผังหลายหน้าต่อสัญญาณถึงกัน

  5. The board silkscreen and the schematic disagree about a pin. What should you do? (Objective 2)

    1. เชื่อป้ายบนแผ่นวงจร เพราะเห็นกับตา
    2. ถือแผนผังเป็นหลักไว้ก่อน แล้วยืนยันด้วยการวัด เช่น โหมดความต่อเนื่องหรือดูสัญญาณที่รู้ว่าขาไหนขับ
    3. เลือกเอกสารที่ใหม่กว่าโดยไม่ต้องวัด
    4. หยุดใช้บอร์ดนั้น
    Show answer

    Answer: B. ถือแผนผังเป็นหลักไว้ก่อน แล้วยืนยันด้วยการวัด เช่น โหมดความต่อเนื่องหรือดูสัญญาณที่รู้ว่าขาไหนขับ

    แผนผังคือเอกสารที่ใช้สร้างแผ่นวงจร จึงมักถูกกว่า แต่ก็มีรุ่นและผิดได้ ข้อสรุปสุดท้ายต้องมาจากการวัด ตัวอย่างคือข้อสังเกตเรื่องป้าย VR1 และขา CS ใน README ของบอร์ด QWA309 ใน SDK

Cite this lesson

If you teach from this lesson or reuse it in slides or documents, credit it with the text below. If you changed it, add (adapted) after the title.

"Reading schematics" from TESA Open Knowledge by the Thai Embedded Systems Association (TESA), https://github.com/tesaiot/tesa-qualification-program, licensed under CC BY-NC 4.0

Thai attribution: "อ่านแผนผังวงจร" จาก TESA Open Knowledge โดยสมาคมสมองกลฝังตัวไทย (Thai Embedded Systems Association: TESA) https://github.com/tesaiot/tesa-qualification-program สัญญาอนุญาต CC BY-NC 4.0

Lesson link: https://tesaiot.github.io/tesa-qualification-program/en/courses/electronics-and-instruments/m06-build-and-read/l03-reading-schematics/

Full guide: how to cite TESA

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0

Content is licensed CC BY-NC 4.0. Reuse it non-commercially and credit the Thai Embedded Systems Association (TESA) every time. · How to cite TESA