

Spectrometer
Reconstructing low-resolution spectra from Osram sensors
- Size
- 38 × 42 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 20
- Nets
- 13
- Pads
- 49
- Tracks, vias
- 175, 19
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 13 Sep 2025
- Updated
- 23 May 2026
Overview
Spectrometer is an open-source printed circuit board by dpohanlon, from the dpohanlon/isaac repository on GitHub, published under the MIT licence. It is a 2-layer board of 38 × 42 mm with 20 parts on 13 nets, routed with 175 tracks and 19 vias.
It is built around the AP2112K-1.8 and PCA9306D. Its parts include 8 resistors, 3 ICs, 2 capacitors and 1 diode. It belongs with the sensors and measurement boards of this library.
Main components
2AP2112K-1.8
SOT251.8V 600mA CMOS Low Dropout Linear Regulator with EnableDiodes IncorporatedUncategorisedPCA9306D
SO-8-40℃~+105℃ 1 1.8V~5.5V 1V~3.6V 2 2Mbps Automatic direction detection、Output enable high-impedance Bidirectional Level translator Open-drain SMBus、I2C SO-8 Translators, Level Shifters ROHSNXP SemiconductorsTranslators, Level Shifters
README
README.md
Reconstructing low-resolution spectra from Osram sensors
Introduction
The Osram AS7341 IC is an 11 channel spectral sensor, with sensitivity from 350nm to 1000nm. Sensitivity is provided by various filters that correspond to 11 spectral bins that are read out by an ADC. These bins however are not evenly spaced in wavelength, bands overlap, and their spectral response is non-uniform over their wavelength band. Therefore with knowledge of the frequency response of each filter, we can deconvolve the signal according to the frequency response of each channel and reconstruct the original spectrum.
From the spectral response listed in the AS7341 datasheet, the FWHM resolution across the wavelength range can be seen in the plot below:
This is currently set up for the AS7341, but in future will also support TCS3448 (on its own and in combination with AS7341). Very preliminary prototype hardware designs for a TCS3448 interface board are available in the hardware/TCS3448_board directory.
Installation
This project uses Poetry for dependency management. To install the package along with its dependencies, run:
poetry installUsage
Most of the heavy lifting is done by the SpectrumSolver, which takes a set of reference points and a wavelength grid as input. This object can then be used to 'solve' for the original spectrum when provided ADC counts, using Tikhonov regularised least squares. The reference points should correspond to a NumPy array of shape (n_points, n_bins) (seeextract_reference.py), describing the frequency response of the wavelength bin, and therefore y_meas is expected to be a NumPy array of shape (n_bins,).
from spectrum.solver import SpectrumSolver
solver = SpectrumSolver.from_reference_points(reference, wavelength_grid)
y_out = solver.solve(y_meas, lam_smooth=1e-5, mu=1e-8)The scripts/ directory contains helper programs:
extract_reference.py– extract response curves from a PDF and save them to an.npzfile.
python scripts/extract_reference.py sensor.pdf curves.npzfwhm_scan.py– scan a narrow Gaussian across wavelengths and plot the recovered FWHM resolution.
python scripts/fwhm_scan.py curves.npz out.pngParts
20| Qty | Value | Footprint | References |
|---|---|---|---|
| 6 | 4.7k | Resistor_SMD:R_0805_2012Metric | R1, R2, R3, R4, R5, R6 |
| 6 | TestPoint | TestPoint:TestPoint_Pad_D2.0mm | 3.3V, GND1, GPIO1, GPIO2, SCL1, SDA1 |
| 2 | 1.0u | Capacitor_SMD:C_0603_1608Metric | C1, C2 |
| 1 | 1k | Capacitor_SMD:C_1206_3216Metric | R7 |
| 1 | AP2112K-1.8 | Package_TO_SOT_SMD:SOT-23-5 | U2 |
| 1 | LED | LED_SMD:LED_1206_3216Metric | D1 |
| 1 | PCA9306D | Package_SO:SO-8_3.9x4.9mm_P1.27mm | U3 |
| 1 | R | Resistor_SMD:R_0402_1005Metric | R8 |
| 1 | ~ | Sensor:TCS3448 | U4 |
Questions
How big is the Spectrometer PCB?
It measures 38 × 42 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Spectrometer use?
20 parts, built around the AP2112K-1.8 and PCA9306D. 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 Spectrometer KiCad files?
From the dpohanlon/isaac repository on GitHub, at the commit this page was made from: the board is hardware/TCS3448_board/spectrometer.kicad_pcb and its schematic hardware/TCS3448_board/spectrometer.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Spectrometer 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
- 4 layers27 × 80 mm

- 2 layers91.3 × 53.3 mm

- 4 layers39 × 54 mm

Caravel mvp
TinyTapeout/caravel-mvp-pcb
the minimum necessary to use a Caravel chip (Google MPW or chipIgnite)
58 parts8Apache-2.0 - 4 layers61.8 × 27.5 mm

Audio Processing HW V1.0
aitesam961/OpenADSP
An Embedded Digital Signal Processing Device for Audio signals.
83 parts4GPL-3.0 - 2 layers45 × 35.5 mm

- 2 layers51.3 × 20.3 mm

- 2 layers26.9 × 38.3 mm

Xiao level shifter v1
charkster/xiao_rp2040_level_shifter_v1
Add-on PCB board for Seeed Studio Xiao RP2040, which provides 1.2V and 1.8V selectable level-shifting.
14 parts1MIT - 2 layers29 × 23 mm

MCU
Ironman-007/Digital_Artifact
Input devices: - mouse encoder: https://www.amazon.com/gp/product/B0CF9FS3QS/ref=ppxyodtbasintitleo00s00?ie=UTF8&psc=1 - thumb joystick: https://www.adafruit.com/product/5628 - thumbwheel: -…
36 parts1