Skip to the content
4 layers86 × 145 mmCopper layers, the printed circuit board in 3D

code for industrial automation process

Size
86 × 145 mm
Copper layers
4
Thickness
1.6 mm
Parts
206
Nets
159
Pads
633
Tracks, vias
1,941, 219
Pours
11
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
14 May 2026
Updated
10 Sep 2026

Overview

Copper layers is an open-source printed circuit board by JCastel358, from the JCastel358/Eltec406mca repository on GitHub. It is a 4-layer board of 86 × 145 mm with 206 parts on 159 nets, routed with 1,941 tracks and 219 vias.

It is built around the SN74LVC2G125DCTR-JSM, ADG4613BRUZ and AP2112K-3.3TRG1, with the LT1963AEQ#PBF, LT3041ADE#TRPBF and LTV-817S-TA1-B among its other parts. Its parts include 106 resistors, 37 capacitors, 21 ICs, 21 transistors and 6 connectors.

Main components

12

README

README.md

Eltec sensor test rigs

Bench rigs and software that qualify Eltec pyroelectric IR sensors. Two rigs live in this repository, one top-level folder each:

  • single_detector_rig/ — an ESP32 chops an IR emitter and streams a 24-bit ADS1256 ADC to a laptop; one Python desktop application runs the test procedure for the sensor model chosen in a dropdown, judges each part, and writes a CSV row per sensor.
  • array_rig/ — fifty detectors at once: a 50-position buffer PCB read by an ACCES USB-AIO16-64MA DAQ; the same selector-plus-model-directory structure, testing offset and noise per tray (sensitivity waits for the emitter board).

Windows 11 and Xubuntu are both supported.

Sensor modelProcedureStatus (2026-09-02)Results folder (Documents\…)
405 M22 (1 Hz)TP412 — offset, emitter-off noise, sensitivity/polarityproduction; sensitivity factor 4.30 from lot 500Eltec_405M22_Test_Results\405m22_esp32
406 MCA (10 Hz)offset, sensitivity/polarity, v6.1 stability policyproduction; factor 1.582 from lot 520Eltec_406MCA_Test_Results\v6_1_esp32
449 M18 (5 + 18 Hz)TP443 frequency trackingcalibration pending (K_5 / K_18 not derived; needs firmware v3.2, not yet flashed)Eltec_449M18_Test_Results\449m18_esp32
40623 array (50 positions, DAQ)TP120 offset check + noise, fifty at a timecalibration pending (noise limits not derived, offset limits provisional; raw captures saved for the paired lot)Eltec_40623_Test_Results\40623_array_daq

I'm a technician — run a batch

  1. Laptop on AC power, ESP32 USB cable in, both batteries connected, no fans near the fixture.
  2. Double-click the Eltec Test Rig desktop icon (or single_detector_rig\run_eltec_rig_tester.cmd / .sh). For a tray of fifty on the array rig use the Eltec Array Rig icon (array_rig\run_eltec_array_tester.cmd / .sh) — runbook §3b.
  3. Pick the sensor model → Start tester → batch number, your name, filter setup → load a part → Enter.
  4. Read the banner (PASS / PASS · NEAR LIMIT / FAIL) → load the next sensor → Next (Enter). The number only advances when a part passes.

Everything else — verdicts, the Stop / Next buttons, where files go, what to do when something fails — is in docs/TECHNICIAN_RUNBOOK.md.

I'm the engineer taking over

Start with docs/ENGINEER_HANDOVER.md (what you are inheriting, architecture, the copy-per-model rule, firmware lifecycle, open work). Then docs/CALIBRATION_RECORD.md before touching any limit.

Repository map

text
README.md                    this file — the index
CHANGELOG.md                 dated history, newest first (one entry per behavioural change)
CLAUDE.md                    ground rules for AI-assisted sessions
run_all_tests.py|.cmd|.sh    runs every test suite of both rigs, prints a summary
docs/
  TECHNICIAN_RUNBOOK.md      operator instructions
  ENGINEER_HANDOVER.md       engineering manual + open work
  CALIBRATION_RECORD.md      every limit/factor/gate state with provenance  ← source of truth for numbers
  DATA_MAP.md                where results & evidence live (outside the repo) + backup routine
  TP120(40623).pdf           test procedure of the 40623 (array rig); daq_usb_aio16_64ma/ = DAQ vendor docs
