stratolink
In this section
All docs

Hardware setup

Use the schematic, board files, and bill of materials together. The firmware targets the Stratolink PCB, not a generic RAK development board.

Parts and board

The Stratolink payload suspended between two solar panels, with separate antenna wires.
A completed payload in flight. Match your parts and connections to the board revision you are building.

The hardware directory contains KiCad schematic and PCB files, manufacturing files, the assembly BOM, and component models. The main parts are:

PartPurpose
RAK3172-9-SM-NISTM32WLE5 and 9xx MHz LoRa radio
u-blox MAX-M10S-00BGNSS receiver
BQ25570Solar energy harvesting and power regulation
Two 4.8 V / 50 mA solar cellsEnergy input
TMP117 and MS5611Temperature and pressure
LIS2DH12Acceleration and freefall interrupt
LTR-390UV-01UV and ambient light
T3902Acoustic event detection

Check the exact board revision before ordering or populating parts. The current supercapacitor assembly still needs a reviewed balancing circuit and verified charge ceiling. It is not a finished drop-in flight build.

Energy-store qualification

The selected CAP-XX DMF4B5R5G105M3DTA0 is a 1 F, 5.5 V, two-cell part. The existing PCB leaves its midpoint unconnected. The original charge divider also needs a tolerance review against the capacitor rating. Verify the final circuit, both cell voltages, charge termination, leakage, and darkness endurance on the exact assembled board. Do not infer overnight runtime from capacitance alone.

Assemble the payload

This build starts with a v1 board assembled by JLCPCB. Fit the solar leads, antennas, supercapacitor, and solar panels by hand. The photos follow a 9.5 g payload assembled in October 2026.

Have fine insulated hookup wire, 22 AWG enamelled copper antenna wire, copper support wire, heat-shrink tubing, Kapton tape, solder, a sharp blade, cutters, pliers, tweezers, a multimeter, and a scale ready. Inspect the assembled PCB before starting. Keep it unpowered while soldering.

1. Add the solar leads

Cut four short lengths of fine insulated wire: two red positive leads and two black negative leads. About 10 mm is a starting estimate; leave enough reach for the joints shown below without putting tension on them. Strip and tin the ends.

Solder one red lead to +SOLAR and one black lead to GND on each side of the board. Match the pad labels or schematic. Feed the wires through the holes where possible. If solder already fills the holes, the red lead can attach to the top-side pad and the black lead to its ground pad on the underside.

Short solar leads soldered to the board. The antennas were fitted before these photos.
Short solar leads soldered to the board. The antennas were fitted before these photos.

2. Cut and fit the antennas

Use straight 22 AWG enamelled copper wire. The GPS antenna is the shorter one: start at 48 mm. For LoRa, start at 82 mm for 915 MHz, 86 mm for 868 MHz, or 83 mm for the 868–928 MHz compromise. Measure from the feed point to the tip.

Make a small bend at the mounting end so it enters the antenna through-hole. Scrape the enamel from the contact tip all the way around, exposing clean copper, then tin it. Solder the short wire to AE2 / GPS and the long wire to AE1 / LoRa. Keep the radiating lengths straight. Check the finished antenna with the panels installed, as described under antennas and suspension.

Antenna lengths measured from the feed point. The insertion bend is enlarged for clarity.
Both antennas mounted, with the remaining wire beside the board.
Both antennas mounted, with the remaining wire beside the board.

3. Prepare the solar electrodes

Each panel has a long electrode at either end. Expose a small area at the center of each electrode and tin it. On the panels shown here, brief sweeping passes with the soldering iron clear the coating. Do not leave the iron resting on the panel: the substrate is very thin. Use just enough solder to leave a small, reflective patch bonded to the electrode.

Illuminate the panel and measure DC voltage across the two prepared electrodes. A positive reading means the red meter probe is on the positive electrode. Mark both polarities. Repeat for the second panel.

A solar panel before preparing the electrodes.
A solar panel before preparing the electrodes.

4. Measure and straighten the support wire

Lay the board with its GPS antenna pointing up and one panel on each side. Measure copper wire across the entire assembly, from the far edge of the left panel to the far edge of the right. Allow for the center bends and the short folds over both panel edges before cutting; use the physical layout rather than a fixed cut length.

Clamp one end of the wire to the table. Grip the other end with pliers and pull it straight. Center it across the board and mark the two support-hole positions. The historical v1 PCB places those centers approximately 20.4 mm apart; match your actual board before bending.

Lay out both panels to measure the support wire.
Lay out both panels to measure the support wire.
Pulling the clamped wire straight with pliers.
Pulling the clamped wire straight with pliers.
Bend positions measured against the board.
Bend positions measured against the board.

5. Bend and insulate the support

Make two 90° bends at the marks to form a U. Both long arms should be parallel and pass through the board’s two support holes without forcing them.

