A sensitive and compact optical detector based on digital lock-in amplification

Graphical abstract


Hardware in context
The detection and quantitation of weak, slowly varying fluorescence signals from trace concentrations of chromophores is an essential task in many fields of science. Important examples include: biochemistry, where low-concentration biomolecules are quantified using fluorogenic assays; [1] synthetic chemistry, where reaction kinetics are often determined by monitoring changes in fluorescence intensity due to consumed or generated fluorophores; [2] and environmental science, where fluorescence is used to detect and quantify pollutants, either directly or indirectly via their interaction with probe dyes [3][4][5].
In common with other optical signals, fluorescence is commonly monitored using a photodiode coupled to a sensitive current meter, with the current generated by the photodiode typically being proportional to the intensity of the incident light. At low fluorophore concentrations, the weak fluorescence signal is frequently masked by noise and/or strong background signals, preventing reliable detection and measurement. In such circumstances, the fluorescence signal may often be extracted by modulating the light-source (and therefore the fluorescence signal) at a fixed frequency f mod , and using a signal processing technique known as ''lock-in" detection [6] to eliminate unwanted interferences at other frequencies. The lock-in technique is simple to implement and, as shown here, can give good performance even with inexpensive hardware, making it an attractive choice for low-cost, high sensitivity fluorescence detection.
In this manuscript we describe a sensitive, fixed-wavelength, lock-in-based fluorescence detector built from a lightemitting diode (LED), two colour filters, a photodetector, a small number of discrete analogue components, and a lowcost microcontroller development board. We describe the construction, operating principle, use and performance of the fluorescence detector, which allows measurements to be carried out in a 10-mm pathlength cuvette or a low volume (<100 ll) flow-cell. For illustrative purposes the detector is applied here to a cholesterol assay based on the enzyme-mediated conversion of (non-emissive) Amplex Red into the fluorescent dye resorufin [1]. The system may be readily adapted to other biomolecules through a simple change of enzyme.

Hardware description
The hardware (see photographs in Fig. 1) comprises three main parts: (i) a printed circuit board (PCB), onto which all electronic components except the LED light-source are mounted; (ii) a 3D-printed housing for the LED, optical filters and sample; and (iii) a 3D-printed base-plate that holds the optics and PCB together. The PCB contains power management circuitry, an LED driver, an amplified photodiode to detect the emitted light, analogue circuitry for signal conditioning, and a microcontroller development board for carrying out analogue to digital conversion and lock-in detection.

