PULSE : Profiling Underwater Light SEnsor

A multi-sensor vertical water profiler to measure light availability and the processes affecting it.

Similar projects worth following
The goal of this project is to develop a low cost, portable, compact light sensor to measure vertical patterns of photosynthetically active radiation (PAR). The instrument will be designed to be easily operated from just about any platform, boat, kayak, canoe or even an inner tube. From these measurements the downwelling attenuation coefficient (Kd) can be calculated, which describes the rate at which light is lost as it moves through water, an important indicator of light availability. In an effort to explain the changes in light availability the instrument will also include two fluorometers, to estimate relative or absolute concentrations of chlorophyll and colored dissolved organic matter (CDOM), and a backscattering sensor to estimate turbidity.

Light availability is an important characteristic of aquatic ecosystems and is particularly important for photosynthesizing organisms, like submerged aquatic vegetation, and organisms which rely on them for food and/or shelter. Changes in light availability can significantly impact ecosystem functioning in both freshwater and marine environments. The causes of changes in light availability are numerous but can commonly be attributed to algal blooms, suspended sediments or dissolved substances. These phenomena can be caused by both natural events, like nutrient upwelling, or human activity, such as increases nutrient deposition (fertilizers, sewage discharge…) and sediment laden runoff from impervious surfaces. Despite the importance of light availability, directly and accurately measuring the optical properties of water is costly due to the expensive equipment required, furthermore many current instruments are large and unwieldy making operation offshore difficult without boat. PULSE will allow citizens to actively monitor important properites of their local waterbodies for changes that may have damaging ecological effects and allow for more rapid mitigation.


Kirk J.T.O. (2011). Light and Photosynthesis in Aquatic Ecosystems 3rd Ed. Cambridge University Press.


The instrument will consist of two components: a base station and a profiler.

Base station

The base station serves two functions, the first is to concurrently measure light intensity at the surface while the profiler is traversing the water column and to record the measurement location using a GPS receiver. In theory, under unchanging sky conditions, a base station isn’t necessary because we can use the above water irradiance values from the profiler. However perfectly clear skies are not common therefore being able to account for these changes during measurement is important.


The profiler is used to measure light levels throughout the water column. It consists of five sensors: one cosine corrected photodiode to measure downwelling PAR, two filtered photodiodes to measure chlorophyll and CDOM fluorescence, a photodiode to measure backscattered light and pressure sensor to measure depth.

While doing some research for the enclosure design I came across the Cave Pearl Project, from the Hackaday Prize 2015, and took inspiration from Edward’s design. Because I need custom sized ports on the top and bottom of the profilers for the photodiodes, LEDs and pressure sensor, I decided to 3D print the caps along with the collars onto which the caps will be bolted.

I’m testing out methods to waterproof and strengthen the 3D printed parts using epoxy resin. To provide a seal between the caps and the collar I plan on using silicone for the gasket. The body of the enclosure itself is made from a 2’’ PVC coupler which is wide enough to fit the electronic components inside (Arduino Uno, shield and batteries). In reality I only need one of the two caps to be removable and could have epoxied bottom cap to the PVC coupling but I want to have easy access to the photodiodes and LED on the bottom. More on the design of the enclosure at a later date.

The image below is a very crude mockup of what I envision the circuitry of the profiler will be. The wiring is just symbolic and it is missing a lot of accessory components but the major components are there. The SD card board will be used to record all the sensor values along with the RTC times. The times from the RTC will be used to link the PAR values from the profiler with those from the base station at the surface. Op amps will be used to convert the current from the photodiodes to voltages and transistors will be used to control the fluorometer and backscatter LEDs.

Materials related to PULSE: Profiling Underwater Light SEnsor are licensed under:

Creative Commons Attribution Share-Alike 4.0 License


Eagle board file for the variable gain photodiode testing board.

