Skip to the content
PCBKitNew board
2 layers86.5 × 53.4 mmDC2209A1, the printed circuit board in 3D

ESPHome firmware and KiCad hardware designs for reading precision temperature sensors through the Analog Devices LTC2983 — a 20-channel multi-sensor ADC supporting RTDs, thermocouples, diodes, and thermistors.

Size
86.5 × 53.4 mm
Copper layers
2
Thickness
1.6 mm
Parts
41
Nets
31
Pads
143
Tracks, vias
499, 94
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
18 Jul 2026
Updated
23 Aug 2026

Overview

DC2209A1 is an open-source printed circuit board by jazzmonger, from the jazzmonger/LTC2983_Temp_Module repository on GitHub. It is a 2-layer board of 86.5 × 53.4 mm with 41 parts on 31 nets, routed with 499 tracks and 94 vias.

Its parts include 21 capacitors, 7 connectors, 3 resistors, 1 IC and 1 transistor.

README

README.md

LTC2983 Temperature Module

ESPHome firmware and KiCad hardware designs for reading precision temperature sensors through the Analog Devices LTC2983 — a 20-channel multi-sensor ADC supporting RTDs, thermocouples, diodes, and thermistors.

This chip is complicated. There are lots of variables, especially when you're talking about two and four wire RTD's. Lots of options are available for RTD's with four wires as opposed to two. I'll leave it to you to experiment with excitation current, etc. there are optimizations that can be done that greatly enhance the accuracy and repeatability of measurements that I've discovered, but I'm not going to go into all the gory details as that's for you to discover. This repository will get you a working configuration. Good luck! Oh, and there are some mistakes on the schematic, but you can find those because they are incorrect routing and or things that are not connected, like channel 20 that goes to the PNP transistor. That trace was neglected by mistake.

This repo is a standalone ESPHome device that reads 5× PT1000 RTDs and 5× K-type thermocouples in one multi-channel conversion cycle, with per-channel fault sensors. The board and can be adapted to other sensor combinations on unused LTC2983 channels.

Hardware

ComponentDescription
MCUESP32-S3-DevKitC-1 class (16 MB flash, 8 MB octal PSRAM)
Sensor ICLTC2983
Target layoutStacked 5 RTD + 5 TC topology (DC2210A reference)
Carrier PCBCustom DC2209A1 KiCad design — LTC2983 breakout with screw terminals and SPI header

SPI wiring (ESP32-S3 → LTC2983)

SignalGPIO
CS2
CLK9
MOSI5
MISO4

Channel map

SensorLTC2983 CHTypeNotes
RTD 14PT1000, 2-wireSense pair CH4 ↔ CH3 (COM)
RTD 26PT1000, 2-wireCH6 ↔ CH5 (COM)
RTD 38PT1000, 2-wireCH8 ↔ CH7 (COM)
RTD 410PT1000, 2-wireCH10 ↔ CH9 (COM)
RTD 512PT1000, 2-wireCH12 ↔ CH11 (COM)
TC 113K-type, single-endedTC− → COM; CJC via CH20 diode
TC 214K-type
TC 315K-type
TC 416K-type
TC 517K-type

Shared excitation: CH2 = 2 kΩ sense resistor (RSENSE hub). Odd channels CH3/5/7/9/11 tie to CH2. Cold-junction compensation uses a 2N3906 diode on CH20 (emitter → CH20, base + collector → COM).

See schematics/dc2210a-5rtd-5tc-wiring.png and schematics/dc2210a1-sch.pdf for full wiring of demo circuit or KiCad schematics for this implementation.

Firmware

The LTC2983 is driven by a custom C++ handler included directly in the ESPHome config — no external component package required.

FilePurpose
LTC2983_Temp_Module.yamlESPHome config — 10 template sensors, fault text sensors, 500 ms poll
ltc2983_handler.hSPI init, channel assignment, multi-channel conversion, fault decode
common/wifi.yamlWiFi / captive portal / web server

Polling uses non-blocking read_ltc2983_sensors(): start a multi-channel conversion (~2 s), publish all channels when DONE, then start the next cycle.

Home Assistant entities

Temperature sensors

  • RTD CH4 … RTD CH12 — RTD 1–5 (°C)
  • TC 1 … TC 5 — thermocouples (°C)

Fault text sensors (one per channel — OK, Open Circuit, Overrange, etc.)

  • Fault CH4, Fault CH6, Fault CH8, Fault CH10, Fault CH12
  • Fault TC1 … Fault TC5

Project layout

text
LTC2983_Temp_Module.yaml   # ESPHome config
ltc2983_handler.h          # LTC2983 SPI driver
common/wifi.yaml           # WiFi package
schematics/                # Wiring diagrams and reference schematics
KiCad/                     # DC2209A1 carrier board (sch, pcb, gerbers)
Demo Circuit Board/        # Analog Devices DC2209A reference files
LTC2983 sketch and info.c  # Reference channel-config notes

