Due to the lapse in federal government funding, NASA is not updating this website. We sincerely regret this inconvenience.

Menu Close

The STELLA-Q2 represents the most accessible entry point into NASA’s Science and Technology Education for Land/Life Assessment instrument family. This ultra-portable device (just 33g bare, 108g with housing) requires absolutely no tools for assembly—simply connect seven components with four small cables, load the CircuitPython interpreter and STELLA software, and you’re ready to collect data.

The STELLA-Q2 features three spectrometer sensors that measure irradiance in the visible and near-infrared spectrum. Its connector-only design eliminates the need for soldering, making it ideal for classroom settings and students new to scientific instrumentation. The lightweight construction has been successfully tested on consumer-level UAVs, extending its research potential to aerial applications.

Housed in an optional 3D-printed case and mountable on common items like a paint stick for field use, the STELLA-Q2 makes remote sensing technology accessible to learners of all ages while introducing fundamental concepts in engineering, programming, and environmental science.

To build your own STELLA-Q2 download the STELLA-Q2 files and follow the build steps.

STELLA-Q2 Highlights

Inna and Alexa with STELLA instrumentation logo in background

When Inna and Alexa first encountered NASA's STELLA instruments, neither expected the transformative journey ahead—from …

Inna Shapovalenko and Alexa Matson showing off STELLAs

Inna Shapovalenko and Alexa Matson's collaborative journey with the STELLA project showcases how open-source engineering …

Bianca Cilento STELLA logo

The culmination of Bianca's calibration work may be a research paper that establishes STELLA's credibility …

STELLA-Q2 Build Steps

LineQTYItemCost each ($)ManufacturerManufacturer PN
11Thing Plus RP204020SparkFunDEV-17745
21TRIAD spectral sensor70SparkFunSEN-15050
31PCF8523 real time clock5Adafruit5189
41CR1220 battery for clock module1widely availableCR1220
51128x32 OLED display12.5Adafruit4440
61i2c button5SparkFunBOB-16842
74qwiic cables, 100mm1Adafruit4210
81battery disconnect switch3Adafruit3064
9* not used with 3D printed case1cylindrical battery, 2200mAh10Adafruit1781
101USB C cable5SparkFunCAB-16905
111micro SD card10Adafruit1294
121micro SD card reader7Adafruit5212
13* used with 3D printed case1Lithium Ion Polymer Battery - 3.7V 400mAh7Adafruit3898

1. Download the latest STELLA-Q2 FILES.ZIP from the webpage

2. Print the diagram full size on a single sheet of regular office paper.

3. Print the plastic parts.

4. Remove the scaffolding from the parts. (Scaffolding photos)

5. Lay the electronics parts out on the diagram. (Build 1 photo)

6. Connect them with cables to match the diagram. (Build 2 photo)

7. Place the connected parts in their respective slots to match the photograph. (Build 3 photo)

8. Route the wires to approximate the photograph. (Build 4 photo).

9. Install the retainer clips to match the photograph. (Also Build 4 photo)

10. Install the bottom cover.

11. Install the two signal lamp windows. (Lamp covers photos)

12. Connect the Q2 to the computer. If the computer asks if it’s OK to connect to the Thing Plus RP2040, click to allow the connection.

1. Break the pointy ends off a couple of toothpicks, so you have some short round rods. (Don’t use something metal, like a paperclip or wire.)

2. Drop the toothpick rods into the b and r (boot, and reset) square holes.

3. Hold down the boot button with the toothpick rod, and click and release the reset button with the second toothpick rod.

4. A drive labeled RP1-RP2 should show up on your computer’s drive list/file explorer/ finder.

5. Uncompressed/ Extract the contents of the Q2 zip file.

6. Open the UF2 folder, and drag and drop copy the file onto the RP1-RP2 drive. The filename will be adafruit-circuitpython- sparkfun_thing_plus_rp2040-en_US-x.x.x.uf2, where x is a number or numbers.

7. Allow the copy to proceed. When finished, the RP1-RP2 drive will self- eject, to be replaced by the CIRCUITPY drive.

8. Open the CIRCUITPY drive. You’ll see a boot_out.txt file, a lib folder, and a code.py file. You might also see a folder named sd. If you don’t see the sd folder, create it. Don’t put anything in it, it needs to be an empty folder and it needs that specific name.

9. Open the q2-code-and-libraries folder, to find the code.py and the lib folder.

10. Copy both, the lib folder and the code.py file, onto the CIRCUITPY drive.

11. Your computer will ask if you want to replace the existing files. You do. Replace, don’t Merge.

12. Once the copying is done, you will have, if all goes well, a working Q2 instrument.

