
Anatomy of the "Space Data Center". Sky-high server: look under the hood

Tomorrow we will send our server to the stratosphere. During the flight, the stratostat will distribute the Internet, shoot and transmit video and telemetry data to the ground. We wrote several times that we will talk about the technical side of our project “Space Data Center” (it used to respond to the name “ Server in the Clouds 2.0 ”). They promised - we are fulfilling! Under katom a handful of pieces of iron and code.
Web server
Even in the previous project “Server in the Clouds”, when we went up in a full-fledged balloon with a crew of two, taking a full-fledged server with a battery assembly was, let's say, not rational. And now we are talking about a small stratospheric balloon, which has to climb 30 km, and not 1. Therefore, we chose the same Raspberry Pi as a web server. This microcomputer will form an HTML page and display it on a separate display.
Satellite connection
In addition to Raspberry, modems of satellite networks Iridium and Globalstar will fly on board. As you remember, we planned to add a modem of the domestic network “Gonets” to them, but we did not manage to get it in advance, so we will send it on the next flight. Through satellite modems, the web server will receive your messages, which can be sent on the project page . These messages will be sent to the Raspberry Pi, which will line up from them and display on the HTML page.
An important point: the restriction on the length of a text message in Russian is 58 characters (including spaces). If the message is longer, it will be truncated during transmission. Also, all special characters, for example,
/\+$%&;''""<>\n
and the like , will be cut out of the text .Since Raspberry Pi has only one UART port, we will connect satellite modems through an intermediate hub, which will collect data from modems and send to Raspberry Pi.
Radio modem
The web server will not only display all the messages received from you on the display, but also broadcast it to Earth via the LoRa radio modem. So we want to test the idea of distributing the Internet from the stratosphere (tribute to the Google Loon project). Of course, our stratospheric balloon is not a full-fledged communications relay, but even if its capabilities are sufficient for stable data transmission, without large losses of information, then specialized systems will definitely cope with the distribution of the Internet from pre-space.
Telemetry
In addition, we plan to display telemetry data on the same HTML page. Raspberry Pi will take them from a separate flight controller.

He interrogates various sensors that can be placed both inside and outside the hardware germobox, collects information in a heap, combes it and conveniently gives it to those who ask. In our case, it will ask for Raspberry Pi. We will record pressure, altitude, GPS coordinates, vertical and horizontal speed and temperature.
Data from the flight controller is transmitted in long lines, which are then using this code:
$str = 'N:647;T:10m55s;MP.Stage:0;MP.Alt:49;MP.VSpeed:0.0;MP.AvgVSpeed:0.0;Baro.Press:1007.06;Baro.Alt:50;Baro.Temp:35.93;GPS.Coord:N56d43m23s,E37d55m68s;GPS.Home:N56d43m23s,E37d55m68s;Dst:5;GPS.HSpeed:0;GPS.Course:357;GPS.Time:11h17m40s;GPS.Date:30.07.2018;DS.Temp:[fc]=33.56;Volt:5.19,0.00,0.00,0.00,0.00,0.00,0.00,0.00';
parse_str(strtr($str, [
':' => '=',
';' => '&'
]), $result);
print_r($result);
turn into an array in a convenient form for displaying:
Array
(
[N] => 647
[Т] => 10m55з
[MP_Stage] => 0
[MP_Alt] => 49
[MP_VSpeed) => 0.0
[MP_AvgVSpeed] => 0.0
[Baro Рrеss] => 1007.06
[Baro_Alt] => 50
[Baro_Temp] => 35.93
[GPS_Coord] => N56d43m23s,E37d55m68s
[GPS_Home) => N56d43m23s,E37d55m68s
[Dst] => 5
[GPS_HSpeed] => 0
[GPS_Course] => 357
[GPS_Time] => 11h17m40s
[GPS_Date] => 30.07.2018
[DS_Temp] => [fс] ЗЗ.56
[Volt] => 5.19, 0.00,0.00,0.00,0.00,0.00,0.00,0.00
)
We will also transmit telemetry data to the Earth along with your messages. To do this, deploy a receiving station at the launch site.
Display and camera
So that you can make sure that the server really receives your messages via satellite communications, and that it generally flew into the stratosphere, rather than standing in our office, we decided to display all messages with telemetry on the display that GoPro would record. There was not enough time to prepare the project (but when does it happen a lot ?!), so we did not torment Aliexpress and the soldering iron, but instead we took the finished device. For our needs, it is more than enough. We will connect the display to Raspberry via HDMI.
We also plan to broadcast the video from GoPro via a separate radio channel, but how it will work is still unknown - perhaps low cloudiness will greatly reduce the communication range. But in any case, after we find the landed stratospheric balloon, we upload the video from the camera and you can see for yourself what messages our “pre-cosmic data center” received and how high it climbed - telemetry will be displayed in the same HTML page, in addition, a piece of the horizon will be visible.
Nutrition
All the above beauty will be powered by the assembly of lithium batteries assembled according to the 3S4P scheme - three in series, four in parallel. The total capacity is about 14 Ah at a voltage of 12 V. According to our estimates, this should be enough, but after the final assembly, of course, we will measure the actual consumption, and if necessary, we will throw more batteries.
Add to all this the GPS beacons by which we will search for the landed stratospheric balloon. And the “house” for the server and other devices will be a hermetic box.

It will protect delicate equipment from extremes of temperature and pressure. At the same time, it will reduce the radiation dose, although this does not play any role for our project, the server will fly for too short in the stratosphere, and the background there is not as high as on the ISS.
In addition to sending messages on the project website, you can participate in the competition and guess the location of the probe landing. The main prize is a trip to Baikonur to launch the Soyuz-MS-13 manned spacecraft.