brd - 43.54 kB - 07/10/2016 at 23:16


  • 2 × Arduino UNO
  • 4 × Vishay BPW 20 Photodiode
  • 1 × 2mm thick PTFE sheeting
  • 5 × CA3140EZ op amp Amplifier and Linear ICs / Operational Amplifiers
  • 2 × SN74LV4051A 8-Channel Analog Multiplexer

View all 13 components

  • Profiler body testing

    Adam07/13/2016 at 02:38 0 comments

    Short log here but as I laid out in the project description my plan is is to use 3D printed parts to build the water proof enclosure for the profiler that will contain all the electronics. The base station, which I have not discussed very much will also built with 3D printed parts and needs to be waterproof as well. Several weeks ago I printed some parts using PLA to do some strength and waterproofing tested. The images below show the collar and cap for the top of the profiler which has an opening for the downwelling irradiance sensor.

    The eye bolts serve two purposes, first to tighten and clamp down against the collar to provide a watertight seal and as tie points for the line used to lower and raise the profiler. As you can seen from the images below the printed part straight off the bed is not strong enough to withstand the force of bolts and washer are putting on it and the layers splits.

    I then tested out a previous version of the cap that I coated in Bondo epoxy resin. It's impossible to tell from the picture below but the bolts were significantly tighter than from the previous test, in fact is was so tight that the collar, which contains the nut that the bolt threads into and was not coated in resin, begin to split.

    These tests show promise for the resin coated parts in strengthening the the plastic. More updates on this to come as I continue to design the profiler body.

  • Fluorometer testing continued...

    Adam07/05/2016 at 18:19 0 comments

    Because I was unable to detect a chlorophyll fluorescence signal last week from the water I sampled from a local lake I decided to try and extract chlorophyll from some leaves to do some testing. I picked some lettuce from my garden and cut it up with scissors and ground the leaves in rubbing alcohol with a mortar and pestle to break down the tissue I filtered the ground up leaves into a vial to remove any solid tissue.

    I then “centrifuged” the vial by putting it in a bag and spinning it around for

    a minute, I then let the vial sit for about 10min in a fridge to let the rest of the tissue settle out.

    Not only did I want to measure fluorescence but I also wanted to see how the fluorescence signal varied with different concentrations of chlorophyll. An important feature of the profiler is the ability to relate fluorescence magnitude to chlorophyll concentration. Because I did not know the true concentration of chlorophyll I made measurements on different relative concentrations by filling equally sized vials with between 1-5mL of chlorophyll extract and filling the rest of the vials with water.

    "Pure" chlorophyll extract

    Diluted chlorophyll extract

    I used a similar set up as last week to illuminate the vials with 470nm LED and measure the water leaving signal using a spectrometer.

    The figure below shows the results. As you can see with increased concentration of chlorophyll extract the fluorescence signal also increases.

    What this shows is that the LED is able to induce fluorescence and that the signal can be measured with a spectrometer, however the true test is whether the signal can be measured using a broadband photodiode.

    In order to measure the fluorescence signal using a photodiode I needed to block out the light emitted by the LED. I used a cheap Roscolux filter to block out any light with wavelength a less than ~620nm as was done by Leeuw et al. 2016 in their fluorometer.

    They used a # 19 filter in their design while I used the # 25 filter as it has a slightly high cutoff, which is important because the photodiode I am using has a higher emission peak than theirs (470 vs 420nm).

    I then went ahead and measured fluorescence signal of each of the vials of chlorophyll extract. I made the measurement 3 times for each vial to get and average value.

    The graphs below show the results of the photodiode fluorescence measurements.

    The graph on the left show the relationship between chlorophyll concentration and voltage from the op-amp circuit. With increasing concentration of extract the fluorescence signal measured by the photodiode increases. However there is an anomaly for the measurement of the 4mL vial where the measured value is not greater than the 3mL vial as would be expected. This was also seen in the measurements made by the spectrometer which leads me to believe that the measurements from both are correct and that when I prepared the vials I made an error. Regardless whats nice is that the measurements from the photodiode are highly correlated to the measurements of the fluorescence signal made by the spectrometer (right graph).


    Leeuw, T.; Boss, E.S.; Wright, D.L. In situ Measurements of Phytoplankton Fluorescence Using Low Cost Electronics. Sensors 2013, 13, 7872-7883.

  • Fluorometer and backscatter component testing

    Adam06/29/2016 at 18:28 0 comments

    The LEDs for the fluorometer and backscatter sensor recently arrived and I measured their spectral output to make sure they were as advertised. I ordered the chlorophyll fluorometer LED and backscatter LEDs through Mouser so I was pretty confident that the specs were accurate. In my original design had had only included one NIR LED for backscatter measurement but I decided to add a second at a different wavelength because it might be able to provide information about particle size distribution. The CDOM LED, which has a peak at about 370nm, I got from eBay and was less confident about its spectral output.

    I made the measurements using a small spectrometer with the LED pointing at a diffuse white panel and measured the reflected light.

    The figure below shows the normalized outputs for each of the LEDs.

    You can see that for the most part the spectral emittances of the LEDs are accurate. However, there is some emitted light in the visible spectrum by the UV LED. I have a suspicion that output in the range ~500-600nm is caused by fluoresence induced by the UV signal. Knowing this is important because this is close to the wavelength band were CDOM fluoresces, 460nm, and may result in over estimation of CDOM concentration. To account for this I plan on placing a filter in front of the UV LED to block visible light emmision.

    After testing the LEDs I decided to collect some water from a local lake and see if I could induce chlorophyll or CDOM fluorescence and measure backscattered light.

    We recently had a large thunderstorm and there is a lot of suspended sediment in the water.

    I placed the water in small vials and illuminated them from below with an LED and pointed a fiber optic cable connected to a spectrometer at the side of the vial. In the profiler the light will be measured with a photodiode, but for testing purposes using a spectrometer is valuable because it provides information about the spectral response of the emitted light.

    As a comparison I also filled a vial with distilled water and recorded spectra while illuminated with the LEDS to get baseline measurements. The figure below shows the results from the infrared LED measurements.

    As expected the magnitude of radiation measured by the spectrometer is much greater in the lake water compared to the baseline DI water due to scattering of light by the suspended sediment. One thing to note is that the power output of the 940nm LED is lower than the 840nm LED causing a lower SNR, which is evident in the graph.

    The results from the UV and blue fluorescence LEDs showed similar trends indicating that light measured by the spectrometer was just light scattered by the suspended sediments and not light fluoresced at a longer wavelengths from chlorophyll or CDOM. What this means is that water I collected likely contained very little to no chlorophyll and/or CDOM. Next week I plan on either extracting chlorophyll and CDOM or finding water bodies with higher levels of both to test the abilities of the LEDs to induce fluorescence.

  • PAR Sensor Circuit Testing

    Adam06/20/2016 at 19:22 0 comments

    To test whether the variable gain circuit was working properly I placed the PAR sensor under a light and programmed the Arduino to continuously cycle through the each of the feedback resistors and read the resultant voltage. I did this under different light levels by moving the lamp progressively closer to the sensor. At each light level I recorded the DN associated with each feedback resistor. If the circuit is working correctly then the ratio of the outputs from two differently valued feedback resistors should be the same as the ratio of their resistances. Ex. The output of a 1 MOhm feedback resistor should be 1/10th of the output using a 10 MOhm resistor, +/- their tolerances.

    I did the initial set of tests on the op amp circuit without feedback capacitors and found that at high light levels the large feedback resistors (10 and 1 MOhms) resulted in wildly oscillating values. To try and remedy this I went ahead and soldered up another board this time with a 10 pF capacitor in parallel with each of the feedback resistors, which seemed to solve the problem. The picture below shows a both mux circuits with and without the feedback capacitors.

    The figure below shows the output of the op-amp for each of the feedback resistors along the light level gradient. One thing to note is that for the 22kOhm resistor there is no data, for some reason it wasn't working correctly I think I messed the resistor up or the mux pin connected to it while soldering the circuit. You can seen that after a certain light intensity the feedback resistors saturate which makes having multiple resistors very valuable, same for the opposite effect at low light levels where there is no/very little response.

  • PAR Sensor Circuit

    Adam06/14/2016 at 03:19 0 comments

    I haven’t yet gone over the design of the circuit for the profiler yet but hope to get to it in a few days. Generally, it’ll be based around and Arduino Uno with a custom shield that will contain components to drive the LEDs, amplify the signal from the photodiodes, and so forth. One of the components is the op amp that will be used to convert the current generated by the photodiode to a voltage. Because the light levels will be variable at both the surface and throughout the water column I need to be able to adjust the gain of the sensor without actually changing the feedback resistor. I initially considered using a digital potentiometer to adjust the gain but found that the high resistance values needed for the op-amp (Mohm – Gohm range) made this challenging as most digital pots max out at around 1 Mohm, furthermore the tolerances are generally unacceptably high (~30%). I came across an op amp circuit here where a multiplexer was used to switch between different feedback resistors and decided to give it a try.


    After initial success on a breadboard I designed a PCB in Eagle to do some further testing. The circuit uses an 8 channel SN74LV4051AN mux and a CA3140EZ op-amp giving me 8 different gain values. The mux is powered by the 5v line from the Arduino, while the op amp is powered by an external power source. The 3 pins at the top of the circuits are for a header to connect the photodiode, the photodiode only has two leads while the header was designed to accommodate the space between them. Pins A-C connect to the selector line of the mux and are set by 3 digital pins on the Arduino.

    Currently I don't have any feedback capacitors in the circuit and didn't specifically design it to accommodate them but I will need them and figure for the time being I can just solder them in parallel with the resistors as the holes are large enough to fit both the capacitor and resistor pins. One of the reasons I have not done so yet is that I am unsure of the values to use, and for testing purposes now the circuit seems to work reasonably well.


    More to come.........

  • Design and testing of the PAR sensor

    Adam06/08/2016 at 18:10 0 comments

    The most important component of the profiler is the PAR sensor which is using to measure downwelling irradiance at the surface and through the water column. In order to measure downwelling irradiance the sensor must measure light across the entire upward looking hemisphere and the irradiance must be weighted by the cosine of the angle of incidence, according to Lambert’s Cosine law. Diffusers made from materials like acrylic, Teflon or plastic are commonly placed over the photodiode to achieve a cosine corrected response. Additionally, a filter is needed to get the correct spectral response (400-700 nm) from the sensor.

    Diffusing disk

    I cut the diffusing disk from a 2mm thick piece of PTFE using a cork borer which had an inner diameter of about 10mm. By rotating the borer while applying downward pressure I was able to get perfectly round disks. To get a clean cut its important the borer be sharp and held perpendicular to the sheet of PTFE.

    Visible bandpass filter

    The visible bandpass filter is an important part of the PAR sensor because it restricts the wavelengths of light reaching the photodiode to those used in photosynthesis (400-700 nm). I found some UV-IR cut filters on eBay for cheap and decided to try them out. Details about the spectral characteristics of the filters were sparse so I measured the transmissivity of the filters myself using a spectrometer.

    You can see the the filter cuts off a bit short of 700 nm which is not ideal but without spending a lot more money I don’t think I’ll be able to do any better, so for now I’m going to stick with them


    I’m using a Vishay BPW 20 photodiode to measure the light levels in the PAR sensor it’s a cheap (~$6) sensor that has sensitivity between 375 – 1175 nm. For the purpose of testing the cosine response of the sensor I connected the photodiode to an amplifier circuit using CA3140EZ op amp. I will go into more detail about the op amp circuit in the next project log.


    To test the cosine response, I set the sensor up on an optical bench at the base of a large arm with a solar lamp at the end. The arm was mounted to allow it to swing about its base and the angle of the arm relative to the surface of the cosine receptor was measured using a digital protractor.

    I the moved the lamp from directly above the sensor ( 0°) to perpendicular ( 90°) while recording the output voltage of the circuit at different angles along the way.

    The figure below shows the measured response of the detector compared to that of an ideal cosine response. I was really happy will this outcome and don't think I can realistically do any better.

    One difference to note between my design and that of commercially available sensors is that my diffuser is flush with the surface of the casing whereas normally you would see that the diffuser set a bit proud. The reason this is done is because at low incidence angles the diffusing material acts more like a specular reflector causing light to bounce off the surface rather than being transmitted through. By raising the diffuser a bit this loss is compensated for by light which enters the disc through the side wall. Sensors designed this way also have a raised rim around the diffuser to block any light parallel to the surface of the disc where the incidence angle is 90° and the irradiance on the surface should be zero (cosine(90°) = 0).

