BedCooler
NicholasKorth·BedCooler·hardware/BedCooler.kicad_pcb
About the BedCooler PCB
BedCooler is an open source STM32 PCB design by NicholasKorth, published on GitHub under the CC-BY-NC-4.0 license. It is a 6-layer board measuring 131.5 × 132.4 mm, with 249 components from 78 distinct parts.
Its main chip is the STM32G474RET6, from the STM32 family. Other key parts include the DRV8701ERGER, TPS54531DDAR, TPS54331DR, 2920L500/30GR and TAS5805MPWPR. By type, the board carries 105 capacitors, 68 resistors, 23 connectors, 14 transistors, 13 ICs and 12 diodes.
It belongs with the sensors and audio designs in this gallery.
From the project
A dual-zone heating and cooling controller for a bed: a 6-layer KiCad board with an STM32G474 real-time controller and a Raspberry Pi Compute Module 5 host.
A dual-zone heating and cooling controller for a bed: a 6-layer KiCad board with an STM32G474 real-time controller and a Raspberry Pi Compute Module 5 host.
3D render from the board file. The Compute Module 5 itself has no 3D model; its two connectors sit along the right edge.
BedCooler regulates body temperature during sleep. Each side of the bed has its own pair of Peltier (thermoelectric) modules that can heat or cool, so two people can each choose their own temperature. Pumps, valves and fans move the heat; thermistors, a reservoir float switch and a water sensor report back. A…

