Set up the Feather RP2040 Adalogger
- Use a USB-C cable that carries data (many cables only charge).
- Install CircuitPython 9.x: download the
.UF2file for “Feather RP2040 Adalogger” from circuitpython.org. Hold the BOOT button, tap RESET, and let go of BOOT. A drive calledRPI-RP2appears; drag the UF2 onto it. The board restarts and a drive calledCIRCUITPYappears. - Download the CircuitPython 9.x library bundle, unzip it, and copy the library files listed for your kit from the bundle's
libfolder intoCIRCUITPY/lib. - Download your kit's zip below, unzip it, and copy
code.pyontoCIRCUITPY, replacing the one there. The board restarts and runs it. - Insert a microSD card formatted FAT32 (cards 32 GB or smaller come formatted this way). Each power-on makes a new numbered CSV file, so old flights are never overwritten.
- To see live readings, install Mu, pick CircuitPython mode, and click Serial.
Never connect the AA battery pack and USB at the same time. Unplug the battery before plugging in USB.
Cadet flight computer starter code
Reads the MS8607 (pressure, inside temperature and humidity), the DS18B20 outside probe and the u-blox MAX-M10S GPS, and saves one line per second to FLIGHT000.csv, FLIGHT001.csv and so on. At startup it puts the GPS into airborne mode so it keeps reporting above 18 km.
Wiring
| Part | Connects to | How |
|---|---|---|
| MS8607 | Feather STEMMA QT port | STEMMA QT cable 1 |
| MAX-M10S GPS | MS8607's second STEMMA QT port | STEMMA QT cable 2 (chain: Feather → MS8607 → GPS) |
| DS18B20 power wire (usually red) | Feather 3V | Screw terminal |
| DS18B20 ground wire (usually black) | Feather GND | Screw terminal |
| DS18B20 data wire (usually yellow) | Feather D5 | Screw terminal |
| 4.7k resistor | Between the data wire (D5) and 3V | Screw terminal |
| 3xAA holder | Feather battery (JST) connector | Plug |
Library files for CIRCUITPY/lib: adafruit_ms8607.mpy, adafruit_gps.mpy, adafruit_ds18x20.mpy, adafruit_onewire/ folder, adafruit_bus_device/ folder.
CSV columns: seconds, gps_time, lat, lon, gps_alt_m, sats, fix, pressure_hpa, inside_temp_c, inside_rh, outside_temp_c. GPS columns stay blank until the GPS has a fix (take it outside; the first fix can take several minutes).
Data logger starter program
Reads the MS8607 sensor and prints pressure, temperature and humidity about once per second in Mu's Serial panel, and saves the same numbers to LOG000.csv on the microSD card.
Setup notes
| Part | Connects to |
|---|---|
| MS8607 sensor | Feather STEMMA QT socket, with the STEMMA QT cable |
| microSD card | Slot on the Feather, push until it clicks |
| 3xAA holder (adult) | Feather battery connector, only after USB is unplugged |
Library files for CIRCUITPY/lib: adafruit_ms8607.mpy, adafruit_bus_device/ folder.
Ages 13+: in code.py, LOG_INTERVAL sets how often it logs, and the line under “this is the line that writes to the microSD card” saves the data. Keep a copy of the original before you change it.
MAX31865 + SHT45 connections and code
Adds research-grade PT100 temperature (through the MAX31865 amplifier) and SHT45 precision humidity to the Cadet flight computer. Logs everything the Cadet code does, plus pt100_temp_c, sht45_temp_c, sht45_rh, rtd_fault, to SOUND000.csv. An adult does the wiring with the batteries out.
MAX31865 to Feather (SPI)
| MAX31865 pin | Feather pin |
|---|---|
| Vin | 3V |
| GND | GND |
| CLK | SCK |
| SDI | MO (MOSI) |
| SDO | MI (MISO) |
| CS | D10 |
PT100 probe wires go to the MAX31865's screw terminals as shown on Adafruit's MAX31865 guide. The code assumes a 3-wire PT100 (set RTD_WIRES to 2 or 4 if yours differs) and the board's solder jumpers must be set to match. The amplifier's reference resistor is 430 Ω (standard for the PT100 version).
SHT45
| Part | Connects to |
|---|---|
| SHT45 | The GPS's free STEMMA QT port (end of the chain: Feather → MS8607 → GPS → SHT45) |
Library files: everything for the Cadet code, plus adafruit_sht4x.mpy and adafruit_max31865.mpy.
Explorer crews: your logger came pre-assembled. Make the same connections; if your logger was shipped with different firmware, follow the card that came with it.
LTR390 + VEML7700 logging program
Runs on the second Feather RP2040 Adalogger in the experiment module. Writes one line per second to UV000.csv: seconds, uv_index, lux (seconds since power-on).
Wiring
| Part | Connects to |
|---|---|
| LTR390 UV sensor | Adalogger STEMMA QT port |
| VEML7700 light sensor | LTR390's second STEMMA QT port |
| 3xAA holder | Adalogger battery connector (USB unplugged) |
Library files: adafruit_ltr390.mpy, adafruit_veml7700.mpy, adafruit_bus_device/ folder, adafruit_register/ folder.
Test: cover each sensor with a finger and the numbers should drop; at a sunny window they rise. Note that bright direct sunlight can push the VEML7700 to its top reading.
No CIRCUITPY drive?
- Try another USB cable: most problems are charge-only cables. Then try another USB port.
- If you see
RPI-RP2instead, CircuitPython isn't installed yet. Drag the UF2 file onto it (see Board setup). - Nothing appears at all: hold BOOT, tap RESET, release BOOT.
RPI-RP2should appear; reinstall CircuitPython. - In Mu, an
ImportErrormeans a library file is missing fromCIRCUITPY/lib. A “microSD not found” message means the card is missing or not FAT32. - A sensor shows blank values: unplug the battery, re-seat each STEMMA QT cable until it clicks, and check the probe wiring and resistor.