Chemicals
All chemicals were used as supplied, without further purification.
Perovskite precursors
Methylammonium bromide (99.99%) was purchased from Great Cell Solar, caesium chloride (99.9999%) and caesium iodide (99.9999%) were purchased from Chemcraft, lead bromide (>98%) was purchased from Sigma) and lead iodide (99%) was purchased from Thermo Scientific.
Sputtering targets
Targets were obtained from Angstrom Engineering: silicon dioxide (SiO2) sputtering target Ø3″, purity 99.995%, thickness 1/8″, bonded to 1/8″ OFHC backing plate. Tin oxide (SnO2) 3″ diameter sputtering target, purity 99.9%, thickness 1/8″, bonded to 1/8″ oxygen-free high conductivity copper backing plate. ITO (90:10 wt% In2O3:SnO2) hollow cathode sputtering target diameter 147 mm × height 52 mm, purity 99.99% indium, bonded to OFHC backing plate.
Solvents
Anhydrous (AcroSeal) ethanol and chlorobenzene were purchased from Acros (99%) and used inside a nitrogen-filled glovebox.
Charge-transport materials and electrodes
The charge-transport materials and electrodes were as follows: molybdenum trioxide (99.99%, Alpha-Aesar), (2-(9H-carbazol-9-yl)ethyl)phosphonic acid (2PACz; >99%, Lumtec), ZnO ink N-10 flex (Avantama), 4,4′,4-tris(carbazol-9-yl)triphenylamine (TCTA; 99.5%, Lumtec), AZO (aluminium zinc oxide) ink N−21X flex (Avantama), NiO ink P-21X-flex (Avantama), (6,6)-phenyl C61 butyric acid methyl ester (PCBM; >99.5%, Lumtec) and C60 (99.9% SES Research).
Sensor fabrication
The substrates were subjected to a sequential cleaning process using Helmanex solution, water, acetone and isopropanol, after which they were treated with ultraviolet ozone for 10 min. Following this, thermal evaporation was employed to deposit 15 nm of molybdenum oxide, 30 nm of gold through a shadow mask and another 30 nm of molybdenum oxide. The device assembly continued with spin-coating a hole transporting layer of 2PACz (1.2 mg ml−1 in ethanol) at 3,000 rpm, which was followed by the co-evaporation of MABr (132 °C) and PbI2 (0.48 Å s−1) at 20 °C substrate temperature to create a MAPbBrI2 perovskite layer. A 40-nm C60 layer was then thermally evaporated at a rate of 0.5 Å s−1. Zinc oxide nanocrystals (Avantama N10-Flex) were then uniformly applied over the surface by spin-coating at 2,000 rpm. ITO (180 nm) was sputtered using a shadow mask, followed by the deposition of 40 nm of SnO2 and a 200-nm SiO2 layer over the entire substrate area.
The fabrication of the second pixel started with a 180-nm ITO electrode layer sputtering through a shadow mask. Further depositions included the evaporation of 40 nm of SnO2, 5 nm of C60 and a 300-nm layer of the second perovskite CsPbBr2I deposited at 20 °C substrate temperature through co-evaporation using CsI (0.61 Å s−1) and PbBr2 (0.6 Å s−1) sources. Thermal evaporation was used to deposit 15 nm of TCTA and 30 nm of MoO3. The deposition of layers continued with the spin-coating of the AZO nanocrystal solution at 2,000 rpm, followed by the sputtering of a 140-nm ITO layer using a shadow mask. The subsequent steps included sputtering 40 nm of SnO2 and 200 nm of SiO2.
The fabrication of the third pixel started with 120-nm ITO electrode layer sputtering. The substrates then underwent air plasma treatment for 30 s, after which a 2PACz solution (1.2 mg ml−1 in ethanol) and a NiO nanocrystal solution (Avantama P-21) were sequentially spin-coated at 3,000 rpm. A 5-nm TCTA layer was then thermally evaporated, which preceded the co-evaporation of the CsPbBr2Cl perovskite from CsCl (0.49 Å s−1) and PbBr2 (0.6 Å s−1) sources at 20 °C substrate temperature. The fabrication progressed with the coating of a 40-nm PCBM layer deposited from a 20 mg ml−1 solution in chlorobenzene, at 2,000 rpm. After depositing 5 nm of C60 via thermal evaporation, the device was spin-coated with ZnO nanocrystals at 2,000 rpm. The fabrication concluded with the sputtering of a 120-nm ITO layer using a shadow mask. The device active area for the stacked detector was 6 mm2/9 mm2/6 mm2 for the red, green and blue channel pixels, as defined by shadow masks.
Device characterization
External quantum efficiency
The EQE spectra were measured in the wavelength range of 300 nm to 700 nm, utilizing a QE system (Model QE-R from Enli Tech). The measurements were conducted under near-dark test conditions with a chopper frequency set at 210 Hz.
Optical measurements
Absorption spectra in the ultraviolet–visible range for perovskite thin films were obtained in transmission mode using a Jasco V670 spectrometer.
Capacitance measurements
Capacitances were calculated from impedance spectroscopy data obtained for each pixel of a stacked detector using an Autolab PGSTAT302N, with a 50 mV amplitude and 0 V d.c. offset in darkness.
Current–voltage measurements
The I–V curves of devices were collected with Keysight B2920 SMU using a homemade photodetector testing set-up with an RGB LED (LC-10W RGB-C SERIES from LCFOCUS) as a light source (Supplementary Fig. 6). The light flux was calibrated by measuring photocurrents with an FDS1010 photodiode from Thorlabs with a known responsivity spectrum. All I–V measurements were done in a nitrogen-filled glovebox. The I–V sweeps were performed at 200 mV s−1 rates, first under dark and then under illuminated (1 mW cm−2) conditions.
Transient photocurrent measurements
Transient photocurrent measurements were performed using a Becker & Hickl BDL-SMN Series 473-nm pulsed diode laser with a repetition rate of 100 kHz and pulse width of 90 ps. The signal was amplified with a Femto HSA-X-I-2-40 wideband voltage amplifier with 160 ps rise–fall time and 40 dB fixed gain before sending it to a Tektronix MSO44 mixed-signal oscilloscope with 500 MHz bandwidth, 160 ps resolution and 6.25 GS s−1 sampling rate. For these measurements, we prepared special samples with an area of 20 × 200 µm defined with lithographically patterned ITO (bottom) and metal electrode deposited with a shadow mask (top).
Atomic force microscopy
Atomic force microscopy imaging was performed using an NX-10 Park AFM with AC160TS tips in non-contact mode, at a 0.5-Hz scan rate over a 2 × 2 µm area, capturing 256 points per row.
Focused-ion-beam cross-section scanning electron microscopy
The scanning electron microscope image was acquired at 3-kV electron acceleration voltage and 0.1-nA current using FEI Helios Nanolab 660 FIB-SEM. Electron detection was facilitated through a through-the-lens detector in back-scattered electron mode, enhancing material contrast. Preceding image capture, the sample was tilted at an angle of 52° to the scanning electron microscope cone, directly facing the focused-ion-beam source, which was employed for sample cutting.
Noise-equivalent power and specific detectivity
The estimation of the noise-equivalent power was performed based on the methodology outlined in the literature42. In brief, the photodetector current spectral density dependence on frequency was measured using the spectral analyser (SR770), under modulated LED light at various incident light powers. This measurement was conducted using a spectral analyser (SR770), with the photodetector exposed to modulated LED light at different levels of incident light power. The power of the incident light was measured using a Thorlabs photodiode (s130VC) paired with a PM100USB power meter. LEDs with red (626 nm), green (522 nm) and blue (461 nm) emission maxima were used for the red, green and blue photodetector layers, respectively. The electrical bandwidth was determined by estimating the full-width at half-maximum of the current spectral density peak, which was calculated by fitting the lowest intensity peak with a Lorentzian function. The peak magnitude of the current was equated to the photoresponse of the device. The signal-to-noise ratio was calculated as the ratio of the photoresponse to the noise floor. This ratio was then graphed as a function of the input light power, and the noise-equivalent power was identified as the input power that resulted in a signal-to-noise ratio of 1. Furthermore, the specific detectivity (D*) was calculated using the formula
$${D}^{* }=\frac{\sqrt{A\times {\rm{BW}}}}{{\rm{NEP}}}$$
where A is the area of the respective sensor and BW is the bandwidth.
Colour-fidelity measurements
Colour fidelity was evaluated using a custom-built set-up on an optical table. All measurements were performed under ambient conditions with the samples exposed to air for no more than 2 hours. White-LED light was projected onto ColorChecker patches through lenses, focusing the beam on approximately half of the total patch area to minimize reflections from adjacent areas. The reflected light was then collected by the sensor under characterization. After a stabilization time of 5 s at a 0 V bias, we recorded the sensor’s photocurrent response. Each pixel in the layered detector configuration was measured independently. For a more detailed description of these experiments, refer to Supplementary Note 3. To reconstruct the ColorChecker chart representation from the initial photocurrent readings, the values were combined in a matrix and normalized to the highest photocurrent for each colour channel. These normalized values were then transformed into brightness levels by scaling to a 255 maximum, and subsequently rounded to the nearest integer. We observed an enhancement in image quality when we applied a square-root transformation to these brightness values followed by renormalization. The ColorChecker image was rendered from the individual pixel data through a dedicated Python script. Adjustments for grey balance were performed on the final image by adjusting the ratios of R, G and B channels to 1:1:1 utilizing the colour patch 1, 4 (grey). Other RGB channels of the colour patches were adjusted using the coefficients obtained from the grey balancing procedure.
Testing 8 × 8 × 3 cross-bar arrays
The testing of the sensor array was carried out using a custom-made printed curcuit readout board equipped with an array of electromechanical relays with a switching speed of 200 ms, controlled by an Arduino microcontroller. Linearity measurements for each pixel were conducted sequentially, first in darkness and then under narrow-band LED illumination, using 0.5 mA to 64 mA current density for red, green and blue LEDs, separately. For the estimation of colour crosstalk under narrow-band emission, we used interpolated values of photocurrent at photon flux (3 × 1014 photons s−1 cm−2) within the linear region for all 3 channels. To measure light reflected from the ColorChecker patches, identical procedures as for single site detectors were used for all pixel arrays. Photocurrent values were measured at 0 V bias. Shorted arrays lines were removed from statistics as outliers. In addition, photocurrents from the black (1−1) patch were subtracted from the rest of the patches for the CIELAB colour space calculations to correct for the optical imperfections of the measurement set-up.
To illustrate demosaicing principles, the following data manipulations were performed using custom Python scripts. One representative cross-bar array was used for imaging. Photocurrent values at 0 V from the I–V characteristics were organized into 4 distinct 8 × 8 matrices for dark conditions and each coloured (RGB) illumination. Then, the responses for each channel were normalized against the total output of the channel, on a pixel-by-pixel basis. The following manipulations with the data were performed to render the images. The input images were loaded as 8 × 8 pixel, 3-channel BMP images and converted into a three-dimensional array of brightness values. Next, each array of normalized responses from the stacked pixels was multiplied by the brightness values array obtained from the initial image. For instance, the blue channel of the new image was computed as the sum of the responses of red, green and blue pixels to blue light as the channel of the input image. The resulting images were brightness corrected by normalizing them against the ratio of the maximum brightness of each channel from the initial image, divided by the maximum of the calculated response. The condition of white light was assumed to correspond to the concurrent exposure to all three RGB lights at the defined intensity. CFA simulation was conducted by selectively activating only one RGB layer per site within the 8 × 8 arrays, effectively ‘deactivating’ mismatching signals under a predefined 2 × 2 [[R, G][G, B]] mask applied repeatedly across the array, emulating real CFA pixel configuration. The conversion to CIELAB colour space involved normalizing the raw photocurrent data and then combining responses from a photosite to blue, green and red light into the three channels of an RGB image. For example, the response to blue light from an RGB photosite was calculated from normalized photocurrents and separated into three image channels.
Imaging with TFT arrays
The fabrication of TFT arrays was done utilizing commercially available 64 × 64 TFT substrates from Linkzill (SC-X-A064-2201). The red- and blue-light detector structures were fabricated identically to the stacked-detector structure 2 with minor changes. We did not use ALD (atomic layer deposition) SnO2 owing to difficulties in removing this layer from the bonding pads; instead a simple C60/bathocuproine electron transport layer was used. For the green detector, a p–i–n structure identical to the one used in the blue detector was utilized, as the TFT arrays were designed to measure only positive photocurrents. Arrays were encapsulated using SU-8 photoresist layer. The D50 illuminant light was used to illuminate the ColorChecker chart, with the light focused on the mechanically stacked three TFT arrays (R, G and B top array). For sensor calibration, black-and-white paper sheets were used to define the maximum and minimum current range. The data processing workflow is illustrated in Supplementary Fig. 9.