Date and time set instructions: Setup: You’ll need to set the date and time.

1. Open a Chrome browser window on your computer. It has to be Chrome for this to work.

2. Navigate to https://code.circuitpython.org/

3. Select USB as your type of connection.

4. Then click on the Connect to Device button.

5. Choose the device named Thing Plus RP2040(cu.usbmodemx), where x is a four digit number.

6. Then click the Use CIRCUITPY to select the USB host folder.

7. Your computer may ask if Google Chrome.app may access files on a removable volume. Allow this.

8. On the bottom of the browser window, there are two buttons, Editor and Serial. Click on the Serial button to open a Serial dialogue panel. That’s where you’ll set the time.

9. Click the Restart button at the top of the serial panel to restart the Q2 instrument program. You’ll see a lot of output go by. You can safely ignore it, or look at the code later if you are interested in finding out about those lines.

10. Hold down the MODE button on the Q2 for a good long time ~10s, until the serial dialogue reports:

long_press

The date is Sunday 2093-5-12 The time is 15:44:52

Current year is 2093. Enter a new year and press return, or press return to skip.

Your values for date and time will likely be different.

Date and time set instructions: Enter the new date and time.

1. Enter the correct year, by clicking in the serial panel and then typing the year number. (2025 at the time of this writing)

2. Do the same for month, and for day.

3. For the UTC time, look up the correct hour at https://time.is/UTC or something similar. Geospatial instruments use UTC time to avoid confusion about timezones and daylight savings time shifts.

4. Enter the correct hour for UTC, and then the minutes and seconds, and

then the three letter code listed for the day of the week.

5. After you enter the day, the instrument will return to regular function. You can unplug the Q2 instrument from the computer and go measure the spectra of light reflected off of things! (Don’t point the sensor at the sun, as it’s too bright for the sensor and will likely damage it.)

If you want to check the time, restart the instrument and look at the display screen.

STELLA-Q2 Operation

Charging:

The Thing Plus RP2040 microcontroller has a built-in lithium battery charger. When the microcontroller is connected to USB, it will try to charge the battery. Since there is a switch in between the battery and the microcontroller, the charging circuit can only charge the battery when the power switch is on.

Start the Q2 by itself, disconnected from power, to make sure that it’s on.
Then connect the Q2 to a USB-C power source to charge the battery.

The orange light above the battery icon on the Q2 will come on full brightness when the battery is charging. When the battery is fully charged, the orange light will turn off. If the orange light is dim or flickering, the charging circuit is not connected to the battery.

The MODE button:

The microcontroller does not respond quickly to the button. It may take as much as half a second to register that you have pushed the button. The button light itself will light up to let you know that the microcontroller has detected your push.

Click it once to change from continuous recording to burst recording, detailed below.

Click it again to measure and record a single burst of measurements.

Hold it for 2-3 seconds to turn the lamps on or off. More detail below. Hold it for greater than 10 seconds to set the clock. Lots more detail below.

Recording:

The REC light on the Q2 will light up orange during startup, if the SD card is installed.

The REC light will show red if there’s no SD card installed. After startup, the REC light will flash green each time the instrument records a datapoint.

Green indicates that the instrument is in continuous recording mode.

If you push the MODE button, the instrument will exit continuous recording mode, and enter burst mode.

There after, when you push the MODE button, the instrument will take one burst of data points and stop.

Blue indicates that the instrument is recording in burst mode. The light will flash blue once for each data point recorded.

Press the button again to take another burst of data points.

The burst count, and the sample interval for continuous recording, are located at the top of the code.py file that contains the instrument code. Edit that file on the CIRCUITPY drive to change those values.

Lamps:

Hold the button for 2-3 seconds to turn on the LED lamps on the spectrometer board. The three lamps emit light in the visible, near infrared, and ultraviolet, respectively.

Hold the button for 2-3 seconds again to turn the lamps off.

Set the instrument clock:

If you hold the button for a little longer than 10 seconds, the instrument will enter clock set mode. You’ll need to connect the instrument to a computer in order to set the time.

To clear the instrument out of clock set mode, either set the clock as below, or turn the instrument off and restart it.

Date and time set instructions: Setup:
You’ll need to set the date and time.

    1. Open a Chrome browser window on your computer. It has to be Chrome for this to work.
    2. Navigate to https://code.circuitpython.org/
    3. Select USB as your type of connection.
    4. Then click on the Connect to Device button.
  1. Choose the device named Thing Plus RP2040(cu.usbmodemx), where x is a four digit number.
  2. Then click the Use CIRCUITPY to select the USB host folder.
  3. Your computer may ask if Google Chrome.app may access files on a removable volume. Allow this.
  4. On the bottom of the browser window, there are two buttons, Editor and Serial. Click on the Serial button to open a Serial dialogue panel. That’s where you’ll set the time.
  5. Click the Restart button at the top of the serial panel to restart the Q2 instrument program. You’ll see a lot of output go by. You can safely ignore it, or look at the code later if you are interested in finding out about those lines.
  6. Hold down the MODE button on the Q2 for a good long time ~10s, until the serial dialogue reports: long_press The date is Sunday 2093-5-12 The time is 15:44:52 Current year is 2093. Enter a new year and press return, or press return to skip.

