Hello World

Co-created by Kuva Space, Reaktor & VTT

Demonstrating the Hello World platform for future Earth orbit and deep-space missions. First ever miniature infrared hyperspectral imager onboard.

Time in orbit

Days
:
Hours
:
Minutes
:
Seconds

Mission timeline

H1/2016

Project started

H2/2016

Design ready

H1/2017

Engineering model ready and tested

H2/2017

Flight model and ground station ready

H1/2018

Flight model tested and ready to fly

H2/2018

Satellite launched and operational

Operations

Telemetry

Status IN OPERATION
Battery voltage mV
Battery temperature °C
Total Uptime days
EPS internal temperature °C
Telemetry updated

We downlink telemetry every time the satellite passes over our Helsinki, Finland ground station

ORBIT INFORMATION

Altitude km
Velocity km/sec
Latitude °
Longitude °

Mission & technology

The first step of our journey towards the stars

Launch vehicle ISRO/Antrix PSLV, India
Orbit LEO 500 – 600 km
polar sun-synchronous (REAKTOR HELLO WORLD at Celestrak)
Platform Hello World (RSL)
Payload Infrared hyperspectral imager (VTT)

Satellite (RSL)

Class 2U Cubesat
Mass 2.4 kg
Dimensions 10 x 10 x 22.7 cm
Attitude 3-axis stabilized
Power 5 W
Communication UHF and S-band

 

Subsystems

Telemetry and telecommand: (RSL)

  • UHF-band frequency
  • 9.6 kbit/s
  • CAN protocol
  • Dual redundant

Our command link is built to provide a connection that is as reliable as possible. The data speed is low, but the purpose is to give commands that are quite small and get back vital telemetry.

 

Power production and distribution: (RSL)

  • Solar panels
  • Li-ion batteries
  • CAN protocol
  • Failure detection, isolation and recovery

The heart of the spacecraft. Keeps the satellite alive.

 

Onboard data-handling: (RSL)

  • TI Hercules MCU
  • Real-time OS
  • Dual redundant
  • CAN protocol

A low power computer that can be the brain in any mission coordinating the work of other subsystems and payload.

 

Attitude determination and control:

  • Proprietary algorithms
  • Sun sensors, IMU
  • Magnetorquers
  • CAN protocol
  • GPS

Points the satellite at Earth so we can take hyperspectral images of the ground.

 

Payload data-processing:

  • ARM-processor
  • Control FPGA
  • Linux OS
  • Cameralink
  • CAN protocol

Commands the hyperspectral imager over an FPGA module and post-processes the data into consumable form. Ability to easily upload more functionality.

 

Data transmission:

  • S-band frequency
  • 2 Mbit/s

“Faster downlink of hypercubes.”

 

Structure: (RSL)

  • Anodized aerospace grade aluminum
  • Customized and scalable
  • Completely designed, prototyped and tested in-house

Keeping it all in one piece.

 

Software

You may remember our previous communication about a Node.js satellite. While we didn’t end up using actual Javascript on the satellite, the core promise of using a high level scripting language to run the satellite did become reality. Script files stored on the file system of a Linux computer are easily updated by uploading new files over rsync or logging in with telnet and editing files live with vi.

In order to start writing high level code we of course had to implement the plumbing in the platform. That has been done using for example C, C++, and Verilog. Some of our subsystems have no operating system, some use the facilities of FreeRTOS, and there’s a Linux box too.

All of them implement the Cubesat Space Protocol with the open source libcsp library over a CAN bus inside the satellite and the communications subsystem broadcasts the packets to the outside world. We use a TCP to CSP proxy to enable using rsync, telnet, and other TCP protocols to orbit.

And yeah, the high level scripting language we do use instead of Node.js is of course POSIX shell!

Payload (VTT)

Infrared hyperspectral imager

  • High spectral resolution
  • In-orbit tunable filter
  • 900 – 1400 nm
  • 0.5U size

World’s smallest space-grade hyperspectral imager. Based on a tunable Fabry-Perot interferometer.

Get in touch...

…with the satellite

Want to contact the Hello World satellite? Here we have gathered all the information you need to see how the satellite is doing or even send your own messages from space.

Hello World for radio amateurs

