# Hardware and Set Up

This book contains all the information and documentation regarding the software of ITU's Solar Server

# Under Construction

This documentation page is currently under construction, stay tuned for updates!

# The Computer

The solar server is a Raspberry Pi 5 Model B, here are the relevant technical specifications as per the [official documentation:](https://datasheets.raspberrypi.com/rpi5/raspberry-pi-5-product-brief.pdf)

- **Processor:** Broadcom BCM2712 2.4GHz quad-core 64-bit Arm Cortex-A76 CPU, with Cryptographic Extension, 512KB per-core L2 caches, and a 2MB shared L3 cache
- **GPU:** VideoCore VII GPU, supporting OpenGL ES 3.1, Vulkan 1.2
- 4Kp60 HEVC decoder
- **Memory:** 8GB LPDDR4X-4267 SDRAM
- **Network**: Gigabit Ethernet, with PoE+ support (requires separate PoE+ HAT)
- **Bluetooth**: Version 5.0 / Bluetooth Low Energy (BLE)
- **Storage:** microSD card slot, with support for high-speed SDR104 mode. Currently, we have 32GB.

#### A quick note on the computer's processor architecture:

Besides making sure that your website or application can be run with the specifications above, you should note that the CPU is [ARM64](https://en.wikipedia.org/wiki/AArch64). This is important because some older precompiled libraries and dependencies are not built for this newer architecture.

This does not affect all possible applocations though, as for example, most web applications will run. Some applications can work though they might need to be compiled from source. This also applies to Docker containers.

# The Solar Power System

The solar server is located on ITU's roof, and is powered by a solar power system with the following characteristics:

- 2 100Wp Solar (PV) Panels
- 1 Solar Charge Controller with 12V to 5V DC-DC stepdown
- 1 XXXAh (MWh) Acid Lead battery

#### Power Measurements

We currently have no external way to measure the power, current and voltage inputs to the solar server.

The original plan was to set up a [INA260](https://www.adafruit.com/product/4226) monitor, however this never materialised. We currently have a software measurement approximation of power, this implementation by [jfikar uses a linear correction to close the gap between hardware and software measurements](https://github.com/jfikar/RPi5-power/tree/main). These measurements are updated every 90 seconds and are available at https://solar.itu.dk/power.json

The goal with capturing power measurements:

- Get an idea of the viability of the server at different loads and at different weather conditions
- Create a dataset for further analysis
- Feed and use this data as trigger for further optimisations for apps and the OS 
    - For example: If the solar panel is receiving less energy, the server could only serve those web apps which we have classified to be 'lightweight'. Similarly, when the weather is good we could not only serve

For this, an external power monitor such as the INA260 is needed. If you would like to help us set this up, [please get in touch!](mailto:luil@itu.dk)

#### Types of batteries

Acid-Lead vs Lithium Ion

# Trying to start your own? Here are some things to consider

Used vs New compoinents

Use case