Tuesday 29 August 2017

The TT7F3 Flight

Date: 2017-08-31
Time: 6:00 GMT (8:00 CEST)
Place: Roznov pod Radhostem, CZ
Live Tracking: https://tracker.habhub.org and https://aprs.fi

RTTY
Callsign: TT7F3
Frequency: 434.374MHz
Params: 100 baud, 450Hz shift, 8n2
Preceded by: 5 slow blips (~6s)
Packet: callsign, count, time, date, latitude, longitude, altitude, sats, Vsolar, Vbatt, Tmcu, Ttx
Example: $$TT7F3,13,15:13:32,20170719,49.46868,18.15101,408,6,899,3950,30,29*FB99

APRS
Callsign: OK7DMT-7
Frequency: Geofenced local APRS frequencies
Packet: Base-91 position and telemetry, Backlogged position and telemetry in Comment section
Example: !/5KyHS)='OJ5W 1F94!5MI,S(LWHC!+=7+;0c!'|!4!-<x+S1%!(!$|

Initial Prediction: 2017-08-29
Power Scheme
If the voltage on the supercapacitors is higher than 3.8V, the tracker transmits APRS once per minute and RTTY once per two minutes. If the supercapacitor voltage gets below its limit, the tracker transmits only APRS packets once per two minutes, and the RTTY transmission stops.
Tracker
To power this tracker, I decided to build two parallel branches of 52x39mm solar cells angled at 45° to ground facing opposite directions. Dave VE3KCL pointed out that setting up the cells as shown in The Low Power Setup could force the tracker to rotate like a propeller. To void that, I interleaved the two branches at the cost of a little more wiring. The LTC3105 was set to output 4.05V (Rmppc - 91kΩ) charging two 40F supercapacitors in series. This meant the tracker wouldn't take advantage of the full capacity, but it took care of the need to balance the two supercaps. For the antenna two 492mm pieces of guitar string were solder to the tracker to create a 2-meter dipole. The tracker was laid out with ESD foam and wrapped in black electrical tape.
Mass: 31.9g
Software
The main function running the tracker can be found in ARM_TT7F3.c on GitHub. The code structure is similar to TT7F1 with added Watchdog. The bitfield in an APRS packet indicates whether it is in the high altitude Airborne mode (NAV), whether it acquired GPS fix (FIX), whether a new backlog was written to the flash memory in this cycle (BCK), and whether the tracker currently runs the slower, APRS only, power saving cycle (PSM). An example data set extracted from received APRS packets can be seen in the chart above. It was a stormy day and I had to hide the tracker under a roof at times.
Balloon
The balloon is the second finished envelope described in The Superpressure Balloons blog post. It was made from 50 micron PE/PA/EVOH/PA/PE material and it is 1.84m in diameter. The estimated stretch is 1.83 Gamma. The chart above shows the stretching profile for this specific envelope. A meridional weld opening had to be repaired after the first stretching. The second attempt took about 16 hours.
Expected Float Altitude: 15400m
Expected Ascent Rate: 1m/s
Expected Superpressure: 1570Pa (at 19°C supertemperature)
Gas: Hydrogen
Free Lift: 15g
Launch
I managed to fill the balloon to 15.5g free lift. The launch itself went smoothly. I also tried to improve the RTTY reception by temporarily installing a ground plane antenna with an LNA on the roof. It worked well until the balloon reached about 5.5km in altitude and the voltage on the tracker's capacitors fell below 3.8V for some reason. Below this level the tracker ceases RTTY transmissions and switches to APRS in two minute cycles only. In this manner, the tracker continued all the way to sunset. The last received data show some wobbling in the balloon's altitude (cooling of the gas after sunset?). The predicted path had the balloon over Romania for the following day where APRS transmission is turned off. At the time of writing several days later the tracker hasn't showed up anywhere along the predicted path and is considered no longer afloat.

Data
APRSfi_TT7F3.txt - collected raw packets.
Python parser of APRS.fi raw packet format.
The positional and telemetry data extracted from received APRS packets and decoded backlogs:




Monday 28 August 2017

The TT7F2 Flight

Date: 2017-08-29
Time: 6:00 GMT (8:00 CEST)
Place: Roznov pod Radhostem, CZ
Live Tracking: https://tracker.habhub.org, https://aprs.fi and ssdv.habhub.org

RTTY
Callsign: TT7F2
Frequency: 434.319MHz
Params: 300 baud, 850Hz shift, 8n2
Preceded by: 5 slow blips (~6s)
Packet: callsign, count, time, date, latitude, longitude, altitude, sats, Vsolar, Vbatt, Tmcu, Ttx,Images,SSDVstatus
Example: $$TT7F2,63,11:41:03,20170706,49.46861,18.15093,402,7,2035,4075,32,27,4,1*4E06

SSDV
Callsign: TT7F2
Frequency: 434.319MHz
Params: 300 baud, 850Hz shift, 8n2
Interleaving: RTTY telemetry and APRS packet after every 5 SSDV packets (~1min)
Preceded by: every 5 packet block preceded by 5 fast blips (~2.5s)
Image: 320x240, 50 quality, YCbCr422

APRS
Callsign: OK7DMT-12
Frequency: Geofenced local APRS frequencies
Packet: Base-91 position and telemetry, Backlogged position and telemetry in Comment section
Example: !/5KyHS)='OJ5W 1F94!5MI,S(LWHC!+=7+;0c!'|!4!-<x+S1%!(!$|

Initial Prediction: 2017-08-28
Power Scheme
If the voltage on the solar panel is higher than 1.6V and the battery voltage is higher than 3.0V, the tracker transmits APRS once per minute, RTTY once per two minutes and SSDV at every top of the hour and on every half hour. During the SSDV transmission, the tracker interrupts the packet flow with an interleaved APRS and RTTY transmission after every five SSDV packets (~once per minute). If either the solar panel voltage or the battery voltage is below its limit, the tracker transmits only APRS packets once per two minutes and doesn't take images.
Tracker
This tracker is equipped with a 250mAh LiPo battery and charged to 4.06V by four 52x38mm solar cells positioned at 0° angle to ground. This number of cells required a different method for mounting since reliable soldering of the cells continues to be challenging. The current approach is documented in the images. The LTC3105's resistor at MPPC pin was increased to 180kΩ to reflect the higher number of cells and hence the higher input voltage. This means the MPPC circuit will consider 1.8V to be the optimal operating point for given power source (1.8V being 78% of the panel's measured open circuit voltage). Replacing the LiPo battery's leads wasn't a problem since all the soldering was done on the small protection circuit board. The shrink wrap doesn't fit as tight as it could, but I didn't want to risk overheating the LiPo while applying too much heat. The antenna is a 2-meter dipole again (492mm for each of the elements). I experimented with a dual band antenna for a while without too much success. An antenna tuned to the 70-centimeter band would be much better for the SSDV transmission, however, the current thinking sees APRS as more important. Concerning the MT9D111 camera module, it occasionally suffers from overshot colors in the image. I found this behaviour in all the modules from a specific seller. The original camera I worked with didn't show any of these issues using identical software.
Mass: 19.7g
Software
The main function running the tracker can be found in ARM_TT7F2.c on GitHub. The structure is similar to TT7F1. It only adds MT9D111 and SSDV blocks that in every loop cycle check for the right time and sufficient voltage on the solar panel and the battery, then decide whether to try take an image and transmit it. I also implemented Watchdog this time to ensure the camera operations don't leave the tracker in a deadlock. The code should keep on flowing even if the camera gets disconnected or doesn't respond. The APRS packet uses two more bits of the telemetry's bitfield to inform whether SSDV transmission is currently ongoing (Img bit) and whether the tracker currently operates in the long, APRS only, power saving cycle (PSM bit). The data from received APRS packets illustrate the tracker's behaviour in the chart above.
Balloon
The envelope is again 1.33m in diameter. It was made from 50 micron PE/PA/EVOH/PA/PE material and the estimated stretch is 1.93 Gamma (this is probably less based on the final floating altitude of TT71). The chart above shows the stretching profile for this specific envelope. A comparable level of stretch to TT7F1's envelope was achieved in half the time this time.
Expected Float Altitude: 13550m
Expected Ascent Rate: 1m/s
Expected Superpressure: 2156Pa (at 17°C supertemperature)
Gas: Hydrogen
Free Lift: 10g

Launch
This time, I got closer to the intended free lift with about 10.8g. The tracker was somewhat heavier which meant more gas and lower float altitude. The 10.5km, at which the balloon interrupted its ascent, confirmed significant inaccuracy in my pre-flight envelope stretch estimates. After launching the balloon into calm cloudless sky, my poorly situated rx setup got to bring in only snippets of the first SSDV transmissions until OM1ATS in Slovakia joined in and managed to upload two complete images. After that the transmission from the balloon went silent and returned only in bits with a few hours in between later into the day. The received data led me to believe that there was something wrong with communication between the MCU and the transmitter. I saw similar issues with other TT7F pcbs from the same batch (ordered from DirtyPCBs). Usually a via in a trace would at some point start to misbehave compromising SPI or TWI interfaces or an image data line. If my guess is right and the balloon stays afloat, there may be sporadic transmissions in the future, but I am not holding my breath. The remaining three trackers are all built on new pcbs from OSH Park, so hopefully will avoid these sorts of issues in flight.

Data
APRSfi_TT7F2.txt - collected raw packets.
Python parser of APRS.fi raw packet format.
Received SSDV images:
The positional and telemetry data extracted from received APRS packets and decoded backlogs: