YARH.IO is a fully hackable and custamizable Raspberry Pi based handheld, running Raspberry Pi OS and supporting all other Operating Systems available for Raspberry Pi.
The dream of a hackable Linux powered handheld has been around for many years, and many attempts
have been made to create a working device. While some of the devices have reached the market, none of them
withstood the test of real world user experience.
YARH.IO project has taken on the challenge of building a fully functioning device by combining the best
of Raspberry Pi design and 3D printing technology.
This project takes hackability to the next level by ensuring that every single component needed to build YARH.IO can be easily sourced, with no custom PCBs and just a bit of wire soldering required.
YARH.IO handheld and its unique modular design with exposed interfaces offers unprecedented connectivity
with unlimited platforms and devices.
This model is powered by Raspberry Pi 3B+ and has the best ratio of functionality and computing power requirements for a mobile device. When it comes to the battery powered devices, the overall power consumption and longer battery are more important then the extra processing power or memory.
For this model, the width of the main module is based on the keyboard dimensions for improved handling.
The 5" Resistive Touch Screen 800x480 HDMI TFT LCD Display is a good option for YARH.IO as
it will allow you to perform all of the usual tasks with ease.
Fosmon Portable Lightweight Mini Wireless Bluetooth Keyboard Controller has been selected as the best option for YARH.IO's multifunctional design. If you are using Vim, tmux, and Emacs everyday, the available modifier keys will help you get the most out of the device.
In addition to the keyboard, YARH.IO's pointing device will allow you to effortlessly browse the internet
and engage with other applications with graphical interface.
A single removable rechargeable battery will allow you to quickly replace an empty battery with a fully charged one. A high capacity Fenix ARB-L21-5000 5000mAh Li-ion Rechargeable Battery was chosen as the best option as it fits the main module perfectly. For the charger/5v power supply the internals of a Fenix ARE-D1 Smart Charger were used.
The RTC is a must have for a handheld device that is not continuously connected to the internet. YARH.IO includes a DS3231 High Precision RTC Clock Module.
Raspberry Pi GPIO connectors have been made available on the bottom sides of the main module and extension module for connecting all of your Raspberry Pi add-on boards.
YARH.IO features modular design, where the main module includes Raspberry Pi board, screen, power supply, battery, and RTC and GPIO connector with cables.
The main module can be used as a fully functioning handheld computer with the touch screen and onscreen keyboard available for the performance of your basic tasks.
One shared USB connector is available on the bottom of the main module, allows connecting USB devices like hard drives or Cellular/WiFi adaptors and mounted inside the extension module.
Raspberry Pi GPIO connector is also available on the bottom of the main module, allowing for different
add-on modules,
including Lora radios, RFID readers/writers, and IR transivers, to be
mounted inside the extension module. This configuration works extremely well with Pi-DAC+, creating a
great handheld audio player.
No 'click' assembly here. This is a fully hackable device with stainless steel socket cap screw
used throughout to allow for multiple assembly and disassembly cycles. The Military/Industrial
aesthetic can be felt throughout the YARH.IO project design.
The sturdy housing parts are 3D printed using PLA, ABS, and ASA plastic.
The list of parts used for the YARH.IO project can be purchased from Amazon and other online stores.
Part | Link |
---|---|
Raspberry PI 3B+ | Amazon |
Display | Amazon |
Keyboard | Amazon |
Power Supply / Battery Charger | Fenix Tactical |
Battery | Fenix Tactical |
RTC | Amazon |
40 Pin IDC Socket Connector Male X 3 | Amazon |
40 Pin IDC Socket Connector Female | Amazon |
26 Pin IDC Socket Connector Female |
Amazon |
14 Pin IDC Socket Connector Female |
Amazon |
10 Pin IDC Socket Connector Female X 2 |
Amazon |
Power Switch | Amazon |
Micro USB Connector Adapter | Amazon |
USB 2.0 A Jack Socket | Amazon |
Flexible Silicone Rubber Wire 24AWG, 28AWG | Amazon |
Jumper Wire Pins, Male and Female | Amazon |
#2-56 Socket Cap Screw, Stainless Steel. 1/4" x 33, 3/8" x 20, 1/2" x 8, 3/4" x 4. | Trimcraft Aviation RC |
YARH.IO MKI Project at a Glance.
The outcome of this YARH.IO model is a successful handheld (158mm x 173mm x 34mm) device with the potential to connect an unlimited range of extension devices and modules. It is a ruggedly designed and fully hackable device that can be 3D printed and assembled in the field.
As an experimental model YARH.IO's future development will continue to increase usability and functionality of the device. One of the areas of improvement is the adaptation of IPS type screen for wider viewing angles.
Other future development will focus on adding new compartment modules to accommodate additional I/O, storage and communication devices.
sudo apt install tmux vim mc xserver-xorg-input-evdev xinput-calibrator i2c-tools -y
# Enable internal audio (loads snd_bcm2835)
dtparam=audio=on
# Configure HDMI
disable_overscan=1
hdmi_drive=1
hdmi_force_hotplug=1
hdmi_ignore_edid=0xa5000080
hdmi_group=2
hdmi_mode=1
hdmi_mode=87
# Enable 800x480 Mode
hdmi_cvt 800 480 60 6 0 0 0
# Enable Touchscreen
dtoverlay=ads7846,cs=1,penirq=25,penirq_pull=2,speed=50000,keep_vref_on=0,swapxy=0,pmax=255,xohms=150,xmin=200,xmax=3900,ymin=200,ymax=3900
# Enable RTC
dtparam=i2c_arm=on
dtoverlay=i2c-rtc,ds3231
#
sudo cp -rf /usr/share/X11/xorg.conf.d/10-evdev.conf /usr/share/X11/xorg.conf.d/45-evdev.conf
Section "InputClass"
Identifier "libinput touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "calibration"
MatchProduct "ADS7846 Touchscreen"
Option "Calibration" "142 3964 295 3975"
Option "SwapAxes" "0"
EndSection
After everything is settled up and system rebooted, run "Calibrate screen" from the system menu and replace default "Calibration" values with the new ones.
To connect Bluetooth keyboard for the first time use Bluetooth icon on the menu bar and select Add device. Press the Bluetooth button on the keyboard, blue light on the keyboard starts blinking. The keyboard icon and name Bluetooth Keyboard should appear in the Bluetooth devices list. Select and Pair.
To connect Bluetooth keyboard after device reboot, wait until the system completely loaded and press Enter button, blue light on the keyboard start blinking. As soon as blue light turned of the keyboard connected and ready to use.