View all 6 project logs

Enjoy this project?



Mark Jeronimus wrote 02/18/2021 at 16:27 point

The Vishay sensor you're using has a very bad spectral response for PAR measurements. It almost cuts out all of the blues. This causes light sources with the same PAR to read differently with your sensor (e.g. HPS vs CMH bulbs). I've seen sensors that were better in the blue region, attenuating to at most 40% (instead of the ~30% of the BPW 20), which is still not ideal.

Furthermore, the bandpass filter you're using cuts too much of the reds. 650-670nm is an important wavelength in LED fixtures. Your filter blocks almost all of it.

  Are you sure? yes | no

Julien Blomme wrote 12/11/2018 at 22:07 point

So cool dude ! Thanks for sharing this ! I am trying to replicate your work to build a PAR meter for measuring light intensity under my greenhouse. I would like to know why you used two power supply ? (the 5Vdc of the Arduino to supply the mux/demux and the external one to supply the AOP as you could have used the 5Vdc of the Arduino to supply both chips) .. Could I get the code you used for the arduino multiplexing as well as the schematic related to the board to better understand how it works ? Thank you

  Are you sure? yes | no

joshagirgis wrote 09/05/2018 at 19:03 point

What does the circuit for the fluorometer photodiode look like? I tried replicating the one made by Leeuw et al but to the circuit did not work.

  Are you sure? yes | no

