Skip to the content
2 layers137 × 83 mmVirtual Temperature Monitoring PCB, the printed circuit board in 3D

A computer-based design of a temperature-monitoring PCB using an STM32G431CBUx microcontroller.

Size
137 × 83 mm
Copper layers
2
Thickness
1.6 mm
Parts
11
Nets
46
Pads
88
Tracks, vias
63, 0
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
23 Aug 2026
Updated
23 Aug 2026

Overview

Virtual Temperature Monitoring PCB is an open-source printed circuit board by JoshuaSavunth, from the JoshuaSavunth/Virtual-Temperature-Monitoring-PCB-Design repository on GitHub. It is a 2-layer board of 137 × 83 mm with 11 parts on 46 nets, routed with 63 tracks and 0 vias.

It is built around the AMS1117-3.3. Its parts include 6 capacitors, 2 ICs, 2 connectors and 1 resistor. It belongs with the STM32 boards of this library.

Main components

1

README

README.md

Virtual-Temperature-Monitoring-PCB-Design

A computer-based design of a temperature-monitoring PCB using an STM32G431CBUx microcontroller.

The project covers the design process from schematic capture and analog signal conditioning through SPICE simulation, PCB layout, firmware development, and manufacturing-file generation.

Overview

The system models a temperature sensor with a linear output of:

VTEMP = 0.02 × T

This gives a sensor output of 0 V at 0 °C and 2.0 V at 100 °C.

The sensor signal passes through a passive RC low-pass filter before being measured by the STM32 ADC. The calculated temperature is then reported through UART.

Signal Path

text
Temperature
     ↓
Virtual Sensor
     ↓
RC Low-Pass Filter
     ↓
STM32 ADC
     ↓
Temperature Calculation
     ↓
UART
     ↓
Host PC

Power Path

text
5 V Input → AMS1117-3.3 → 3.3 V Rail → STM32 + Supporting Circuitry

PCB Preview

VirtualTemperatureMonitoringPCB_3D

3D representation of the virtual PCB design.

Main Specifications

ParameterValue
MCUSTM32G431CBUx
Intended temperature range0–100 °C
Sensor model0.02 V/°C
Sensor output0–2.0 V
ADC resolution12-bit
ADC reference3.3 V
RC filter1 kΩ / 100 nF
Filter cutoff frequency1.59 kHz
Supply input5 V
Regulated supply3.3 V
UART baud rate115200 bit/s

Hardware Design

The PCB was designed in KiCad 10 and includes the STM32G431CBUx, analog input filtering, 3.3 V regulation, decoupling, power input, and UART interface.

The RC filter uses:

  • R1 = 1 kΩ
  • C1 = 100 nF
  • Cutoff frequency ≈ 1.59 kHz

The 3.3 V supply is generated from the nominal 5 V input using an AMS1117-3.3 linear regulator.

Schematic

VirtualTemperatureMonitoringPCB_Schematic

KiCad schematic showing the temperature-sensing, filtering, power, MCU, and UART sections.

PCB Layout

VirtualTemperatureMonitoringPCB_pcb

PCB layout showing component placement, routing, and ground copper.

Firmware

The STM32 firmware was developed in C using STM32CubeIDE and the STM32 Hardware Abstraction Layer (HAL).

The firmware configures:

  • ADC1 on PA0 (ADC1_IN1)
  • 12-bit, single-ended ADC conversion
  • USART1 TX on PA9
  • USART1 RX on PA10
  • UART at 115200 bit/s

The ADC reading is converted to voltage using the 3.3 V reference and then converted to temperature using the sensor model.

Example UART output:

text
ADC: 1241, Voltage: 1.000 V, Temperature: 50.00 C

The theoretical ADC range extends to approximately 3.3 V. With the sensor model of 0.02 V/°C, this corresponds to a theoretical maximum of 165 °C, although the intended operating range is 0–100 °C.

Firmware Flow

pcb-flowchart

Simulation and Analysis

SPICE transient simulation was used to examine the behaviour of the RC filter.

The simulated filtered signal showed the expected low-pass behaviour, smoothly approaching the applied sensor voltage following a step change.

The ideal 12-bit ADC resolution is:

text
3.3 V / 4096 ≈ 0.806 mV/count

Some expected values are:

TemperatureSensor VoltageApprox. ADC Code
0 °C0.0 V0
25 °C0.5 V620
50 °C1.0 V1241
75 °C1.5 V1861
100 °C2.0 V2482

SPICE Simulation

PCB_TempFiltered vs TempSensor AT 2V

Simulated transient response of the RC low-pass filter at 2.0V.

Verification

The project was verified using computer-based design and simulation tools.

Completed checks include:

  • KiCad schematic and ERC verification
  • SPICE transient simulation
  • ADC resolution calculations
  • PCB layout and 3D inspection
  • Manufacturing-file generation
  • STM32 firmware compilation

