Need help with wiring my pyranometer to Arduino Due

Hi All,

For my PhD project I need to measure shortwave radiation. I have two pyranometers from Apogee Instruments (Thermopile Pyranometer Support | Apogee Instruments).

The aim is to connect there to an Arduino Due to log data.

I am completely new to electronics/wiring.

Can someone please explain to me how I can connect the 5 wires from my sensor to the Arduino.

Let us know the type number of your pyranometer along with serial number (SN) as the wiring configuration differs with SN variation what the Product Manual is saying. If possible, post the pictures of your sensors.
Is it --

These are:


SP-510 with Serial Numbers range 1270 and above, and SP-610 with Serial Numbers 1094 and above apply to my sensors

I don't need the heater and I checked with the supplier and they said I can run it without connecting the heater wires.

Looks like the sensor puts out an analog signal of < 100mV. Using an Aruino's ADC with its typical 10 bit resolution (depending on the Arduino!) I'd suggest amplifying the signal before feeding it into an ADC.

What kind of resolution do you need? How far will the Arduino need to be mounted from the sensor, or can it be mounted directly next to it? How much space is available? How far do the sensors need to be mounted apart from each other?

1. The Product Manual says that the sensor is self-powered -- what does it mean?

2. Can you check the functionality of your sensor using a simple DVM (Digital Volt Meter) which can measure micro-volt (with out heater voltage)?
Connect the leads of DVM bewteen While and Black wires of the sensor.
Have a Light source and then change the position of the sensor relative to the light source. Check that the DVM shows changing voltage. Note that the sensor produces only 0.035 mV signal for a radiation level of 1 W/m square.

3. Probably, the sensor produces differential output. If so, you need an intrument amplifier to boost the signal before it can be applied to a suitable analog channel.

4. If using DUE with 12-bit ADC and default Vref = 3.3V, then the resolution is: 0.805 mV. The DUE is not still sutiable for your measurement compare to the resolution of 0.035 mV of your sensor.

@anon35827816: The Arduino Due can be set to a 12 bit resolution. I also bought an amplifying shield.

But first, I want to be able to just connect the sensor regardless of the resolution.

The Arduino will be mounted close to the sensor.

What I need help with is: my sensor (SP-510 & SP-610) take differential measurements. I would like to know how I can connect the positive and negative sensor wires and ground wire to the Arduino.

the Arduino does not have a very high resolution analog to digital converter (specifications listed here: and has very limited input voltage ranges (either 0-5 V DC or 0-3.3 VDC). This relatively large voltage range, combined with a relatively low resolution means that Arduinos may not be able to pick up minute changes in radiation from the analog sensors, since the sensor outputs are extremely small (in the range of µV and mV). From what I can tell, Arduinos can have an analog to digital converter resolution of either 10 or 12 bits, depending on their configurations (model Zero, Due and MKR boards according to the link above). This means that the smallest "step", or change in voltage that an Arduino can measure is 3.22 mV (10 bit resolution) or 0.80 mV (12 bit resolution). Since the SP-510/610 and SL-510/620 sensors have extremely small voltage signals, this means that the smallest change in radiation that you will be able to measure using an Arduino and analog sensors is given in the table below:

I am fine with these measurement steps for now.

Later I will try to improve the resolution.

Hi @GolamMostafa ,

  1. No power supply is necessary (that's what I think!!)

  2. Thanks for this idea. Will check it!

Give a link to your amplifing shield and then wait to receive the connection diagram among sensor, amplifier and DUE.

This not idea, but technical fact.

@GolamMostafa thank you for your replies.

This is the proposed connection diagram (Fig-1). The I2C address of the Module is 0x48 (1001000) when ADDR-pin tied to LOW. You need exteranl pull-up resistors if using Arduino UNO.


I agree with this solution. It will work. Just set the ADS1115 to the lowest gain level / FSR. A bit of amplification would optimize the resolution of the system, but without this you'd already get something like 12-13 bits without much hassle using this setup. It'll likely be good enough anyway.

If/when using the ADS1115, I recommend Rob Tillaart's Arduino library; it's excellent. GitHub - RobTillaart/ADS1X15: Arduino library for ADS1015 = I2C 12 bit ADC and ADS1115 = I2C 16 bit ADC

If no ADS1115 or similar ADC is used that offers differential measurement out of the box, you can always try connecting the differential - lead to GND and the differential + to the ADC input. Since a thermopile pyranometer will only swing a positive signal anyway, it'll be safe and it may work fairly well, although attention to a proper grounding layout is necessary (separate analog signal ground from 'dirty' digital & power grounds, only connect them in 1 place)...but this is essential anyway when working with small analog signals.

I can imagine that looks fine. The question is if you'll actually achieve this. In a perfect world, you can actually make use of the 10/12 bits of ADC resolution you've got, but the world isn't perfect. This requires a very clean signal that's fed into the ADC and preferably at a lower impedance than the sensor itself will provide. So the amplification board you spoke of will prove to be useful, I think. What type did you get? Got a link to it or a datasheet?

How much Gain is to be set for the PGA?
1. The sensor resolution is: 0.035 mV for radiation level of 1 W/m square.
2. Default PGA gain is 2 with Full Scale: +/- 2.048 V.
3. At setting of Step-2, 0.035 mV ouput of the sensor will genertae ADC value of (32767/2048)*0.035 =~ 0.56 = 0 count for radiation level of 1 W/m square.

4. Let us set PGA setting at gain 16 with Full Scale +/-0.256 V; as a reullt, 0.035 mV ouput of the sensor will generate ADC value of (32767/256)*0.035 =~ 4 to 5 counts for radiation
level of 1 W/m square.

I have the ADS1115

Let me try this out and see how far I get.

Thank you for your replies!

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.