Optical detection
The optical configuration is shown schematically in Fig. 2. Excitation light from the LED passes through a short-pass filter, which absorbs long-wavelength photons that overlap spectrally with the fluorophore emission. The filtered light from the LED passes through a detection zone containing the sample under test, where it is partially absorbed and reradiated by the fluorophores. The emergent light from the sample -a mixture of unabsorbed light from the LED and longerwavelength light from the emitting fluorophores -passes through a long-pass filter, which heavily attenuates the excitation Fig. 1. Rear-and front-facing photographs of assembled fluorimeter. The device consists of three main parts: a PCB for the detection electronics, a 3Dprinted housing for the optical components, and a 3D-printed base-plate for mechanical support. An LED inside the housing is used as a light-source, while an amplified photodiode mounted on the rear side of the PCB is used as a detector.
A.J. Harvie, S.K. Yadav and J.C. de Mello HardwareX 10 (2021) e00228 light but allows the emitted light to pass and strike the photodetector. The sample is introduced into the detection zone using a 10-mm cuvette or a low-volume (<100 ll) flow cell. Interchangeable 3D-printed holders allow for easy swapping between cuvette-and flow-based detection. (The greater sample volume of the cuvette typically provides slightly better sensitivity but requires sample volumes of at least 2 ml compared to $100 ll for the flow cell). The holders may be readily adapted to other sample formats.
To reduce size, minimise the parts count, and simplify assembly, we do not use discrete focussing optics to guide the exciting or emitted light, although the chosen LED has a focussing lens integrated within its housing. If required, additional lenses could be straightforwardly incorporated into the housing for better light management and enhanced sensitivity. By replacing the short-and long-pass filters with band-pass filters matched to the emission peak of the LED, the system may be straightforwardly adapted to absorption-based measurements. (The ability to switch between fluorescence-and absorption-based measurements is the reason why we have chosen to arrange the light-source and detector in a face-toface configuration rather than at 90°to one another, although it would be simple to adapt the system to orthogonal fluorescence detection if required).
For the purposes of cholesterol detection, the LED is chosen to have an emission peak at 525 nm, which coincides with the absorption band of the resorufin dye used in the enzymatic assay. The Full Width Half Maximum (FWHM) of the LED's emission spectrum is approximately 25 nm, but a long-wavelength tail extends beyond 570 nm (Fig. S1a). The emission tail is attenuated by the short-pass filter, which has a cut-off at 550 nm (Fig. S1b). The emission band of resorufin lies predominantly in the range 550 -650 nm, with a weak tail that extends to longer wavelengths (Fig. S1a). The long-pass filter has a cut-on at 570 nm ( Fig. S1b) and therefore blocks most of the short-pass-filtered excitation light, while efficiently passing Fig. 2. Simplified schematic of optical setup. Light from an LED passes through a short-pass filter and strikes the sample, which is held in a 10-mm pathlength cuvette or a simple flow cell. Emitted light from the sample plus transmitted light from the LED strikes a long-pass filter that allows only the emitted light to pass and reach the amplified photodiode. The signal from the photodiode is pre-processed using analogue circuitry and then passed to a microcontroller development board for analogue to digital conversion and digital signal processing. Fig. 3. Schematics of LED driver and analogue conditioning circuit. The LED is connected in series with a 30-mA constant current diode and an NPN transistor; the base terminal of the transistor is connected to a digital output pin of the microcontroller, which switches the current flow on and off at a frequency of $ 410 Hz and a duty cycle of 50%. The optical signal is detected using an amplified photodiode (OPT101). The DC output V1 from the amplified photodiode is passed through a non-inverting integrator (I1, green box) that generates a positive output current I int at the summing terminal of A0 (Pin 2 of the OPT101), cancelling the negative DC photocurrent due to ambient light and hence reducing the DC component of V1 to zero. V1 is passed to a nonintegrating amplifier that adds a constant DC offset of 1.6 V, yielding an output voltage V2 that spans the range 0 to 3.2 V (S1, red box). Finally, V2 is passed to an active second-order low-pass filter (LP1, blue box) that suppresses noise and high-frequency components above 94 kHz. (For interpretation of the references to colour in this figure legend, the reader is referred to the web version of this article.) the emitted light. The LED is modulated at $410 Hz, using a 30-mA constant-current driver circuit (see Fig. 3) that is toggled on and off with a 50% duty cycle using a digital output pin of the microcontroller. For the 30-mA square-wave modulation used here, the time-averaged output power of the LED is just over 1 mW. The amplified silicon photodiode (OPT101) has a broadband optical response from 400 to 1000 nm, which fully covers the emission band of resorufin (Fig. S1c). The set-up may be readily adapted to assays based on other dye molecules by swapping the LED and optical filters as needed.

Analogue signal processing
The amplified photodiode (OPT101) is used in dual-supply mode with a transimpedance gain of À1 V/lA. The output V 1 of the amplified photodiode feeds into a three-stage signal-conditioning circuit that prepares the signal for read-out by the microcontroller's built-in analogue-to-digital converter ADC0 (which accepts input voltages in the range 0 to 3.3 V). The first stage of the conditioning circuit is a feedback-based compensation stage that removes any DC offset in V 1 due to ambient light or non-ideality of A0, allowing the OPT101 to operate under conditions of high ambient illumination without saturating ADC0. (Note, the compensation circuit treats all frequencies below 16 Hz as DC and hence the modulation frequency must be substantially higher than 16 Hz for a reliable measurement. For the present set-up, we use a fixed modulation frequency of $ 410 Hz). The second stage of the conditioning circuit is a summing amplifier (S1) that converts an input signal in the range À1.6 V to + 1.6 V into an output signal in the range 0 V to 3.2 V, allowing it to be sampled by ADC0. The third stage is a unitygain low-pass filter with a cut-off frequency of 94 kHz, slightly less than half the 200-kHz sample rate used by ADC0. The low-pass filter attenuates noise and interferences above the 100-kHz Nyquist frequency of ADC0, preventing sampling artefacts due to aliasing. Further details of the conditioning circuit are provided in the Supporting Information.