The final STM32 Debug build completed with:

text
0 errors
0 warnings

The build also generated the firmware output files required for future programming of the microcontroller.

Lessons Learned

This project provided hands-on experience with:

  • Full PCB design workflow (schematic → layout → simulation → manufacturing outputs)
  • RC filter analysis (time constant, cutoff frequency, transient response)
  • ADC resolution and quantization analysis
  • Power regulation and MCU decoupling strategies
  • STM32 firmware development (ADC configuration, UART communication)
  • Professional documentation and version control practices

Future Work

The next stage of the project would be to:

  1. Fabricate the PCB.
  2. Assemble the components.
  3. Program the STM32 with the completed firmware.
  4. Test the ADC using known input voltages.
  5. Verify temperature conversion and UART output.
  6. Compare measured results with the theoretical and simulated results.

Repository Structure

text
.
├── Firmware/
│   └── STM32CubeIDE project
│
├── KiCad/
│   ├── Schematic
│   ├── PCB layout
│   └── Project files
│
├── Simulation/
│   └── SPICE files
│
├── Manufacturing/
│   ├── Gerbers
│   ├── Drill files
│   └── BOM
│
├── Project Report
│   
│
├── Images/
│   ├── pcb-3d.png
│   ├── schematic.png
│   ├── pcb-layout.png

Tools

  • KiCad 10 — schematic capture and PCB design
  • STM32CubeIDE — firmware development
  • SPICE — analog simulation
  • Git / GitHub — project version control

Parts

11
QtyValueFootprintReferences
4100nCapacitor_SMD:C_0603_1608MetricC1, C4, C5, C6
210uCapacitor_SMD:C_0805_2012MetricC2, C3
11kResistor_SMD:R_0603_1608MetricR1
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U2
1Conn_01x02_PinConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ2
1Conn_01x03_PinConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ1
1STM32G431CBUxPackage_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mmU1

Similar boards

  • 2 layers290.1 × 130 mmPro V2, the printed circuit board in 3D

    Pro V2

    kata0510/Lily58

    6×4+4keys column-staggered split keyboard.

    312 parts2.3k
  • 2 layers26.2 × 45.5 mmPL18 multiprotocol, the printed circuit board in 3D

    PL18 multiprotocol

    pascallanger/DIY-Multiprotocol-TX-Module

    Multiprotocol TX Module (or MULTI-Module) is a 2.4GHz transmitter module which controls many different receivers and models.

    24 parts1.9kGPL-3.0
  • 4 layers99 × 53.3 mmPSLab, the printed circuit board in 3D

    PSLab

    fossasia/pslab-hardware

    PSLab Hardware Design and Schematics https://pslab.io

    199 parts1.7kApache-2.0
  • 4 layers85 × 56 mmPslab mini, the printed circuit board in 3D

    Pslab mini

    fossasia/pslab-mini-hardware

    PSLab Mini Hardware https://pslab.io

    182 parts1.2kApache-2.0
  • 4 layers100 × 54 mm32Bit shift register, the printed circuit board in 3D

    32Bit shift register

    MaltWhiskey/Mega-Cube

    16x16x16 PL9823 Cube with Teensy 4.0 and FlexIO driver

    64 parts766
  • 2 layers44.2 × 29.3 mmI2c tiny usb, the printed circuit board in 3D

    I2c tiny usb

    harbaum/I2C-Tiny-USB

    Cheap and simple I²C to USB interface

    27 parts454
  • 2 layers78 × 60 mmIce viz, the printed circuit board in 3D

    Ice viz

    muni-works/vcad

    BRep CAD kernel in Rust/WASM

    44 parts442Apache-2.0
  • 2 layers59.1 × 99.9 mmCheap FOCer 2 60mm, the printed circuit board in 3D

    Cheap FOCer 2 60mm

    shamansystems/Cheap-FOCer-2

    Low-Cost Motor Controller based on the VESC 6

    193 parts407

Questions

How big is the Virtual Temperature Monitoring PCB PCB?

It measures 137 × 83 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Virtual Temperature Monitoring PCB use?

11 parts, built around the AMS1117-3.3. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Virtual Temperature Monitoring PCB KiCad files?

From the JoshuaSavunth/Virtual-Temperature-Monitoring-PCB-Design repository on GitHub, at the commit this page was made from: the board is Virtual_Temperature_Monitoring_PCB/Virtual_Temperature_Monitoring_PCB.kicad_pcb and its schematic Virtual_Temperature_Monitoring_PCB/Virtual_Temperature_Monitoring_PCB.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Virtual Temperature Monitoring PCB design in my own project?

Its repository states no licence, so its author keeps all rights: ask JoshuaSavunth before reusing the design.