1. Hardware - mi-pogo/MeshBox GitHub Wiki
The following hardware pieces have been used in order to build the MeshBox.
Main embedded computer

Raspberry Pi 4 is a credit card sized computer and is the latest iteration from Raspberry Pi Foundation and is responsible for running the software inside the MeshBox. It was chosen over other similar SBCs, like Odroid and TinkerBoard, because of its much larger support and community behind it and, comparing with the previous version (Raspberry Pi 3) because of its much better WiFi and Bluetooth reliability. In terms of RAM capacity, the 2GB RAM variant was used for this setup which should be plenty for running MeshBox's daily tasks.
Amplifier

HiFiBerry AMP2 was choosen for its very high quality audio output and high power (2 x 30 Watts) for such a small package. Furthermore, being a Class D amplifier -> due to its very high efficiency, it does not produce heat and that is something very important when placing it in an enclosure such as the MeshBox. It connects to the Raspberry Pi 4 via the 40 pins GPIO slot and it communicates with it via I2S bus. It receives power from an 12...20V external power supply and in turn it provides power to the Raspberry Pi 4 via GPIO 5V pins.
Speakers

The brilliance of HiFiBerry AMP2 wouldn't come out without capable speakers. Being a long time admirer of Focal brand, of their innovative designs in home speakers, I couldn't resist to try one of their products from the car audio sector. Therefore, I chosed the Auditor RCX-130, a model with a coaxial design. After many tests / auditions, the combination of these speakers with the AMP2 proved to be the perfect choice for MeshBox, as the resulted quality of the sound is excellent. These speakers are rated for 50 Watts RMS power and 4 Ohm impedance. For connecting to HiFiBerry speaker outputs 1,5 mm2 OFC quality cable from DAP audio was used.
LCD Display

Waveshare 5 inch HDMI display was installed in MeshBox for visualization feedback and its touchscreen capability. It connects to the Raspberry Pi via HDMI for video signal and via GPIO for touchscreen feedback. Power is received via a separate regulator (not from Raspberry, nor HifiBerry). Its quality is decent but any other display in this price range will do the same thing.
Rotary encoders and knobs

The control of the menus is done with the help of two rotary encoders from Sparkfun. The one from the right side (RE2 in electrical drawing) is used for Up/Down navigation and Click while the other one (RE1 in electrical drawing) has a double functionality: depending on a position of PB1 switch (see drawing) can be used either as Left/Right navigation and Click, or as Volume Up/Down and Mute. Their pins (OutA, OutB, GND and Click) are connected to the GPIO pins of Raspberry Pi. We will see more details later about that in GPIO_Table.
Pushbuttons / switches

These illuminated buttons are also used for menu navigation and control. The one from the right side (PB2 in electrical drawing) is momentary type and its navigation function is "Back" and the one from the left (PB1) is non-momentary and (although it looks like a power button but it is not) it is used to switch the rotary encoder (RE1) between "Left/Right/Click" and "Volume Up/Down/Mute" functionalities. Their pins (Out and GND) are connected to the GPIO pins of Raspberry Pi. We will see more details later about that in GPIO_Table.
Power supply

The power source of the whole thing is a MeanWell GST90A19-P1M external adapter with 19V and 4.7A, providing a total of 90 Watts to the entire system. Since the HiFiBerry may eat up to 60W, RaspberryPi around 10W, display arround 2W this would total 72 watts -> this is well below the maximum 90W offered by the power supply, so we've some room left which is good.
Voltage regulator

This is feeding from the external power supply and is necessary to provide separate power to display and leds of illuminated buttons in order not to interfere with HifiBerry and RaspberryPi power path. It provides 5V and up to 4A output current, therefore is plenty enough since the display and leds from buttons together eat less than 1A.
Electrical schematic of MeshBox

And this is the GPIO Table with pin assignment of all components of MeshBox which connects to Raspberry GPIO pins.

According to the electrical drawing legend:
RE1 stands for Rotary Encoder 1. It is used for "Volume Up/Down/Mute" or "Left/Right/Click" navigation functions depending on the Push Button 1 position.
RE2 stands for Rotary Encoder 2. It is used for "Up/Down/Click" navigation functions.
PB1 stands for Push Button 1. It switches RE1 between "Volume Up/Down/Mute" or "Left/Right/Click" navigation functions.
PB2 stands for Push Button 2. It is used for "Back" navigation function
This navigation functionality was achieved through the implementation of a dedicated software service called MeshButtons. More details about it can be found here.