Digital signal processing
Analogue to digital conversion and digital signal processing is carried out on a Teensy 4.0 microcontroller development board (PJRC). The Teensy 4.0 has a fast 600-MHz ARM processor with on-board Floating Point Unit (FPU), allowing it to efficiently carry out the calculations needed to implement digital lock-in detection. In brief, a sampled periodic signal S of frequency f 0 is multiplied by sinusoidal and cosinusoidal reference signals of matching frequency f 0 , and the resulting output signals are passed through separate digital low-pass filters to remove non-DC components (see the block diagram in Fig. 4). Following low-pass filtering we obtain two scalar outputs X and Y derived from the two reference signals. X and Y are vectorially combined to obtain an output signal R ¼ p ðX 2 þ Y 2 Þ that is directly proportional to the amplitude of S. (Formally, R corresponds to the amplitude of the first harmonic of S). The process repeats every time a new sample is acquired, so the lock-in outputs X, Y and R are updated at the sample rate of the ADC. R is affected only by input signals that are very close in frequency to f 0 so the target signal S may be reliably measured even if it is corrupted by significant noise and/or interferences at other frequencies. A detailed description of the lock-in method is provided in the Supporting Information. Computationally, the lock-in procedure is carried out as follows. An incoming analogue signal of frequency f 0 (together with noise and interfering signals at other frequencies) is sampled at discrete times t 1 ð Þ; t 2 ð Þ; tð3Þ Á Á Á where the time interval Dt between successive measurements is fixed at 5 ls. Timing errors are minimised by choosing f 0 to be an exact integer fraction of the sample rate f s , i.e. f 0 ¼ f s =m ¼ 1=ðmDtÞ where m is an integer. Here, we choose a sample rate of 200 kHz and an mvalue of 488, which corresponds to f 0 = 409.84 Hz. The sample values S 1 ð Þ; S 2 ð Þ; Sð3Þ Á Á Á are obtained from the ADC as 12-bit integers and stored as 64-bit doubles. All calculations are carried out at 64-bit precision using the microcontroller's onboard FPU. Immediately after each sample SðnÞ has been acquired, the two reference signals Q x ðnÞ and Q y ðnÞ are updated as follows: where the sample number n = 1, 2, 3. . . The LED driver is toggled on or off every m=2 steps, i.e. whenever Q y n ð Þ ¼ 0, resulting in a fluorescence signal that is phase-locked to the reference signals and of identical frequency. (Note, the exact phase of the fluorescence signal relative to the reference signals depends on the turn-on time of the LED driver and varies according to the modulation frequency. The use of two reference signals that differ in phase by 90°corrects for the effects of the slow LED turn-on).
Multiplying Q x ðnÞ and Q y ðnÞ by SðnÞ we obtain two (unfiltered) intermediate outputs X 0 ðnÞ and Y 0 ðnÞ: The low-pass filtering step is carried out by exponentially averaging X 0 ðnÞ and Y 0 ðnÞ, [7] which yields two intermediate outputs X 1 ðnÞ and Y 1 ðnÞ: where X 1 ðn À 1Þ and Y 1 ðn À 1Þ are the previous values of X 1 and Y 1 and a is a weighting coefficient that determines the cutoff frequency of the exponential filter. (X 1 and Y 1 are arbitrarily set to zero prior to the first sample). a is set to a constant value of 7.85 Â 10 -6 , which corresponds to a cut-off frequency f c of 0.25 Hz and a time-constant s of 0.63 s. [7] The exponential filtering stage is repeated using the same a value to provide better attenuation of non-DC interferences and hence a 'cleaner' solution: Finally, X 2 ðnÞ and Y 2 ðnÞ are combined vectorially to obtain a single scalar output R 2 ðnÞ: is proportional to the amplitude of the first harmonic of the target signal S (see Supporting Information) which, in practical terms, means it is proportional to the average fluorescence intensity of the sample under test (plus a background contribution from residual LED light that leaks through the long-pass filter). Interferences from spurious signals at other frequencies are greatly attenuated by the lock-in algorithm (see Supporting Information).
The microcontroller sends out a new R 2 value over its universal serial bus (USB) interface every 0.1 s for remote analysis on a PC or other hardware. For a reliable measurement, it is advisable to wait 10 time constants after switching on the sensor, loading a new sample, or changing a parameter for the lock-in output to stabilise. Hence, for the 0.63 s time constant used here, a wait time of 6-7 s is recommended. A simple PC-based software front-end is provided for reading, plotting and saving data (see operating instructions).