Reaktor Hello World has periodic beacons and a digital packet repeater:

  • Frequency 437.775 MHz
  • TLE catalog id: 43743 (REAKTOR HELLO WORLD at https://www.celestrak.com/NORAD/elements/active.txt)
  • Modulation 2-GFSK, deviation 4.8 KHz
  • Satellite sends a beacon every 30s. Every 8th beacon is sent with CW. Other beacons are sent with 2-GFSK
  • Max tx power 30dBm
  • The ground station of the satellite is in Helsinki and is operated by Reaktor Radio Actives Ry.

Example I/Q samples are available at https://github.com/ReaktorSpaceLab/rhw-ham for testing decode pipelines. There’s also an older blog post about the radio link at https://www.reaktor.com/blog/radio-waves-packets-software-defined-radio/.

Morse beacon

Morse beacon is in format “OH2RHW1BxxPxxxxx”, where two numbers after B describe the battery level. e.g. “75” meaning 7.5V.
4 numbers after “P” describe, which subsystems/features of satellite are turned on using a bit mask.
Order of the field is following: payload, gps, obs, adcs, battery_heater_1, battery_heater_2, charging_allowed, uhf_a, uhf_b, 3v3_toggle, 5v_toggle, antenna_deployment_1, antenna_deployment_2

2-GFSK beacon

When it’s time for 2-gfsk beacon we always send two packets (EPS telemetry and UHF telemetry)
Preamble is 6 bytes of 0xAA and the syncword 0x35, 0x2E, 0x35, 0x2E
Data rate 9600 symbols/s
TI CC1125’s packet protocol is used using TI’s whitening and crc16. We are using an open source GNU Radio block to decode the packet format https://github.com/andrepuschmann/gr-cc11xx.
CSP (Cubesat Space Protocol) is used inside TI’s packet format.

Structure:

[[6, preamble], [4, syncword], [1, packet length] [1, packet type] [4, CSP header][2, CSP packet length] [0-106, payload][4, packet number][4, signature] [2, crc]]

The first packet is the eps telemetry and second one is the uhf telemetry.

UHF Statistics structure:

[[uint32, CAN_rx_frame_count],
[uint32, CAN_tx_frame_count],
[uint32, CAN_error_count],
[uint32, boot_count],
[uint16, last_boot_reason],
[uint8, memory_violation_reset_has_occured],
[int16, internal_temp],
[uint32, current_csp_packet_number],
[uint16, allowed_relay_packet_count],
[uint32, rx_csp_frame_count],
[uint32, rx_relay_frame_count],
[uint32, tx_csp_frame_count],
[uint32, rx_fifo_error_count],
[uint32, tx_fifo_error_count]]

‘allowed_relay_packet_count’ field defines how many packets the repeater can still send.
EPS Statistics structure:

[[uint32, timestamp],
[uint32, CAN_rx_frame_count],
[uint32, CAN_tx_frame_count],
[uint32, CAN_error_count],
[uint32, boot_count],
[uint16, periodic_boot_count],
[uint8 * 12, [boot_reasons]],
[uint8, last_boot_reason],
[uint32, total_uptime_s],
[uint32, uptime_s],
[uint8, memory_violation_reset_has_occured],
[int16, internal_temp],
#ADC0
[uint16, solar_panel_x_positive_curr (spxp_curr)],
[uint16, spxn_curr],
[uint16, spyp_curr],
[uint16, spyn_curr],
[uint16, sp_x_v],
[uint16, sp_y_v],
[uint16, bat_curr],
[uint16, bat_v],
#ADC1
[uint16, uhf_curr_3v3],
[uint16, uhf_curr_5v],
[uint16, payload_curr],
[uint16, iacs_curr],
[uint16, gps_curr],
[uint16, obc_curr],
[uint16, sns_3v3],
[uint16, sns_5v],
#ADC2
[uint16, sns_12v_1],
[uint16, sns_12v_2],
[uint16, temp_sns1],
[uint16, temp_sns2],
[uint16, current_mppt_value_1],
[uint16, current_mppt_value_2],
[uint16, target_power_levels],
[uint16, actual_power_levels],
[uint8, power_state]
#subsystem heartbeat
[uint16, uhf_failures]
#antenna deployment
[uint8, deployment_sensed (4), deployment_rounds (4)]
]

Our conversion code for transforming ADC values to real units is available at https://github.com/ReaktorSpaceLab/rhw-ham.

Packet repeater

Possibility for radio amateurs to echo their packets back to ground.
Will be turned on after satellite has been confirmed to work in orbit.
Each received packet decrements a counter in the satellite and when the counter reaches zero the repeater has to be activated again by the satellite operators.
Structure: [[6, preamble], [4, syncword], [1, packet length] [1, packet type][0-126, payload] [2, crc]], where packet type should be set to 2. ‘packet length’ calculates only the length of ‘packet type’ and ‘payload’.

…with the flight crew

Want to know more? Our flight crew will be more than happy to answer any questions you might have, while not being busy with their duties on board.

Tuomas Tikka

Commander

Reaktor Space Lab

Janne Kuhno

Platform Engineer

Reaktor Space Lab

Juho Salmio

Operator

Reaktor Radio Actives

Antti Näsilä

Payload Engineer

VTT Technical Research Centre of Finland