A DIY sensor for determining the seeing in solar imaging
9 September 2021 (© N. de Hilster, P. Volman & Starry-Night.nl)
As with all types of astronomical images, the seeing plays an important role in the quality of the images in solar imaging. Although the negative effects of the seeing are immediately visible on the live image that we create with our equipment, it is better if this is also measurable and therefore quantifiable. The Solar Scintillation Seeing Monitor (SSSM) is an instrument that not only provides a numerical value for the seeing, but can also be integrated into software such as FireCapture and Genika Astro to automate the recordings. The SSSM is a product that is available from AiryLab for several hundred euros (here it is called the Solar Scintillation Monitor), but for the handy amateur astronomer to build yourself for a fraction of the price. An excellent manual for this is available on the internet. In this article we discuss the construction and use of the SSSM, including an improved sensor housing that we have developed for use in observatories.
The Solar Scintillation Seeing Monitor (SSSM) is a development of the Department of Physics of East Carolina University, in Greenville [NC], USA, and described in 2012 by E.J. Seykora in the article “An Inexpensive Solar Scintillation Seeing Monitor Circuit with Arduino Interface“. The SSSM has a silicon infrared photodiode as a sensor that measures the intensity of the sunlight. The scintillation (the fluctuation in intensity) of the sunlight is measured every half a second and an average value is determined. This value indicates the degree of seeing. During the day it is dominated by air turbulence and therefore the sensor should also be placed as close as possible to the opening of the telescope. In our project we used a BPW34 photodiode. A VTP4085H is also an option, but then the version without IR filter. The BPW34 used here has no IR filter and is therefore most sensitive in the Infrared range as shown in figure 1.
The sensor is sensitive to infrared and therefore to heat and thermal radiation from the environment. As shown in figure 2, the sensor's directional half-sensitivity is approximately 65° from normal (the direction 0°, or the sensor's optical axis, see “0°” in figure 2 and figure 6), which means that the environment can also influence the measurements. In an observatory with a dome, this means that the inside of the dome can influence the measurement. But even at an observatory with Roll-Off roof, the walls and even the observer can influence the measurement through body heat and through reflections. It is therefore important that the silicon photodiode only sees the sun and not the surroundings. As described below, we have specially developed a new housing that minimizes these influences.
The SSSM from our project can be used stand-alone as well as with a laptop or PC and works as follows:
– The silicon photodiode measures the intensity of the sun;
– An amplifier converts this small current into a measurable value;
– An Arduino Pro Micro converts that voltage into data;
– This data can be read out via a USB connection with a PC or laptop and even operate the acquisition software such as FireCapture;
– Thanks to the built-in OLED display, the SSSM can also be used as a stand-alone (see figure 3).
The SSSM schematic
Figure 4 shows the schematic as we made it using the BPW34 as a sensor. The signal from the sensor goes to Opamp 1, the blue line. The sensitivity of the sensor is set with the potentiometer. This can be set very accurately by using a 30 turn potentiometer. The LMC6484 is a Quad Rail-to-Rail input and output Opamp.
The SSSM schematic
Opamp 1 amplifies the signal from the sensor and compares it to a reference voltage equal to half the supply voltage. That reference voltage becomes the zero line of the signal, the orange lines in the diagram, and is created by resistors R2 and R3. It is important that the two resistors R2 and R3 have equal values and tolerances. The signal from the sensor can now go below and above that zero line. With Opamp 2, the signal is further amplified and indicates a positive analogue value on the A0 line of the Arduino. With A0 the input value of our signal is determined.
The output of Opamp 1 also goes through a high-pass filter, C2 and R4, to the Opamp 3 and is again compared with the reference voltage. The high-pass filter ensures that only the fluctuations in the signal are passed on and amplified, the light blue line in the diagram. The Opamp 4 turns this into a positive analogue signal that is put on A1 of the Arduino. With this signal, the seeing is calculated from the variations of the signal. Note that the C2 is a 3.3uF Bi-polar capacitor. So it has no + and – connection. Small sizes in this value are hard to get, but can also be assembled. We finally did that with 3x 2.2uF, 2 in series and 1 in parallel over that. The resistor R1 is also difficult to get, but can be made again with 2x 10Mohm in series.
The processor is an Arduino Pro Micro ATmega32U4 board in the 5V 16MHz version. Make sure you take the 5V version. The Quad Rail-to-Rail Opamp and the OLED display also work on that 5V voltage. The input signal is set with the potentiometer. Do this with good seeing, point the sensor at the sun and with the potentiometer the value is set just below 1, for example 0.98, the reading must always be within 0.5 and 1.5, below the 0.0 the value LOW is displayed on the screen and above 2.00 the value HIGH appears on the screen.
In the schematic, Opamp 3 and 4 are used to capture the variations in intensity. The measurement takes place every half a second and an average value is determined in the software. This value is called variation or seeing, which has a value of 1 or higher. The lower the value, the better the seeing. The value produced by the SSSM can be used in the acquisition software to trigger the recording, where both a lower and upper limit can be set. Values above the upper limit are considered poor seeing and the recording will stop. As soon as the value falls below the lower limit for a defined period of time, recording is started. The Arduino is equipped with a USB micro B port that functions as a power and communication port. In a stand-alone system, the Arduino Pro Micro can be powered externally on the RAW port. The input voltage of this RAW port is not the same for all versions of the Arduino Pro Micro. Some boards go from 5V to a maximum of 9V and other boards can go up to a maximum of 12V. In our version we have therefore decided to install an extra 5V stabilization IC so that an input voltage of 6 to 12V can be used without the Arduino going up in smoke, which has already happened to us.
As can be seen in the diagram, the SSSM consists of only a handful of parts, which can be put together compactly. This keeps the connections short and side effects due to malfunctions are kept to a minimum. On the SolarChat forum there are designs with long wires, which is not recommended. Especially the connection to the sensor must be well shielded. With an RCA plug connection you can use the so-called diode cables for audio, which are well shielded and are available in different lengths.
Everyone is free to create their own design. Usually this also has to do with what kind of parts are already in stock and how you want to place them. In our design we used a piece of mounting print of 55x43mm as a basis (see figure 5). That's all there is to it. The Arduino is under the display and the USB micro B is then placed on the side of the PCB and therefore also in the box. The connections of A0 and A1 are at the bottom of the PCB and the I2C bus, D2 and D3 of the Arduino, are at the top and can be connected 1 to 1 to the display. This makes the design nice and small and compact. In the original design, the sensor is placed in a tulip-plug and it is fine to use in an open environment, but with an observatory with a dome or roll-off roof, the environment can influence the sensor due to the large opening angle of ±65°. we decided to place the sensor in a separate housing, as discussed below.
The sensor housing
In order to eliminate unwanted influence from the immediate environment around the sensor, we decided to give the diode a special housing (see figure 6). In the original design, the diode is contained in a simple housing, which allows it to receive light from all directions (see red sensor in figure 7). As described above, the sensor still has a sensitivity of 50% in the direction 65° from the normal.
The housing we designed only allows radiation to about 9° around the sensor's normal (green lines in figure 6), where the light coming straight from the front to about 5° from the normal arrives directly at the sensor (blue lines) and the light from directions between 5° and 9° from the normal hits the sensor by reflection from the inner tube reaches. Light with an incidence angle greater than 10° (red lines) enters the chamber around that central tube and will die there, while light with an incidence angle greater than approximately 36° (red lines) cannot enter the sensor housing. A white reflector on the front prevents the sensor housing from heating up and thus still sending a signal to the sensor. This reflector was deliberately chosen to be larger in diameter than the sensor housing, so that when observing at the sun's limb, the side of the sensor is still in the shadow of the reflector.
The housing of the sensor is assembled with a single threaded connection. An internal bush presses the printed circuit board with the sensor and a plastic plate with the RCA plug firmly in place. The cinch plug is mounted on plastic, so that the sensor can be connected to the Arduino completely isolated from the other equipment. Finally, the sensor housing has been given a foot with which it is mounted between the telescopes on the side-by-side plate (see figure 7). Just like the electronics, the sensor housing is also manufactured in our own workshop.
The Arduino software
The basic version V1.1 by Joachim Stehle is used for the Arduino sketch software. On this page you can also find the FireCapture Plugin v0.92 and the associated manual. Joachim Stehle's Sketch has been adapted for Ian Lauwerys in version V1.2 In this Ian has integrated the OLED display with SPI bus. We have adapted the Arduino sketch by Ian Lauwerys for the OLED 128×64 screen with I2C bus. This eventually became version 1.4 by Paul Volman, in which the OLED screen can be controlled in text and graphic mode or only in text mode. In the original designs, different screens are used, some can only display text, but graphical screens are also chosen. We have decided to use one OLED 128×64 0.96 inch white screen with an I2C bus. This screen is controlled with the Adafruit SSD1306 driver on the Arduino. This driver, together with the Adafruit GFX and the Adafruit BusIO, must first be downloaded in the library of the Arduino sketch software, under Tools -> Manage Libraries…, before you can upload the software in the Arduino. An adjustment has been made for this OLED screen in our sketch software. On line 65 you can choose text and graphics (#define OLED_I2C).
Software for the Solar Scintillation Seeing Monitor can be found on various forums with which the SSSM can be read on a PC or Laptop. Our choice fell on the software written by Paul de Backer, which is available for Windows, Linux and MAC to read the SSSM on a PC or laptop. Of course it can also be written or adapted for your own use.
The values of the input and seeing are sent to a PC or Laptop via the USB port. For the FireCapture Plugin it is necessary that the texts “A1:” and “A0:” are sent along. Changing the message that the USB port sends out can be set in line 60 of the sketch by changing the value of MODE.
– MODE 1 outputs a readable text and value from the USB port as shown in the adjacent screenshot. By default, this text is in English, but you can of course also change that. You do this in the sketch on line 731 and line 733.
– Mode 2 is for the FireCapture Plugin the aforementioned A1: and A0: text.
– MODE 3 has not yet been fully implemented in the software.
If line 60 in the sketch is disabled by prefixing // then the information from the USB port will also be disabled and no more values will be passed on to a PC or laptop. Only the value on the OLED screen can then be read. You only do this mode setting when the SSSM is used as a stand-alone. If you want to test the SSSM and check the settings of the OLED screen, it is possible to turn on the Debugger. You do this in line 145 by removing the //, then DEBUG_SSM is active and extra data is sent to the OLED screen and the USB port. Line 145 of the SSSM must be disabled for normal operation.
Calibrating the SSSM
Before the SSSM can be used, it must first be calibrated. This is done with potentiometer P1. The advice is to use a multi-turn potentiometer for this potentiometer so that the adjustment can be done more accurately. The potentiometer in our project is a 30 turn potentiometer.
Adjustment is as follows: In good weather, point the sensor towards the sun. With the potentiometer P1 we now set the 'Input:' value on the screen. Make sure it stays slightly below 1.00, for example 0.98. In the top right corner the input value is shown in a graph. The graph scrolls from right to left, so the right value is the newest value. If 'LOW' appears in this graph, the input value has fallen below 0.00. If this screen shows 'HIGH', then the input value is higher than 2.00. In a normal situation the value will be between 0.50 and 1.5. Wait a few moments for the change to stabilize. If, for whatever reason, the value cannot be set properly or if it always comes out too high or too low, the INTENSITY_OFFSET can be changed in the sketch on line 55 by setting the value of 0.
Now we can also read the value of the seeing on the display and the graphical representation of this will appear in the graph at the bottom of the OLED screen. Here too, the graph shifts from right to left, so the right value is the most recent. The seeing will normally fall within a value of 1 to 10 in sunshine. A low value indicates good seeing, a higher value indicates poor seeing or cloud cover. With an input signal of 1.00, the seeing may not exceed 10.0. If this is the case, then there is also for the seeing an offset value, we can change this in line 56 of the sketch by changing the VARIATION_OFFSET value, here too we can enter a positive or negative number. Also for this rule applies that normally the value of -0.05 does not need to be changed.
If everything works properly and is connected, this could be the result:
Parts order list
1x LMC6484 Quad Rail-to-Rail Opamp
1x Light sensor BPW34 silicon IR Photodiode
1x Arduino Pro Micro ATmega32U4 5V 16MHz with headers
1x OLED 128×64 0.96inch White I2C display
1x potentiometer 2Kohm 30 turns
2x resistors of 10Kohm
1x resistor of 47Kohm
1x resistor of 20Mohm
1x Bi-polar capacitor of 3.3uF
1x capacitor of 20pF
1x 14pin IC base
1x mounting print
1x housing Hammond 1552 Gray ABS 70x50x22mm
1x LM78L05 voltage stabilizer 5V
2x RCA plug chassis female
1x Audio diode cable with 2x male RCA plugs
1x Power plug chassis 5 .5/2.1mm
1x USB-A to USB micro B cable
If you have any questions and/or remarks please let me know.
InFINNity Deck... Astrophotography... Astro-Software... Astro Reach-out... Equipment... White papers...
Balancing system Camera centring errors Collimator construction Dome Azimuth Calculation Filter focus-offsets RC Collimation Removing lens artefacts Removing Newton-rings Solar Seeing Monitor (DIY) Stability measurements