Power management
The PCB has two sets of bipolar power rails at ± 3.3 V and ± 12 V. The ± 3.3 V rails are powered by the Teensy's built-in 3.3 V supply (which in turn is powered via the USB connection), using a TC7660 inverting charge pump IC on the PCB to feed the À3.3 V rail. The ±12 V rails are derived from an external 24 V unipolar supply, using a resistive divider with its midpoint connected to the ground of the 3.3 V unipolar supply. The Teensy microcontroller and the (single-supply) MCP602 dual opamp IC used in S1 and LP1 are operated at +3.3 V. The OP827 op-amp in the DC compensation circuit is operated at ±12 V, and the OPT101 amplified photodiode is powered using a combination of the +12 V and -3.3 V rails to allow for bipolar operation around 0 V.

Main features of optical detector at-a-glance
Easy measurement of fluorescence in a flow-cell or 10-mm-pathlength cuvette Excellent rejection of ambient light, noise and other interferences High sensitivity and linearity over a wide range of intensities Applicable to a wide range of fluorogenic biochemical assays Modular design can be customised to accept a wide range of samples, LEDs and filters

Design files
Tables 1 and 2 contain details of the design files and software code. A complete bill of materials may be found in Table 3. Comment on costs -We note that the system was assembled from parts that we already had to hand in our laboratory, and there is substantial scope for reducing the overall bill of materials through judicious component replacements. The Teensy 4.0, OPA827, LED and colour filters together account for 88% of the bill of materials. At the time of writing, all items except the Teensy 4.0 microcontroller could be replaced by substantially cheaper alternatives without requiring any significant design changes. The £12 OPA827 op-amp used in the DC compensation circuit could be replaced by a variety of lower cost DC servo op-amps such as the Texas Instruments TL072CP, which costs approximately £1. The LED525L green LED could be replaced by a wide range of high brightness generic LEDs with similar optical output power and spectral characteristics, which are widely available for £1 or less. The long-and short-pass filters could be replaced by suitably chosen plastic colour filters at a cost of a few pounds. (Coloured 'gels' for stage lighting are a good source of low-cost colour filters, while homemade dye-sensitised titania filters are an attractive option for high-sensitivity applications where filter fluorescence must be minimised [8,9]). By making these simple component substitutions, we consider it feasible to reduce the total bill of materials to around £45 without reducing the overall performance of the system. (Indeed switching to a more optimal pairing of short-and long-pass filters can be expected to improve performance, see Fig. S1b).

Build instructions
The PCB is designed with wide traces to allow easy fabrication from double-sided copper PCB blanks using a milling machine. (The PCB used for the current work was fabricated from FR1 PCB blank using a Bantam Tools Desktop PCB milling machine with a 1/32 00 endmill and 0.005 00 PCB engraving bit; milling was carried out using the default feeds and speeds calculated by the accompanying control software). Alternatively PCB fabrication may be outsourced to a PCB service provider using the provided Gerber files. The locations, orientations and values of the components are shown in Fig. 5. A complete circuit diagram is provided in Fig. S2. All components other than the OPT101 amplified photodiode are soldered directly to the board; the OPT101 is mounted in an 8-pin DIP socket to simplify final assembly. The MCP602 and TC7660 may also be mounted in sockets, but this is not necessary. $ 10 cm leads connect the LED to the terminal block on the PCB. Note, to protect the populated PCB against accidental liquid damage during use, it is advisable to spray it with a non-conductive, conformal, acrylic coating.
All 3D-printed parts should be printed using black filament (polylactic acid [PLA] is suitable), using a layer thickness of 0.2 mm or less, and an infill of at least 10%. (The total printing time using an Anycubic i3 Mega 3D-printer was approximately four hours). Assembly of the instrument is straightforward, and is illustrated in Fig. 6a for the flow cell. The LED and OPT101 are glued into pre-formed recesses within their respective mounting plates using a small amount of hot glue. Next, the OPT101 is plugged into its socket on the PCB. The instrument is assembled by stacking the PCB and individual layers of the optical stack as shown in Fig. 6a, and slotting them -as a single unit -into the base; the optical stack is held together and retained in the base-plate by a friction fit. The flow-cell is formed using a $ 10-cm length of 2-mm-OD, 1-mm-ID semitransparent polytetrafluoroethylene (PTFE) tubing (228-4118, VWR) secured within the two 3D-printed halves using either hot glue or epoxy resin (see Fig. 6b). If required, the PTFE tubing could be replaced with more transparent fluorinated ethylene-propylene (FEP) tubing of the same dimensions, but this comes at a small cost premium. Fluidic connections to the internal tubing are made using nut-and-ferrule style Luer adaptors. The construction steps are almost identical for the cuvette holder, except the retaining clip is omitted to compensate for the greater depth of the cuvette holder. Sideby-side images of the two configurations are shown in Fig. 7.

