Welcome to the new stage of the YARH.IO project, where our goal is to build a device designed for hacking, coding, and creative use. YARH.IO Micro 2 has been made with hackers in mind, for computer experts who uses their technical knowledge to achieve new goals and overcome computer system limitations by non-standard or 'hackable' means.
YARH.IO Micro 2 project continues to take on the challenge of building a full featured, micro sized handheld, based on Raspberry Pi 3B+, 4" touch screen and Bluetooth keyboard without touchpad.
YARH.IO Micro 2 can run Raspberry Pi OS or Kali Linux, providing users with a rich range of applications and development tools. This is a rare handheld that allows users to write new program code directly on the device for the use on the device itself.
YARH.IO Micro 2 is powered by Raspberry Pi 3B+, offering the best ratio of functionality and computing power requirements for a mobile, battery powered device. The board is stripped down to reduce the total height. The ethernet RJ45 connector on the Pi 3B+ has been removed, while the double stack USB connectors were replaced with single stack USB connectors.
Pimoroni Hyper Pixel 4" IPS 800x480 display delivers a sharp, clear, and bright picture with a wide viewing angle. Capacitive touch screen with multi-touch allows for a simple and easy interaction with the user interface.
Minimalist keyboard provides comfortable typing when holding the device with both hands. Modifier keys grant easy access to special control keys and functions. Custom key remapping simplifies interaction with the system and its applications.
YARH.IO Micro 2 features extended USB connectivity. The two USB ports have been relocated to the top of the device and now allow users to simultaneously connect large profile USB accessories, such as WiFi adaptors, cellular modems, GPS, USB drives, and others.
A single, removable, high capacity Fenix ARB-L18-3500U 3500mAh Li-ion USB Rechargeable Battery powers the device. Removable battery ensures that an empty battery can be quickly replaced with a charged one. Fenix rechargeable battery provides direct charging via a Micro USB connector and a built-in battery charger.
High output Step-Up power supply has been used to effectively support power hungry USB accessories.
Arduino proMicro module controls the battery voltage. The module reads battery and power supply voltage, making the results available over I2C bus to the Raspberry Pi and to various custom build applications. The module also controls power LED as a way to indicate battery charge status.
With Arduino IDE installed, it is possible to program proMicro directly on the device, to customize battery charge LED indicator, and to add other creative functionality.
The DS3231 High Precision RTC Clock Module is used to store current time and date for the Raspberry Pi.
YARH.IO Micro 2 features simple mechanical design. Main frame used for mounting Raspberry Pi board and screen, power bed with conjunction with front panel provides mounting points for keyboard, power supply, battery, RTC and proMicro module.
Back panel features an open battery bay, allowing for quick battery replacement. In instances when battery replacement is not required, the bay can be covered with the battery cover. This set-up ensures that the battery can always be charged using the battery's built-in charger.
The I2C bus is available while the I2C connector is mounted on the right side of the device and can be used to connect external modules with I2C connectivity. Pimoroni Hyper Pixel display utilities all Raspberry Pi GPIO pins, therefore no additional GPIO connectors are present for the external devices.
No 'click' assembly used. This is a fully hackable device with stainless steel button socket cap screws used throughout for multiple assembly and disassembly cycles.
The corners of the housing are protected with eight rugged-design rubber bumpers.
All parts are 3D printed using PLA and Flex plastics. ABS and ASA plastics can be used as an alternative, but require use of advanced printers and techniques.
The list of parts used for the YARH.IO project can be purchased from Amazon and other online stores is available below.
Part | Link |
---|---|
Raspberry PI 3B+ | Amazon |
Display | Pimoroni |
Keyboard | Amazon |
Power Supply | Amazon |
Battery | Fenix Tactical |
RTC | Amazon |
proMicro | Amazon |
Power Switch | Amazon |
USB Type A Right Angle Jack Socket Connector x 2 |
Amazon |
USB Type A Straight Jack Socket Connector x 2 |
Amazon |
10 Pin IDC Socket Connector Male | Amazon |
Flexible Silicone Rubber Wire 24AWG, 28AWG, 30AWG | Amazon |
MicroSD card | Amazon |
#2-56 Button Socket Cap Screw Stainless Steel . 1/4" x 12, 3/8" x 6, 1/2" x 4. |
Trimcraft Aviation RC |
YARH.IO Micro 2 Project at a Glance.
The outcome of this YARH.IO Micro 2 is a micro-size (116mm x 123mm x 27mm) handheld with the potential to run a unlimited applications and to be extended with an unlimited range of external USB devices. It is portable, has minimalist design, and can be relatively easily 3D printed and assembled.
The release of YARH.IO Micro 2 marks a new success in our line-up of goals towards the design, development, and release of innovative handhelds for hacking, coding, and creative use by computer experts and enthusiasts.
sudo apt install tmux vim mc -y
curl -sSL https://get.pimoroni.com/hyperpixel4 | bash
hyperpixel4-rotate right
The original link: https://github.com/pimoroni/hyperpixel4/issues/3. Thank you Florian Mirkes.
# Create /etc/systemd/system/hyperpixel4-backlight.service and add the following:
[Unit]
Description=Sets up gpio-poweroff to handle Hyperpixel backlight upon shutdown/reboot
ConditionPathExists=/usr/bin/hyperpixel4-init
ConditionPathExists=/boot/overlays/gpio-poweroff.dtbo
ConditionPathExists=/usr/bin/dtoverlay
DefaultDependencies=no
Before=umount.target
[Service]
Type=oneshot
ExecStart=/bin/sh -c '/sbin/rmmod gpio-backlight;/usr/bin/dtoverlay /boot/overlays/gpio-poweroff.dtbo gpiopin=19 active_low=1'
[Install]
WantedBy=reboot.target halt.target poweroff.target
sudo systemctl enable hyperpixel4-backlight.service
sudo systemctl start hyperpixel4-backlight.service
The original article: https://fmirkes.github.io/articles/20190827.html. Thank you Philip Howard.
sudo apt install build-essential libevdev2 libevdev-dev -y
git clone 'https://github.com/PeterCxy/evdev-right-click-emulation.git'
cd 'evdev-right-click-emulation'
make all
sudo cp 'out/evdev-rce' '/usr/local/bin/'
sudo chmod +x '/usr/local/bin/evdev-rce'
# Add evdev-rce to startup
sudo usermod -G 'input' -a pi
echo 'uinput' | sudo tee -a /etc/modules
# Edit: /etc/udev/rules.d/99-uinput.rules
KERNEL=="uinput", MODE="0660", GROUP="input"
sudo udevadm control --reload-rules
sudo udevadm trigger
mkdir ~/.config/autostart
# Create: ~/.config/autostart/evdev-rce.desktop and add the following:
[Desktop Entry]
Version=1.0
Type=Application
Name=evdev-rce
GenericName=Enable long-press-to-right-click gesture
Exec=env LONG_CLICK_INTERVAL=500 LONG_CLICK_FUZZ=50 /usr/local/bin/evdev-rce
Terminal=true
StartupNotify=false
# Create: ~/.rtc-init.sh and add the following:
echo "ds1307 0x68" | sudo -E tee -a /sys/bus/i2c/devices/i2c-11/new_device
sudo chmod +x ~/.rtc-init.sh
# Create ~/.config/autostart/rtc-init.desktop and add the following:
[Desktop Entry]
Version=1.0
Type=Application
Name=rtc-init
GenericName=Initialize ds3231 RTC on non standard i2c-11 bus, address 0x68
Exec=sh /home/pi/.rtc-init.sh
Terminal=true
StartupNotify=false
To connect Bluetooth keyboard for the first time use Bluetooth icon on the menu bar and select Add device. Press hard the Blue 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. Enter the digits as prompted on the screen and press Enter key.
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.
The keyboard used has no TAB key. Therefore the FN+Caps remapped to Tab.
# Edit: /usr/share/X11/xkb/symbols/pc and replace existing mapping for <CAPS> with the following one:
key <CAPS> { [ Tab, ISO_Left_Tab ] };
There are keys on the keyboard which can be used to simplify window control. FN+1 - switch between applications, FN+L - maximize current window, FN+0 - perform "sudo shutdown now".
# Edit: /etc/xdg/openbox/lxde-pi-rc.xml and add/replace the following under <keyboard> key:
<keybind key="XF86Mail">
<action name="Maximize"/>
</keybind>
<keybind key="XF86HomePage">
<action name="NextWindow"/>
</keybind>
sudo dpkg-reconfigure xkb-data