

DC2209A1
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.mdLTC2983 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
| Component | Description |
|---|---|
| MCU | ESP32-S3-DevKitC-1 class (16 MB flash, 8 MB octal PSRAM) |
| Sensor IC | LTC2983 |
| Target layout | Stacked 5 RTD + 5 TC topology (DC2210A reference) |
| Carrier PCB | Custom DC2209A1 KiCad design — LTC2983 breakout with screw terminals and SPI header |
SPI wiring (ESP32-S3 → LTC2983)
| Signal | GPIO |
|---|---|
| CS | 2 |
| CLK | 9 |
| MOSI | 5 |
| MISO | 4 |
Channel map
| Sensor | LTC2983 CH | Type | Notes |
|---|---|---|---|
| RTD 1 | 4 | PT1000, 2-wire | Sense pair CH4 ↔ CH3 (COM) |
| RTD 2 | 6 | PT1000, 2-wire | CH6 ↔ CH5 (COM) |
| RTD 3 | 8 | PT1000, 2-wire | CH8 ↔ CH7 (COM) |
| RTD 4 | 10 | PT1000, 2-wire | CH10 ↔ CH9 (COM) |
| RTD 5 | 12 | PT1000, 2-wire | CH12 ↔ CH11 (COM) |
| TC 1 | 13 | K-type, single-ended | TC− → COM; CJC via CH20 diode |
| TC 2 | 14 | K-type | |
| TC 3 | 15 | K-type | |
| TC 4 | 16 | K-type | |
| TC 5 | 17 | K-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.
| File | Purpose |
|---|---|
LTC2983_Temp_Module.yaml | ESPHome config — 10 template sensors, fault text sensors, 500 ms poll |
ltc2983_handler.h | SPI init, channel assignment, multi-channel conversion, fault decode |
common/wifi.yaml | WiFi / 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 CH12Fault TC1…Fault TC5
Project layout
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 notesGetting 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):
wifi_ssid: "YourSSID"
wifi_password: "YourPassword"Build and flash
Copy to /tmp before running ESPHome (avoids path issues):
cp -r "./LTC2983_Temp_Module" /tmp/ltc2983-temp-module/
cd /tmp/ltc2983-temp-module
esphome run LTC2983_Temp_Module.yaml --device /dev/cu.usbserial-XXXXReplace /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
- LTC2983 datasheet
- DC2210A demo board — 5 RTD + 5 TC reference
- DC2296A evaluation kit
schematics/dc2210a1-sch.pdf— DC2210A schematicschematics/dc2213a1-sch.pdf— DC2213A schematic (single RTD demo)KiCad/Gerbers/— fabrication outputs for the DC2209A1 carrier board
Parts
41| Qty | Value | Footprint | References |
|---|---|---|---|
| 15 | 100pf | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mm | C23, C24, C25, C26, C27, C29, C31, C35, C39, C40, C41, C42, C43, C45, C46 |
| 5 | 10uF | Capacitor_THT:CP_Radial_D5.0mm_P2.00mm | C22, C34, C36, C37, C38 |
| 4 | TestPoint | TestPoint:TestPoint_THTPad_D1.0mm_Drill0.5mm | E1, E2, E3, E4 |
| 1 | 0.1 | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mm | C32 |
| 1 | 1 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R1 |
| 1 | 100k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R2 |
| 1 | 2N3906 | Package_TO_SOT_THT:TO-92_Inline | Q2 |
| 1 | 2k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R3 |
| 1 | CH10 | TerminalBlock_RND:TerminalBlock_RND_205-00001_1x02_P5.00mm_Horizontal | J8 |
| 1 | CH12 | TerminalBlock_RND:TerminalBlock_RND_205-00001_1x02_P5.00mm_Horizontal | J7 |
| 1 | CH4 | TerminalBlock_RND:TerminalBlock_RND_205-00001_1x02_P5.00mm_Horizontal | J11 |
| 1 | CH6 | TerminalBlock_RND:TerminalBlock_RND_205-00001_1x02_P5.00mm_Horizontal | J10 |
| 1 | CH8 | TerminalBlock_RND:TerminalBlock_RND_205-00001_1x02_P5.00mm_Horizontal | J9 |
| 1 | JST_XH_01x06 | Connector_JST:JST_EH_B6B-EH-A_1x06_P2.50mm_Vertical | J1 |
| 1 | LTC2983 | Package_QFP:LQFP-48-1EP_7x7mm_P0.5mm_EP3.6x3.6mm | U1 |
| 1 | Screw_Terminal_01x10 | TerminalBlock:TerminalBlock_10x03_P6.35mm_M3_screws | J4 |
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 mm

- 2 layers270 × 11 mm

Daylight Disco
VoronDesign/Voron-Hardware
Cool Hardware designed by the Voron Design group
41 parts1.1kGPL-3.0 - 2 layers27.5 × 48.3 mm

ICE40DevBoard
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
41 parts915 - 2 layers45 × 25 mm

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 mm

Dumbpad
imchipwood/dumbpad
Simple 4x4 numpad with rotary encoder. Powered by QMK via ATmega32u4 Pro Micro
41 parts517GPL-2.0 - 2 layers96.1 × 78.6 mm

EYEBROW WARNING INDICATOR LEFT
jrsteensen/OpenHornet
OpenHornet 1:1 F/A-18C Simulator Repository
41 parts431 - 2 layers37 × 15 mm

- 2 layers20.3 × 69.7 mm

PG attiny404
fabiansteiner/OpenValve
3D-printable pinch valve for irrigation and sensor-driven liquid control.
41 parts276CERN-OHL-S-2.0