Operating instructions
First, connect the PCB to a 20-24 V unipolar power supply, using the terminal block labelled power in Fig. 5. Then select measurement settings within the firmware and flash the microcontroller. We recommend sticking to the default sample rate of 200 kHz and the default modulation frequency of $ 410 Hz, but if necessary these can be changed by modifying the values of Fsig and Fsample in the pre-processor definitions of the file ''FluorescenceSensor.ino". The relevant locations are clearly commented.
Flashing of the firmware is most easily achieved using the Arduino IDE, which may be downloaded from https://www. arduino.cc/en/software. It is also necessary to download and install Teensyduino (https://www.pjrc.com/teensy/td_download.html) for compatibility with the Teensy 4.0. Flash the firmware by opening the firmware file ''FluorescenceSensor.ino" within the Arduino IDE, connecting the device via a USB cable, and clicking the ''Upload" button within the Arduino IDE. Once flashed, the microcontroller will output the measured lock-in amplitude R 2 at 0.1-s intervals, which can be read using the Arduino IDE's serial monitor, or using the software front-end described below. Typically, it takes several minutes for the output of an LED to stabilise after initial switch-on [10]. For the LED used here, we (conservatively) recommend waiting at least fifteen minutes before beginning measurements; other LEDs may have shorter or longer stabilisation times.
Measurements are most easily performed using the provided Python program. The software, ''SensorInterface.py", was written in Python 3.8.8, and requires installation of PyQt5, pyqtgraph, and numpy. A screenshot of the interface is shown in Fig. 8. After connecting the sensor to the PC via powered USB, and supplying 20-24 V DC power to the unit, connect to the device by typing in the correct serial address (COM4 in Fig. 8) and click ''Connect". The blank/background sample should then be loaded into the sample holder, and the desired number of 0.1-s readings to average over should be specified. To acquire a background measurement, click ''Background". The value of the background measurement and the standard deviation are displayed in the software's graphical user interface (GUI). Load a test sample and click ''Measure once" to acquire a single measurement; a checkbox determines whether or not background subtraction is carried out. Clicking ''Start Contin- uous" causes the data stream to be continuously plotted within the GUI over a user-defined time range. Checking the ''Record" checkbox causes the data stream to be saved to a comma separated variable (CSV) file; data is recorded both with and without a background subtraction. The continuous measurement can be interrupted at any time for a single measurement or a new background acquisition. 2 recorded without a cuvette in the sample holder revealed no evidence of systematic drift over periods of up to one hour, see e.g. Fig S4). The higher value of the blank signal is attributable to a combination of leakage of excitation light through the long-pass filter and filter auto-fluorescence, and could be substantially reduced by switching to an orthogonal detection   (2), mounting plate for LED and short-pass filter (3), short-pass filter (4), flow-cell assembly (5), long-pass filter (6), mounting plate for long-pass filter (7), mounting plate for amplified photodiode (8), amplified photodiode (9) and PCB (10). (The PCB is shown unpopulated for clarity). The unit is assembled by stacking together parts 1 to 10 and slotting into the base-plate (11). The ring-mounted short-pass filter (4) presses into its mounting plate (3) with a friction fit, whereas the long-pass filter is held in place via two protrusions that extend from the flow-cell assembly. The LED and photodiode package are glued into their respective mounting plates. (b) Exploded view of flow cell. The flow-cell is constructed from a short ($ 10 cm), doubled-over length of 2-mm-OD, 1-mm-ID PTFE tubing glued between two 3D-printed retaining halves. geometry and/or using a better optimised combination of short-and long-pass filters to further attenuate the unwanted light, see Fig. S1b. R b 2 represents a background signal that should be subtracted from any fluorescence measurement. Fig. 10 shows the baseline-corrected signal R cor 2 ¼ R 2 À R b 2 versus concentration for a serial dilution of the fluorescent molecule resorufin from 0.35 mM down to 54 nM. For each measurement, a solution of the dye molecule in pH-7.2 phosphate-buffered saline was injected into the flow-cell using a syringe, and the R 2 -value was recorded for ten seconds (after stabilisation) to obtain the mean and standard deviation r 2 . The samples were measured in a randomised order, rinsing the flow cell with ultra-pure water and drying with compressed air between each measurement. R cor 2 varied linearly with the concentration c of resorufin up to c ¼ 39lM, above which self-quenching led to a sub-linear response. R 2 could not be distinguished from the blank signal R b 2 at the lowest tested resorufin concentration of 54 nM. Least-squares fitting of the data to a line of the form R cor 2 ¼ mc indicated a sensitivity m of 3.50 ± 0.05 Â 10 5 a.u./M, while extrapolation to R cor 2 ¼ 2r 2 implied a 2r detection limit R corÃ 2 of 65 nM. Fig. 11 shows equivalent data to Fig. 10, obtained using a 10-mm pathlength glass cuvette in place of the flow-cell. The extended pathlength provided by the cuvette resulted in a 2.7-fold increase in sensitivity to 9.47 ± 0.01 Â 10 5 a.u./M, with successful detection down to 18 nM and an estimated 2r detection limit R corÃ 2 of 18 nM. Dividing the largest concentration in the linear range (0.35 mM) by the smallest detectable concentration (18 nM) indicated a dynamic range of approximately  2 Â 10 4 , sufficient for most diagnostic applications. [11][12][13] (For comparative purposes, we show in Fig. S5 an equivalent plot obtained using the same OPT101 amplified photodiode and Teensy 4.0 microcontroller but without the signal conditioning circuit present or the lock-in algorithm active; the resulting dose-response data showed a much higher degree of scatter due to interference from uncontrolled ambient light, rendering the data unusable).