Getting started

Prerequisites

  • ESPHome installed
  • ESP32-S3-DevKitC-1 connected via USB
  • LTC2983 board wired per SPI table and channel map above

Secrets

Create secrets.yaml in the project root (gitignored):

yaml
wifi_ssid: "YourSSID"
wifi_password: "YourPassword"

Build and flash

Copy to /tmp before running ESPHome (avoids path issues):

bash
cp -r "./LTC2983_Temp_Module" /tmp/ltc2983-temp-module/
cd /tmp/ltc2983-temp-module
esphome run LTC2983_Temp_Module.yaml --device /dev/cu.usbserial-XXXX

Replace /dev/cu.usbserial-XXXX with your serial port. Logs stream automatically — do not use --no-logs.

Home Assistant

Add the device through the ESPHome integration after flashing. All 10 temperature sensors and 10 fault sensors appear under the ltc2983-temp-module device.

References

Parts

41
QtyValueFootprintReferences
15100pfCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mmC23, C24, C25, C26, C27, C29, C31, C35, C39, C40, C41, C42, C43, C45, C46
510uFCapacitor_THT:CP_Radial_D5.0mm_P2.00mmC22, C34, C36, C37, C38
4TestPointTestPoint:TestPoint_THTPad_D1.0mm_Drill0.5mmE1, E2, E3, E4
10.1Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mmC32
11Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1
1100kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR2
12N3906Package_TO_SOT_THT:TO-92_InlineQ2
12kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR3
1CH10TerminalBlock_RND:TerminalBlock_RND_205-00001_1x02_P5.00mm_HorizontalJ8
1CH12TerminalBlock_RND:TerminalBlock_RND_205-00001_1x02_P5.00mm_HorizontalJ7
1CH4TerminalBlock_RND:TerminalBlock_RND_205-00001_1x02_P5.00mm_HorizontalJ11
1CH6TerminalBlock_RND:TerminalBlock_RND_205-00001_1x02_P5.00mm_HorizontalJ10
1CH8TerminalBlock_RND:TerminalBlock_RND_205-00001_1x02_P5.00mm_HorizontalJ9
1JST_XH_01x06Connector_JST:JST_EH_B6B-EH-A_1x06_P2.50mm_VerticalJ1
1LTC2983Package_QFP:LQFP-48-1EP_7x7mm_P0.5mm_EP3.6x3.6mmU1
1Screw_Terminal_01x10TerminalBlock:TerminalBlock_10x03_P6.35mm_M3_screwsJ4

The 37 most common of 41 parts.

Questions

How big is the DC2209A1 PCB?

It measures 86.5 × 53.4 mm and has 2 copper layers, 1.6 mm thick.

What parts does the DC2209A1 use?

41 parts. 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 DC2209A1 KiCad files?

From the jazzmonger/LTC2983_Temp_Module repository on GitHub, at the commit this page was made from: the board is KiCad/DC2209A1.kicad_pcb and its schematic KiCad/DC2209A1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the DC2209A1 design in my own project?

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

Similar boards

  • 2 layers70 × 35 mmTLF35584 breakout, the printed circuit board in 3D

    TLF35584 breakout

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    41 parts1.2k
  • 2 layers270 × 11 mmDaylight Disco, the printed circuit board in 3D

    Daylight Disco

    VoronDesign/Voron-Hardware

    Cool Hardware designed by the Voron Design group

    41 parts1.1kGPL-3.0
  • 2 layers27.5 × 48.3 mmICE40DevBoard, the printed circuit board in 3D

    ICE40DevBoard

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    41 parts915
  • 2 layers45 × 25 mmEasy PD Sink, the printed circuit board in 3D

    Easy PD Sink

    openwch/ch32v003

    CH32V003 is an ultra-cheap RISC-V MCU with 2KB SRAM, 16KB flash, and up to 18 GPIOs that sells for under $0.10

    41 parts599
  • 2 layers97 × 78.5 mmDumbpad, the printed circuit board in 3D

    Dumbpad

    imchipwood/dumbpad

    Simple 4x4 numpad with rotary encoder. Powered by QMK via ATmega32u4 Pro Micro

    41 parts517GPL-2.0
  • 2 layers37 × 15 mmCanTactDist, the printed circuit board in 3D

    CanTactDist

    bondus/KlipperToolboard

    A 3D printer tool head controller board

    41 parts373GPL-3.0
  • 2 layers20.3 × 69.7 mmPG attiny404, the printed circuit board in 3D

    PG attiny404

    fabiansteiner/OpenValve

    3D-printable pinch valve for irrigation and sensor-driven liquid control.

    41 parts276CERN-OHL-S-2.0