single_detector_rig/         THE single-detector application — selector + one directory per sensor model
  eltec_rig_tester.py        selector GUI (dropdown → launches the model app)
  sensor_versions.py         model registry + required firmware
  attempt_history.py         per-batch attempt log (shared)
  v1_single_sensor/          vendored signal-math engine (shared, frozen)
  m405m22/ m406mca/ m449m18/ one qualified tester each: GUI, backend, analysis, tests, launchers, README
  run_eltec_rig_tester.*     launchers; install_*_launcher.* = optional desktop icon
array_rig/                   THE array application — selector + one directory per detector model (same pattern)
  eltec_array_tester.py      selector GUI (model dropdown → launches the model app)
  sensor_versions.py         model registry + required hardware (DAQ)
  tray_history.py            per-lot tray event log (shared)
  m40623/                    the 40623 build: GUI, DAQ backend (ctypes AIOUSB.dll), numpy noise port, probe, bench readout + live viewer, tests, launchers
Arduino/Eltec/               firmware (single rig today; the array rig's emitter board will use it later)
  Eltec.ino                  live sketch (v3.2)        README.md = protocol, flashing, troubleshooting

Retired applications (LabJack-era v1–v4, ESP32 v5/v6/v6.1, the standalone 405m22 build, the pre-v2.0 unified app) were removed from the tree on 2026-08-28 and are preserved at git tag archive/pre-cleanup-2026-08-28: git show archive/pre-cleanup-2026-08-28:<path>.

Firmware

The single-detector bench board must run Arduino/Eltec/Eltec.ino v3.2 for all three models (the array rig has no firmware: its DAQ loads its own from the ACCES driver package) (it currently runs v3.1; the 405 M22 and 406 MCA modes work on v2.1–v3.2, the 449 M18 mode needs v3.2). Flash and verify with one command:

text
python Arduino/Eltec/flash_firmware.py          # --check to only ask what the board runs

Firmware guide: Arduino/Eltec/README.md. Which build belongs on which rig (legacy 406 rigs stay on v1.9): Arduino/Eltec/versions/README.md.

Tests

text
python run_all_tests.py

Six unittest suites (four for the single rig, two for the array rig), 705 tests, no hardware needed. On Windows the 406 MCA suite reports two known environment-only cases (they pass on Xubuntu) — see the handover doc §7.

Where the data is

Results, attempt logs, waveform snapshots, raw noise captures and calibration files are written outside this repository under Documents\Eltec_<model>_Test_Results\. They are the only copy of the evidence behind the production constants — the backup routine is in docs/DATA_MAP.md.

Documentation index

DocumentAudienceContents
docs/TECHNICIAN_RUNBOOK.mdtechnicianstart, run a batch, read verdicts, troubleshoot
docs/ENGINEER_HANDOVER.mdengineerarchitecture, policies, procedures, open work, conventions
docs/CALIBRATION_RECORD.mdengineerconstants + provenance + gate states per model
docs/DATA_MAP.mdengineerresults layout, evidence, backup
single_detector_rig/README.mdengineerthe selector app, launchers, v2.0 skip/attempt features
m405m22/README.md · m406mca/README.md · m449m18/README.mdengineerper-model test mechanics
array_rig/README.md · m40623/README.mdengineerthe array rig: selector, DAQ chain, the 40623 flow, colours, files, PENDING status, the engineering tools (bench probe, readout, live viewer)
docs/TP120(40623).pdf · docs/daq_usb_aio16_64ma/engineerthe 40623 test procedure; DAQ datasheet, DAQ-PACK guide, letter of volatility
Arduino/Eltec/README.md · versions/README.mdengineerfirmware, protocol, flashing, version archive
CHANGELOG.mdbothwhat changed, when, why

Dependencies

Python 3 with tkinter, numpy, pyserial, matplotlib (optional, nicer snapshots). The array rig additionally needs the ACCES USB-AIO16-64MA Install driver package (provides AIOUSB.dll) and a 64-bit Python; no extra Python packages. Xubuntu: sudo apt install python3 python3-tk python3-numpy python3-serial python3-matplotlib, user in dialout. Flashing needs the Arduino IDE 2.x installed (its bundled arduino-cli is used).

Parts

206
QtyValueFootprintReferences
1410kEltec_Master:R_0805_2012MetricR50, R52, R53, R55, R61, R62, R63, R64, R65, R66, R67, R68, R69, R70
1233k 0.1%Eltec_Master:R_0805_2012MetricR240, R241, R242, R243, R244, R245, R260, R261, R262, R263, R264, R265
12499R 0.1%Eltec_Master:R_0805_2012MetricR220, R221, R222, R223, R224, R225, R250, R251, R252, R253, R254, R255
9100nF 50V X7REltec_Master:C_0805_2012MetricC30, C31, C32, C33, C34, C35, C50, C51, C52
8100nF 50V X7REltec_Master:C_0603_1608MetricC16, C19, C21, C25, C26, C27, C28, C29
7100k 1%Eltec_Master:R_0603_1608MetricR14, R15, R27, R28, R29, R34, R35
6100k 1%Eltec_Master:R_0805_2012MetricR200, R201, R202, R203, R204, R205
610k 1%Eltec_Master:R_0805_2012MetricR210, R211, R212, R213, R214, R215
610k 1%Eltec_Master:R_0603_1608MetricR13, R18, R21, R23, R33, R38
6220R 1%Eltec_Master:R_0805_2012MetricR230, R231, R232, R233, R234, R235
62N7002LT1GEltec_Master:SOT-23Q12, Q13, Q14, Q15, Q18, Q21
533Eltec_Master:R_0805_2012MetricR56, R57, R58, R59, R60
5AO3414Eltec_Master:SOT-23Q10, Q11, Q23, Q24, Q26
41k 1%Eltec_Master:R_0603_1608MetricR16, R17, R22, R24
422uF 25V X7R +/-10%Eltec_Master:C_1210_3225MetricC11, C13, C36, C39
4AO3400AEltec_Master:SOT-23Q22, Q101, Q102, Q103
4AO3401AEltec_Master:SOT-23Q16, Q17, Q19, Q20
3100R 1% 0.125WEltec_Master:R_0805_2012MetricR112, R117, R122
3100k 1% 0.125WEltec_Master:R_0805_2012MetricR111, R116, R121
3100nF 5% C0GEltec_Master:C_1206_3216MetricC14, C23, C24
3100nF 50V 5% C0GEltec_Master:C_1206_3216MetricC15, C37, C38
310k 1% 0.125WEltec_Master:R_0805_2012MetricR113, R118, R123
3240R 1% 0.125WEltec_Master:R_0805_2012MetricR110, R115, R120
3ADG4613BRUZEltec_Master:TSSOP-16_4.4x5mm_P0.65mmU30, U31, U32
3OPA2325IDREltec_Master:SOIC-8_3.9x4.9mm_P1.27mmU33, U34, U35
3REFERENCEEltec_Master:Detector_Wire_LandsJDET2, JDET4, JDET6
3SN74LVC2G125DCTREltec_Master:TI_DCT0008A_SSOP8U50, U51, U52
3TESTEltec_Master:Detector_Wire_LandsJDET1, JDET3, JDET5
2100kEltec_Master:R_0805_2012MetricR51, R54
2100nF 50V X7R 10%Eltec_Master:C_0805_2012MetricC101, C103
210nF 5% C0GEltec_Master:C_0603_1608MetricC20, C22
21N4148WEltec_Master:D_SOD-123D10, D11
222uF 25V 10% TPSEltec_Master:CP_EIA-7343-31_Kemet-DC100, C102
24.7k 1%Eltec_Master:R_0603_1608MetricR12, R20
24.7uF 25V X7REltec_Master:C_0805_2012MetricC17, C18
2GCT DCJ200-10-A / customer installedEltec_Master:BarrelJack_GCT_DCJ200_10_AJ1, J2
2MMBT3904LT1GEltec_Master:SOT-23Q50, Q51
10Eltec_Master:R_0603_1608MetricR19
11.00k 0.1% 25ppm/KEltec_Master:R_0603_1608MetricR32
11.5A Slo-BloEltec_Master:Fuse_1206_3216MetricF2
11.5k 1%Eltec_Master:R_0603_1608MetricR30
1100 1%Eltec_Master:R_0603_1608MetricR26
1150 1%Eltec_Master:R_0603_1608MetricR40
11A Slo-BloEltec_Master:Fuse_1206_3216MetricF1
11k 25-turn 0.5WEltec_Master:Potentiometer_Bourns_3296W_VerticalRV100
11x15 female socket - row AEltec_Master:Socket_Kinghelm_1x15_P2.54_H8.5J3
11x15 female socket - row BEltec_Master:Socket_Kinghelm_1x15_P2.54_H8.5J4
11x8 female ADC digital socketEltec_Master:Socket_Kinghelm_1x08_P2.54_H8.5J5
1210R 1% 0.125WEltec_Master:R_0805_2012MetricR100
1221 0.1% 25ppm/KEltec_Master:R_0603_1608MetricR31
122uF 25V tantalum +/-10%Eltec_Master:CP_EIA-7343-31_Kemet-DC10
12x8 female ADC analog socketEltec_Master:Socket_FG_2x08_P2.54_H8.5J6
1300 0.1%Eltec_Master:R_0603_1608MetricR11
1390 1%Eltec_Master:R_0603_1608MetricR25
151.1k 0.1% 10ppm/KEltec_Master:R_0603_1608MetricR10
1698 0.1% 10ppm/KEltec_Master:R_0603_1608MetricR39
17R5 1% 0.125WEltec_Master:R_0805_2012MetricR101
1820uF 6.3V polymer +/-20%Eltec_Master:CP_Elec_8x11.9C12
1AP2112K-3.3TRG1Eltec_Master:SOT-23-5U11
1BZT52C6V8GWEltec_Master:D_SOD-123D12
1EMITTER 1Eltec_Master:Emitter_Wire_LandsJEM1
1EMITTER 2Eltec_Master:Emitter_Wire_LandsJEM2
1EMITTER 3Eltec_Master:Emitter_Wire_LandsJEM3
1LM4050AIM3-4.1/NOPBEltec_Master:SOT-23U17
1LT1963AEQ#PBFEltec_Master:TO-263-5_TabPin3U100
1LT3041ADE#TRPBFEltec_Master:DFN-14-1EP_3x4mm_P0.5mm_EP1.7x3.3mmU10
1LTV-817S-TA1-BEltec_Master:SMDIP-4_W7.62mmU16
1LTV-847SEltec_Master:SMDIP-16_W9.53mmU101
1SN74LVC1G132DBVREltec_Master:SOT-23-5U19
1SN74LVC1G14DBVREltec_Master:SOT-23-5U15
1TLV3601DCKREltec_Master:SOT-353_SC-70-5U18
1TPS3840PL30DBVREltec_Master:SOT-23-5U13
1TPS3840PL34DBVREltec_Master:SOT-23-5U14
1TPS3840PL42DBVREltec_Master:SOT-23-5U12

More from JCastel358/Eltec406mca

2
  • 2 layers86 × 103 mmESP32 test board, the printed circuit board in 3D

    ESP32 test board

    JCastel358/Eltec406mca

    code for industrial automation process

    55 parts1

Similar boards

  • 4 layers100 × 100 mmEc30-tee, the printed circuit board in 3D

    Ec30-tee

    justinpirie/ec30

    Onan EC30 Tee Board with ESP32 Control

    167 partsApache-2.0
  • 2 layers70.5 × 40.1 mmKicad flyback, the printed circuit board in 3D

    Kicad flyback

    nguyenthanhluan171205-tech/flyback-converter-10w

    Design, simulation, PCB layout, and experimental validation of a 10W Flyback converter (80-220VAC to 12VDC, 90% efficiency).

    63 parts
  • 4 layers156 × 100 mmCrow audio carrier v1, the printed circuit board in 3D

    Crow audio carrier v1

    misko/prompt2device

    The separate vNext PCB skill and orchestrator package is available alongside the reference workflow below; existing projects keep their accepted toolchain until an explicit migration.

    340 parts3MIT
  • 2 layers38.1 × 38.1 mmGaN Gate Driver, the printed circuit board in 3D

    GaN Gate Driver

    tkeller12/openEPR

    Open-Source EPR Spectrometer

    33 parts1MIT
  • 2 layers125 × 89.5 mmLta logic module, the printed circuit board in 3D

    Lta logic module

    kimballa/like-the-art-pcb

    PCB Schematics for Like The Art project

    113 parts
  • 8 layers227.5 × 104 mmCom express-7-baseboard, the printed circuit board in 3D

    Com express-7-baseboard

    antmicro/com-express-7-baseboard

    This project contains open hardware design files for a baseboard supporting COM Express 7 modules. The board breaks-out major communications and peripheral interfaces provided by the standard.

    815 parts12Apache-2.0

Questions

How big is the Copper layers PCB?

It measures 86 × 145 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Copper layers use?

206 parts, built around the SN74LVC2G125DCTR-JSM, ADG4613BRUZ, AP2112K-3.3TRG1 and LT1963AEQ#PBF. 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 Copper layers KiCad files?

From the JCastel358/Eltec406mca repository on GitHub, at the commit this page was made from: the board is hardware/single_detector_usb_master_r1/exports/board_review/final_candidate/native_copies/copper_layers.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Copper layers design in my own project?

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