Skip to the content
PCBKitNew board
2 layers98 × 56 mmThermal pcb, the printed circuit board in 3D

My design of a cheap and affordable thermal camera

Size
98 × 56 mm
Copper layers
2
Thickness
1.6 mm
Parts
68
Nets
76
Pads
258
Tracks, vias
512, 113
Pours
5
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
26 May 2025
Updated
13 Aug 2025

Overview

Thermal pcb is an open-source printed circuit board by Badbird5907, from the Badbird5907/thermal-camera repository on GitHub, published under the MIT licence. It is a 2-layer board of 98 × 56 mm with 68 parts on 76 nets, routed with 512 tracks and 113 vias.

It is built around the ESP32-S3-WROOM-1-N8, MCP73871EV and MLX90640ESF-BAB-000-SP, with the DW01A, MIC5504-3.3YM5 and AO3415 among its other parts. Its parts include 15 resistors, 9 capacitors, 5 ICs, 5 connectors and 3 diodes. It belongs with the ESP32 boards of this library.

Main components

8

README

README.md

Thermal Camera

Video Demo

This project was posted to Hackaday!

This is my design of a cheap and affordable thermal camera (< $60, excl shipping)!. It utilizes the MLX90640 as the image sensor, and the esp32 to process and display the images on a TFT LCD screen.

I made this project because off the shelf thermal cameras are exuberantly expensive, and I need one to figure out if my PCBs are shorting.

The hardest part of this project so far was designing the battery charging circuit, as I needed to use multiple ICs to charge the battery, keep the voltage stable, and to keep the battery from overcharging.

Screenshots

image image image ApplicationFrameHost_TMCDneAYK6 image -> The case (and PCB) isn't very well designed, If I redesigned this project, i'd make the pcb smaller and integrate the LCD...

Photos

img 20250804_204128 20250709_021320

Firmware

You can find the firmware in the thermal_camera folder.

The firmware is written with the Arduino IDE. The ESP32 is used to read the thermal camera and display the images on the TFT LCD screen.

Firmware Setup

  1. Open the Arduino IDE.
  2. Install the TFT_eSPI library and MLX90640 library by Adafruit.
  3. Create a thermal_camera.h file in C:\Users\YourUsername\Documents\Arduino\libraries\TFT_eSPI\User_Setups
  4. Paste in the following code:
c
#define ILI9341_DRIVER
#define TFT_WIDTH 240 
#define TFT_HEIGHT 320 

#define TFT_MISO 8 
#define TFT_MOSI 6 
#define TFT_SCLK 5 
#define TFT_CS 15 
#define TFT_DC 4 
#define TFT_RST 16 
#define TFT_BL 7 

#define TOUCH_CS 10

#define SPI_FREQUENCY 40000000
  1. Open C:\Users\YourUsername\Documents\Arduino\libraries\TFT_eSPI\User_Setup_Select.h
  2. Add the line #include <User_Setups/thermal_camera.h> to the file under User_Setup.h
  3. Compile and upload the firmware to the ESP32.

BOM

The total cost of the project is about $86 USD: (Spreadsheet) image

Parts