Scrape the enamel around both tips. Also expose the inside of the U’s base and the two areas on its arms where the black leads will attach. Tin the exposed copper. Slide heat-shrink over the entire bottom of the U, from one bend to the other, to insulate it from the board. It is fine to open the bend slightly to get the sleeve on, then restore its shape.

Form the U against the board holes, prepare the solder joints, and insulate the center.
The U-shaped support before insulation.
The U-shaped support before insulation.
Heat-shrink over the center bend.
Heat-shrink over the center bend.

6. Install the supercapacitor

Before folding the support flat, turn the board over. Position the supercapacitor with its printed markings facing you, as shown below. Use a small piece of Kapton tape at its left edge to hold it in place, align its three terminals with the footprint, and solder the three pads without bridging them. Confirm polarity against the footprint and schematic.

The physical mounting does not change the v1 power circuit. Check the energy-store qualification for your board revision before charging it.

Supercapacitor on the underside, markings facing outward.
Supercapacitor on the underside, markings facing outward.

7. Fit the support and connect ground

Insert both ends of the U through the support holes. Bend the arms outward until the support lies flat and runs perpendicular to the long axis of the board. The heat-shrink-covered base stays on the top face of the PCB; the two arms emerge from underneath.

Insert the U through the two support holes, then fold the arms outward.
Support inserted and folded flat, perpendicular to the board.
Support inserted and folded flat, perpendicular to the board.

Using tweezers, place each black lead against its prepared, tinned section of the support wire and solder it. The copper support is now also the negative connection for both panels.

Black leads joined to the tinned support wire.
Black leads joined to the tinned support wire.

Check continuity from each black lead to the corresponding outer end of the copper support. Once both joints are sound, cover them with short heat-shrink sleeves. Position the sleeves before making any joint that would prevent them sliding into place. Check that the support has no unintended contact with other board pads.

The support connections insulated after checking continuity.
The support connections insulated after checking continuity.

8. Position the panels

Keep the board upside down and place the panels beneath the copper support. On both sides, the positive electrode goes nearest the board and the negative electrode goes at the outer edge. Keep the two panels at the same height and leave matching gaps beside the board.

Use small pieces of Kapton tape to secure the panels to the support wire. The drawing shows the PCB underside, with the tape crossing over the wire. Check the marked polarity again before soldering.

Both inner electrodes are positive. Both outer electrodes connect to the grounded support wire.
Panel backs facing up, with both positive electrodes nearest the board.
Panel backs facing up, with both positive electrodes nearest the board.

9. Solder the panel connections

Bend each support tip up and over the outer edge of its panel so it rests on the prepared negative electrode. Solder the tip to the electrode with a brief contact, supporting the panel so the joint is not under tension.

Kapton tape holds the panel against the support wire.
Kapton tape holds the panel against the support wire.
The support tip folds over the panel edge onto the outer electrode.
The support tip folds over the panel edge onto the outer electrode.
Support wire soldered to the outer, negative electrode.
Support wire soldered to the outer, negative electrode.

Solder each red lead to the inner, positive electrode of its panel. Repeat on the other side. Inspect the joints and check continuity to the correct board pads before covering the exposed connections with small pieces of Kapton tape.

Positive leads connect the board to the inner electrodes.
Positive leads connect the board to the inner electrodes.

10. Check and weigh the assembly

Inspect both sides for loose joints, solder bridges, exposed wire touching components, and panel edges under strain. Verify panel polarity and check for an unintended short between +SOLAR and GND before the first powered test.

The completed assembly.
The completed assembly.

Weigh the completed payload and record its mass. This one measured 9.5 g. Use your own measured mass in the float calculator, accounting for the suspension line and anything else the balloon will carry. Continue with firmware setup and telemetry checks before preparing for launch.

This payload weighed 9.5 g.
This payload weighed 9.5 g.
Board connections
ConnectionSTM32 pin or bus
GNSS UART TX / RXPB6 / PB7, 9600 baud
GNSS resetPA0, active low
I²C SDA / SCLPA11 / PA12
Accelerometer interruptPA8
SWDIO / SWCLKPA13 / PA14

The programming connector is a six-pin Tag-Connect SWD footprint. Follow the schematic for connector orientation, ground, target reference voltage, and reset. The programmer’s USB cable does not make the bare payload a USB device.

Stratolink PICO Mainboard schematic, revision 2026-02-08.
PICO Mainboard schematic, revision 2026-02-08. Open the drawing to inspect the connections; check revision-specific power changes before assembly.

Antennas and suspension

Use enamelled copper wire for the two separate antennas. AE1 is the LoRa feed; AE2 is the GPS feed. Remove the enamel where each wire is soldered, and check the joint before powering a transmitter.

The firmware pin reference lists these quarter-wave starting lengths. Measure from the feed point. The panels, wiring, coating and final shape affect the match, so check the assembled payload before making a final cut.