Validation and characterisation
The detector was further applied to the detection of cholesterol, using a fluorimetric assay based on the widely used probe Amplex Red (see Fig. 12a). The enzyme cholesterol oxidase catalyses the oxidation of cholesterol to cholestenone, with the concurrent reduction of oxygen to hydrogen peroxide (H 2 O 2 ). In the presence of horseradish peroxidase, the generated H 2 O 2 Fig. 10. Background-corrected signal R cor 2 ¼ R2 À R b 2 versus resorufin concentration c over the range 54 nM to 0.35 mM, obtained using the flow-cell. The straight line represents a linear least-squares fit over the range 54 nM to 39 mM with an R 2 value of 0.9990. Above 39 mM the relationship is sublinear due to the onset of dimerisation-induced self-quenching. The 2r detection limit R corÃ 2 is 81 nM. Error bars span mean corrected signal plus or minus one standard deviation. Fig. 11. Background-corrected signal R cor 2 ¼ R2 À R b 2 versus resorufin concentration c over the range 18 nM to 0.35 mM, obtained using a 10-mm pathlength cuvette in the optical stack. The straight line represents a least-squares linear fit over the range 18 nM to 13 mM with an R 2 value of 1.0000. Above 13 mM, a sublinear relationship is observed due to self-quenching and internal filtering of resorufin in the solution. The 2r detection limit is 18 nM. Error bars span mean corrected signal plus or minus one standard deviation.
converts Amplex Red to the highly fluorescent dye molecule resorufin, with the measured fluorescence intensity being directly proportional to the initial cholesterol concentration. A stock solution of 4 U/ml cholesterol oxidase, 4 U/ml horseradish peroxidase (HRP), and 300 mM Amplex red was made up in PBS with 1% (v/v) TritonX-100. Six 1-ml aliquots were taken from the stock solution and combined with 1-ml cholesterol solutions with concentrations ranging from 780 nM to 25 mM. A negative control sample of 1% TritonX-100 in PBS (without cholesterol) was also prepared, and was used as the ''blank" sample. The cholesterol solutions were prepared in PBS and contained 1% (v/v) TritonX-100. Hence seven 2-ml samples -each having a concentration of 2 U/ml HRP, 2 U/ml cholesterol oxidase and 150 mM Amplex Red -were obtained with cholesterol concentrations ranging from 0 to 12.5 mM cholesterol. The samples were left for 30 min at room temperature for the reaction to complete, and were then loaded sequentially into the flow-cell to determine the fluorescence intensity. For each sample the lock-in amplitude R 2 was recorded for 10 s after stabilisation. Fig. 12b shows the baseline-corrected signal R cor 2 ¼ R 2 À R b 2 versus cholesterol concentration c where R b 2 is the background signal obtained with the negative control sample. Least-squares fitting of the data to a line of the form R cor 2 ¼ mc indicated a sensitivity m of 9.2 Â 10 4 a.u./M with an R 2 linear correlation coefficient of 0.9984, while extrapolation to R cor 2 ¼ 2r b 2 implied a detection limit R corÃ 2 of 200 nM -some 25,000 times lower than the typical 5-mM concentration of cholesterol in human serum (and hence sufficient for diagnostic applications) [11,12].

Human and animal rights
No human or animal subjects or samples were used.

Declaration of Competing Interest
The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.