68
QtyValueFootprintReferences
410kResistor_SMD:R_0805_2012MetricR5, R6, R7, TH1
4MountingHoleMountingHole:MountingHole_4.3mm_M4H1, H2, H3, H4
31uFCapacitor_SMD:C_0805_2012MetricC4, C5, C8
3470Resistor_SMD:R_0805_2012MetricR3, R8, R9
20.1uFCapacitor_SMD:C_0805_2012MetricC6, C9
22.2kResistor_SMD:R_0805_2012MetricR12, R13
24.7uFCapacitor_SMD:C_0805_2012MetricC1, C2
25.1kResistor_SMD:R_0805_2012MetricR1, R2
11.5AFuse:Fuse_1206_3216MetricF1
1100Resistor_SMD:R_0805_2012MetricR4
110uFCapacitor_SMD:C_0805_2012MetricC3
11kResistor_SMD:R_0805_2012MetricR14
120kResistor_SMD:R_0805_2012MetricR11
122uFCapacitor_SMD:C_0805_2012MetricC7
14.02kResistor_SMD:R_0805_2012MetricR10
1AO3415Component:SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BRQ2
1BATT_CONNConnector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_VerticalJ5
1BMS_VOUTJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP11
1Conn_01x04_SocketConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ4
1Conn_01x14_PinConnector_PinSocket_2.54mm:PinSocket_1x14_P2.54mm_VerticalJ2
1DW01APackage_TO_SOT_SMD:SOT-23-6U4
1EN_GNDJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP2
1EN_VCCJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP1
1ESP32-S3-WROOM-1RF_Module:ESP32-S3-WROOM-1U1
1FALLBACK_INConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1
1FS8205Component:SOT95P280X145-6NQ1
1FUSE_BYPASSJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP12
1LED_BLED_SMD:LED_1206_3216MetricD1
1LED_GLED_SMD:LED_1206_3216MetricD3
1LED_RLED_SMD:LED_1206_3216MetricD2
1MCP73871Package_DFN_QFN:QFN-20-1EP_4x4mm_P0.5mm_EP2.5x2.5mmU2
1MFS201N-16-ZComponent:MFS201N-16-Z_NDCSW1
1MIC5504-3.3YM5Package_TO_SOT_SMD:SOT-23-5U3
1MLX90640ESF-BAB-000-SPComponent:TO292P945H1165-4U5
1MOSFET_P8TestPoint:TestPoint_Pad_D1.5mmTP9
1PG_JPJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP7
1PG_TPTestPoint:TestPoint_Pad_D1.5mmTP5
1PROG1_JPJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP3
1PROG2_JPJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP4
1PROG3_JPJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP5
1PROT_CSTestPoint:TestPoint_Pad_D1.5mmTP8
1SCL_TPTestPoint:TestPoint_Pad_D1.5mmTP11
1SDA_TPTestPoint:TestPoint_Pad_D1.5mmTP10
1SEL_JPJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP6
1STAT1_JPJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP8
1STAT1_TPTestPoint:TestPoint_Pad_D1.5mmTP7
1STAT2_JPJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP9
1STAT2_TPTestPoint:TestPoint_Pad_D1.5mmTP6
1TP_BATT+TestPoint:TestPoint_Pad_D1.5mmTP1
1TP_VCCTestPoint:TestPoint_Pad_D1.5mmTP2
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ3
1VBUS_TPTestPoint:TestPoint_Pad_D1.5mmTP3
1VCC_JPJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP10
1VIN_TPTestPoint:TestPoint_Pad_D1.5mmTP4

Questions

How big is the Thermal pcb PCB?

It measures 98 × 56 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Thermal pcb use?

68 parts, built around the ESP32-S3-WROOM-1-N8, MCP73871EV, MLX90640ESF-BAB-000-SP and DW01A. 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 Thermal pcb KiCad files?

From the Badbird5907/thermal-camera repository on GitHub, at the commit this page was made from: the board is thermal-pcb/thermal-pcb.kicad_pcb and its schematic thermal-pcb/thermal-pcb.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Thermal pcb design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 6 layers146.1 × 58.4 mmComp Board, the printed circuit board in 3D

    Comp Board

    badaboombox/SS-Handheld-Console

    An open-source handheld game console built around a Lattice ECP5 FPGA that uses a custom hybrid 2D + 3D graphics engine capable of DS-era 2D-and-3D gameplay at a locked 60 fps.

    248 parts6
  • 2 layers30 × 40 mmKK power module, the printed circuit board in 3D

    KK power module

    lionsarmor/KeychainKreatures_PCB

    32 parts
  • 4 layers314.8 × 108.1 mmKeyboard, the printed circuit board in 3D

    Keyboard

    Melvin-Larsson/keyboard

    239 parts
  • 4 layers340.8 × 104.6 mmNiphar, the printed circuit board in 3D

    Niphar

    mornepousse/Niphargus

    Niphargus — a slim, indestructible wireless split keyboard. ESP32 + nRF24, wired fallback, and an emergency kit hidden behind the USB port. The successor to the Rouge-Gorge.

    287 parts4MIT
  • 4 layers89 × 81 mmDKWS PCB, the printed circuit board in 3D

    DKWS PCB

    danielkluka/Diploma-Thesis

    Design of a Secure Data Transmission System in NB-IoT Environment

    121 partsMIT
  • 4 layers39 × 81.6 mmConchodytes, the printed circuit board in 3D

    Conchodytes

    mornepousse/Conchodytes

    Sleeper mouse: a wireless PMW3360 PCB inside a Logitech M100/M90 shell, talking to the same KaSe dongle as the Niphargus keyboard

    65 parts
  • 6 layers96 × 129 mmBrain Rot Pod Nano PCB, the printed circuit board in 3D

    Brain Rot Pod Nano PCB

    ParthDhiman32/BrainRot-Pod-nano

    BrainRot Pod Nano is an overengineered Embedded system project wth complex PCB and beautiful CAD enclosure mainly made for playing meme sounds and also can work as a mini music player

    63 partsMIT