SARC1 - High Altitude Balloon
This project is a High Altitude Balloon (HAB) carrying an Amateur Radio payload, which can be tracked for hundreds of kilometres.
Codenamed "SARC1" it comprises a high-power (500mW), UHF FM payload, designed to be sent aloft by a helium-filled, 90cm, mylar party balloon. Its inaugural flight was entered into the 2016 Global Space Balloon Challenge (GSBC). The GSBC is “Where people around the world simultaneously fly high altitude balloons, celebrating an age where anyone can reach the edge of space”. Sadly, the GSBC has shut down in 2020.
2016 Global Space Balloon Challenge Entries
SARC1 Launch - Anzac Day Special Amateur Radio Event
SARC1 launch on ANZAC Day at Victory Park, Bentleigh
SARC1 Launch Configuration
SARCNET's 2016 GSBC Entry Details:
HAB Group: School Amateur Radio Club NetworkHAB Project: ANZAC Day Special Amateur Radio EventBalloon type: Qualatex 12683. 90cm Microfoil.Balloon expected cruising altitude: 9000mCASA approval: In accordance with CASR 1998 101.E—Small unmanned free balloon. Not required.Glen Eira City Council Permit under Local Law 314. Not required.Launch location: Victory Park, 21 Patterson St Bentleigh, Victoria, Australia (lat: -37.924251 lon: 145.030917)Launch date: 10:30am (0030UTC) Monday 25 April 2016
SARC1 Payload Configuration:
Radio Frequency: 434.650MHzRadio Antenna Polarization: VerticalRadio Modulation Mode: FMTelemetry Mode: BPSK31Telemetry Frequency: 1255HzPayload callsign: VK3YSPPayload name: SARC1Payload type: Telemetry onlyPayload weight: 50gPolystyrene enclosure: 120mm polystyrene spherePayload battery: 3 x Energizer Lithium Ultimate L92 AAA
SARC1 Payload Configuration:
GPS type: Ublox NEO 6MV2GPS dynamic model: Airborne < 1gGPS max altitude: 50,000mGPS antenna: UHF dipolePayload temperature sensor: LM35Payload CPU: 16MHz/5V Pro MicroPayload transceiver: DORJI DRA818UPayload antenna. UHF dipolePayload frame rate: 1/minPayload RF output power: 500mWPayload min operating voltage: 2.7VPayload endurance: 6.5 hours
SARC1 Pictorial Schematic
SARC1 Decoding and Uploading Telemetry
SARC1 Flight Profile
SARC1 Flight Track on HABHUB
SARC1 Telemetry Report
SARC1 Design Notes
- First encode text using Varicode
- Then send code at 31.25 baud using Binary Phase Shift Keying
- Send 1 with no phase reversal. Send 0 with a cosine-modulated phase reversal.
- Phase changes occur at minimum level to avoid phase “clicks”
- Invented by Peter Martinez G3PLX
- Based on Morse code!
- Variable length code up to 12 bits
- Common characters have shorter codes
- Each character starts with 1 and ends with 00
101100 100 101111100 11100 10110100 1100
A <SPACE> C O D E
Arduino Waveform Generation
- Create a lookup table of waveform values
- Setup a hardware timer to generate a phase-correct PWM square wave at the waveform sample rate.
- Use the timer’s overflow Interrupt Service Routine to load a new waveform value from the lookup table into the PWM generator at the end of each PWM cycle.
- Use a Band Pass Filter to filter the PWM output.
- Use a spreadsheet to create the waveform and the equivalent hexadecimal values for the lookup table.
- It was decided to use 1000 samples to represent a single BPSK31 symbol for low phase noise.
- There were 4 possible solutions to generate the required 31250 samples per second from a 16MHz Arduino clock.
- They resulted in possible tone frequencies of 1250, 625, 781.25 and 1562.5Hz. The first, 1250Hz, was chosen.
- The BPSK31 waveform for "0" is a cosine-modulated sinewave.
- Only the first-half of the wavefor is required to be saved in the lookup table. The second-half is a mirror image.
- =COS(2*PI()*Sample/Samples per cycle/Cycles per symbol/2)*SIN(2*PI()*MOD(Sample,Samples per cycle)/Samples per cycle)
- The BPSK31 waveform for "1" is an unmodulated sinewave.
- To save space, it is approximated by the first cycle of the cosine-modulated sinewave as shown in blue below.
- The spreadsheet calulates the floating point value for each sample, with the byte and hex equivalent.
- Only the first cycle (25 samples) is show.
- The second set of figures shows the values for an unmodulated sinewave. There is only 1 bit diffenence, in sample 24.
- The resulting BPSK31 lookup table takes up 500 bytes.