Your values for date and time will likely be different.

Date and time set instructions:

  1. Enter the new date and time. Enter the correct year, by clicking in the serial panel and then typing the year number. (2025 at the time of this writing)
  2. Do the same for month, and for day.
  3. For the UTC time, look up the correct hour at https://time.is/UTC or
    something similar. Geospatial instruments use UTC time to avoid confusion about timezones and daylight savings time shifts.
  4. Enter the correct hour for UTC, and then the minutes and seconds,
    and then the three letter code listed for the day of the week.
  5. After you enter the day, the instrument will return to regular function.
    You can unplug the Q2 instrument from the computer and go measure
    the spectra of light reflected off of things! (Don’t point the sensor at
    the sun, as it’s too bright for the sensor and will likely damage it.)

If you want to check the time, restart the instrument and look at the display
screen.

The Graph:

The instrument display shows a graph of irradiance (a measure of brightness) over
wavelength. The wavelengths on the x-axis cover 410nm to 940nm. A nanometer,
abbreviated nm, is one billionth of a meter. Around 400 to 700 nm wavelength light
is visible to human eyes, with some exceptions for color-blindness.

The shorter wavelength light is blue, marked below the graph by B.

Medium visible wavelength light is green, marked below by G.

Longer wavelengths of light, in the middle of this graph, are red, marked by R.

Longer wavelengths than red are invisible to human eye, so we call them “below red” or infrared, marked by IR.

The irradiance values on the y-axis can be displayed on a linear scale or a log scale. This setting is in the code.py file, near the top.

When displaying in log scale, a black “log y” will show on the bottom of the graph on the left.

When displaying in linear scale, no text will show.

Color Lookup Table

NASA STELLA-Q2 Color Lookup Table
AS7265x BandsCategoryExampleHTML valueTricolor valuesf = c / λ E = h * fEnergy (J) / (e*V/J) = 
Energy in e*V
Band
DesignationBand middle
wavelength ( λ )
ColorColorColorColorBand middle
Frequency ( f )Energy per photonEnergy per photon
ChannelnanometersHTML NameSwatchHexadecimalR, G, BTHzJoules per photonelectron*Volts per photon
1410Blueviolet


#7e00db126, 0, 2197314.84E-193.0
2435Blue


#2300ff35, 0, 2556894.57E-192.9
3460Royalblue


#007bff0, 123, 2556524.32E-192.7
4485Darkturquoise


#00eaff0, 234, 2556184.10E-192.6
5510Lime


#00ff000, 255, 05883.89E-192.4
6535Chartreuse


#70ff00112, 255, 05603.71E-192.3
7560Greenyellow


#c3ff00195, 255, 05353.55E-192.2
8585Yellow


#ffef00255, 239, 05123.40E-192.1
9610Orange


#ff9b00255, 155, 04913.26E-192.0
10645Red


#fe0000254, 0, 04653.08E-191.9
11680Red


#df0000223, 0, 04412.92E-191.8
12705Red


#c90000201, 0, 04252.82E-191.8
13730Firebrick


#b10000177, 0, 04112.72E-191.7
14760Darkred


#940000148, 0, 03942.61E-191.6
15810Near Infrared


#0000000, 0, 03702.45E-191.5
16860Near Infrared


#0000000, 0, 03492.31E-191.4
17900Near Infrared


#0000000, 0, 03332.21E-191.4
18940Near Infrared


#0000000, 0, 03192.11E-191.3
Constants and metric prefix notation
ParameterAbbreviationUnitsScientific notationDecimal
Speed of lightcm/s3.000E+08299,792,458
Planck’s constanthkg*m^2/s = J/Hz6.626E-346.62607E-34
Joules per electron*VoltJ/eVJ/eV1.602E-191.60218E-19
one-trillionth, pico-p1.0E-120.000000000001
one-billionth, nano-n1.0E-090.000000001
one-millionth, micro-µ1.0E-060.000001
one-thousandth, millim1.0E-030.001
[units]11
thousand, kilok1E+031,000
million, MegaM1E+061,000,000
billion, GigaG1E+091,000,000,000
quadrillion, TeraT1E+121,000,000,000,000