Main components on the BedCooler
BedCooler bill of materials (BOM)
249 components, 78 distinct parts.
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | STM32G474RET6 | LQFP-64_L10.0-W10.0-P0.50-LS12.0-BL | U1 |
| 2 | DRV8701ERGER | VQFN-24_L4.0-W4.0-P0.50-BL-EP2.5 | U2, U4 |
| 1 | TPS54531DDAR | SOIC-8_L5.0-W4.0-P1.27-LS6.0-BL-EP2.0 | U3 |
| 2 | TPS54331DR | SOIC-8_L5.0-W4.0-P1.27-LS6.0-BL | U5, U8 |
| 1 | 2920L500/30GR | F2920 | U6 |
| 1 | TAS5805MPWPR | HTSSOP-28_L9.7-W4.4-P0.65-LS6.4-BL-EP | U7 |
| 3 | AP22811AW5-7 | SOT-25-5_L3.0-W1.6-P0.95-LS2.8-BL | U9, U10, U11 |
| 1 | GL823K-HCY04 | SSOP-16_L4.9-W3.9-P0.64-LS6.0-BL | U12 |
| 1 | RT9742SNGV | TSOT-23_HandSoldering | U13 |
| 8 | BSC010N04LS | PG-TDSON-8-FL_L5.0-W6.0-P1.27-LS6.2-BL | Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8 |
| 4 | AO3400A | SOT-23 | Q12, Q13, Q14, Q15 |
| 2 | SQJ407EP-T1_GE3 | POWERPAK-SO-8_L6.2-W5.1-P1.27-BL | Q18, Q19 |
| 1 | X32258MOB4SI | CRYSTAL-SMD_4P-L3.2-W2.5-BL | X1 |
| 2 | Conn_01x02_Socket | JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J1, J19 |
| 3 | Conn_01x04_Pin | Molex_KK-254_AE-6410-04A_1x04_P2.54mm_Vertical | J2, J3, J4 |
| 10 | Conn_01x02_Pin | JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J5, J6, J7, J8, J11, J12, J13, J14 +2 |
| 1 | USB3_A | USB3_A_Molex_48393-001 | J9 |
| 1 | Micro_SD_Card | microSD_HC_Wuerth_693072010801 | J10 |
| 1 | Conn_01x05 | PinHeader_1x05_P2.54mm_Vertical_SMD_Pin1Right | J16 |
| 2 | USB_C_Receptacle_USB2.0_16P | USB_C_Receptacle_HRO_TYPE-C-31-M-12 | J17, J21 |
Show 58 more
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | Conn_01x04_Pin | JST_XH_B4B-XH-A_1x04_P2.50mm_Vertical | J18 |
| 1 | Conn_01x22_Female | Hirose_FH12-22S-0.5SH_1x22-1MP_P0.50mm_Horizontal | J20 |
| 1 | 690-019-298-412 | EDAC 690-019-298-412 | J22 |
| 1 | TestPoint | Power_pad_3mm_drill | +12v |
| 1 | CR2032-BS-5-1 | BAT-TH_CR2032-BS-5-1 | B1 |
| 2 | SMD1206-150C-16V | F1206 | F1, F2 |
| 1 | ComputeModule5-CM5 | Raspberry-Pi-5-Compute-Module | Module1 |
| 1 | SW_SPDT | SW_SPDT_PCM12 | SW1 |
| 4 | SS14 | D_SMA | D1, D2, D3, D4 |
| 2 | B340A-13-F | SMA_L4.4-W2.6-LS5.0-RD | D5, D10 |
| 2 | TPD2EUSB30ADRTR | SOT-9X3-3_L1.0-W0.8-P0.35-LS1.0-BR | D6, D12 |
| 2 | SMBJ14CA_C151253 | SMB_L4.6-W3.6-LS5.3-BI | D7, D9 |
| 1 | LED | LED_0603_1608Metric | D8 |
| 1 | CDBC540-HF | SMC_L6.9-W5.9-LS7.9-RD | D11 |
| 4 | NFZ2MSM301SN10L | L0806 | L1, L4, L5, L6 |
| 1 | FXL0630-4R7-M | IND-SMD_L7.0-W6.6 | L2 |
| 2 | FXL0530-6R8-M | IND-SMD_L5.4-W5.2_FXL0530 | L3, L7 |
| 2 | 220uF | CP_Elec_6.3x7.7 | C1, C11 |
| 31 | .1uF | C_0603_1608Metric | C2, C3, C10, C12, C13, C14, C17, C19 +23 |
| 15 | 1uF | C_0603_1608Metric | C4, C5, C6, C7, C8, C9, C26, C56 +7 |
| 4 | 100 uF | CP_Elec_5x5.4 | C15, C16, C18, C20 |
| 4 | C | C_0603_1608Metric | C21, C22, C23, C24 |
| 2 | 1000Uf | CP_Elec_10x10.5 | C27, C59 |
| 6 | .01uF | C_0603_1608Metric | C29, C32, C42, C44, C85, C86 |
| 9 | 2200pF | C_0603_1608Metric | C34, C74, C75, C76, C77, C78, C79, C80 +1 |
| 7 | 4.7uF | C_0603_1608Metric | C35, C36, C40, C41, C67, C81, C84 |
| 6 | 47uF | C_1210_3225Metric | C37, C38, C39, C45, C90, C91 |
| 2 | 47pF | C_0603_1608Metric | C46, C87 |
| 2 | 1000pF | C_0603_1608Metric | C47, C88 |
| 2 | 15pF | C_0603_1608Metric | C52, C53 |
| 1 | 100uF | C_1210_3225Metric | C54 |
| 2 | 10UF | C_1210_3225Metric | C57, C95 |
| 4 | 22uF | C_1210_3225Metric | C61, C62, C63, C65 |
| 4 | .22uF | C_0603_1608Metric | C70, C71, C72, C73 |
| 2 | 100n | C_0402_1005Metric | C103, C104 |
| 19 | 10Kohm | R_0603_1608Metric | R1, R8, R11, R12, R13, R14, R17, R19 +11 |
| 2 | 5 mOhm | R_2512_6332Metric | R2, R10 |
| 2 | 1kOhm | R_0603_1608Metric | R3, R7 |
| 2 | 30kOhm | R_0603_1608Metric | R4, R6 |
| 2 | 33kOhm | R_0603_1608Metric | R5, R9 |
| 4 | 100 Ohms | R_0603_1608Metric | R15, R16, R18, R20 |
| 1 | 20k | R_0603_1608Metric | R24 |
| 1 | 130k | R_0603_1608Metric | R31 |
| 1 | 665k | R_0603_1608Metric | R32 |
| 3 | 10.2k | R_0603_1608Metric | R33, R40, R57 |
| 1 | 1.96k | R_0603_1608Metric | R34 |
| 1 | 37.4k | R_0603_1608Metric | R35 |
| 2 | 332k | R_0603_1608Metric | R36, R55 |
| 2 | 68.1k | R_0603_1608Metric | R37, R56 |
| 1 | 51.1 | R_0603_1608Metric | R38 |
| 1 | 29.4k | R_0603_1608Metric | R39 |
| 2 | 3.24k | R_0603_1608Metric | R41, R58 |
| 4 | 5.1k | R_0603_1608Metric | R42, R43, R46, R47 |
| 3 | 10k | R_0603_1608Metric | R49, R59, R65 |
| 7 | 4.7k | R_0603_1608Metric | R50, R66, R67, R68, R69, R70, R71 |
| 4 | 67 ohm | R_0603_1608Metric | R51, R52, R53, R54 |
| 2 | 22 | R_0603_1608Metric | R62, R63 |
| 1 | 1k | R_0603_1608Metric | R64 |
BedCooler design files
The KiCad project lives in the NicholasKorth/BedCooler repository on GitHub; these links point at the commit this page was built from.
- Layouthardware/BedCooler.kicad_pcb
- Schematichardware/BedCooler.kicad_sch
BedCooler: common questions
What microcontroller does the BedCooler use?
The BedCooler is built around the STM32G474RET6, from the STM32 family.
How big is the BedCooler PCB?
The BedCooler measures 131.5 × 132.4 mm, has 6 copper layers and is 1.6 mm thick.
How many components are on the BedCooler?
249 components, from 78 distinct parts. The full bill of materials is listed on this page.
Where can I download the BedCooler design files?
From the NicholasKorth/BedCooler repository on GitHub, which has the KiCad layout and the schematic; the links under Design files point to each one.
Can I use the BedCooler design in my own project?
It is published under CC-BY-NC-4.0, which limits how it may be reused; read the license before building on it.
Can I test firmware for the BedCooler without the hardware?
Yes. HardLabs builds a simulation of the board from its netlist and BOM, so you can run and debug STM32 firmware against it before you order a PCB.
Similar boards
STM32
LumenPnP Motherboard
opulo-inc
149 × 95 mm296 parts4LCC-BY-SA-4.03.7kSTM32
Base
google
52.3 × 52.3 mm36 parts2LApache-2.02.9kSTM32
Type g
google
169 × 30 mm24 parts2LApache-2.02.9kSTM32
Main panel
google
234 × 84 mm26 parts4LApache-2.02.9kSTM32
Type a
google
150 × 30 mm14 parts2LApache-2.02.9kSTM32
Type c
google
188 × 30 mm17 parts2LApache-2.02.9k