Adam wrote 09/10/2018 at 00:31 point

  Are you sure? yes | no

Max Kviatkouski wrote 08/01/2018 at 06:03 point

Hi Adam, while doing this project have you come across any robust ways to measure water transparency/turbidity by any chance?

  Are you sure? yes | no

Adam wrote 09/10/2018 at 00:29 point

Most of the methods I found use some type of emitter/detector setup to measure backscattered light. Here is a good overview:

  Are you sure? yes | no

Fred Fourie wrote 07/02/2018 at 05:24 point

Incredible project. Is it still going? Very interested to hear some more about the progress and testing.

  Are you sure? yes | no

Adam wrote 07/07/2018 at 13:33 point

Thanks, unfortunately I had to put this project on the back burner, so not much progress has been made, but 'm hoping to be able to return to it one of these days.

  Are you sure? yes | no

Fred Fourie wrote 08/01/2018 at 05:53 point

I really hope you do or at the very least pass the torch. This could be very valuable. Good luck!

  Are you sure? yes | no

shawn hinz wrote 10/29/2017 at 11:16 point

Very cool.  We are starting a similar project but with fluorescence measurements of sediments/benthos and looking for help.  Send a PM to me if interested.  We have grant funding and possible scale for capital.

  Are you sure? yes | no

Andrej Mosat wrote 09/23/2017 at 19:22 point

Love the simple, affordable engineering. In our area, we have tremendous problems with sewage water runoff into streams and lakes. Any thoughts on possible affordable methods of detection of sewage / E.coli / or just simple informative  percentage of household wastewater being present? This is a complex matter, but the water here smells like detergent or laundry. Are there possible fluorescence properties of detergents, or does absorbance in certain wavelengths tell a story of the levels of dirtiness? Thank you for any hints.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates