# First Earth-Imaging CubeSat with Harmonic Diffractive Lens
## 2 A CubeSX-HSE Nanosatellite-Based Remote Sensing Platform
### Onboard Computing Module  
An onboard computing module (BCM) SXC-MB-04 controls the satellite and hosts the following components [22]:  
- A slot for connecting a Raspberry CM3 processing module with a power supply system;  
- An autonomous controller of the orientation and stabilization system;  
- An energy-saving sensor microcontroller;  
- A gyroscope and magnetometer;  
- A unit for electromagnetic coil control;  
- A temperature sensor;  
- A real-time clock with a battery backup;  
- A power supply system;  
- A centralized programming and software testing system. All onboard devices can be accessed through an onboard bus CAN2.0B directly, while the Raspberry module is connected with an SPI-CAN converter. The motherboard can support Raspberry Pi CM3 and CM3+ modules. Once the satellite is assembled, all microcontrollers become available for firmware installation and testing. A detachable Wi-Fi module and video interfaces are installed directly onto the Raspberry Pi 3 module. With all electronics assembled, the board weighs 55 g and operates in the \(-40\) to +85 \({}^{\circ}\)C temperature range. Figure 2: CubeSX-HSE nanosat. The CubeSX-HSE nanosatellite in the launch container (**left**); bench tests of the 3U CubeSat (**right**). To operate the three-axis orientation and stabilization system, six solar sensors are used [22]. A built-in orientation and stabilization system microcontroller works autonomously, using a CAN interface for the command and telemetry reception and transmission. The energy-saving microcontroller is connected to sensors with a CAN interface and directs the space mission by controlling the onboard systems while optimizing the energy consumption of the main computing module. The stabilization using the B-dot algorithm [24] can be autonomously activated using the built-in induction coil driver. The energy-efficient performance is ensured by the proper BCM hierarchy, where each operation mode is controlled by a dedicated microcontroller:  
* An energy-efficient microcontroller for data acquisition;
* An orientation and stabilization system controller activated when needed;
* Raspberry Pi 3 for processing computationally intensive tasks of the satellite payload. To ensure mission longevity and useful life, each onboard programmable processing unit can be updated while in orbit. The satellite onboard computer is based on a Raspberry Pi CM3 module and has the following characteristics:  
* A quad-core module running at 1.2 GHz;
* 1 GB random-access memory;
* 4 GB read-only memory. A major benefit of using Raspberry Pi is that a wide variety of software and libraries to solve various problems is readily available, often for free and with the source code, thanks to its popularity among software developers. For a more efficient operation, the energy supply to the Raspberry Pi can be switched off when the module is not in use without affecting many of the satellite's vital functions, such as flight program implementation and battery storage control, performed by a microcontroller located on the ultrashort-range transducer board. Data exchange between the Raspberry Pi and the other onboard systems runs on the Controller Area Network (CAN) protocol, and the bus access is exposed to the software through the CubeSat API. The central processor is not limited to running software written in common C, C++, and Python; it can also run software written in other high-level languages, supported by commercial and open-source compilers and interpreters. To connect to the Raspberry Pi, either a removable Wi-Fi access point or a cable can be used, and users can use a web admin interface, a remote desktop, or SSH protocol to communicate with the module. Our choice of acceptable remote sensing cameras was limited by the onboard computing capabilities of our 3U CubeSat; by the Raspberry Pi 3 Compute Module [26] only supporting USB 2.0; and by power consumption, weight, and size constraints.