AntennaStarting length
GPS L1, 1575.42 MHz48 mm
LoRa, 915 MHz82 mm
LoRa, 868 MHz86 mm
LoRa, 868 to 928 MHz compromise83 mm

Keep the LoRa wire straight and pointing down when the payload hangs. Use a centered attachment or a two-leg bridle to keep the board upright. Check that the suspension cannot snag either antenna. The balloon preparation guide records the cord used in that procedure. A small lean is acceptable; a secure attachment matters more than precise leveling.

Leave the solar panels and their leads in the flight position when checking the LoRa antenna. Sweep the assembled antenna with a calibrated VNA across the bands you intend to use. A matched wire does not extend the supported bands of the radio module.

What the mounting simulation found

We modeled the downward monopole, PCB and solar panels in NEC2 at 904.5 MHz. The model was rotated through a full spin and weighted by the reception angles from Stratolink-3's fresh GPS fixes at float.

Changing the hang angle from 20° to vertical increased modeled effective gain by 0.08 dB. The model supports a centered hang, but it does not justify adding weight to hold an exact angle.

Modeled gain versus payload tilt At 904.5 megahertz, the modeled monopole and panel assembly changes from 0.50 dBi at zero degrees to 0.42 dBi at 20 degrees and 0.04 dBi at 45 degrees. These are simulated results weighted by flight reception angles, not measured antenna gain. 0.60.40.20.00°15°30°45°Effective gain (dBi)Tilt from vertical 20°: 0.42 dBi
Simulation of the monopole and panel assembly. The curve is not a measurement of the finished antenna.

The flight sample contains only 20 geolocated receptions above 8 km with fresh GPS fixes. The panels are simplified conductive surfaces, and the model assumes a uniform spin. An installed-antenna sweep and a suspension test are still needed for each final assembly. The separate pendulum study proposes comparing low-stretch line with elastic cord; it does not establish a tested replacement for the documented attachment.

Wire length, temperature and panel wiring

A quarter wavelength is a starting estimate:

L≈c4fL \approx \frac{c}{4f}

Here, c is the speed of light and f is the operating frequency. Coating and nearby conductors change the required physical length. Tune the actual assembly instead of applying a fixed percentage correction for enamel.

The thermal model shortened a copper element for a temperature change from 20 °C to -50 °C. It predicted less than 1 MHz of resonance shift. That result concerns wire contraction only; it does not qualify the radio, power supply or complete payload for cold operation.

The panel-wiring simulation also rejected an early assumption that moving the ground connections closer to the board would improve the antenna. Changing the panel connections changed the feed impedance. Keep the documented assembly together, then measure it before changing the wiring or wire length.

Build and flash

Install PlatformIO and SEGGER’s J-Link tools, then obtain the matching source revision. The public repository can be cloned with:

git clone https://github.com/Stratolink-hq/Stratolink.git
cd Stratolink/firmware
cp include/secrets.h.example include/secrets.h

For the current development board, first obtain its matching source as described in Before you start. From that revision’s firmware directory, fill the secrets file using your TTN credentials. Record the revision and build the normal flight environment:

git rev-parse HEAD
pio run -e stratolink

The current development toolchain is pinned to STM32 platform 19.6.0, SparkFun u-blox GNSS 3.1.13, STM32duino Low Power 1.5.0, STM32duino RTC 1.9.0, and RadioLib 7.6.0. Use the environment supplied with the firmware revision you are validating.

When re-flashing a device that has already joined TTN, preserve its stored DevNonce journal. Do not mass-erase the device or reset TTN nonce history to force a new join.

Connect J-Link over SWD to the powered target. Check the target voltage and common ground, then upload:

pio run -e stratolink --target upload

Keep the generated .pio/build/stratolink/firmware.elf and firmware.bin with the commit identifier. Re-test the exact uploaded image after removing the debugger.

Flight and diagnostic builds

Use stratolink for the flight candidate. Environments such as stratolink_soak, stratolink_profile, and gps_diag are bench tools. They change regional seeding, solar gates, peripheral activity, or the normal loop. A successful diagnostic does not qualify the flight binary.

The release build does not provide a general USB serial console. J-Link and the purpose-built diagnostics provide the useful state. Avoid expecting pio device monitor to display a flight log from the bare board.

Verify the hardware

  • Compare reported storage and solar voltage with a meter under the same conditions.
  • Check each sensor while changing a known input: cover the light sensor, warm the temperature sensor gently, and tilt the payload.
  • Obtain a fresh outdoor GPS fix. Move the payload and confirm the reported position changes.
  • Verify TTN receives a valid packet and that it reaches the dashboard.
  • Measure sleep current with the debugger detached. Record a complete wake, GPS, transmit, and sleep cycle.
  • Test the completed power assembly through darkness and recharge, including the lowest expected voltage and temperature conditions.

For launch preparation, continue to the pre-launch checklist and balloon preparation guide.