In October 2013 I wrote about the voluntary work I did for AMSAT-UK, in association with AMSAT-NL to support the FUNcube-1 data warehouse:
Satellite and Launch Details
Since then, FUNcube-1, 2 and 3 have been launched:
FUNcube-1 (FC1) was launched on a Russian DNEPR rocket from Yadsny in the Ukraine on Thursday 21st October 2013.
Since deployment, it has done an amazing job in both it's roles as:
- Transmitting on-board telemetry (2/3 of time)
- Amateur radio linear transponder (1/3 of time)
The satellite switches mode autonomously when it moves in to and out of eclipse. In sunlight we have power available from the solar cells to charge the batteries and transmit telemetry at high power (300mW) for easy reception by schools. In eclipse, we rely on the power available from batteries the to run the linear transponder and transmit telemetry, both at low power (30mW).
FUNcube-2 (FC2) is a payload on board the UK Space Agency UKube-1 which generates telemetry similar to that of FUNcube-1 (FC1). It also acts as a back up command and control link for the satellite.
It was launched At the end of it's UK Space Agency mission, it may be handed over to AMSAT-NL/AMSAT-UK to operate with the same modes as FC1.
FUNcube-3 (FC) is a payload on board the QB50 Precursor Flight 1 which provides the transmitter and power amplifier capabilities of the satellite.
Telemetry Capture and Transfer to Data Warehouse
Prior to the launch of FC2 (and FC1) it was necessary to model the interaction between the user dashboard and the data warehouse.
To achieve this, I used Agile Test Driven Development (TDD) as we do in Black Pepper for:
- Object Relation Mapping (ORM)
- Internal Services
- RESTful services
- Scheduled (Quartz) Services
- Acceptance testing
The Data Warehouse is actually split into three web applications:
- The Data Processor (fcdw_data): impemented using Spring JPA, Securiry, WebServices
- The User Interface (fcdw_ui): implemented using Spring JPA, Securiry, WebServices, MVC; JSP; jQuery; hiCharts
- The Analytics Engine (fcdw_analytics, under development)
The protocol for the data transfer was designed very early in the project and we use a mechanism to reduce the chance of people spoofing us with data, it's based on a shared key / SHA1 digest.
FC1 and FC2 have differing data formats but the FUNcube team decided at the outset that the database (MySQL) should be agnostics in terms of storing data channels. I.E. we only store raw (unscaled) data and this helped a great deal with the TDD as we were only handling integers and booleans.
From the start of the project it was dedided that it would be Open Source and we would use a Source Code Control System (SCCS). The source for the FUNcube project, can be found on GitHub here.
FC1 has broadcast 1.6GB of data, of which 402MB (25%) of realtime information has been recovered by ground stations around the world, this is collected once every 5 seconds.
As well as realtime, the system also recovers:
- Whole Orbit Data (WOD) which is collected every minute and provides us with information about the experiments on board as well as the general health of the satellite. We have recovered 83% of this data
- High Resolution Data (HiRes) which is sampled once per second and provides information on the spin rate of the satellite in three axes. We have recovered 20% of the data
In 12 months of operation FC1 has only gone off-line twice. Thanks to the documentation and the copious notes taken in the day book before launch, the team commanded it back to life within 3 hours of loss of signal.
The Whole Orbit Data has shown how the satellite spin rate has changed over time and the team are looking for an explanation:
Number of Registered users: 1312
Number of users who have uploaded data: 767
Number of users who regularly upload data: 197
Number of packets uploaded per day since launch (the dips come about because the satellite uses low power for the telemetry beacon at weekends allowing radio amateurs access to the high power mode):
The team were pleasantly surprised by some of the satellite housekeeping parameters:
- Min-max external temps: -22 to +31 C
- Min-max internal temps: -9 to +20 C
- Min-max battery volts:: 8.01 to 8.4 V
Web Site Visitors
We make use of Google Analytics to monitor the visitors to the warehouse, this is a typical snapshot:
One of the remits of the project was to provide information to end users. To this end, the data warehouse exports CSV files which contain:
- Daily WOD data
- Daily HighRes data
- Weekly WOD data
The FUNcube team were featured on BBC Breakfast and BBC World News demonstrating the system to a school on the day after launch:
It's now five years since the FUNcube team started work in FC1, based on what was called KISSsat (keep is simple... sat).
A lot have lessons have been learned but all the time the team remained Agile, delivering small amounts of functionality on a regular basis.
- Define the SCOPE of the project and STICK TO IT.
- Document everything, you never know when you might need it.
- Test everything LOTS of times, hardware, software and both together.
- End to end testing including
- Data transfer and storage
is the best way to avoid unpleasant surprises later.
- Don't believe the COTS manufacturers claims/specs/promises – check with them for precise information
- Good and regular communications between team members is vital to ensure that interfaces work correctly. (this applies to both space and ground segments)
- Identify the skills in the team and play to your strengths – use this data to inform your build/buy decisions
- Regular Skype and F2F meetings were vital for our geographically spread team.
- Consider which commands and telemetry you will want/need during flight.
- Always consider how to design out risk or at least to mitigate it
The team have had to work with commercial and regulator bodies and all of them have been impressed with our professionalism, in particular when it has related to the thoroughness of our documentation, unit test and integration testing of both hardware and software.
Teachers packs ourselves and other in the AMSAT community.
Funding from the Space Agencies has allowed us to prepare a video for STEM outreach.
Thank you Black Pepper
Throughout the project, Black Pepper have been very supportive in terms of
- providing access to their RESTful Serenity stack for the Data Warehouse prototype
- providing time to prepare these blogs
- allowing the author to move annual leave at short notice!
Thank you all our supporters
To the many people who have helped us, both living and no longer with us, the FUNcube team would like to express their heartfelt thanks.
To those who take the time to receive the data and upload it to the warehouse KEEP IT COMING!
To those amateur radio operators who make use of the transponder, ENJOY!
The team are still are still having FUN!