<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://kb.d5o.eu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dejvino</id>
	<title>Dejvino's Knowledge Base - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://kb.d5o.eu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dejvino"/>
	<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php/Special:Contributions/Dejvino"/>
	<updated>2026-05-08T14:19:25Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Scoundrel&amp;diff=619</id>
		<title>Scoundrel</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Scoundrel&amp;diff=619"/>
		<updated>2025-08-03T07:33:03Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: Created page with &amp;quot;TODO: clean up  Main rules: http://www.stfj.net/art/2011/Scoundrel.pdf © 2011, Zach Gage and Kurt Bieg  Extensions rules: https://www.youtube.com/watch?v=7fP-QLtWQZs&amp;amp;lc=Ugxnx...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TODO: clean up&lt;br /&gt;
&lt;br /&gt;
Main rules: http://www.stfj.net/art/2011/Scoundrel.pdf&lt;br /&gt;
© 2011, Zach Gage and Kurt Bieg&lt;br /&gt;
&lt;br /&gt;
Extensions rules: https://www.youtube.com/watch?v=7fP-QLtWQZs&amp;amp;lc=UgxnxBkhqD4AVqT_quF4AaABAg&amp;amp;pp=0gcJCSMANpG00pGi&lt;br /&gt;
&lt;br /&gt;
After looking at these comments I've started using a couple of the home rules they did (But I made some minor edits so they'd work together). &lt;br /&gt;
* The diamond face cards as the blacksmiths (exactly how romanallgeier4661 did, so the Jack gets rid of one monster card off of an equipped weapon, Queen 2, King 3, and Ace all). Also, if a weapon has no durability loss, you can place a blacksmith under it to give it a bonus based on the value of the blacksmith, Jack is +1, Q +2, K+3, A+4. Being upgraded by an Ace also means that the weapon can attack an enemy that it one greater than its durability allows (this bonus is kinda situational but when it pays off it feels awesome and it means you can chain back up if you set it up right)&lt;br /&gt;
* The heart face cards as merchants as 4TheWizard said, with them allowing you to 'sell' weapons for health back, but with the amount of health back being the power of the weapon minus the amount of monster cards attached (with a lower cap of one health gained of course) plus a bonus based on the relative value of that face card (with jack having no bonus, queen adding 1 extra health, king adding 3 extra, and ace adding 5). &lt;br /&gt;
* The party member idea of StartTheDayWithKeele could be used by the jokers, the red joker carrying potions that could be used later and the black joker carrying weapons so that you'd have more options in combat (tho he'd only be able to do combat that results in him not taking any damage or he dies and is discarded) or you could also (as if you have a d20 you probably have a full set of DnD dice) you could use a d8 (or some other value depending on what you think his health should be) and give him hp independently. &lt;br /&gt;
Just wanted to put all of these ideas in one place as I thought they were really fun and meant I didn't have to search through all my cards each time looking for the red face cards lol. Also, for these rules, if you come across a diamond or hearts face card and are unable to or don't want to use them for any reason then you can recycle them into a random part of the deck (they don't have to go to the back because they can wander around the dungeon--this also means that if you run away from a room they won't go in the back, but will go somewhere random in the deck), but if you use one then it is gone forever.&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Main_Page&amp;diff=618</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Main_Page&amp;diff=618"/>
		<updated>2025-08-03T07:25:24Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: Add board games&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Personal storage of information. Shared with the world.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
{{Special:AllPages|namespace=3002}}&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
{{Special:AllPages|namespace=3000}}&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
=== Computers ===&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* [[Linux]]&lt;br /&gt;
** [[Arch Linux]], [[Arch Linux ARM]]&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
===== Devices =====&lt;br /&gt;
* [[PinePhone]]&lt;br /&gt;
* [[PineTime]]&lt;br /&gt;
* [[Orange Pi]] ([[Orange Pi Zero]], [[Orange Pi 4]])&lt;br /&gt;
* [[Ender 3]]&lt;br /&gt;
&lt;br /&gt;
===== Other =====&lt;br /&gt;
* [[ZACO A10]]&lt;br /&gt;
&lt;br /&gt;
==== Security ====&lt;br /&gt;
* [[WiFi security]]&lt;br /&gt;
&lt;br /&gt;
=== Board Games ===&lt;br /&gt;
&lt;br /&gt;
* [[Scoundrel]]&lt;br /&gt;
&lt;br /&gt;
=== Finance ===&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== Health ===&lt;br /&gt;
==== Food &amp;amp; Beverage ====&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Special Pages ==&lt;br /&gt;
* [https://kb.d5o.eu/index.php/Special:WhatLinksHere/Template:Todo List of TODOs]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver&amp;diff=617</id>
		<title>Projects:PinePhone Daily Driver</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver&amp;diff=617"/>
		<updated>2022-06-05T13:47:27Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project: Using [[PinePhone]] as my daily driver smartphone, running [[Linux]] fulfilling [[Goal:Technology]].&lt;br /&gt;
&lt;br /&gt;
{{Info|1=Active project as of 2022}}&lt;br /&gt;
&lt;br /&gt;
== Hardware Setup ==&lt;br /&gt;
* [[PinePhone]] (more precisely, [[PinePhone Pro]])&lt;br /&gt;
* Screen protector: iPhone 6 XL screen protector (see [https://wiki.pine64.org/index.php/PinePhone_FAQ])&lt;br /&gt;
* Case: none&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
* Battery replacement: any Samsung J7 form-factor battery[https://wiki.pine64.org/index.php/PinePhone#Specifications] [https://wiki.pine64.org/index.php/PinePhone_FAQ#Battery]&lt;br /&gt;
* Case alternatives:&lt;br /&gt;
** Wireless charging back cover - generates too much heat, way less efficient than a USB-C cable&lt;br /&gt;
** Soft transparent protective case from the [[Pine64]] store - [[PinePhone Pro]] is already sturdy enough, plus the case acts as an unnecessary insulation&lt;br /&gt;
&lt;br /&gt;
== Software Stack ==&lt;br /&gt;
# OS: Arch Linux ARM from [[Danctnix]]&lt;br /&gt;
## bluetooth-autoconnect - automatically connects to known devices&lt;br /&gt;
## [https://github.com/bulletmark/sleep-inhibitor sleep-inhibitor] - prevents sleep during audio playback&lt;br /&gt;
# Terminal: (default)&lt;br /&gt;
# Web browser: [[Firefox]]&lt;br /&gt;
# Passwords manager: [[KeepassXC]]&lt;br /&gt;
# Email client: [[Geary]]&lt;br /&gt;
# Calculator: (default)&lt;br /&gt;
# Alarm: [[Birdie]]&lt;br /&gt;
# IM client: [[Mirage]]&lt;br /&gt;
# Music player:&lt;br /&gt;
## [[Lollypop]] for locally-stored music&lt;br /&gt;
## [[VLC]] for NAS-stored music&lt;br /&gt;
# Podcast player: [[Pragha]]&lt;br /&gt;
# Podcast downloader: [[Podget]]&lt;br /&gt;
# Camera &amp;amp; Video recorder: [[Megapixels]]&lt;br /&gt;
# Calendar &amp;amp; Contacts sync: [[Evolution]]&lt;br /&gt;
# VPN client: ---&lt;br /&gt;
# RSS client: ---&lt;br /&gt;
# OTP generator: ---&lt;br /&gt;
# Ebook reader: ---&lt;br /&gt;
# Weather forecast: ---&lt;br /&gt;
# Maps, navigation: ---&lt;br /&gt;
&lt;br /&gt;
=== Partitions ===&lt;br /&gt;
* OS on the microSD card&lt;br /&gt;
* /home on the internal [[eMMC]] flash storage, encrypted&lt;br /&gt;
&lt;br /&gt;
This allows easier OS swapping while keeping my personal data and settings.&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
* [[Projects:PinePhone Daily Driver Distributions Testing]]&lt;br /&gt;
* [[Projects:PinePhone Daily Driver with Arch Linux]]&lt;br /&gt;
* [[Projects:PinePhone Daily Driver with Sway]] (deprecated)&lt;br /&gt;
* [[PinePhone Hardware]]&lt;br /&gt;
* [[PinePhone Software]]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver&amp;diff=616</id>
		<title>Projects:PinePhone Daily Driver</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver&amp;diff=616"/>
		<updated>2022-06-05T04:53:41Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project: Using [[PinePhone]] as my daily driver smartphone, running [[Linux]] fulfilling [[Goal:Technology]].&lt;br /&gt;
&lt;br /&gt;
{{Info|1=Active project as of 2022}}&lt;br /&gt;
&lt;br /&gt;
== Hardware Setup ==&lt;br /&gt;
* [[PinePhone]] (more precisely, [[PinePhone Pro]])&lt;br /&gt;
* Screen protector: iPhone 6 XL screen protector (see [https://wiki.pine64.org/index.php/PinePhone_FAQ])&lt;br /&gt;
* Case: none&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
* Battery replacement: any Samsung J7 form-factor battery[https://wiki.pine64.org/index.php/PinePhone#Specifications] [https://wiki.pine64.org/index.php/PinePhone_FAQ#Battery]&lt;br /&gt;
* Case alternatives:&lt;br /&gt;
** Wireless charging back cover - generates too much heat, way less efficient than a USB-C cable&lt;br /&gt;
** Soft transparent protective case from the [[Pine64]] store - [[PinePhone Pro]] is already sturdy enough, plus the case acts as an unnecessary insulation&lt;br /&gt;
&lt;br /&gt;
== Software Stack ==&lt;br /&gt;
# OS: Arch Linux ARM from [[Danctnix]]&lt;br /&gt;
## bluetooth-autoconnect - automatically connects to known devices&lt;br /&gt;
## [https://github.com/bulletmark/sleep-inhibitor sleep-inhibitor] - prevents sleep during audio playback&lt;br /&gt;
# Terminal: (default)&lt;br /&gt;
# Web browser: [[Firefox]]&lt;br /&gt;
# Passwords manager: [[KeepassXC]]&lt;br /&gt;
# Email client: [[Geary]]&lt;br /&gt;
# Calculator: (default)&lt;br /&gt;
# Alarm: [[Birdie]]&lt;br /&gt;
# IM client: [[Mirage]]&lt;br /&gt;
# Music player:&lt;br /&gt;
## [[Lollypop]] for locally-stored music&lt;br /&gt;
## [[VLC]] for NAS-stored music&lt;br /&gt;
# Podcast player: [[Pragha]]&lt;br /&gt;
# Podcast downloader: [[Podget]]&lt;br /&gt;
# Camera &amp;amp; Video recorder: [[Megapixels]]&lt;br /&gt;
# VPN client: ---&lt;br /&gt;
# RSS client: ---&lt;br /&gt;
# OTP generator: ---&lt;br /&gt;
# Ebook reader: ---&lt;br /&gt;
# Weather forecast: ---&lt;br /&gt;
# Maps, navigation: ---&lt;br /&gt;
&lt;br /&gt;
=== Partitions ===&lt;br /&gt;
* OS on the microSD card&lt;br /&gt;
* /home on the internal [[eMMC]] flash storage, encrypted&lt;br /&gt;
&lt;br /&gt;
This allows easier OS swapping while keeping my personal data and settings.&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
* [[Projects:PinePhone Daily Driver Distributions Testing]]&lt;br /&gt;
* [[Projects:PinePhone Daily Driver with Arch Linux]]&lt;br /&gt;
* [[Projects:PinePhone Daily Driver with Sway]] (deprecated)&lt;br /&gt;
* [[PinePhone Hardware]]&lt;br /&gt;
* [[PinePhone Software]]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver&amp;diff=615</id>
		<title>Projects:PinePhone Daily Driver</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver&amp;diff=615"/>
		<updated>2022-03-11T13:46:52Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project: Using [[PinePhone]] as my daily driver smartphone, running [[Linux]] fulfilling [[Goal:Technology]].&lt;br /&gt;
&lt;br /&gt;
{{Info|1=Active project as of 2022}}&lt;br /&gt;
&lt;br /&gt;
== Hardware Setup ==&lt;br /&gt;
* [[PinePhone]] (more precisely, [[PinePhone Pro]])&lt;br /&gt;
* Wireless charging back cover (alternatively: soft transparent protective case from the [[Pine64]] store)&lt;br /&gt;
* Screen protector: iPhone 6 XL screen protector (see [https://wiki.pine64.org/index.php/PinePhone_FAQ])&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
* Battery replacement: any Samsung J7 form-factor battery[https://wiki.pine64.org/index.php/PinePhone#Specifications] [https://wiki.pine64.org/index.php/PinePhone_FAQ#Battery]&lt;br /&gt;
&lt;br /&gt;
== Software Stack ==&lt;br /&gt;
# OS: Arch Linux ARM from [[Danctnix]]&lt;br /&gt;
## bluetooth-autoconnect - automatically connects to known devices&lt;br /&gt;
## [https://github.com/bulletmark/sleep-inhibitor sleep-inhibitor] - prevents sleep during audio playback&lt;br /&gt;
# Terminal: (default)&lt;br /&gt;
# Web browser: [[Firefox]]&lt;br /&gt;
# Passwords manager: [[KeepassXC]]&lt;br /&gt;
# Email client: [[Geary]]&lt;br /&gt;
# Calculator: (default)&lt;br /&gt;
# Alarm: [[Birdie]]&lt;br /&gt;
# IM client: [[Mirage]]&lt;br /&gt;
# Music player:&lt;br /&gt;
## [[Lollypop]] for locally-stored music&lt;br /&gt;
## [[VLC]] for NAS-stored music&lt;br /&gt;
# Podcast player: [[Pragha]]&lt;br /&gt;
# Podcast downloader: [[Podget]]&lt;br /&gt;
# Camera &amp;amp; Video recorder: [[Megapixels]]&lt;br /&gt;
# VPN client: ---&lt;br /&gt;
# RSS client: ---&lt;br /&gt;
# OTP generator: ---&lt;br /&gt;
# Ebook reader: ---&lt;br /&gt;
# Weather forecast: ---&lt;br /&gt;
# Maps, navigation: ---&lt;br /&gt;
&lt;br /&gt;
== Software Setup ==&lt;br /&gt;
* OS on the internal [[eMMC]] flash storage&lt;br /&gt;
* non-essential data (photos, videos, etc.) on an SD Card&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
* [[Projects:PinePhone Daily Driver with Arch Linux]]&lt;br /&gt;
* [[Projects:PinePhone Daily Driver with Sway]] (deprecated)&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
* [[Projects:PinePhone Daily Driver Distributions Testing]]&lt;br /&gt;
* [[PinePhone Hardware]]&lt;br /&gt;
* [[PinePhone Software]]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver&amp;diff=614</id>
		<title>Projects:PinePhone Daily Driver</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver&amp;diff=614"/>
		<updated>2022-03-11T06:59:03Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: Updated to PinePhonePro&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project: Using [[PinePhone]] as my daily driver smartphone, running [[Linux]] fulfilling [[Goal:Technology]].&lt;br /&gt;
&lt;br /&gt;
{{Info|1=Active project as of 2022}}&lt;br /&gt;
&lt;br /&gt;
== Hardware Setup ==&lt;br /&gt;
* [[PinePhone]] (more precisely, [[PinePhone Pro]])&lt;br /&gt;
* Wireless charging back cover (alternatively: soft transparent protective case from the [[Pine64]] store)&lt;br /&gt;
* Screen protector: iPhone 6 XL screen protector (see [https://wiki.pine64.org/index.php/PinePhone_FAQ])&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
* Battery replacement: any Samsung J7 form-factor battery[https://wiki.pine64.org/index.php/PinePhone#Specifications] [https://wiki.pine64.org/index.php/PinePhone_FAQ#Battery]&lt;br /&gt;
&lt;br /&gt;
== Software Stack ==&lt;br /&gt;
# OS: Arch Linux ARM from [[Danctnix]]&lt;br /&gt;
# Terminal: (default)&lt;br /&gt;
# Web browser: [[Firefox]]&lt;br /&gt;
# Passwords manager: [[KeepassXC]]&lt;br /&gt;
# Email client: [[Geary]]&lt;br /&gt;
# Calculator: (default)&lt;br /&gt;
# Alarm: [[Birdie]]&lt;br /&gt;
# IM client: [[Mirage]]&lt;br /&gt;
# Music player:&lt;br /&gt;
## [[Lollypop]] for locally-stored music&lt;br /&gt;
## [[VLC]] for NAS-stored music&lt;br /&gt;
# Podcast player: [[Pragha]]&lt;br /&gt;
# Podcast downloader: [[Podget]]&lt;br /&gt;
# Camera &amp;amp; Video recorder: [[Megapixels]]&lt;br /&gt;
# VPN client: ---&lt;br /&gt;
# RSS client: ---&lt;br /&gt;
# OTP generator: ---&lt;br /&gt;
# Ebook reader: ---&lt;br /&gt;
# Weather forecast: ---&lt;br /&gt;
# Maps, navigation: ---&lt;br /&gt;
&lt;br /&gt;
== Software Setup ==&lt;br /&gt;
* OS on the internal [[eMMC]] flash storage&lt;br /&gt;
* non-essential data (photos, videos, etc.) on an SD Card&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
* [[Projects:PinePhone Daily Driver with Arch Linux]]&lt;br /&gt;
* [[Projects:PinePhone Daily Driver with Sway]] (deprecated)&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
* [[Projects:PinePhone Daily Driver Distributions Testing]]&lt;br /&gt;
* [[PinePhone Hardware]]&lt;br /&gt;
* [[PinePhone Software]]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=613</id>
		<title>ZACO A10</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=613"/>
		<updated>2021-11-27T17:35:37Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ZACO A10 is a robotic vacuum cleaner sold by in Germany. This is a rebranding of ILIFE A10 and ILIFE A10S robots sold elsewhere in the world.&lt;br /&gt;
&lt;br /&gt;
== Models &amp;amp; Naming ==&lt;br /&gt;
* ILIFE is the main brand. The robot identifies itself (via hostname) as ''ilife''.&lt;br /&gt;
* ILIFE A10 vs. ILIFE A10S: the A10S version has a mopping attachment, the A10 does not.&lt;br /&gt;
* ZACO A10 has a mopping attachment. There is no ZACO A10S, because the mopping function comes included by default.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Main Board ===&lt;br /&gt;
* CPU: AllWinner R16-J / A33&lt;br /&gt;
* DRAM: 512 MiB, DDR3, 552 MHz&lt;br /&gt;
* PMIC: AXP223&lt;br /&gt;
* WiFi: Realtek 8189FTV, 802.11bgn 2.4G (only)&lt;br /&gt;
* Storage: KLM4G1FETE-B041, 4 GB eMMC&lt;br /&gt;
* connected to...&lt;br /&gt;
** USB board: microUSB + FEL button for FW flashing&lt;br /&gt;
** LIDAR board&lt;br /&gt;
** speaker&lt;br /&gt;
** LIDAR-bumper switch&lt;br /&gt;
&lt;br /&gt;
=== Driver Board ===&lt;br /&gt;
* connected to...&lt;br /&gt;
** Main Board via UART&lt;br /&gt;
** L &amp;amp; R wheel motor&lt;br /&gt;
** L &amp;amp; R side-brush motor&lt;br /&gt;
** bumper switch&lt;br /&gt;
** bumper IR sensors&lt;br /&gt;
** underside IR sensors&lt;br /&gt;
** ...&lt;br /&gt;
{{Todo|...}}&lt;br /&gt;
&lt;br /&gt;
=== Peripherals ===&lt;br /&gt;
* LIDAR (Light Detection And Ranging)&lt;br /&gt;
* Speaker, 0.5 W, 8 Ohm&lt;br /&gt;
{{Todo|...}}&lt;br /&gt;
&lt;br /&gt;
== Research ==&lt;br /&gt;
Reported firmware version: 3.1.64&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
* BOOT0 version 4.2.0, commit 2c70a001bdce45080119e80622aa1f2a3899e7d7&lt;br /&gt;
* U-Boot 2011.09-rc1-00005-g2c70a00 from 2018-12-29 13:58:10&lt;br /&gt;
* Linux 3.4.40 {{TODO|precise version}}&lt;br /&gt;
* OpenSSH 7.4 from 2016&lt;br /&gt;
* ROS version 1.11.20, Indigo release from 2016&lt;br /&gt;
** nodes&lt;br /&gt;
*** /ali_linkkit_wrapper&lt;br /&gt;
*** /cartographer_node&lt;br /&gt;
*** /cartographer_occupancy_grid_node_block&lt;br /&gt;
*** /cartographer_occupancy_grid_node_wifi_map&lt;br /&gt;
*** /door_search_client&lt;br /&gt;
*** /door_search_server&lt;br /&gt;
*** /hlds_laser_publisher&lt;br /&gt;
*** /pp&lt;br /&gt;
*** /robot_status_publisher&lt;br /&gt;
*** /rosout&lt;br /&gt;
&lt;br /&gt;
=== Operating System ===&lt;br /&gt;
Users:&lt;br /&gt;
* root&lt;br /&gt;
* backup, bin, daemon, games, gnats, irc, list, lp, mail, man, news, nobody, proxy, sync, sys, uucp, www-data&lt;br /&gt;
&lt;br /&gt;
=== Open Ports ===&lt;br /&gt;
* 22 - OpenSSH 7.4 (protocol 2.0)&lt;br /&gt;
* 11311 - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ROS Master API and Parameter Server API&lt;br /&gt;
* XXXXX - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ROS services&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://erlerobot.github.io/erle_gitbook/en/ros/ROS.html ROS introduction]&lt;br /&gt;
* [http://wiki.ros.org/ROS/Technical%20Overview ROS Technical Overview]&lt;br /&gt;
* [https://wiki.ros.org/ROS/Master_API ROS Master API]&lt;br /&gt;
* [https://cs.brown.edu/~vpk/papers/rossec.icra19.pdf Scanning the Internet for ROS: A View of Security in Robotics Research]&lt;br /&gt;
* Cartographer is a system that provides real-time ''simultaneous localization and mapping'' (SLAM) in 2D and 3D across multiple platforms and sensor configurations.[https://github.com/cartographer-project/cartographer]&lt;br /&gt;
* linkkit, part of [https://github.com/alibaba/AliOS-Things AliOS Things]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=612</id>
		<title>ZACO A10</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=612"/>
		<updated>2021-11-27T16:58:39Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ZACO A10 is a robotic vacuum cleaner sold by in Germany. This is a rebranding of ILIFE A10 and ILIFE A10S robots sold elsewhere in the world.&lt;br /&gt;
&lt;br /&gt;
== Models &amp;amp; Naming ==&lt;br /&gt;
* ILIFE is the main brand. The robot identifies itself (via hostname) as ''ilife''.&lt;br /&gt;
* ILIFE A10 vs. ILIFE A10S: the A10S version has a mopping attachment, the A10 does not.&lt;br /&gt;
* ZACO A10 has a mopping attachment. There is no ZACO A10S, because the mopping function comes included by default.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Main Board ===&lt;br /&gt;
* CPU: AllWinner R16-J / A33&lt;br /&gt;
* PMIC: AXP223&lt;br /&gt;
* WiFi: Realtek 8189FTV, 802.11bgn 2.4G (only)&lt;br /&gt;
* Storage: KLM4G1FETE-B041, 4 GB eMMC&lt;br /&gt;
* connected to...&lt;br /&gt;
** USB board: microUSB + FEL button for FW flashing&lt;br /&gt;
** LIDAR board&lt;br /&gt;
** speaker&lt;br /&gt;
** LIDAR-bumper switch&lt;br /&gt;
&lt;br /&gt;
=== Driver Board ===&lt;br /&gt;
* connected to...&lt;br /&gt;
** Main Board via UART&lt;br /&gt;
** L &amp;amp; R wheel motor&lt;br /&gt;
** L &amp;amp; R side-brush motor&lt;br /&gt;
** bumper switch&lt;br /&gt;
** bumper IR sensors&lt;br /&gt;
** underside IR sensors&lt;br /&gt;
** ...&lt;br /&gt;
{{Todo|...}}&lt;br /&gt;
&lt;br /&gt;
=== Peripherals ===&lt;br /&gt;
* LIDAR (Light Detection And Ranging)&lt;br /&gt;
* Speaker, 0.5 W, 8 Ohm&lt;br /&gt;
{{Todo|...}}&lt;br /&gt;
&lt;br /&gt;
== Research ==&lt;br /&gt;
Reported firmware version: 3.1.64&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
* BOOT0 version 4.2.0, commit 2c70a001bdce45080119e80622aa1f2a3899e7d7&lt;br /&gt;
* U-Boot {{TODO|precise version}} from 2018&lt;br /&gt;
* Linux 3.4.x {{TODO|precise version}}&lt;br /&gt;
* OpenSSH 7.4 from 2016&lt;br /&gt;
* ROS version 1.11.20, Indigo release from 2016&lt;br /&gt;
** nodes&lt;br /&gt;
*** /ali_linkkit_wrapper&lt;br /&gt;
*** /cartographer_node&lt;br /&gt;
*** /cartographer_occupancy_grid_node_block&lt;br /&gt;
*** /cartographer_occupancy_grid_node_wifi_map&lt;br /&gt;
*** /door_search_client&lt;br /&gt;
*** /door_search_server&lt;br /&gt;
*** /hlds_laser_publisher&lt;br /&gt;
*** /pp&lt;br /&gt;
*** /robot_status_publisher&lt;br /&gt;
*** /rosout&lt;br /&gt;
&lt;br /&gt;
=== Operating System ===&lt;br /&gt;
Users:&lt;br /&gt;
* root&lt;br /&gt;
* backup, bin, daemon, games, gnats, irc, list, lp, mail, man, news, nobody, proxy, sync, sys, uucp, www-data&lt;br /&gt;
&lt;br /&gt;
=== Open Ports ===&lt;br /&gt;
* 22 - OpenSSH 7.4 (protocol 2.0)&lt;br /&gt;
* 11311 - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ROS Master API and Parameter Server API&lt;br /&gt;
* XXXXX - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ROS services&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://erlerobot.github.io/erle_gitbook/en/ros/ROS.html ROS introduction]&lt;br /&gt;
* [http://wiki.ros.org/ROS/Technical%20Overview ROS Technical Overview]&lt;br /&gt;
* [https://wiki.ros.org/ROS/Master_API ROS Master API]&lt;br /&gt;
* [https://cs.brown.edu/~vpk/papers/rossec.icra19.pdf Scanning the Internet for ROS: A View of Security in Robotics Research]&lt;br /&gt;
* Cartographer is a system that provides real-time ''simultaneous localization and mapping'' (SLAM) in 2D and 3D across multiple platforms and sensor configurations.[https://github.com/cartographer-project/cartographer]&lt;br /&gt;
* linkkit, part of [https://github.com/alibaba/AliOS-Things AliOS Things]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=611</id>
		<title>ZACO A10</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=611"/>
		<updated>2021-11-23T18:00:48Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ZACO A10 is a robotic vacuum cleaner sold by in Germany. This is a rebranding of ILIFE A10 and ILIFE A10S robots sold elsewhere in the world.&lt;br /&gt;
&lt;br /&gt;
== Models &amp;amp; Naming ==&lt;br /&gt;
* ILIFE is the main brand. The robot identifies itself (via hostname) as ''ilife''.&lt;br /&gt;
* ILIFE A10 vs. ILIFE A10S: the A10S version has a mopping attachment, the A10 does not.&lt;br /&gt;
* ZACO A10 has a mopping attachment. There is no ZACO A10S, because the mopping function comes included by default.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Main Board ===&lt;br /&gt;
* CPU: AllWinner R16-J / A33&lt;br /&gt;
* PMIC: AXP223&lt;br /&gt;
* WiFi: Realtek 8189FTV, 802.11bgn 2.4G (only)&lt;br /&gt;
* Storage: KLM4G1FETE-B041, 4 GB eMMC&lt;br /&gt;
* connected to...&lt;br /&gt;
** USB board: microUSB + FEL button for FW flashing&lt;br /&gt;
** LIDAR board&lt;br /&gt;
** speaker&lt;br /&gt;
** LIDAR-bumper switch&lt;br /&gt;
&lt;br /&gt;
=== Driver Board ===&lt;br /&gt;
* connected to...&lt;br /&gt;
** Main Board via UART&lt;br /&gt;
** L &amp;amp; R wheel motor&lt;br /&gt;
** L &amp;amp; R side-brush motor&lt;br /&gt;
** bumper switch&lt;br /&gt;
** bumper IR sensors&lt;br /&gt;
** underside IR sensors&lt;br /&gt;
** ...&lt;br /&gt;
{{Todo|...}}&lt;br /&gt;
&lt;br /&gt;
=== Peripherals ===&lt;br /&gt;
* LIDAR (Light Detection And Ranging)&lt;br /&gt;
* Speaker, 0.5 W, 8 Ohm&lt;br /&gt;
{{Todo|...}}&lt;br /&gt;
&lt;br /&gt;
== Research ==&lt;br /&gt;
Reported firmware version: 3.1.64&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
* U-Boot {{TODO|precise version}} from 2018&lt;br /&gt;
* Linux 3.4.x {{TODO|precise version}}&lt;br /&gt;
* OpenSSH 7.4 from 2016&lt;br /&gt;
* ROS version 1.11.20, Indigo release from 2016&lt;br /&gt;
** nodes&lt;br /&gt;
*** /ali_linkkit_wrapper&lt;br /&gt;
*** /cartographer_node&lt;br /&gt;
*** /cartographer_occupancy_grid_node_block&lt;br /&gt;
*** /cartographer_occupancy_grid_node_wifi_map&lt;br /&gt;
*** /door_search_client&lt;br /&gt;
*** /door_search_server&lt;br /&gt;
*** /hlds_laser_publisher&lt;br /&gt;
*** /pp&lt;br /&gt;
*** /robot_status_publisher&lt;br /&gt;
*** /rosout&lt;br /&gt;
&lt;br /&gt;
=== Operating System ===&lt;br /&gt;
Users:&lt;br /&gt;
* root&lt;br /&gt;
* backup, bin, daemon, games, gnats, irc, list, lp, mail, man, news, nobody, proxy, sync, sys, uucp, www-data&lt;br /&gt;
&lt;br /&gt;
=== Open Ports ===&lt;br /&gt;
* 22 - OpenSSH 7.4 (protocol 2.0)&lt;br /&gt;
* 11311 - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ROS Master API and Parameter Server API&lt;br /&gt;
* XXXXX - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ROS services&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://erlerobot.github.io/erle_gitbook/en/ros/ROS.html ROS introduction]&lt;br /&gt;
* [http://wiki.ros.org/ROS/Technical%20Overview ROS Technical Overview]&lt;br /&gt;
* [https://wiki.ros.org/ROS/Master_API ROS Master API]&lt;br /&gt;
* [https://cs.brown.edu/~vpk/papers/rossec.icra19.pdf Scanning the Internet for ROS: A View of Security in Robotics Research]&lt;br /&gt;
* Cartographer is a system that provides real-time ''simultaneous localization and mapping'' (SLAM) in 2D and 3D across multiple platforms and sensor configurations.[https://github.com/cartographer-project/cartographer]&lt;br /&gt;
* linkkit, part of [https://github.com/alibaba/AliOS-Things AliOS Things]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=610</id>
		<title>ZACO A10</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=610"/>
		<updated>2021-11-22T06:12:36Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ZACO A10 is a robotic vacuum cleaner sold by in Germany. This is a rebranding of ILIFE A10 and ILIFE A10S robots sold elsewhere in the world.&lt;br /&gt;
&lt;br /&gt;
== Models &amp;amp; Naming ==&lt;br /&gt;
* ILIFE is the main brand. The robot identifies itself (via hostname) as ''ilife''.&lt;br /&gt;
* ILIFE A10 vs. ILIFE A10S: the A10S version has a mopping attachment, the A10 does not.&lt;br /&gt;
* ZACO A10 has a mopping attachment. There is no ZACO A10S, because the mopping function comes included by default.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Main Board ===&lt;br /&gt;
* CPU: AllWinner R16-J / A33&lt;br /&gt;
* PMIC: AXP223&lt;br /&gt;
* WiFi: Realtek 8189FTV, 802.11bgn 2.4G (only)&lt;br /&gt;
* Storage: KLM4G1FETE-B041, 4 GB eMMC&lt;br /&gt;
* connected to...&lt;br /&gt;
** USB board: microUSB + FEL button for FW flashing&lt;br /&gt;
** LIDAR board&lt;br /&gt;
** speaker&lt;br /&gt;
** LIDAR-bumper switch&lt;br /&gt;
&lt;br /&gt;
=== Driver Board ===&lt;br /&gt;
* connected to...&lt;br /&gt;
** Main Board via UART&lt;br /&gt;
** L &amp;amp; R wheel motor&lt;br /&gt;
** L &amp;amp; R side-brush motor&lt;br /&gt;
** bumper switch&lt;br /&gt;
** bumper IR sensors&lt;br /&gt;
** underside IR sensors&lt;br /&gt;
** ...&lt;br /&gt;
{{Todo|...}}&lt;br /&gt;
&lt;br /&gt;
=== Peripherals ===&lt;br /&gt;
* LIDAR (Light Detection And Ranging)&lt;br /&gt;
* Speaker, 0.5 W, 8 Ohm&lt;br /&gt;
{{Todo|...}}&lt;br /&gt;
&lt;br /&gt;
== Research ==&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
* U-Boot {{TODO|precise version}} from 2018&lt;br /&gt;
* Linux 3.4.x {{TODO|precise version}}&lt;br /&gt;
* OpenSSH 7.4 from 2016&lt;br /&gt;
* ROS version 1.11.20, Indigo release from 2016&lt;br /&gt;
** nodes&lt;br /&gt;
*** /ali_linkkit_wrapper&lt;br /&gt;
*** /cartographer_node&lt;br /&gt;
*** /cartographer_occupancy_grid_node_block&lt;br /&gt;
*** /cartographer_occupancy_grid_node_wifi_map&lt;br /&gt;
*** /door_search_client&lt;br /&gt;
*** /door_search_server&lt;br /&gt;
*** /hlds_laser_publisher&lt;br /&gt;
*** /pp&lt;br /&gt;
*** /robot_status_publisher&lt;br /&gt;
*** /rosout&lt;br /&gt;
&lt;br /&gt;
=== Operating System ===&lt;br /&gt;
Users:&lt;br /&gt;
* root&lt;br /&gt;
* backup, bin, daemon, games, gnats, irc, list, lp, mail, man, news, nobody, proxy, sync, sys, uucp, www-data&lt;br /&gt;
&lt;br /&gt;
=== Open Ports ===&lt;br /&gt;
* 22 - OpenSSH 7.4 (protocol 2.0)&lt;br /&gt;
* 11311 - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ROS Master API and Parameter Server API&lt;br /&gt;
* XXXXX - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ROS services&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://erlerobot.github.io/erle_gitbook/en/ros/ROS.html ROS introduction]&lt;br /&gt;
* [http://wiki.ros.org/ROS/Technical%20Overview ROS Technical Overview]&lt;br /&gt;
* [https://wiki.ros.org/ROS/Master_API ROS Master API]&lt;br /&gt;
* [https://cs.brown.edu/~vpk/papers/rossec.icra19.pdf Scanning the Internet for ROS: A View of Security in Robotics Research]&lt;br /&gt;
* Cartographer is a system that provides real-time ''simultaneous localization and mapping'' (SLAM) in 2D and 3D across multiple platforms and sensor configurations.[https://github.com/cartographer-project/cartographer]&lt;br /&gt;
* linkkit, part of [https://github.com/alibaba/AliOS-Things AliOS Things]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=609</id>
		<title>ZACO A10</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=609"/>
		<updated>2021-11-20T06:36:53Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ZACO A10 is a robotic vacuum cleaner sold by in Germany. This is a rebranding of ILIFE A10 and ILIFE A10S robots sold elsewhere in the world.&lt;br /&gt;
&lt;br /&gt;
== Models &amp;amp; Naming ==&lt;br /&gt;
* ILIFE is the main brand. The robot identifies itself (via hostname) as ''ilife''.&lt;br /&gt;
* ILIFE A10 vs. ILIFE A10S: the A10S version has a mopping attachment, the A10 does not.&lt;br /&gt;
* ZACO A10 has a mopping attachment. There is no ZACO A10S, because the mopping function comes included by default.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
{{Todo|...}}&lt;br /&gt;
* LIDAR (Light Detection And Ranging)&lt;br /&gt;
&lt;br /&gt;
== Research ==&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
* nothing dates later than 2016&lt;br /&gt;
* ROS version 1.11.20, Indigo release&lt;br /&gt;
** nodes&lt;br /&gt;
*** /ali_linkkit_wrapper&lt;br /&gt;
*** /cartographer_node&lt;br /&gt;
*** /cartographer_occupancy_grid_node_block&lt;br /&gt;
*** /cartographer_occupancy_grid_node_wifi_map&lt;br /&gt;
*** /door_search_client&lt;br /&gt;
*** /door_search_server&lt;br /&gt;
*** /hlds_laser_publisher&lt;br /&gt;
*** /pp&lt;br /&gt;
*** /robot_status_publisher&lt;br /&gt;
*** /rosout&lt;br /&gt;
&lt;br /&gt;
=== Operating System ===&lt;br /&gt;
Users:&lt;br /&gt;
* root&lt;br /&gt;
* backup, bin, daemon, games, gnats, irc, list, lp, mail, man, news, nobody, proxy, sync, sys, uucp, www-data&lt;br /&gt;
&lt;br /&gt;
=== Open Ports ===&lt;br /&gt;
* 22 - OpenSSH 7.4 (protocol 2.0)&lt;br /&gt;
* 11311 - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ROS Master API and Parameter Server API&lt;br /&gt;
* XXXXX - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ROS services&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://erlerobot.github.io/erle_gitbook/en/ros/ROS.html ROS introduction]&lt;br /&gt;
* [http://wiki.ros.org/ROS/Technical%20Overview ROS Technical Overview]&lt;br /&gt;
* [https://wiki.ros.org/ROS/Master_API ROS Master API]&lt;br /&gt;
* [https://cs.brown.edu/~vpk/papers/rossec.icra19.pdf Scanning the Internet for ROS: A View of Security in Robotics Research]&lt;br /&gt;
* Cartographer is a system that provides real-time ''simultaneous localization and mapping'' (SLAM) in 2D and 3D across multiple platforms and sensor configurations.[https://github.com/cartographer-project/cartographer]&lt;br /&gt;
* linkkit, part of [https://github.com/alibaba/AliOS-Things AliOS Things]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=608</id>
		<title>ZACO A10</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=608"/>
		<updated>2021-11-20T06:24:17Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A10 is a robotic vacuum cleaner sold by ZACO in Germany, by ILIFE elsewhere.&lt;br /&gt;
&lt;br /&gt;
== Research ==&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
* nothing dates later than 2016&lt;br /&gt;
* ROS version 1.11.20, Indigo release&lt;br /&gt;
** nodes&lt;br /&gt;
*** /ali_linkkit_wrapper&lt;br /&gt;
*** /cartographer_node&lt;br /&gt;
*** /cartographer_occupancy_grid_node_block&lt;br /&gt;
*** /cartographer_occupancy_grid_node_wifi_map&lt;br /&gt;
*** /door_search_client&lt;br /&gt;
*** /door_search_server&lt;br /&gt;
*** /hlds_laser_publisher&lt;br /&gt;
*** /pp&lt;br /&gt;
*** /robot_status_publisher&lt;br /&gt;
*** /rosout&lt;br /&gt;
&lt;br /&gt;
=== Operating System ===&lt;br /&gt;
Users:&lt;br /&gt;
* root&lt;br /&gt;
* backup, bin, daemon, games, gnats, irc, list, lp, mail, man, news, nobody, proxy, sync, sys, uucp, www-data&lt;br /&gt;
&lt;br /&gt;
=== Open Ports ===&lt;br /&gt;
* 22 - OpenSSH 7.4 (protocol 2.0)&lt;br /&gt;
* 11311 - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ROS Master API and Parameter Server API&lt;br /&gt;
* XXXXX - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ROS services&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://erlerobot.github.io/erle_gitbook/en/ros/ROS.html ROS introduction]&lt;br /&gt;
* [http://wiki.ros.org/ROS/Technical%20Overview ROS Technical Overview]&lt;br /&gt;
* [https://wiki.ros.org/ROS/Master_API ROS Master API]&lt;br /&gt;
* [https://cs.brown.edu/~vpk/papers/rossec.icra19.pdf Scanning the Internet for ROS: A View of Security in Robotics Research]&lt;br /&gt;
* Cartographer is a system that provides real-time ''simultaneous localization and mapping'' (SLAM) in 2D and 3D across multiple platforms and sensor configurations.[https://github.com/cartographer-project/cartographer]&lt;br /&gt;
* linkkit, part of [https://github.com/alibaba/AliOS-Things AliOS Things]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=607</id>
		<title>ZACO A10</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=607"/>
		<updated>2021-11-20T06:10:15Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A10 is a robotic vacuum cleaner sold by ZACO in Germany, by ILIFE elsewhere.&lt;br /&gt;
&lt;br /&gt;
== Research ==&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
* nothing dates later than 2016&lt;br /&gt;
* ROS version 1.11.20, Indigo release&lt;br /&gt;
** nodes&lt;br /&gt;
*** /ali_linkkit_wrapper&lt;br /&gt;
*** /cartographer_node&lt;br /&gt;
*** /cartographer_occupancy_grid_node_block&lt;br /&gt;
*** /cartographer_occupancy_grid_node_wifi_map&lt;br /&gt;
*** /door_search_client&lt;br /&gt;
*** /door_search_server&lt;br /&gt;
*** /hlds_laser_publisher&lt;br /&gt;
*** /pp&lt;br /&gt;
*** /robot_status_publisher&lt;br /&gt;
*** /rosout&lt;br /&gt;
&lt;br /&gt;
=== Operating System ===&lt;br /&gt;
Users:&lt;br /&gt;
* root&lt;br /&gt;
* backup, bin, daemon, games, gnats, irc, list, lp, mail, man, news, nobody, proxy, sync, sys, uucp, www-data&lt;br /&gt;
&lt;br /&gt;
=== Open Ports ===&lt;br /&gt;
* 22 - OpenSSH 7.4 (protocol 2.0)&lt;br /&gt;
* 11311 - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ROS Master API and Parameter Server API&lt;br /&gt;
* XXXXX - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ROS services&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://erlerobot.github.io/erle_gitbook/en/ros/ROS.html ROS introduction]&lt;br /&gt;
* [http://wiki.ros.org/ROS/Technical%20Overview ROS Technical Overview]&lt;br /&gt;
* [https://wiki.ros.org/ROS/Master_API ROS Master API]&lt;br /&gt;
* [https://cs.brown.edu/~vpk/papers/rossec.icra19.pdf Scanning the Internet for ROS: A View of Security in Robotics Research]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=606</id>
		<title>ZACO A10</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=606"/>
		<updated>2021-11-20T05:56:55Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A10 is a robotic vacuum cleaner sold by ZACO in Germany, by ILIFE elsewhere.&lt;br /&gt;
&lt;br /&gt;
== Research ==&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
* nothing dates later than 2016&lt;br /&gt;
* ROS version 1.11.20, Indigo release&lt;br /&gt;
&lt;br /&gt;
=== Operating System ===&lt;br /&gt;
Users:&lt;br /&gt;
* root&lt;br /&gt;
* backup, bin, daemon, games, gnats, irc, list, lp, mail, man, news, nobody, proxy, sync, sys, uucp, www-data&lt;br /&gt;
&lt;br /&gt;
=== Open Ports ===&lt;br /&gt;
* 22 - OpenSSH 7.4 (protocol 2.0)&lt;br /&gt;
* 11311 - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ROS Master API and Parameter Server API&lt;br /&gt;
* XXXXX - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ROS services&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://erlerobot.github.io/erle_gitbook/en/ros/ROS.html ROS introduction]&lt;br /&gt;
* [http://wiki.ros.org/ROS/Technical%20Overview ROS Technical Overview]&lt;br /&gt;
* [https://wiki.ros.org/ROS/Master_API ROS Master API]&lt;br /&gt;
* [https://cs.brown.edu/~vpk/papers/rossec.icra19.pdf Scanning the Internet for ROS: A View of Security in Robotics Research]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=605</id>
		<title>ZACO A10</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=605"/>
		<updated>2021-11-19T11:26:27Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A10 is a robotic vacuum cleaner sold by ZACO in Germany, by ILIFE elsewhere.&lt;br /&gt;
&lt;br /&gt;
== Research ==&lt;br /&gt;
&lt;br /&gt;
=== Open Ports ===&lt;br /&gt;
* 22 - OpenSSH 7.4 (protocol 2.0)&lt;br /&gt;
* 11311 - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ROS Master API and Parameter Server API&lt;br /&gt;
* 39638 - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ??&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
* nothing dates later than 2016&lt;br /&gt;
* ROS version 1.11.20, Indigo release&lt;br /&gt;
&lt;br /&gt;
=== Operating System ===&lt;br /&gt;
Users:&lt;br /&gt;
* root&lt;br /&gt;
* backup&lt;br /&gt;
* bin, daemon, games gnats, irc, list, lp, mail, man, news, nobody, proxy, sync, sys, uucp, www-data&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://erlerobot.github.io/erle_gitbook/en/ros/ROS.html ROS introduction]&lt;br /&gt;
* [http://wiki.ros.org/ROS/Technical%20Overview ROS Technical Overview]&lt;br /&gt;
* [https://wiki.ros.org/ROS/Master_API ROS Master API]&lt;br /&gt;
* [https://cs.brown.edu/~vpk/papers/rossec.icra19.pdf Scanning the Internet for ROS: A View of Security in Robotics Research]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=604</id>
		<title>ZACO A10</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=604"/>
		<updated>2021-11-19T10:53:08Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A10 is a robotic vacuum cleaner sold by ZACO in Germany, by ILIFE elsewhere.&lt;br /&gt;
&lt;br /&gt;
== Research ==&lt;br /&gt;
&lt;br /&gt;
=== Open Ports ===&lt;br /&gt;
* 22 - OpenSSH 7.4 (protocol 2.0)&lt;br /&gt;
* 11311 - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ROS Master API and Parameter Server API&lt;br /&gt;
* 39638 - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ??&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
* nothing dates later than 2016&lt;br /&gt;
* ROS version 1.11.20, Indigo release&lt;br /&gt;
&lt;br /&gt;
=== Operating System ===&lt;br /&gt;
Users:&lt;br /&gt;
* root&lt;br /&gt;
* backup&lt;br /&gt;
* bin, daemon, games gnats, irc, list, lp, mail, man, news&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://erlerobot.github.io/erle_gitbook/en/ros/ROS.html ROS introduction]&lt;br /&gt;
* [http://wiki.ros.org/ROS/Technical%20Overview ROS Technical Overview]&lt;br /&gt;
* [https://wiki.ros.org/ROS/Master_API ROS Master API]&lt;br /&gt;
* [https://cs.brown.edu/~vpk/papers/rossec.icra19.pdf Scanning the Internet for ROS: A View of Security in Robotics Research]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=603</id>
		<title>ZACO A10</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=603"/>
		<updated>2021-11-19T10:08:56Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A10 is a robotic vacuum cleaner sold by ZACO in Germany, by ILIFE elsewhere.&lt;br /&gt;
&lt;br /&gt;
== Research ==&lt;br /&gt;
&lt;br /&gt;
=== Open Ports ===&lt;br /&gt;
* 22 - OpenSSH 7.4 (protocol 2.0)&lt;br /&gt;
* 11311 - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ROS Master API and Parameter Server API&lt;br /&gt;
* 39638 - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ??&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
* nothing dates later than 2016&lt;br /&gt;
* ROS version 1.11.20, Indigo release&lt;br /&gt;
&lt;br /&gt;
=== Operating System ===&lt;br /&gt;
Users:&lt;br /&gt;
* root&lt;br /&gt;
* backup&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://erlerobot.github.io/erle_gitbook/en/ros/ROS.html ROS introduction]&lt;br /&gt;
* [http://wiki.ros.org/ROS/Technical%20Overview ROS Technical Overview]&lt;br /&gt;
* [https://wiki.ros.org/ROS/Master_API ROS Master API]&lt;br /&gt;
* [https://cs.brown.edu/~vpk/papers/rossec.icra19.pdf Scanning the Internet for ROS: A View of Security in Robotics Research]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=602</id>
		<title>ZACO A10</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=602"/>
		<updated>2021-11-18T23:11:40Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A10 is a robotic vacuum cleaner sold by ZACO in Germany, by ILIFE elsewhere.&lt;br /&gt;
&lt;br /&gt;
== Research ==&lt;br /&gt;
&lt;br /&gt;
=== Open Ports ===&lt;br /&gt;
* 22 - OpenSSH 7.4 (protocol 2.0)&lt;br /&gt;
* 11311 - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ROS Master API and Parameter Server API&lt;br /&gt;
* 39638 - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ??&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
* nothing dates later than 2016&lt;br /&gt;
* ROS version 1.11.20, Indigo release&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://erlerobot.github.io/erle_gitbook/en/ros/ROS.html ROS introduction]&lt;br /&gt;
* [http://wiki.ros.org/ROS/Technical%20Overview ROS Technical Overview]&lt;br /&gt;
* [https://wiki.ros.org/ROS/Master_API ROS Master API]&lt;br /&gt;
* [https://cs.brown.edu/~vpk/papers/rossec.icra19.pdf Scanning the Internet for ROS: A View of Security in Robotics Research]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=601</id>
		<title>ZACO A10</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=ZACO_A10&amp;diff=601"/>
		<updated>2021-11-18T23:02:01Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: Created page with &amp;quot;A10 is a robotic vacuum cleaner sold by ZACO in Germany, by ILIFE elsewhere.  == Research ==  === Open Ports === * 22 - OpenSSH 7.4 (protocol 2.0) * 11311 - BaseHTTPServer 0.3...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A10 is a robotic vacuum cleaner sold by ZACO in Germany, by ILIFE elsewhere.&lt;br /&gt;
&lt;br /&gt;
== Research ==&lt;br /&gt;
&lt;br /&gt;
=== Open Ports ===&lt;br /&gt;
* 22 - OpenSSH 7.4 (protocol 2.0)&lt;br /&gt;
* 11311 - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ROS Master API and Parameter Server API&lt;br /&gt;
* 39638 - BaseHTTPServer 0.3 (Python 2.7.12), XML-RPC (xmlrpclib), ??&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
* nothing dates later than 2016&lt;br /&gt;
* ROS version 1.11.20, Indigo release&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://erlerobot.github.io/erle_gitbook/en/ros/ROS.html ROS introduction]&lt;br /&gt;
* [https://wiki.ros.org/ROS/Master_API ROS Master API]&lt;br /&gt;
* [https://cs.brown.edu/~vpk/papers/rossec.icra19.pdf Scanning the Internet for ROS: A View of Security in Robotics Research]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Main_Page&amp;diff=600</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Main_Page&amp;diff=600"/>
		<updated>2021-11-18T22:52:08Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Personal storage of information. Shared with the world.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
{{Special:AllPages|namespace=3002}}&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
{{Special:AllPages|namespace=3000}}&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
=== Computers ===&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* [[Linux]]&lt;br /&gt;
** [[Arch Linux]], [[Arch Linux ARM]]&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
===== Devices =====&lt;br /&gt;
* [[PinePhone]]&lt;br /&gt;
* [[PineTime]]&lt;br /&gt;
* [[Orange Pi]] ([[Orange Pi Zero]], [[Orange Pi 4]])&lt;br /&gt;
* [[Ender 3]]&lt;br /&gt;
&lt;br /&gt;
===== Other =====&lt;br /&gt;
* [[ZACO A10]]&lt;br /&gt;
&lt;br /&gt;
==== Security ====&lt;br /&gt;
* [[WiFi security]]&lt;br /&gt;
&lt;br /&gt;
=== Finance ===&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== Health ===&lt;br /&gt;
==== Food &amp;amp; Beverage ====&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Special Pages ==&lt;br /&gt;
* [https://kb.d5o.eu/index.php/Special:WhatLinksHere/Template:Todo List of TODOs]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver_with_Sway&amp;diff=599</id>
		<title>Projects:PinePhone Daily Driver with Sway</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver_with_Sway&amp;diff=599"/>
		<updated>2021-10-23T04:17:10Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Implementation of [[Projects:PinePhone Daily Driver]] using [[SwayWM]].&lt;br /&gt;
&lt;br /&gt;
{{warning|1='''HARDCORE'''&lt;br /&gt;
&lt;br /&gt;
It is too much work to put all of the parts of the system together and maintain them on your own!&lt;br /&gt;
&lt;br /&gt;
Next stop: [[Projects:PinePhone Daily Driver with Arch Linux]]}}&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
* [[Arch Linux ARM]] with [[SwayWM]]&lt;br /&gt;
* [[PinePhone-Toolkit|pinephone-toolkit]]&lt;br /&gt;
* System packages: [[sddm]] [[bemenu]] [[networkmanager]] [[alacritty]] [[bluez]] [[squeekboard]]&lt;br /&gt;
* App packages: [[vim]] [[firefox]] [[galculator]] [[thunderbird]] [[vlc]] [[birdie]] [[htop]]&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
Configs are stored in a [https://github.com/Dejvino/pinephone-sway-poc repository].&lt;br /&gt;
&lt;br /&gt;
{{Todo|Create a package for people to use and install easily}}&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
* backlight off and CPU sleep when screen is locked via power button&lt;br /&gt;
* handled via [[PinePhone-Toolkit]]&lt;br /&gt;
&lt;br /&gt;
=== [[sudo]] ===&lt;br /&gt;
Add NOPASSWD for shutdown and reboot to wheel group:&lt;br /&gt;
&lt;br /&gt;
{{codeblock|title=visudo|1=%wheel ALL=(ALL) ALL&lt;br /&gt;
%wheel ALL=(ALL) NOPASSWD: /sbin/poweroff,/sbin/reboot}}&lt;br /&gt;
&lt;br /&gt;
=== [[elogind]] ===&lt;br /&gt;
Power key needs to be locked from [[elogind]], otherwise it would shutdown the system. This way as long as the UI session is running, power button is ignored by [[elogind]]. Once the session ends and we're back in the login screen, the power button is again able to shutdown the system.&lt;br /&gt;
&lt;br /&gt;
{{codeblock|title=/usr/share/wayland-sessions/sway.desktop|1=&lt;br /&gt;
...&lt;br /&gt;
Exec=elogind-inhibit --what=handle-power-key --mode=block dbus-run-session /usr/bin/sway&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
(included in the POC repository)&lt;br /&gt;
&lt;br /&gt;
=== [[SwayWM]] ===&lt;br /&gt;
(config included in the POC repository)&lt;br /&gt;
&lt;br /&gt;
=== [[waybar]] ===&lt;br /&gt;
(config included in the POC repository)&lt;br /&gt;
&lt;br /&gt;
* Pick a theme! Mine is: [https://github.com/carlosdss22/dotfiles/]&lt;br /&gt;
* {{IconInfo}} For '''clock''' module, don't forget to set the ''locale'' and ''timezone'' parameters, otherwise nothing will show up.&lt;br /&gt;
&lt;br /&gt;
=== lisgd ===&lt;br /&gt;
[[sxmo#lisgd]] reconfigured through command line parameters in [[SwayWM]] config.&lt;br /&gt;
&lt;br /&gt;
(config included in the POC repository)&lt;br /&gt;
&lt;br /&gt;
=== [[PinePhone-Toolkit]] ===&lt;br /&gt;
Used mainly in [[SwayWM]] config.&lt;br /&gt;
&lt;br /&gt;
=== [[Bluetooth]] ===&lt;br /&gt;
* Enable the service on boot: {{code|1=rc-update add bluetooth}}&lt;br /&gt;
* Enable the controller by default:&lt;br /&gt;
{{codeblock|title=/etc/bluetooth/main.conf|1=&lt;br /&gt;
[Policy]&lt;br /&gt;
AutoEnable=true&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== TODOs ===&lt;br /&gt;
{{todo|Complete these TODOs!}}&lt;br /&gt;
# power saving (so that I can leave the battery in the device when I'm not using it)&lt;br /&gt;
## hibernation / suspend command - needs crust support in pmos: [https://gitlab.com/postmarketOS/pmaports/-/issues/550 issue 550]&lt;br /&gt;
## shortcut to enter suspend&lt;br /&gt;
##* {{IconInfo}} {{code|1=rtcwake -m mem -s 10}} ... {{IconFail}} does not resume operation after issuing ''s2idle''&lt;br /&gt;
# Core UI&lt;br /&gt;
#* Display rotation&lt;br /&gt;
#** Vertical waybar - hide/show based on output transformation/waybar-window size [https://github.com/Alexays/Waybar/search?q=hidden&amp;amp;unscoped_q=hidden]&lt;br /&gt;
# Install and test essential apps &amp;amp; workflows&lt;br /&gt;
## {{IconDone}} Terminal: [[termite]]&lt;br /&gt;
## {{IconWip}} Web browser: [[Firefox]]&lt;br /&gt;
##* Mostly works. Portrait mode doesn't fit perfectly. Clunky UI, some menus overflow.&lt;br /&gt;
## {{IconWip}} Passwords manager: [[KeepassXC]])&lt;br /&gt;
##* Doesn't support such a small screen. Modify and submit a PR?&lt;br /&gt;
## {{IconTodo}} Personal Information Manager with [[WebDAV]] sync support for calendar, contacts&lt;br /&gt;
## {{IconTodo}} Email client: [[thunderbird]]&lt;br /&gt;
##* Doesn't support such a small screen. Modify and submit a PR?&lt;br /&gt;
## {{IconDone}} Calculator: [[galculator]]&lt;br /&gt;
## {{IconTodo}} Alarm: ?&lt;br /&gt;
## {{IconTodo}} IM clients&lt;br /&gt;
##* XMPP: ?&lt;br /&gt;
##* Matrix: ?&lt;br /&gt;
##* Slack: ?&lt;br /&gt;
## {{IconWip}} Music player: [[audacious]]&lt;br /&gt;
##* A few problems with the small screen. Otherwise seems to work.&lt;br /&gt;
## {{IconTodo}} Camera &amp;amp; Video recorder: ?&lt;br /&gt;
## {{IconTodo}} VPN client: [[NetworkManager]]?&lt;br /&gt;
# Support for non-essential apps &amp;amp; workflows&lt;br /&gt;
#* {{IconTodo}} RSS client: ?&lt;br /&gt;
#* {{IconTodo}} OTP generator: ?&lt;br /&gt;
#* {{IconTodo}} Ebook reader: ?&lt;br /&gt;
#* {{IconTodo}} Weather forecast: ?&lt;br /&gt;
#* {{IconTodo}} Maps, navigation: ?&lt;br /&gt;
#* {{IconTodo}} Calls &amp;amp; Texts: ?&lt;br /&gt;
#* {{IconTodo}} Samba share mounted from NAS&lt;br /&gt;
#** CIFS is not supported by the kernel right now&lt;br /&gt;
# Tweaking&lt;br /&gt;
#* Configure [[Firefox]] for touch: [https://wiki.postmarketos.org/wiki/Firefox]?&lt;br /&gt;
#* ...&lt;br /&gt;
# non-essential userspace apps&lt;br /&gt;
#* ...&lt;br /&gt;
# cool stuff&lt;br /&gt;
#* presentation mode [https://github.com/Alexays/Waybar/wiki/Module:-Idle-Inhibitor]&lt;br /&gt;
#* night mode: flux / nightlight / redshift / ...&lt;br /&gt;
#* automated brightness based on screen content [https://github.com/maximbaz/wluma]&lt;br /&gt;
&lt;br /&gt;
== Rejected solutions ==&lt;br /&gt;
=== under Wayland ===&lt;br /&gt;
* [https://github.com/bulletmark/libinput-gestures libinput-gestures]&lt;br /&gt;
* [http://www.plippo.de/p/twofing twofing]&lt;br /&gt;
* onboard virtual keyboard&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver_Distributions_Testing&amp;diff=598</id>
		<title>Projects:PinePhone Daily Driver Distributions Testing</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver_Distributions_Testing&amp;diff=598"/>
		<updated>2021-10-03T08:10:43Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My results from testing of various distributions with the [[PinePhone]] to fulfill the [[Projects:PinePhone Daily Driver]].&lt;br /&gt;
&lt;br /&gt;
{{Info|Finished as of 2020. The winner is [[Arch Linux ARM]] from [[DanctNIX]].}}&lt;br /&gt;
&lt;br /&gt;
== Testing Results ==&lt;br /&gt;
=== [[Mobian]] ===&lt;br /&gt;
==== Pros and Cons ====&lt;br /&gt;
* {{IconPlus}} [[Debian]] (almost as good as [[Arch Linux]])&lt;br /&gt;
* {{IconPlus}} Aims to be as upstream as possible, built from source&lt;br /&gt;
* {{IconPlus}} Usually features the newest features&lt;br /&gt;
* {{IconPlus}} Most reliable so far&lt;br /&gt;
&lt;br /&gt;
=== [[postmarketOS]] ===&lt;br /&gt;
==== Pros and Cons ====&lt;br /&gt;
* {{IconPlus}} [[Alpine Linux]]&lt;br /&gt;
* {{IconPlus}} Easily customizable (thanks to pmbootstrap)&lt;br /&gt;
* {{IconPlus}} Full Device Encryption&lt;br /&gt;
* {{IconMinus}} Seems to often lag behind other popular distros when it comes to supporting new features.&lt;br /&gt;
&lt;br /&gt;
=== [[UBports]] ===&lt;br /&gt;
==== Pros and Cons ====&lt;br /&gt;
* {{IconPlus}} Usually polished&lt;br /&gt;
* {{IconPlus}} Built via [[debos]] from source&lt;br /&gt;
* {{IconMinus}} {{IconMinus}} read-only file systems, not intended to be modified by the user&lt;br /&gt;
&lt;br /&gt;
=== [[sxmo]] ===&lt;br /&gt;
==== Pros and Cons ====&lt;br /&gt;
* {{IconPlus}} built on top of [[postmarketOS]] (i.e. [[Alpine Linux]])&lt;br /&gt;
* {{IconPlus}} tiling window manager&lt;br /&gt;
* {{IconMinus}} {{IconMinus}} kills power/volume buttons easily&lt;br /&gt;
* {{IconMinus}} [[X11]] instead of [[Wayland]]&lt;br /&gt;
* {{IconMinus}} smaller community&lt;br /&gt;
&lt;br /&gt;
=== [[Arch Linux ARM]] ===&lt;br /&gt;
==== Pros and Cons ====&lt;br /&gt;
* {{IconPlus}} [[Arch Linux]] (and all that it entails)&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
* [[PinePhone Software]]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver&amp;diff=597</id>
		<title>Projects:PinePhone Daily Driver</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver&amp;diff=597"/>
		<updated>2021-10-03T08:07:54Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project: Using [[PinePhone]] as my daily driver smartphone, running [[Linux]] fulfilling [[Goal:Technology]].&lt;br /&gt;
&lt;br /&gt;
{{Info|1=Active project as of 2021}}&lt;br /&gt;
&lt;br /&gt;
== Hardware Setup ==&lt;br /&gt;
* [[PinePhone]] (more precisely, [[PinePhone 1.2]])&lt;br /&gt;
* Battery&lt;br /&gt;
** Factory-provided at first&lt;br /&gt;
** Replaceable with any Samsung J7 form-factor battery[https://wiki.pine64.org/index.php/PinePhone#Specifications] [https://wiki.pine64.org/index.php/PinePhone_FAQ#Battery]&lt;br /&gt;
*** {{Todo|Find out more and look for a shop selling this (once needed)}}&lt;br /&gt;
* Screen protector: iPhone 6 XL screen protector is usable [https://wiki.pine64.org/index.php/PinePhone_FAQ]&lt;br /&gt;
* Protective case: soft transparent case from the [[Pine64]] store}}&lt;br /&gt;
&lt;br /&gt;
== Software Wishlist ==&lt;br /&gt;
# Solid base [[Linux]] distribution&lt;br /&gt;
#* lightweight, customizable&lt;br /&gt;
#* community-supported with continuous updates&lt;br /&gt;
#* large package repository&lt;br /&gt;
# One day of battery life&lt;br /&gt;
#* ability to enter power-saving mode and leave it in a matter of seconds of user request&lt;br /&gt;
#* automatic power-saving after a period of inactivity&lt;br /&gt;
# Convenient and efficient UI - common actions need to be easy to achieve&lt;br /&gt;
#* switching between the apps&lt;br /&gt;
#* turning the screen on and off&lt;br /&gt;
#* ability to kill apps&lt;br /&gt;
# Support for essential apps &amp;amp; workflows&lt;br /&gt;
## Terminal&lt;br /&gt;
## Web browser ([[Firefox]])&lt;br /&gt;
## Passwords manager ([[KeepassXC]]))&lt;br /&gt;
## Personal Information Manager with [[WebDAV]] sync support for calendar, contacts&lt;br /&gt;
## Email client&lt;br /&gt;
## Calculator, Alarm&lt;br /&gt;
## IM client (XMPP, Matrix, Slack)&lt;br /&gt;
## Music player&lt;br /&gt;
## Camera &amp;amp; Video recorder&lt;br /&gt;
## VPN client&lt;br /&gt;
# Support for non-essential apps &amp;amp; workflows&lt;br /&gt;
#* RSS client&lt;br /&gt;
#* OTP generator&lt;br /&gt;
#* Ebook reader&lt;br /&gt;
#* Weather forecast&lt;br /&gt;
#* Maps, navigation&lt;br /&gt;
#* Calls &amp;amp; Texts&lt;br /&gt;
&lt;br /&gt;
== Software Setup ==&lt;br /&gt;
* OS located on the internal [[eMMC]] flash storage (to make some use of it, plus it is faster than the SD card)&lt;br /&gt;
** accessible as an external storage from a computer via [[PinePhone_Software#Jumpdrive|Jumpdrive]] which may be flashed to a tiny SD Card (128 MB in my case)&lt;br /&gt;
** maintenance or distro-hopping can still be done by plugging in an SD Card with a system installed (since it takes precedence over the eMMC storage)&lt;br /&gt;
* non-essential data (photos, videos, etc.) on an SD Card with larger capacity (currently 32 GB Samsung EVO Plus)&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
* [[Projects:PinePhone Daily Driver with Arch Linux]]&lt;br /&gt;
* [[Projects:PinePhone Daily Driver with Sway]] (deprecated)&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
* [[Projects:PinePhone Daily Driver Distributions Testing]]&lt;br /&gt;
* [[PinePhone Hardware]]&lt;br /&gt;
* [[PinePhone Software]]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver_with_Arch_Linux&amp;diff=596</id>
		<title>Projects:PinePhone Daily Driver with Arch Linux</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver_with_Arch_Linux&amp;diff=596"/>
		<updated>2021-10-03T08:04:01Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Implementation of [[Projects:PinePhone Daily Driver]] using [[Arch Linux ARM]].&lt;br /&gt;
&lt;br /&gt;
{{Info|1=Active solution as of 2021.}}&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
* [[Arch Linux ARM]] from [[DanctNIX]] with [[Phosh]]&lt;br /&gt;
* System packages: {{Todo|review}}&lt;br /&gt;
* App packages: {{Todo|review}}&lt;br /&gt;
** [[birdie]] - wake up alarm&lt;br /&gt;
** [[firefox]] - web browser&lt;br /&gt;
** [[thunderbird]] - email client&lt;br /&gt;
** [[vlc]] - media player&lt;br /&gt;
** [[matrix-mirage]] - [[Matrix (protocol)]] client&lt;br /&gt;
** [[KeePassXC]] - password manager&lt;br /&gt;
** {{Todo|...}}&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
# Follow the official Full Disk Encryption[https://github.com/dreemurrs-embedded/Pine64-Arch/wiki/Full-Disk-Encryption] guide to get a base system installed.&lt;br /&gt;
# (optional) Add a custom [[Pacman]] package repository for a convenient distribution of your own packages.&lt;br /&gt;
# Enable SSH daemon and install your public key to enable remote management from your desktop.&lt;br /&gt;
# Install the additional packages (see above).&lt;br /&gt;
# Enjoy! {{IconDone}}&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
* [[DanctNIX]]'s Arch Linux for PinePhone repository: [https://github.com/dreemurrs-embedded/Pine64-Arch/ github.com/dreemurrs-embedded/Pine64-Arch/]&lt;br /&gt;
* {{Todo|...}}&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver_with_Arch_Linux&amp;diff=595</id>
		<title>Projects:PinePhone Daily Driver with Arch Linux</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver_with_Arch_Linux&amp;diff=595"/>
		<updated>2021-10-03T07:54:40Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: Created page with &amp;quot;Implementation of Projects:PinePhone Daily Driver using Arch Linux ARM.  == Components == * Arch Linux ARM from DanctNIX with Phosh * System packages: {{To...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Implementation of [[Projects:PinePhone Daily Driver]] using [[Arch Linux ARM]].&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
* [[Arch Linux ARM]] from [[DanctNIX]] with [[Phosh]]&lt;br /&gt;
* System packages: {{Todo|review}}&lt;br /&gt;
* App packages: {{Todo|review}} [[vim]] [[firefox]] [[galculator]] [[thunderbird]] [[audacious]] audacious-plugins [[htop]]&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
{{Todo|...}}&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
* [[DanctNIX]]'s Arch Linux for PinePhone repository: [https://github.com/dreemurrs-embedded/Pine64-Arch/ github.com/dreemurrs-embedded/Pine64-Arch/]&lt;br /&gt;
* {{Todo|...}}&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver_with_Sway&amp;diff=594</id>
		<title>Projects:PinePhone Daily Driver with Sway</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver_with_Sway&amp;diff=594"/>
		<updated>2021-10-03T07:48:17Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Implementation of [[Projects:PinePhone Daily Driver]] using [[SwayWM]].&lt;br /&gt;
&lt;br /&gt;
{{warning|1='''Abandoned'''&lt;br /&gt;
&lt;br /&gt;
It is too much work to put all of the parts of the system together.&lt;br /&gt;
&lt;br /&gt;
Next stop: [[Projects:PinePhone Daily Driver with Arch Linux]]}}&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
* [[postmarketOS]] with [[SwayWM|postmarketos-ui-sway]]&lt;br /&gt;
* [[PinePhone-Toolkit|pinephone-toolkit]]&lt;br /&gt;
* System packages: [[bemenu]] [[networkmanager]] [[termite]] termite-terminfo [[bluez]] [[squeekboard]]&lt;br /&gt;
* App packages: [[vim]] [[firefox]] [[galculator]] [[thunderbird]] [[gajim]] [[audacious]] audacious-plugins [[htop]]&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
Configs are stored in a [https://github.com/Dejvino/pinephone-sway-poc repository].&lt;br /&gt;
&lt;br /&gt;
{{Todo|Create a [[postmarketOS]] package? [https://wiki.postmarketos.org/wiki/Create_a_package]}}&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
* backlight off and CPU sleep when screen is locked via power button&lt;br /&gt;
* handled via [[PinePhone-Toolkit]]&lt;br /&gt;
&lt;br /&gt;
=== [[sudo]] ===&lt;br /&gt;
Add NOPASSWD for shutdown and reboot to wheel group:&lt;br /&gt;
&lt;br /&gt;
{{codeblock|title=visudo|1=%wheel ALL=(ALL) ALL&lt;br /&gt;
%wheel ALL=(ALL) NOPASSWD: /sbin/poweroff,/sbin/reboot}}&lt;br /&gt;
&lt;br /&gt;
=== [[elogind]] ===&lt;br /&gt;
Power key needs to be locked from [[elogind]], otherwise it would shutdown the system. This way as long as the UI session is running, power button is ignored by [[elogind]]. Once the session ends and we're back in the login screen, the power button is again able to shutdown the system.&lt;br /&gt;
&lt;br /&gt;
{{codeblock|title=/usr/share/wayland-sessions/sway.desktop|1=&lt;br /&gt;
...&lt;br /&gt;
Exec=elogind-inhibit --what=handle-power-key --mode=block dbus-run-session /usr/bin/sway&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
(included in the POC repository)&lt;br /&gt;
&lt;br /&gt;
=== [[SwayWM]] ===&lt;br /&gt;
(config included in the POC repository)&lt;br /&gt;
&lt;br /&gt;
=== [[waybar]] ===&lt;br /&gt;
(config included in the POC repository)&lt;br /&gt;
&lt;br /&gt;
* Pick a theme! Mine is: [https://github.com/carlosdss22/dotfiles/]&lt;br /&gt;
* {{IconInfo}} For '''clock''' module, don't forget to set the ''locale'' and ''timezone'' parameters, otherwise nothing will show up.&lt;br /&gt;
&lt;br /&gt;
=== lisgd ===&lt;br /&gt;
[[sxmo#lisgd]] reconfigured through command line parameters in [[SwayWM]] config.&lt;br /&gt;
&lt;br /&gt;
(config included in the POC repository)&lt;br /&gt;
&lt;br /&gt;
=== [[PinePhone-Toolkit]] ===&lt;br /&gt;
Used mainly in [[SwayWM]] config.&lt;br /&gt;
&lt;br /&gt;
=== [[Bluetooth]] ===&lt;br /&gt;
* Enable the service on boot: {{code|1=rc-update add bluetooth}}&lt;br /&gt;
* Enable the controller by default:&lt;br /&gt;
{{codeblock|title=/etc/bluetooth/main.conf|1=&lt;br /&gt;
[Policy]&lt;br /&gt;
AutoEnable=true&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== TODOs ===&lt;br /&gt;
{{todo|Complete these TODOs!}}&lt;br /&gt;
# power saving (so that I can leave the battery in the device when I'm not using it)&lt;br /&gt;
## hibernation / suspend command - needs crust support in pmos: [https://gitlab.com/postmarketOS/pmaports/-/issues/550 issue 550]&lt;br /&gt;
## shortcut to enter suspend&lt;br /&gt;
##* {{IconInfo}} {{code|1=rtcwake -m mem -s 10}} ... {{IconFail}} does not resume operation after issuing ''s2idle''&lt;br /&gt;
# Core UI&lt;br /&gt;
#* Display rotation&lt;br /&gt;
#** Vertical waybar - hide/show based on output transformation/waybar-window size [https://github.com/Alexays/Waybar/search?q=hidden&amp;amp;unscoped_q=hidden]&lt;br /&gt;
# Install and test essential apps &amp;amp; workflows&lt;br /&gt;
## {{IconDone}} Terminal: [[termite]]&lt;br /&gt;
## {{IconWip}} Web browser: [[Firefox]]&lt;br /&gt;
##* Mostly works. Portrait mode doesn't fit perfectly. Clunky UI, some menus overflow.&lt;br /&gt;
## {{IconWip}} Passwords manager: [[KeepassXC]])&lt;br /&gt;
##* Doesn't support such a small screen. Modify and submit a PR?&lt;br /&gt;
## {{IconTodo}} Personal Information Manager with [[WebDAV]] sync support for calendar, contacts&lt;br /&gt;
## {{IconTodo}} Email client: [[thunderbird]]&lt;br /&gt;
##* Doesn't support such a small screen. Modify and submit a PR?&lt;br /&gt;
## {{IconDone}} Calculator: [[galculator]]&lt;br /&gt;
## {{IconTodo}} Alarm: ?&lt;br /&gt;
## {{IconTodo}} IM clients&lt;br /&gt;
##* XMPP: ?&lt;br /&gt;
##* Matrix: ?&lt;br /&gt;
##* Slack: ?&lt;br /&gt;
## {{IconWip}} Music player: [[audacious]]&lt;br /&gt;
##* A few problems with the small screen. Otherwise seems to work.&lt;br /&gt;
## {{IconTodo}} Camera &amp;amp; Video recorder: ?&lt;br /&gt;
## {{IconTodo}} VPN client: [[NetworkManager]]?&lt;br /&gt;
# Support for non-essential apps &amp;amp; workflows&lt;br /&gt;
#* {{IconTodo}} RSS client: ?&lt;br /&gt;
#* {{IconTodo}} OTP generator: ?&lt;br /&gt;
#* {{IconTodo}} Ebook reader: ?&lt;br /&gt;
#* {{IconTodo}} Weather forecast: ?&lt;br /&gt;
#* {{IconTodo}} Maps, navigation: ?&lt;br /&gt;
#* {{IconTodo}} Calls &amp;amp; Texts: ?&lt;br /&gt;
#* {{IconTodo}} Samba share mounted from NAS&lt;br /&gt;
#** CIFS is not supported by the kernel right now&lt;br /&gt;
# Tweaking&lt;br /&gt;
#* Configure [[Firefox]] for touch: [https://wiki.postmarketos.org/wiki/Firefox]?&lt;br /&gt;
#* ...&lt;br /&gt;
# non-essential userspace apps&lt;br /&gt;
#* ...&lt;br /&gt;
# cool stuff&lt;br /&gt;
#* presentation mode [https://github.com/Alexays/Waybar/wiki/Module:-Idle-Inhibitor]&lt;br /&gt;
#* night mode: flux / nightlight / redshift / ...&lt;br /&gt;
#* automated brightness based on screen content [https://github.com/maximbaz/wluma]&lt;br /&gt;
&lt;br /&gt;
== Rejected solutions ==&lt;br /&gt;
=== under Wayland ===&lt;br /&gt;
* [https://github.com/bulletmark/libinput-gestures libinput-gestures]&lt;br /&gt;
* [http://www.plippo.de/p/twofing twofing]&lt;br /&gt;
* onboard virtual keyboard&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Projects:Orange_Pi_4_Workstation&amp;diff=593</id>
		<title>Projects:Orange Pi 4 Workstation</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Projects:Orange_Pi_4_Workstation&amp;diff=593"/>
		<updated>2021-10-03T07:43:51Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: Abandoned + update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project: Workstation computer fulfilling [[Goal:Technology]] - built using [[Orange Pi 4]] and running [[Linux]].&lt;br /&gt;
&lt;br /&gt;
{{Info|1=Abandoned. [[Orange Pi 4]] has too little RAM (4 GB) to serve as the main workstation in 2021.}}&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* [[open source]] software&lt;br /&gt;
** ability to build all of the components and utilities from source&lt;br /&gt;
* standalone and independent&lt;br /&gt;
** ability to build on the target hardware in order to be independent&lt;br /&gt;
* up-to-date software&lt;br /&gt;
** mainline kernel (with only a few necessary patches)&lt;br /&gt;
** actively maintained distribution&lt;br /&gt;
* '''No''' black-box binary blobs&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Details: [[Orange Pi 4 Hardware]]&lt;br /&gt;
&lt;br /&gt;
* {{IconDone}} multiple 64-bit ARM cores which provides enough horsepower for common tasks&lt;br /&gt;
* {{IconWarn}} 4 GB of LPDDR4 RAM is sufficient for common tasks, but only one at a time. In my experience (in 2020), 8 GB of RAM is borderline usable for running all the common apps simultaneously.&lt;br /&gt;
* {{IconDone}} 1 Gbps Ethernet &amp;amp; WiFi &amp;amp; Bluetooth for solid connectivity&lt;br /&gt;
* {{IconDone}} tiny form factor frees up lots of space (compared to a standard desktop tower PC)&lt;br /&gt;
* {{IconDone}} low power consumption makes this cheap to run&lt;br /&gt;
* {{IconDone}} low noise levels thanks to a single slow running fan&lt;br /&gt;
&lt;br /&gt;
{{Warning|1=The [[Orange Pi 4]] board is only usable with a '''strong and reliable power source'''!&lt;br /&gt;
&lt;br /&gt;
USB-C and the barrel DC connector behave differently. When powering the board through USB-C the system booted. Using the barrel connector did not boot the board.&lt;br /&gt;
&lt;br /&gt;
Using a USB power meter (current and voltage monitor) in between the [[Orange Pi 4]] and the power source also resulted in booting to hang.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
=== Experimental Stage ===&lt;br /&gt;
* {{IconDone}} [[Armbian on Orange Pi 4]] works sufficiently nice with regards to mainline Linux support, hardware support and stability (as of 2021).&lt;br /&gt;
&lt;br /&gt;
=== Target Stage ===&lt;br /&gt;
* [[Mainline Linux on Orange Pi 4]]&lt;br /&gt;
* [[Arch Linux ARM on Orange Pi 4]]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Orange_Pi_Zero&amp;diff=592</id>
		<title>Orange Pi Zero</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Orange_Pi_Zero&amp;diff=592"/>
		<updated>2020-12-13T17:18:30Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Orange Pi]] Zero is a small headless [[ARM]] computer.&lt;br /&gt;
&lt;br /&gt;
Related: [[Orange Pi R1]]&lt;br /&gt;
&lt;br /&gt;
== Board ==&lt;br /&gt;
=== Upper side ===&lt;br /&gt;
[[File:OrangePiZero front numbered.jpg|thumb]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! # !! Component&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 26-pin GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Serial port: GND, RX, TX (left to right)&lt;br /&gt;
|-&lt;br /&gt;
| 3 || RJ45 Ethernet port&lt;br /&gt;
|-&lt;br /&gt;
| 4 || USB 2.0 port&lt;br /&gt;
|-&lt;br /&gt;
| 5 || 13-pin expansion port&lt;br /&gt;
|-&lt;br /&gt;
| 6 || WiFi antenna&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [[XR819]] WiFi controller&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Pulse H1102NL Signal Transformer for the Ethernet port&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [[Allwinner]] Technology [[H2+]] [[SoC]]&lt;br /&gt;
|-&lt;br /&gt;
| 10 || 256/512 MB [[DDR3]] [[SDRAM]] (256 MB in the photo)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || micro-USB port (power and data)&lt;br /&gt;
|-&lt;br /&gt;
| 12 || ? LED&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Power LED&lt;br /&gt;
|}&lt;br /&gt;
=== Bottom side ===&lt;br /&gt;
[[File:OrangePiZero back numbered.jpg|thumb]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! # !! Component&lt;br /&gt;
|-&lt;br /&gt;
| 1 || USB 2.0 port&lt;br /&gt;
|-&lt;br /&gt;
| 2 || RJ45 Ethernet port&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 26-pin GPIO port&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 13-pin expansion port&lt;br /&gt;
|-&lt;br /&gt;
| 5 || 2 MB [[SPI]] [[Flash]] 25L1606E&lt;br /&gt;
|-&lt;br /&gt;
| 6 || microSD card slot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GPIO ==&lt;br /&gt;
* Supports [[GPIO]], [[I2C]], [[SPI]], [[UART]]&lt;br /&gt;
* [https://sites.google.com/site/orangepizero/lcd-connection Pinout diagram]&lt;br /&gt;
* Resources: [https://github.com/duxingkei33/orangepi_PC_gpio_pyH3 Python GPIO library]&lt;br /&gt;
* [https://github.com/orangepi-xunlong/WiringOP WiringOP] - Orange Pi equivalent of Raspberry Pi's [http://www.orangepi.org/Docs/WiringPi.html WiringPi]&lt;br /&gt;
** Fixed and improved repository: [https://github.com/Dejvino/wiringOP Dejvino/wiringOP]&lt;br /&gt;
** Dynamical GPIO layout: {{code|1=gpio readall}}&lt;br /&gt;
** [https://github.com/xpertsavenue/WiringOP-Zero WiringOP-Zero] with support for on board LED (otherwise outdated)&lt;br /&gt;
&lt;br /&gt;
== Peripherals ==&lt;br /&gt;
* USB [[Bluetooth]] dongle (e.g. [[RTL8821CU]]) (not supported by the built-in module)&lt;br /&gt;
* USB [[Wifi]] dongle (e.g. [[RTL8821CU]])&lt;br /&gt;
** to access the 5 GHz band (not supported by the built-in module)&lt;br /&gt;
** for packet sniffing or network proxy (not supported by the built-in module)&lt;br /&gt;
* [[I2C]] [[OLED]] display [[SSD1306]]&lt;br /&gt;
** to show the system status (CPU usage, IP address etc.)&lt;br /&gt;
** [https://github.com/Dejvino/SSD1306 Dejvino/SSD1306] (minimalistic status display in C)&lt;br /&gt;
** Additional resources: [https://github.com/vadzimyatskevich/SSD1306 SSD1306 for OrangePiZero], [https://github.com/jamwaffles/ssd1306 Rust SSD1306 library], [https://github.com/rm-hull/luma.oled Python OLED library]&lt;br /&gt;
* [[SPI]] [[TFT]] display&lt;br /&gt;
** as a framebuffer screen [https://github.com/notro/fbtft/wiki#install fbtft] (previously supported directly in [[Linux]] kernel up to 5.4[https://github.com/torvalds/linux/tree/master/drivers/staging/fbtft], [https://github.com/notro/fbtft/wiki/fbtft_device])&lt;br /&gt;
** Resources: [https://kaspars.net/blog/spi-display-orange-pi-zero Raspberry Pi display], [https://www.instructables.com/id/Orange-Pi-Zero-Connect-TFT-SPI-ST7735/ ST7735 display], [https://github.com/michal037/driver-ST7735S ST7735S]&lt;br /&gt;
** {{todo|[https://github.com/nopnop2002/wiringpi-tft-tool]}}&lt;br /&gt;
&lt;br /&gt;
== Operating System ==&lt;br /&gt;
* [[Armbian on Orange Pi Zero]]&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://linux-sunxi.org/Xunlong_Orange_Pi_Zero linux-sunxi.org board page]&lt;br /&gt;
* [https://www.armbian.com/orange-pi-zero/ Armbian page]&lt;br /&gt;
* [https://github.com/hyphop/miZy miZy Minimalistic OS]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=PinePhone_Software&amp;diff=591</id>
		<title>PinePhone Software</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=PinePhone_Software&amp;diff=591"/>
		<updated>2020-09-30T21:24:42Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Software usable with [[PinePhone]]&lt;br /&gt;
&lt;br /&gt;
== Distributions ==&lt;br /&gt;
Main distributions registry: [https://wiki.pine64.org/index.php?title=PinePhone_Software_Releases wiki.pine64.org/PinePhone_Software_Releases]&lt;br /&gt;
&lt;br /&gt;
* [[Arch Linux ARM for PinePhone]]&lt;br /&gt;
** Repository: [https://github.com/dreemurrs-embedded/Pine64-Arch/releases]&lt;br /&gt;
* [[Arch Linux ARM for PinePhone Installer]]&lt;br /&gt;
** Repository: [https://github.com/Dejvino/pinephone-arch-install github.com/Dejvino/pinephone-arch-install]&lt;br /&gt;
* [[Mobian]]&lt;br /&gt;
** [[Debian]] for mobile devices.&lt;br /&gt;
* [[UBports]]&lt;br /&gt;
** [[Ubuntu Touch]] for [[PinePhone]].&lt;br /&gt;
** [https://gitlab.com/ubports/community-ports/pinephone#how-do-i-install-ubuntu-touch-on-my-pinephone wiki: How to install]&lt;br /&gt;
* [[postmarketOS]]&lt;br /&gt;
** [[Alpine Linux]] for phones&lt;br /&gt;
* [[sxmo]]&lt;br /&gt;
** [[dwm]] on [[postmarketOS]].&lt;br /&gt;
** [https://forum.pine64.org/showthread.php?tid=9913&amp;amp;pid=66062#pid66062 Pine64 Forum Thread]&lt;br /&gt;
** [https://git.sr.ht/~mil/sxmo-docs/tree/master/USERGUIDE.md User Guide]&lt;br /&gt;
&lt;br /&gt;
== Utilities ==&lt;br /&gt;
=== Jumpdrive ===&lt;br /&gt;
Enables flashing of the internal [[eMMC]] flash storage from a computer over USB.&lt;br /&gt;
* [https://wiki.pine64.org/index.php/PinePhone#Flashing_eMMC_using_Jumpdrive Pine64 Wiki]&lt;br /&gt;
* [https://github.com/dreemurrs-embedded/Jumpdrive/releases/ Releases (pre-built images)]&lt;br /&gt;
&lt;br /&gt;
=== [[netevent]] ===&lt;br /&gt;
Netevent is a tool which can be used to share linux event devices with other machines (either via /dev/uinput or by implementing a client for the same protocol with other means).[https://github.com/Blub/netevent]&lt;br /&gt;
* Repository: [https://github.com/Blub/netevent]&lt;br /&gt;
&lt;br /&gt;
=== Other Components ===&lt;br /&gt;
* [https://source.puri.sm/Librem5/feedbackd/-/tree/master feedbackd] - events and notifications daemon&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
* [[PinePhone-Toolkit]]&lt;br /&gt;
* p-boot - minimal PinePhone bootloader&lt;br /&gt;
** [https://megous.com/git/p-boot/about/ ABOUT]&lt;br /&gt;
** [https://megous.com/git/p-boot/tree/HACKING HACKING]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== What is going on?? ===&lt;br /&gt;
Try connecting to the [[Serial Console on PinePhone]].&lt;br /&gt;
&lt;br /&gt;
=== Random crashes ===&lt;br /&gt;
If you experience random crashes, try a slower DRAM clock speed! See [https://forum.pine64.org/showthread.php?tid=9832 this thread].&lt;br /&gt;
&lt;br /&gt;
=== wlan0 MAC keeps on changing ===&lt;br /&gt;
This is problematic if you want to assign a DNS name to the phone on your LAN. You can always setup a systemd service that sets a &amp;quot;spoofed&amp;quot; (but static) MAC address: [https://wiki.archlinux.org/index.php/MAC_address_spoofing#Method_3:_systemd_unit]&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://wiki.pine64.org/index.php/PinePhone_Software_Release wiki.pine64.org/PinePhone_Software_Release]&lt;br /&gt;
* [[Megous]] ([https://xnux.eu/index.html xnux.eu])&lt;br /&gt;
** Introduction &amp;amp; Status: [https://xnux.eu/devices/pine64-pinephone.html#toc-pine64-pinephone xnux.eu/devices/pine64-pinephone]&lt;br /&gt;
** Linux kernel: [https://github.com/megous/linux/tree/pp-5.6 github.com/megous/linux/pp-5.6]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Arch_Linux&amp;diff=590</id>
		<title>Arch Linux</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Arch_Linux&amp;diff=590"/>
		<updated>2020-09-27T22:22:37Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Linux distribution]] with [[rolling updates]] and convenient way of installing software from source code via [[AUR]].&lt;br /&gt;
&lt;br /&gt;
== Package System ==&lt;br /&gt;
* Arch Linux Wiki&lt;br /&gt;
** [https://wiki.archlinux.org/index.php/AUR Arch User Repository (AUR)]&lt;br /&gt;
** [https://wiki.archlinux.org/index.php/Network_Shared_Pacman_Cache#Custom_local_repository Custom local repository]&lt;br /&gt;
** [https://wiki.archlinux.org/index.php/creating_packages Creating Packages]&lt;br /&gt;
** [https://wiki.archlinux.org/index.php/PKGBUILD PKGBUILD]&lt;br /&gt;
* [https://ownyourbits.com/2019/07/21/replicate-your-system-with-self-hosted-arch-linux-metapackages/ Self-hosted Metapackages]&lt;br /&gt;
* [https://disconnected.systems/blog/archlinux-repo-in-aws-bucket/ Custom packages in AWS] (feel free to skip the AWS parts)&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
* [[Arch Linux ARM]]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=PinePhone_Software&amp;diff=589</id>
		<title>PinePhone Software</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=PinePhone_Software&amp;diff=589"/>
		<updated>2020-09-26T22:05:40Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Software usable with [[PinePhone]]&lt;br /&gt;
&lt;br /&gt;
== Distributions ==&lt;br /&gt;
Main distributions registry: [https://wiki.pine64.org/index.php?title=PinePhone_Software_Releases wiki.pine64.org/PinePhone_Software_Releases]&lt;br /&gt;
&lt;br /&gt;
* [[Arch Linux ARM for PinePhone]]&lt;br /&gt;
** Repository: [https://github.com/dreemurrs-embedded/Pine64-Arch/releases]&lt;br /&gt;
* [[Arch Linux ARM for PinePhone Installer]]&lt;br /&gt;
** Repository: [https://github.com/Dejvino/pinephone-arch-install github.com/Dejvino/pinephone-arch-install]&lt;br /&gt;
* [[Mobian]]&lt;br /&gt;
** [[Debian]] for mobile devices.&lt;br /&gt;
* [[UBports]]&lt;br /&gt;
** [[Ubuntu Touch]] for [[PinePhone]].&lt;br /&gt;
** [https://gitlab.com/ubports/community-ports/pinephone#how-do-i-install-ubuntu-touch-on-my-pinephone wiki: How to install]&lt;br /&gt;
* [[postmarketOS]]&lt;br /&gt;
** [[Alpine Linux]] for phones&lt;br /&gt;
* [[sxmo]]&lt;br /&gt;
** [[dwm]] on [[postmarketOS]].&lt;br /&gt;
** [https://forum.pine64.org/showthread.php?tid=9913&amp;amp;pid=66062#pid66062 Pine64 Forum Thread]&lt;br /&gt;
** [https://git.sr.ht/~mil/sxmo-docs/tree/master/USERGUIDE.md User Guide]&lt;br /&gt;
&lt;br /&gt;
== Utilities ==&lt;br /&gt;
=== Jumpdrive ===&lt;br /&gt;
Enables flashing of the internal [[eMMC]] flash storage from a computer over USB.&lt;br /&gt;
* [https://wiki.pine64.org/index.php/PinePhone#Flashing_eMMC_using_Jumpdrive Pine64 Wiki]&lt;br /&gt;
* [https://github.com/dreemurrs-embedded/Jumpdrive/releases/ Releases (pre-built images)]&lt;br /&gt;
&lt;br /&gt;
=== [[netevent]] ===&lt;br /&gt;
Netevent is a tool which can be used to share linux event devices with other machines (either via /dev/uinput or by implementing a client for the same protocol with other means).[https://github.com/Blub/netevent]&lt;br /&gt;
* Repository: [https://github.com/Blub/netevent]&lt;br /&gt;
&lt;br /&gt;
=== Other Components ===&lt;br /&gt;
* [https://source.puri.sm/Librem5/feedbackd/-/tree/master feedbackd] - events and notifications daemon&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
* [[PinePhone-Toolkit]]&lt;br /&gt;
* p-boot - minimal PinePhone bootloader&lt;br /&gt;
** [https://megous.com/git/p-boot/about/ ABOUT]&lt;br /&gt;
** [https://megous.com/git/p-boot/tree/HACKING HACKING]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== What is going on?? ===&lt;br /&gt;
Try connecting to the [[Serial Console on PinePhone]].&lt;br /&gt;
&lt;br /&gt;
=== Random crashes ===&lt;br /&gt;
If you experience random crashes, try a slower DRAM clock speed! See [https://forum.pine64.org/showthread.php?tid=9832 this thread].&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://wiki.pine64.org/index.php/PinePhone_Software_Release wiki.pine64.org/PinePhone_Software_Release]&lt;br /&gt;
* [[Megous]] ([https://xnux.eu/index.html xnux.eu])&lt;br /&gt;
** Introduction &amp;amp; Status: [https://xnux.eu/devices/pine64-pinephone.html#toc-pine64-pinephone xnux.eu/devices/pine64-pinephone]&lt;br /&gt;
** Linux kernel: [https://github.com/megous/linux/tree/pp-5.6 github.com/megous/linux/pp-5.6]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Arch_Linux_ARM&amp;diff=588</id>
		<title>Arch Linux ARM</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Arch_Linux_ARM&amp;diff=588"/>
		<updated>2020-09-26T20:42:29Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Arch Linux]] distribution adapted for [[ARM devices]].&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
* [[PinePhone]] - [https://github.com/dreemurrs-embedded/Pine64-Arch Pine64-Arch repository]&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* Project page [https://archlinuxarm.org/]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Arch_Linux_ARM&amp;diff=587</id>
		<title>Arch Linux ARM</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Arch_Linux_ARM&amp;diff=587"/>
		<updated>2020-09-26T20:42:08Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Arch Linux]] distribution adapted for [[ARM devices]].&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* Project page [https://archlinuxarm.org/]&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
* [[PinePhone]] - [https://github.com/dreemurrs-embedded/Pine64-Arch Pine64-Arch repository]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Arch_Linux&amp;diff=586</id>
		<title>Arch Linux</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Arch_Linux&amp;diff=586"/>
		<updated>2020-09-26T20:41:22Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Linux distribution]] with [[rolling updates]] and convenient way of installing software from source code via [[AUR]].&lt;br /&gt;
&lt;br /&gt;
== Package System ==&lt;br /&gt;
* Arch Linux Wiki&lt;br /&gt;
** [https://wiki.archlinux.org/index.php/AUR Arch User Repository (AUR)]&lt;br /&gt;
** [https://wiki.archlinux.org/index.php/creating_packages Creating Packages]&lt;br /&gt;
** [https://wiki.archlinux.org/index.php/PKGBUILD PKGBUILD]&lt;br /&gt;
* [https://ownyourbits.com/2019/07/21/replicate-your-system-with-self-hosted-arch-linux-metapackages/ Self-hosted Metapackages]&lt;br /&gt;
* [https://disconnected.systems/blog/archlinux-repo-in-aws-bucket/ Custom packages in AWS] (feel free to skip the AWS parts)&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
* [[Arch Linux ARM]]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Arch_Linux&amp;diff=585</id>
		<title>Arch Linux</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Arch_Linux&amp;diff=585"/>
		<updated>2020-09-26T20:40:45Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Linux distribution]] with [[rolling updates]] and convenient way of installing software from source code via [[AUR]].&lt;br /&gt;
&lt;br /&gt;
== Package System ==&lt;br /&gt;
* Arch Linux Wiki&lt;br /&gt;
** [https://wiki.archlinux.org/index.php/AUR Arch User Repository (AUR)]&lt;br /&gt;
** [https://wiki.archlinux.org/index.php/creating_packages Creating Packages]&lt;br /&gt;
** [https://wiki.archlinux.org/index.php/PKGBUILD PKGBUILD]&lt;br /&gt;
* [https://ownyourbits.com/2019/07/21/replicate-your-system-with-self-hosted-arch-linux-metapackages/ Self-hosted Metapackages]&lt;br /&gt;
* [https://disconnected.systems/blog/archlinux-repo-in-aws-bucket/ Custom packages in AWS] (feel free to skip the AWS parts)&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Arch_Linux&amp;diff=584</id>
		<title>Arch Linux</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Arch_Linux&amp;diff=584"/>
		<updated>2020-09-26T20:05:37Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Linux distribution]] with [[rolling updates]] and convenient way of installing software from source code via [[AUR]].&lt;br /&gt;
&lt;br /&gt;
== Package System ==&lt;br /&gt;
* [https://ownyourbits.com/2019/07/21/replicate-your-system-with-self-hosted-arch-linux-metapackages/ Self-hosted Metapackages]&lt;br /&gt;
* [https://disconnected.systems/blog/archlinux-repo-in-aws-bucket/ Custom packages in AWS] (feel free to skip the AWS parts)&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Main_Page&amp;diff=583</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Main_Page&amp;diff=583"/>
		<updated>2020-09-26T20:02:58Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Personal storage of information. Shared with the world.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
{{Special:AllPages|namespace=3002}}&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
{{Special:AllPages|namespace=3000}}&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
=== Computers ===&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* [[Linux]]&lt;br /&gt;
** [[Arch Linux]], [[Arch Linux ARM]]&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
===== Devices =====&lt;br /&gt;
* [[PinePhone]]&lt;br /&gt;
* [[PineTime]]&lt;br /&gt;
* [[Orange Pi]] ([[Orange Pi Zero]], [[Orange Pi 4]])&lt;br /&gt;
* [[Ender 3]]&lt;br /&gt;
&lt;br /&gt;
==== Security ====&lt;br /&gt;
* [[WiFi security]]&lt;br /&gt;
&lt;br /&gt;
=== Finance ===&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== Health ===&lt;br /&gt;
==== Food &amp;amp; Beverage ====&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Special Pages ==&lt;br /&gt;
* [https://kb.d5o.eu/index.php/Special:WhatLinksHere/Template:Todo List of TODOs]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=PinePhone_Power_Management&amp;diff=582</id>
		<title>PinePhone Power Management</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=PinePhone_Power_Management&amp;diff=582"/>
		<updated>2020-09-14T19:52:57Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to handle power management on [[PinePhone]].&lt;br /&gt;
&lt;br /&gt;
== Input Current Limit ==&lt;br /&gt;
By default the [[AXP803]] limits the input current to 500 mA which is way too low to use the phone and charge it. It is possible to manually increase this limit (assuming the power source can handle it):&lt;br /&gt;
&lt;br /&gt;
{{code|1=echo 900000 &amp;gt; /sys/class/power_supply/axp20x-usb/input_current_limit}}&lt;br /&gt;
&lt;br /&gt;
=== Current Fixing Daemon ===&lt;br /&gt;
The above can be automatically executed every few minutes as a systemd daemon or via cron. This is an example of a systemd timer:&lt;br /&gt;
&lt;br /&gt;
==== /usr/local/sbin/powermax ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
FONLINE=/sys/class/power_supply/axp20x-usb/online&lt;br /&gt;
FLIMIT=/sys/class/power_supply/axp20x-usb/input_current_limit&lt;br /&gt;
if [[ `cat $FONLINE` -eq 0 ]]; then&lt;br /&gt;
    return 0;&lt;br /&gt;
fi&lt;br /&gt;
if [[ `cat $FLIMIT` -eq 500000 ]]; then&lt;br /&gt;
    echo 900000 &amp;gt; $FLIMIT&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== /etc/systemd/system/... ====&lt;br /&gt;
{{codeblock|title=/etc/systemd/system/powermax.service|1=[Unit]&lt;br /&gt;
Description=Powermax&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
ExecStart=/usr/local/sbin/powermax}}&lt;br /&gt;
&lt;br /&gt;
{{codeblock|title=/etc/systemd/system/powermax.timer|1=[Unit]&lt;br /&gt;
Description=Powermax&lt;br /&gt;
[Timer]&lt;br /&gt;
OnBootSec=1min&lt;br /&gt;
OnUnitActiveSec=2min&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=timers.target}}&lt;br /&gt;
&lt;br /&gt;
==== Activation ====&lt;br /&gt;
{{codeblock|1=systemctl daemon-reload&lt;br /&gt;
systemctl enable powermax.timer}}&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
* [[Projects:PinePhone Daily Driver]]&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* xnux.eu&lt;br /&gt;
** [https://xnux.eu/devices/feature/anx7688.html ANX7688]&lt;br /&gt;
** [https://xnux.eu/devices/feature/backlight.html#toc-power-saving power saving]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=PinePhone_Software&amp;diff=581</id>
		<title>PinePhone Software</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=PinePhone_Software&amp;diff=581"/>
		<updated>2020-09-13T09:12:25Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Software usable with [[PinePhone]]&lt;br /&gt;
&lt;br /&gt;
== Distributions ==&lt;br /&gt;
Main distributions registry: [https://wiki.pine64.org/index.php?title=PinePhone_Software_Releases wiki.pine64.org/PinePhone_Software_Releases]&lt;br /&gt;
&lt;br /&gt;
* [[Arch Linux ARM for PinePhone]]&lt;br /&gt;
** Repository: [https://github.com/dreemurrs-embedded/Pine64-Arch/releases]&lt;br /&gt;
* [[Arch Linux ARM for PinePhone Installer]]&lt;br /&gt;
** Repository: [https://github.com/Dejvino/pinephone-arch-install github.com/Dejvino/pinephone-arch-install]&lt;br /&gt;
* [[Mobian]]&lt;br /&gt;
** [[Debian]] for mobile devices.&lt;br /&gt;
* [[UBports]]&lt;br /&gt;
** [[Ubuntu Touch]] for [[PinePhone]].&lt;br /&gt;
** [https://gitlab.com/ubports/community-ports/pinephone#how-do-i-install-ubuntu-touch-on-my-pinephone wiki: How to install]&lt;br /&gt;
* [[postmarketOS]]&lt;br /&gt;
** [[Alpine Linux]] for phones&lt;br /&gt;
* [[sxmo]]&lt;br /&gt;
** [[dwm]] on [[postmarketOS]].&lt;br /&gt;
** [https://forum.pine64.org/showthread.php?tid=9913&amp;amp;pid=66062#pid66062 Pine64 Forum Thread]&lt;br /&gt;
** [https://git.sr.ht/~mil/sxmo-docs/tree/master/USERGUIDE.md User Guide]&lt;br /&gt;
&lt;br /&gt;
== Utilities ==&lt;br /&gt;
=== Jumpdrive ===&lt;br /&gt;
Enables flashing of the internal [[eMMC]] flash storage from a computer over USB.&lt;br /&gt;
* [https://wiki.pine64.org/index.php/PinePhone#Flashing_eMMC_using_Jumpdrive Pine64 Wiki]&lt;br /&gt;
* [https://github.com/dreemurrs-embedded/Jumpdrive/releases/ Releases (pre-built images)]&lt;br /&gt;
&lt;br /&gt;
=== [[netevent]] ===&lt;br /&gt;
Netevent is a tool which can be used to share linux event devices with other machines (either via /dev/uinput or by implementing a client for the same protocol with other means).[https://github.com/Blub/netevent]&lt;br /&gt;
* Repository: [https://github.com/Blub/netevent]&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
* [[PinePhone-Toolkit]]&lt;br /&gt;
* p-boot - minimal PinePhone bootloader&lt;br /&gt;
** [https://megous.com/git/p-boot/about/ ABOUT]&lt;br /&gt;
** [https://megous.com/git/p-boot/tree/HACKING HACKING]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== What is going on?? ===&lt;br /&gt;
Try connecting to the [[Serial Console on PinePhone]].&lt;br /&gt;
&lt;br /&gt;
=== Random crashes ===&lt;br /&gt;
If you experience random crashes, try a slower DRAM clock speed! See [https://forum.pine64.org/showthread.php?tid=9832 this thread].&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://wiki.pine64.org/index.php/PinePhone_Software_Release wiki.pine64.org/PinePhone_Software_Release]&lt;br /&gt;
* [[Megous]] ([https://xnux.eu/index.html xnux.eu])&lt;br /&gt;
** Introduction &amp;amp; Status: [https://xnux.eu/devices/pine64-pinephone.html#toc-pine64-pinephone xnux.eu/devices/pine64-pinephone]&lt;br /&gt;
** Linux kernel: [https://github.com/megous/linux/tree/pp-5.6 github.com/megous/linux/pp-5.6]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver&amp;diff=578</id>
		<title>Projects:PinePhone Daily Driver</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver&amp;diff=578"/>
		<updated>2020-09-12T18:21:23Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project: Using [[PinePhone]] as my daily driver smartphone, running [[Linux]] fulfilling [[Goal:Technology]].&lt;br /&gt;
&lt;br /&gt;
{{Warning|1=BraveHeart 1.1 [[PinePhone]] may crash during or moments after OS boot on some distributions.&lt;br /&gt;
&lt;br /&gt;
This is due to DRAM frequency set way too high: 624 MHz instead of 552 MHz. See [https://forum.pine64.org/showthread.php?tid=9832 this thread].}}&lt;br /&gt;
&lt;br /&gt;
== Hardware Setup ==&lt;br /&gt;
* [[PinePhone]]&lt;br /&gt;
** Initial testing is done with [[PinePhone 1.1]].&lt;br /&gt;
** Once [[PinePhone 1.2]] becomes available, this will be the daily driven device.&lt;br /&gt;
* Battery&lt;br /&gt;
** Factory-provided at first&lt;br /&gt;
** Replaceable with any Samsung J7 form-factor battery[https://wiki.pine64.org/index.php/PinePhone#Specifications] [https://wiki.pine64.org/index.php/PinePhone_FAQ#Battery]&lt;br /&gt;
*** {{Todo|Find out more and look for a shop selling this (once needed)}}&lt;br /&gt;
* Screen protector&lt;br /&gt;
** Factory-provided at first&lt;br /&gt;
** Replacement source&lt;br /&gt;
*** Pine64 store? Currently doesn't seem to sell it.&lt;br /&gt;
*** Supposedly some iPhone screen protector is usable [https://wiki.pine64.org/index.php/PinePhone_FAQ]&lt;br /&gt;
**** {{Todo|Find out more and look for a shop selling this (once needed)}}&lt;br /&gt;
* Protective case&lt;br /&gt;
** {{Todo|Temporary solution: similar form factor of other devices on the market?}}&lt;br /&gt;
** {{Todo|Source from [[Pine64]] store}}&lt;br /&gt;
&lt;br /&gt;
== Software Wishlist ==&lt;br /&gt;
# Solid base [[Linux]] distribution&lt;br /&gt;
#* lightweight, customizable&lt;br /&gt;
#* community-supported with continuous updates&lt;br /&gt;
#* large package repository&lt;br /&gt;
# One day of battery life&lt;br /&gt;
#* ability to enter power-saving mode and leave it in a matter of seconds of user request&lt;br /&gt;
#* automatic power-saving after a period of inactivity&lt;br /&gt;
# Convenient and efficient UI - common actions need to be easy to achieve&lt;br /&gt;
#* switching between the apps&lt;br /&gt;
#* turning the screen on and off&lt;br /&gt;
#* ability to kill apps&lt;br /&gt;
# Support for essential apps &amp;amp; workflows&lt;br /&gt;
## Terminal&lt;br /&gt;
## Web browser ([[Firefox]])&lt;br /&gt;
## Passwords manager ([[KeepassXC]]))&lt;br /&gt;
## Personal Information Manager with [[WebDAV]] sync support for calendar, contacts&lt;br /&gt;
## Email client&lt;br /&gt;
## Calculator, Alarm&lt;br /&gt;
## IM client (XMPP, Matrix, Slack)&lt;br /&gt;
## Music player&lt;br /&gt;
## Camera &amp;amp; Video recorder&lt;br /&gt;
## VPN client&lt;br /&gt;
# Support for non-essential apps &amp;amp; workflows&lt;br /&gt;
#* RSS client&lt;br /&gt;
#* OTP generator&lt;br /&gt;
#* Ebook reader&lt;br /&gt;
#* Weather forecast&lt;br /&gt;
#* Maps, navigation&lt;br /&gt;
#* Calls &amp;amp; Texts&lt;br /&gt;
&lt;br /&gt;
== Software Setup ==&lt;br /&gt;
* OS located on the internal [[eMMC]] flash storage (to make some use of it, plus it is faster than the SD card)&lt;br /&gt;
** accessible as an external storage from a computer via [[PinePhone_Software#Jumpdrive|Jumpdrive]] which may be flashed to a tiny SD Card (128 MB in my case)&lt;br /&gt;
** maintenance or distro-hopping can still be done by plugging in an SD Card with a system installed (since it takes precedence over the eMMC storage)&lt;br /&gt;
* non-essential data (photos, videos, etc.) on an SD Card with larger capacity (currently 32 GB Samsung EVO Plus)&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
* [[Projects:PinePhone Daily Driver with Mobian]]&lt;br /&gt;
* [[Projects:PinePhone Daily Driver with Sway]] (deprecated)&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
* [[Projects:PinePhone Daily Driver Distributions Testing]]&lt;br /&gt;
* [[PinePhone Hardware]]&lt;br /&gt;
* [[PinePhone Software]]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver&amp;diff=577</id>
		<title>Projects:PinePhone Daily Driver</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver&amp;diff=577"/>
		<updated>2020-09-12T18:21:10Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project: Using [[PinePhone]] as my daily driver smartphone, running [[Linux]] fulfilling [[Goal:Technology]].&lt;br /&gt;
&lt;br /&gt;
{{Warning|1=BraveHeart 1.1 [[PinePhone]] may crash during or moments after OS boot on some distributions.&lt;br /&gt;
&lt;br /&gt;
This is due to DRAM frequency set way too high: 624 MHz instead of 552 MHz. See [https://forum.pine64.org/showthread.php?tid=9832 this thread].}}&lt;br /&gt;
&lt;br /&gt;
== Hardware Setup ==&lt;br /&gt;
* [[PinePhone]]&lt;br /&gt;
** Initial testing is done with [[PinePhone 1.1]].&lt;br /&gt;
** Once [[PinePhone 1.2]] becomes available, this will be the daily driven device.&lt;br /&gt;
* Battery&lt;br /&gt;
** Factory-provided at first&lt;br /&gt;
** Replaceable with any Samsung J7 form-factor battery[https://wiki.pine64.org/index.php/PinePhone#Specifications] [https://wiki.pine64.org/index.php/PinePhone_FAQ#Battery]&lt;br /&gt;
*** {{Todo|Find out more and look for a shop selling this (once needed)}}&lt;br /&gt;
* Screen protector&lt;br /&gt;
** Factory-provided at first&lt;br /&gt;
** Replacement source&lt;br /&gt;
*** Pine64 store? Currently doesn't seem to sell it.&lt;br /&gt;
*** Supposedly some iPhone screen protector is usable [https://wiki.pine64.org/index.php/PinePhone_FAQ]&lt;br /&gt;
**** {{Todo|Find out more and look for a shop selling this (once needed)}}&lt;br /&gt;
* Protective case&lt;br /&gt;
** {{Todo|Temporary solution: similar form factor of other devices on the market?}}&lt;br /&gt;
** {{Todo|Source from [[Pine64]] store}}&lt;br /&gt;
&lt;br /&gt;
== Software Wishlist ==&lt;br /&gt;
# Solid base [[Linux]] distribution&lt;br /&gt;
#* lightweight, customizable&lt;br /&gt;
#* community-supported with continuous updates&lt;br /&gt;
#* large package repository&lt;br /&gt;
# One day of battery life&lt;br /&gt;
#* ability to enter power-saving mode and leave it in a matter of seconds of user request&lt;br /&gt;
#* automatic power-saving after a period of inactivity&lt;br /&gt;
# Convenient and efficient UI - common actions need to be easy to achieve&lt;br /&gt;
#* switching between the apps&lt;br /&gt;
#* turning the screen on and off&lt;br /&gt;
#* ability to kill apps&lt;br /&gt;
# Support for essential apps &amp;amp; workflows&lt;br /&gt;
## Terminal&lt;br /&gt;
## Web browser ([[Firefox]])&lt;br /&gt;
## Passwords manager ([[KeepassXC]]))&lt;br /&gt;
## Personal Information Manager with [[WebDAV]] sync support for calendar, contacts&lt;br /&gt;
## Email client&lt;br /&gt;
## Calculator, Alarm&lt;br /&gt;
## IM client (XMPP, Matrix, Slack)&lt;br /&gt;
## Music player&lt;br /&gt;
## Camera &amp;amp; Video recorder&lt;br /&gt;
## VPN client&lt;br /&gt;
# Support for non-essential apps &amp;amp; workflows&lt;br /&gt;
#* RSS client&lt;br /&gt;
#* OTP generator&lt;br /&gt;
#* Ebook reader&lt;br /&gt;
#* Weather forecast&lt;br /&gt;
#* Maps, navigation&lt;br /&gt;
#* Calls &amp;amp; Texts&lt;br /&gt;
&lt;br /&gt;
== Software Setup ==&lt;br /&gt;
* OS located on the internal [[eMMC]] flash storage (to make some use of it, plus it is faster than the SD card)&lt;br /&gt;
** accessible as an external storage from a computer via [[PinePhone_Software#Jumpdrive|Jumpdrive]] which may be flashed to a tiny SD Card (128 MB in my case)&lt;br /&gt;
** maintenance or distro-hopping can still be done by plugging in an SD Card with a system installed (since it takes precedence over the eMMC storage)&lt;br /&gt;
* non-essential data (photos, videos, etc.) on an SD Card with larger capacity (currently 32 GB Samsung EVO Plus)&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
* [[Projects:PinePhone Daily Driver with Mobian]]&lt;br /&gt;
* [[Projects:PinePhone Daily Driver with Sway]] (deprecated)&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
* [[Projects:PinePhone Daily Driver Distributions Testing]]&lt;br /&gt;
* [[Projects:PinePhone Daily Driver with Sway]]&lt;br /&gt;
* [[PinePhone Hardware]]&lt;br /&gt;
* [[PinePhone Software]]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver_with_Sway&amp;diff=576</id>
		<title>Projects:PinePhone Daily Driver with Sway</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver_with_Sway&amp;diff=576"/>
		<updated>2020-09-12T18:19:23Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Implementation of [[Projects:PinePhone Daily Driver]] using [[SwayWM]].&lt;br /&gt;
&lt;br /&gt;
{{warning|1='''Abandoned'''&lt;br /&gt;
&lt;br /&gt;
It is too much work to put all of the parts of the system together.&lt;br /&gt;
&lt;br /&gt;
Next stop: [[Projects:PinePhone Daily Driver with Mobian]]}}&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
* [[postmarketOS]] with [[SwayWM|postmarketos-ui-sway]]&lt;br /&gt;
* [[PinePhone-Toolkit|pinephone-toolkit]]&lt;br /&gt;
* System packages: [[bemenu]] [[networkmanager]] [[termite]] termite-terminfo [[bluez]] [[squeekboard]]&lt;br /&gt;
* App packages: [[vim]] [[firefox]] [[galculator]] [[thunderbird]] [[gajim]] [[audacious]] audacious-plugins [[htop]]&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
Configs are stored in a [https://github.com/Dejvino/pinephone-sway-poc repository].&lt;br /&gt;
&lt;br /&gt;
{{Todo|Create a [[postmarketOS]] package? [https://wiki.postmarketos.org/wiki/Create_a_package]}}&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
* backlight off and CPU sleep when screen is locked via power button&lt;br /&gt;
* handled via [[PinePhone-Toolkit]]&lt;br /&gt;
&lt;br /&gt;
=== [[sudo]] ===&lt;br /&gt;
Add NOPASSWD for shutdown and reboot to wheel group:&lt;br /&gt;
&lt;br /&gt;
{{codeblock|title=visudo|1=%wheel ALL=(ALL) ALL&lt;br /&gt;
%wheel ALL=(ALL) NOPASSWD: /sbin/poweroff,/sbin/reboot}}&lt;br /&gt;
&lt;br /&gt;
=== [[elogind]] ===&lt;br /&gt;
Power key needs to be locked from [[elogind]], otherwise it would shutdown the system. This way as long as the UI session is running, power button is ignored by [[elogind]]. Once the session ends and we're back in the login screen, the power button is again able to shutdown the system.&lt;br /&gt;
&lt;br /&gt;
{{codeblock|title=/usr/share/wayland-sessions/sway.desktop|1=&lt;br /&gt;
...&lt;br /&gt;
Exec=elogind-inhibit --what=handle-power-key --mode=block dbus-run-session /usr/bin/sway&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
(included in the POC repository)&lt;br /&gt;
&lt;br /&gt;
=== [[SwayWM]] ===&lt;br /&gt;
(config included in the POC repository)&lt;br /&gt;
&lt;br /&gt;
=== [[waybar]] ===&lt;br /&gt;
(config included in the POC repository)&lt;br /&gt;
&lt;br /&gt;
* Pick a theme! Mine is: [https://github.com/carlosdss22/dotfiles/]&lt;br /&gt;
* {{IconInfo}} For '''clock''' module, don't forget to set the ''locale'' and ''timezone'' parameters, otherwise nothing will show up.&lt;br /&gt;
&lt;br /&gt;
=== lisgd ===&lt;br /&gt;
[[sxmo#lisgd]] reconfigured through command line parameters in [[SwayWM]] config.&lt;br /&gt;
&lt;br /&gt;
(config included in the POC repository)&lt;br /&gt;
&lt;br /&gt;
=== [[PinePhone-Toolkit]] ===&lt;br /&gt;
Used mainly in [[SwayWM]] config.&lt;br /&gt;
&lt;br /&gt;
=== [[Bluetooth]] ===&lt;br /&gt;
* Enable the service on boot: {{code|1=rc-update add bluetooth}}&lt;br /&gt;
* Enable the controller by default:&lt;br /&gt;
{{codeblock|title=/etc/bluetooth/main.conf|1=&lt;br /&gt;
[Policy]&lt;br /&gt;
AutoEnable=true&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== TODOs ===&lt;br /&gt;
{{todo|Complete these TODOs!}}&lt;br /&gt;
# power saving (so that I can leave the battery in the device when I'm not using it)&lt;br /&gt;
## hibernation / suspend command - needs crust support in pmos: [https://gitlab.com/postmarketOS/pmaports/-/issues/550 issue 550]&lt;br /&gt;
## shortcut to enter suspend&lt;br /&gt;
##* {{IconInfo}} {{code|1=rtcwake -m mem -s 10}} ... {{IconFail}} does not resume operation after issuing ''s2idle''&lt;br /&gt;
# Core UI&lt;br /&gt;
#* Display rotation&lt;br /&gt;
#** Vertical waybar - hide/show based on output transformation/waybar-window size [https://github.com/Alexays/Waybar/search?q=hidden&amp;amp;unscoped_q=hidden]&lt;br /&gt;
# Install and test essential apps &amp;amp; workflows&lt;br /&gt;
## {{IconDone}} Terminal: [[termite]]&lt;br /&gt;
## {{IconWip}} Web browser: [[Firefox]]&lt;br /&gt;
##* Mostly works. Portrait mode doesn't fit perfectly. Clunky UI, some menus overflow.&lt;br /&gt;
## {{IconWip}} Passwords manager: [[KeepassXC]])&lt;br /&gt;
##* Doesn't support such a small screen. Modify and submit a PR?&lt;br /&gt;
## {{IconTodo}} Personal Information Manager with [[WebDAV]] sync support for calendar, contacts&lt;br /&gt;
## {{IconTodo}} Email client: [[thunderbird]]&lt;br /&gt;
##* Doesn't support such a small screen. Modify and submit a PR?&lt;br /&gt;
## {{IconDone}} Calculator: [[galculator]]&lt;br /&gt;
## {{IconTodo}} Alarm: ?&lt;br /&gt;
## {{IconTodo}} IM clients&lt;br /&gt;
##* XMPP: ?&lt;br /&gt;
##* Matrix: ?&lt;br /&gt;
##* Slack: ?&lt;br /&gt;
## {{IconWip}} Music player: [[audacious]]&lt;br /&gt;
##* A few problems with the small screen. Otherwise seems to work.&lt;br /&gt;
## {{IconTodo}} Camera &amp;amp; Video recorder: ?&lt;br /&gt;
## {{IconTodo}} VPN client: [[NetworkManager]]?&lt;br /&gt;
# Support for non-essential apps &amp;amp; workflows&lt;br /&gt;
#* {{IconTodo}} RSS client: ?&lt;br /&gt;
#* {{IconTodo}} OTP generator: ?&lt;br /&gt;
#* {{IconTodo}} Ebook reader: ?&lt;br /&gt;
#* {{IconTodo}} Weather forecast: ?&lt;br /&gt;
#* {{IconTodo}} Maps, navigation: ?&lt;br /&gt;
#* {{IconTodo}} Calls &amp;amp; Texts: ?&lt;br /&gt;
#* {{IconTodo}} Samba share mounted from NAS&lt;br /&gt;
#** CIFS is not supported by the kernel right now&lt;br /&gt;
# Tweaking&lt;br /&gt;
#* Configure [[Firefox]] for touch: [https://wiki.postmarketos.org/wiki/Firefox]?&lt;br /&gt;
#* ...&lt;br /&gt;
# non-essential userspace apps&lt;br /&gt;
#* ...&lt;br /&gt;
# cool stuff&lt;br /&gt;
#* presentation mode [https://github.com/Alexays/Waybar/wiki/Module:-Idle-Inhibitor]&lt;br /&gt;
#* night mode: flux / nightlight / redshift / ...&lt;br /&gt;
#* automated brightness based on screen content [https://github.com/maximbaz/wluma]&lt;br /&gt;
&lt;br /&gt;
== Rejected solutions ==&lt;br /&gt;
=== under Wayland ===&lt;br /&gt;
* [https://github.com/bulletmark/libinput-gestures libinput-gestures]&lt;br /&gt;
* [http://www.plippo.de/p/twofing twofing]&lt;br /&gt;
* onboard virtual keyboard&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=PinePhone_Software&amp;diff=574</id>
		<title>PinePhone Software</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=PinePhone_Software&amp;diff=574"/>
		<updated>2020-09-12T18:09:08Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Software usable with [[PinePhone]]&lt;br /&gt;
&lt;br /&gt;
== Distributions ==&lt;br /&gt;
Main distributions registry: [https://wiki.pine64.org/index.php?title=PinePhone_Software_Releases wiki.pine64.org/PinePhone_Software_Releases]&lt;br /&gt;
&lt;br /&gt;
* [[Arch Linux ARM for PinePhone]]&lt;br /&gt;
** Repository: [https://github.com/dreemurrs-embedded/Pine64-Arch/releases]&lt;br /&gt;
* [[Arch Linux ARM for PinePhone Installer]]&lt;br /&gt;
** Repository: [https://github.com/Dejvino/pinephone-arch-install github.com/Dejvino/pinephone-arch-install]&lt;br /&gt;
* [[Mobian]]&lt;br /&gt;
** [[Debian]] for mobile devices.&lt;br /&gt;
* [[UBports]]&lt;br /&gt;
** [[Ubuntu Touch]] for [[PinePhone]].&lt;br /&gt;
** [https://gitlab.com/ubports/community-ports/pinephone#how-do-i-install-ubuntu-touch-on-my-pinephone wiki: How to install]&lt;br /&gt;
* [[postmarketOS]]&lt;br /&gt;
** [[Alpine Linux]] for phones&lt;br /&gt;
* [[sxmo]]&lt;br /&gt;
** [[dwm]] on [[postmarketOS]].&lt;br /&gt;
** [https://forum.pine64.org/showthread.php?tid=9913&amp;amp;pid=66062#pid66062 Pine64 Forum Thread]&lt;br /&gt;
** [https://git.sr.ht/~mil/sxmo-docs/tree/master/USERGUIDE.md User Guide]&lt;br /&gt;
&lt;br /&gt;
== Utilities ==&lt;br /&gt;
=== Jumpdrive ===&lt;br /&gt;
Enables flashing of the internal [[eMMC]] flash storage from a computer over USB.&lt;br /&gt;
* [https://wiki.pine64.org/index.php/PinePhone#Flashing_eMMC_using_Jumpdrive Pine64 Wiki]&lt;br /&gt;
* [https://github.com/dreemurrs-embedded/Jumpdrive/releases/ Releases (pre-built images)]&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
* [[PinePhone-Toolkit]]&lt;br /&gt;
* p-boot - minimal PinePhone bootloader&lt;br /&gt;
** [https://megous.com/git/p-boot/about/ ABOUT]&lt;br /&gt;
** [https://megous.com/git/p-boot/tree/HACKING HACKING]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== What is going on?? ===&lt;br /&gt;
Try connecting to the [[Serial Console on PinePhone]].&lt;br /&gt;
&lt;br /&gt;
=== Random crashes ===&lt;br /&gt;
If you experience random crashes, try a slower DRAM clock speed! See [https://forum.pine64.org/showthread.php?tid=9832 this thread].&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://wiki.pine64.org/index.php/PinePhone_Software_Release wiki.pine64.org/PinePhone_Software_Release]&lt;br /&gt;
* [[Megous]] ([https://xnux.eu/index.html xnux.eu])&lt;br /&gt;
** Introduction &amp;amp; Status: [https://xnux.eu/devices/pine64-pinephone.html#toc-pine64-pinephone xnux.eu/devices/pine64-pinephone]&lt;br /&gt;
** Linux kernel: [https://github.com/megous/linux/tree/pp-5.6 github.com/megous/linux/pp-5.6]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Mobian&amp;diff=573</id>
		<title>Mobian</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Mobian&amp;diff=573"/>
		<updated>2020-09-12T18:04:02Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mobile [[Debian]] project. A bunch of [[debos]] recipes for building a [[Debian]] operating system for a mobile device such as [[PinePhone]].&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
Prepare a [[Debian]]-based VM:&lt;br /&gt;
{{code-block|1=&lt;br /&gt;
vagrant init hashicorp/bionic64&lt;br /&gt;
vagrant up}}&lt;br /&gt;
&lt;br /&gt;
Install dependencies:&lt;br /&gt;
{{code-block|1=&lt;br /&gt;
vagrant ssh&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt upgrade&lt;br /&gt;
sudo apt install debos debootstrap qemu-system-x86 qemu-user-static binfmt-support&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Download the sources:&lt;br /&gt;
{{code-block|1=&lt;br /&gt;
vagrant ssh&lt;br /&gt;
git clone https://gitlab.com/mobian1/mobian-recipes.git}}&lt;br /&gt;
&lt;br /&gt;
Build:&lt;br /&gt;
{{code-block|1=&lt;br /&gt;
vagrant ssh&lt;br /&gt;
cd mobian-recipes&lt;br /&gt;
sudo ./build.sh}}&lt;br /&gt;
&lt;br /&gt;
{{IconFail}} ...and the build fails -_-&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://mobian-project.org/ Homepage]&lt;br /&gt;
* [https://gitlab.com/mobian1 Repository]&lt;br /&gt;
* [https://wiki.mobian-project.org/ Wiki]&lt;br /&gt;
* [https://forum.pine64.org/showthread.php?tid=9850 Pine64 Forum Thread]&lt;br /&gt;
&lt;br /&gt;
== Previously [[Debian]] + [[Phosh]] ==&lt;br /&gt;
Repository: [https://gitlab.com/a-wai/debos-pinephone gitlab.com/a-wai/debos-pinephone]&lt;br /&gt;
* [https://wiki.pine64.org/index.php/PinePhone_Software_Release#Debian_.2B_Phosh Pine64 Wiki Page]&lt;br /&gt;
* [https://forum.pine64.org/showthread.php?tid=9016 Pine64 Forum Thread]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver_Distributions_Testing&amp;diff=572</id>
		<title>Projects:PinePhone Daily Driver Distributions Testing</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver_Distributions_Testing&amp;diff=572"/>
		<updated>2020-09-09T02:01:54Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My results from testing of various distributions with the [[PinePhone]] to fulfill the [[Projects:PinePhone Daily Driver]].&lt;br /&gt;
&lt;br /&gt;
== Testing Results ==&lt;br /&gt;
=== [[Mobian]] ===&lt;br /&gt;
==== Pros and Cons ====&lt;br /&gt;
* {{IconPlus}} [[Debian]] (almost as good as [[Arch Linux]])&lt;br /&gt;
* {{IconPlus}} Aims to be as upstream as possible, built from source&lt;br /&gt;
* {{IconPlus}} Usually features the newest features&lt;br /&gt;
* {{IconPlus}} Most reliable so far&lt;br /&gt;
&lt;br /&gt;
=== [[postmarketOS]] ===&lt;br /&gt;
==== Pros and Cons ====&lt;br /&gt;
* {{IconPlus}} [[Alpine Linux]]&lt;br /&gt;
* {{IconPlus}} Easily customizable (thanks to pmbootstrap)&lt;br /&gt;
* {{IconPlus}} Full Device Encryption&lt;br /&gt;
* {{IconMinus}} Seems to often lag behind other popular distros when it comes to supporting new features.&lt;br /&gt;
&lt;br /&gt;
=== [[UBports]] ===&lt;br /&gt;
==== Pros and Cons ====&lt;br /&gt;
* {{IconPlus}} Usually polished&lt;br /&gt;
* {{IconPlus}} Built via [[debos]] from source&lt;br /&gt;
* {{IconMinus}} {{IconMinus}} read-only file systems, not intended to be modified by the user&lt;br /&gt;
&lt;br /&gt;
=== [[sxmo]] ===&lt;br /&gt;
==== Pros and Cons ====&lt;br /&gt;
* {{IconPlus}} built on top of [[postmarketOS]] (i.e. [[Alpine Linux]])&lt;br /&gt;
* {{IconPlus}} tiling window manager&lt;br /&gt;
* {{IconMinus}} {{IconMinus}} kills power/volume buttons easily&lt;br /&gt;
* {{IconMinus}} [[X11]] instead of [[Wayland]]&lt;br /&gt;
* {{IconMinus}} smaller community&lt;br /&gt;
&lt;br /&gt;
=== [[Arch Linux ARM]] ===&lt;br /&gt;
==== Pros and Cons ====&lt;br /&gt;
* {{IconPlus}} [[Arch Linux]]&lt;br /&gt;
* {{IconMinus}} Missing some of the newest features&lt;br /&gt;
* {{IconMinus}} Often breaks&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
* [[PinePhone Software]]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver_Distributions_Testing&amp;diff=571</id>
		<title>Projects:PinePhone Daily Driver Distributions Testing</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=Projects:PinePhone_Daily_Driver_Distributions_Testing&amp;diff=571"/>
		<updated>2020-09-09T02:00:16Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My results from testing of various distributions with the [[PinePhone]] to fulfill the [[Projects:PinePhone Daily Driver]].&lt;br /&gt;
&lt;br /&gt;
=== [[Mobian]] ===&lt;br /&gt;
==== Pros and Cons ====&lt;br /&gt;
* {{IconPlus}} [[Debian]] (almost as good as [[Arch Linux]])&lt;br /&gt;
* {{IconPlus}} Aims to be as upstream as possible, built from source&lt;br /&gt;
* {{IconPlus}} Usually features the newest features&lt;br /&gt;
* {{IconPlus}} Most reliable so far&lt;br /&gt;
&lt;br /&gt;
=== [[postmarketOS]] ===&lt;br /&gt;
==== Pros and Cons ====&lt;br /&gt;
* {{IconPlus}} [[Alpine Linux]]&lt;br /&gt;
* {{IconPlus}} Easily customizable (thanks to pmbootstrap)&lt;br /&gt;
* {{IconPlus}} Full Device Encryption&lt;br /&gt;
* {{IconMinus}} Seems to often lag behind other popular distros when it comes to supporting new features.&lt;br /&gt;
&lt;br /&gt;
=== [[UBports]] ===&lt;br /&gt;
==== Pros and Cons ====&lt;br /&gt;
* {{IconPlus}} Usually polished&lt;br /&gt;
* {{IconPlus}} Built via [[debos]] from source&lt;br /&gt;
* {{IconMinus}} {{IconMinus}} read-only file systems, not intended to be modified by the user&lt;br /&gt;
&lt;br /&gt;
=== [[sxmo]] ===&lt;br /&gt;
==== Pros and Cons ====&lt;br /&gt;
* {{IconPlus}} built on top of [[postmarketOS]] (i.e. [[Alpine Linux]])&lt;br /&gt;
* {{IconPlus}} tiling window manager&lt;br /&gt;
* {{IconMinus}} {{IconMinus}} kills power/volume buttons easily&lt;br /&gt;
* {{IconMinus}} [[X11]] instead of [[Wayland]]&lt;br /&gt;
* {{IconMinus}} smaller community&lt;br /&gt;
&lt;br /&gt;
=== [[Arch Linux ARM]] ===&lt;br /&gt;
==== Pros and Cons ====&lt;br /&gt;
* {{IconPlus}} [[Arch Linux]]&lt;br /&gt;
* {{IconMinus}} Missing some of the newest features&lt;br /&gt;
* {{IconMinus}} Often breaks&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
* [[PinePhone Software]]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=PineTime&amp;diff=570</id>
		<title>PineTime</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=PineTime&amp;diff=570"/>
		<updated>2020-08-31T20:13:00Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Open smartwatch from [[Pine64]].&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
{{todo|Copy from the official page}}&lt;br /&gt;
* [[Bluetooth]]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
You can use 'bluetoothctl' to manually interact (connect/pair/read/write) with a bluetooth device.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# bluetoothctl&lt;br /&gt;
[bluetooth] power on&lt;br /&gt;
[bluetooth] scan on&lt;br /&gt;
...&lt;br /&gt;
[bluetooth] pair AA:BB:CC:DD:EE:FF&lt;br /&gt;
[bluetooth] connect AA:BB:CC:DD:EE:FF&lt;br /&gt;
[PineTime] menu gatt&lt;br /&gt;
[PineTime] select-attribute /org/bluez/hci0/dev_AA_BB_CC_DD_EE_FF/service0015/char0016&lt;br /&gt;
[PineTime] write &amp;quot;0xe4 0x07 0x08 0x30 0x21 0x36 0x2c 0x00 0x01&amp;quot;&lt;br /&gt;
[PineTime] read&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Time Sync ===&lt;br /&gt;
This [[Python]] script pushes the current time to the device:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import datetime&lt;br /&gt;
import pydbus&lt;br /&gt;
from gi.repository import GLib&lt;br /&gt;
&lt;br /&gt;
# Setup of device specific values&lt;br /&gt;
dev_id = 'AA:BB:CC:DD:EE:FF'&lt;br /&gt;
char_uuid = '00002a2b-0000-1000-8000-00805f9b34fb'&lt;br /&gt;
&lt;br /&gt;
# DBus object paths&lt;br /&gt;
bluez_service = 'org.bluez'&lt;br /&gt;
adapter_path = '/org/bluez/hci0'&lt;br /&gt;
device_path = f&amp;quot;{adapter_path}/dev_{dev_id.replace(':', '_')}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
bus = pydbus.SystemBus()&lt;br /&gt;
adapter = bus.get(bluez_service, adapter_path)&lt;br /&gt;
device = bus.get(bluez_service, device_path)&lt;br /&gt;
mngr = bus.get(bluez_service, '/')&lt;br /&gt;
&lt;br /&gt;
# Assume device has been paired already so can use connect&lt;br /&gt;
device.Connect()&lt;br /&gt;
&lt;br /&gt;
def get_characteristic_path(dev_path, uuid):&lt;br /&gt;
    mng_objs = mngr.GetManagedObjects()&lt;br /&gt;
    for path in mng_objs:&lt;br /&gt;
        chr_uuid = mng_objs[path].get('org.bluez.GattCharacteristic1', {}).get('UUID')&lt;br /&gt;
        if path.startswith(dev_path) and chr_uuid == uuid:&lt;br /&gt;
           return path&lt;br /&gt;
&lt;br /&gt;
char_path = get_characteristic_path(device._path, char_uuid)&lt;br /&gt;
cts = bus.get(bluez_service, char_path)&lt;br /&gt;
print('Old value: \t', cts.ReadValue({}))&lt;br /&gt;
&lt;br /&gt;
now = datetime.datetime.now()&lt;br /&gt;
data = bytearray(int(now.year).to_bytes(2, byteorder='little'))&lt;br /&gt;
data.append(now.month)&lt;br /&gt;
data.append(now.day)&lt;br /&gt;
data.append(now.hour)&lt;br /&gt;
data.append(now.minute)&lt;br /&gt;
data.append(now.second)&lt;br /&gt;
data.append(0) # millis&lt;br /&gt;
data.append(1) # reason&lt;br /&gt;
cts.WriteValue(data, {})&lt;br /&gt;
&lt;br /&gt;
print('New value: \t', cts.ReadValue({}))&lt;br /&gt;
&lt;br /&gt;
device.Disconnect()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Structure of a Current Time Service packet:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
          uint16_t year;&lt;br /&gt;
          uint8_t month;&lt;br /&gt;
          uint8_t dayofmonth;&lt;br /&gt;
          uint8_t hour;&lt;br /&gt;
          uint8_t minute;&lt;br /&gt;
          uint8_t second;&lt;br /&gt;
          uint8_t millis;&lt;br /&gt;
          uint8_t reason;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Alert Notification ===&lt;br /&gt;
This [[Python]] script pushes a short alert notification to the device:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import sys&lt;br /&gt;
import pydbus&lt;br /&gt;
from gi.repository import GLib&lt;br /&gt;
&lt;br /&gt;
# Setup of device specific values&lt;br /&gt;
dev_id = 'AA:BB:CC:DD:EE:FF'&lt;br /&gt;
char_uuid = '00002a46-0000-1000-8000-00805f9b34fb'&lt;br /&gt;
&lt;br /&gt;
# DBus object paths&lt;br /&gt;
bluez_service = 'org.bluez'&lt;br /&gt;
adapter_path = '/org/bluez/hci0'&lt;br /&gt;
device_path = f&amp;quot;{adapter_path}/dev_{dev_id.replace(':', '_')}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
bus = pydbus.SystemBus()&lt;br /&gt;
adapter = bus.get(bluez_service, adapter_path)&lt;br /&gt;
device = bus.get(bluez_service, device_path)&lt;br /&gt;
mngr = bus.get(bluez_service, '/')&lt;br /&gt;
&lt;br /&gt;
# Assume device has been paired already so can use connect&lt;br /&gt;
device.Connect()&lt;br /&gt;
&lt;br /&gt;
def get_characteristic_path(dev_path, uuid):&lt;br /&gt;
    mng_objs = mngr.GetManagedObjects()&lt;br /&gt;
    for path in mng_objs:&lt;br /&gt;
        chr_uuid = mng_objs[path].get('org.bluez.GattCharacteristic1', {}).get('UUID')&lt;br /&gt;
        if path.startswith(dev_path) and chr_uuid == uuid:&lt;br /&gt;
           return path&lt;br /&gt;
&lt;br /&gt;
char_path = get_characteristic_path(device._path, char_uuid)&lt;br /&gt;
alert = bus.get(bluez_service, char_path)&lt;br /&gt;
&lt;br /&gt;
categoryId = 1&lt;br /&gt;
categoryCount = 1&lt;br /&gt;
text = ' '.join(sys.argv[1:])&lt;br /&gt;
data = bytearray(int(categoryId).to_bytes(2, byteorder='little'))&lt;br /&gt;
data.append(categoryCount)&lt;br /&gt;
data.extend(map(ord, text))&lt;br /&gt;
data.append(0)&lt;br /&gt;
print('Sending:')&lt;br /&gt;
print(data)&lt;br /&gt;
alert.WriteValue(data, {})&lt;br /&gt;
&lt;br /&gt;
device.Disconnect()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flashing ==&lt;br /&gt;
=== JLinkExe without nrfjprog ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# Resources: https://www.silabs.com/community/mcu/32-bit/knowledge-base.entry.html/2014/10/22/using_jlink_commande-YYdy&lt;br /&gt;
#&lt;br /&gt;
# == Manual Steps ==&lt;br /&gt;
#&lt;br /&gt;
# (SWD mode)&lt;br /&gt;
# J-Link&amp;gt;si 1&lt;br /&gt;
# &lt;br /&gt;
# (transfer speed)&lt;br /&gt;
# J-Link&amp;gt;speed 4000&lt;br /&gt;
#&lt;br /&gt;
# (select the PineTime CPU)&lt;br /&gt;
# J-Link&amp;gt;device NRF52832_XXAA&lt;br /&gt;
#&lt;br /&gt;
# (clear the flash)&lt;br /&gt;
# J-Link&amp;gt;erase&lt;br /&gt;
#&lt;br /&gt;
# (flash the binary image)&lt;br /&gt;
# J-Link&amp;gt;loadbin src/pinetime-app.hex 0x0&lt;br /&gt;
#&lt;br /&gt;
# (reset)&lt;br /&gt;
# J-Link&amp;gt;r&lt;br /&gt;
#&lt;br /&gt;
# (start program execution)&lt;br /&gt;
# J-Link&amp;gt;g&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF | /opt/SEGGER/JLink/JLinkExe -device nrf52 -if swd -speed 4000 -autoconnect 1&lt;br /&gt;
erase&lt;br /&gt;
loadbin src/pinetime-app.hex 0x0&lt;br /&gt;
r&lt;br /&gt;
g&lt;br /&gt;
q&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [[Pine64]] wiki on [https://wiki.pine64.org/index.php/PineTime PineTime]&lt;br /&gt;
* OS: [https://github.com/JF002/Pinetime JF002/Pinetime] (Infinitime)&lt;br /&gt;
* Bluetooth - Writing to GATT[https://raspberrypi.stackexchange.com/questions/114150/bluez-btgatt-client-py-writevalue/114175#114175]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=PineTime&amp;diff=569</id>
		<title>PineTime</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=PineTime&amp;diff=569"/>
		<updated>2020-08-31T17:49:31Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Open smartwatch from [[Pine64]].&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
{{todo|Copy from the official page}}&lt;br /&gt;
* [[Bluetooth]]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
You can use 'bluetoothctl' to manually interact (connect/pair/read/write) with a bluetooth device.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# bluetoothctl&lt;br /&gt;
[bluetooth] power on&lt;br /&gt;
[bluetooth] scan on&lt;br /&gt;
...&lt;br /&gt;
[bluetooth] pair AA:BB:CC:DD:EE:FF&lt;br /&gt;
[bluetooth] connect AA:BB:CC:DD:EE:FF&lt;br /&gt;
[PineTime] menu gatt&lt;br /&gt;
[PineTime] select-attribute /org/bluez/hci0/dev_AA_BB_CC_DD_EE_FF/service0015/char0016&lt;br /&gt;
[PineTime] write &amp;quot;0xe4 0x07 0x08 0x30 0x21 0x36 0x2c 0x00 0x01&amp;quot;&lt;br /&gt;
[PineTime] read&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Time Sync ===&lt;br /&gt;
This [[Python]] script pushes the current time to the device:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import datetime&lt;br /&gt;
import pydbus&lt;br /&gt;
from gi.repository import GLib&lt;br /&gt;
&lt;br /&gt;
# Setup of device specific values&lt;br /&gt;
dev_id = 'AA:BB:CC:DD:EE:FF'&lt;br /&gt;
char_uuid = '00002a2b-0000-1000-8000-00805f9b34fb'&lt;br /&gt;
&lt;br /&gt;
# DBus object paths&lt;br /&gt;
bluez_service = 'org.bluez'&lt;br /&gt;
adapter_path = '/org/bluez/hci0'&lt;br /&gt;
device_path = f&amp;quot;{adapter_path}/dev_{dev_id.replace(':', '_')}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
bus = pydbus.SystemBus()&lt;br /&gt;
adapter = bus.get(bluez_service, adapter_path)&lt;br /&gt;
device = bus.get(bluez_service, device_path)&lt;br /&gt;
mngr = bus.get(bluez_service, '/')&lt;br /&gt;
&lt;br /&gt;
# Assume device has been paired already so can use connect&lt;br /&gt;
device.Connect()&lt;br /&gt;
&lt;br /&gt;
def get_characteristic_path(dev_path, uuid):&lt;br /&gt;
    mng_objs = mngr.GetManagedObjects()&lt;br /&gt;
    for path in mng_objs:&lt;br /&gt;
        chr_uuid = mng_objs[path].get('org.bluez.GattCharacteristic1', {}).get('UUID')&lt;br /&gt;
        if path.startswith(dev_path) and chr_uuid == uuid:&lt;br /&gt;
           return path&lt;br /&gt;
&lt;br /&gt;
char_path = get_characteristic_path(device._path, char_uuid)&lt;br /&gt;
cts = bus.get(bluez_service, char_path)&lt;br /&gt;
print('Old value: \t', cts.ReadValue({}))&lt;br /&gt;
&lt;br /&gt;
now = datetime.datetime.now()&lt;br /&gt;
data = bytearray(int(now.year).to_bytes(2, byteorder='little'))&lt;br /&gt;
data.append(now.month)&lt;br /&gt;
data.append(now.day)&lt;br /&gt;
data.append(now.hour)&lt;br /&gt;
data.append(now.minute)&lt;br /&gt;
data.append(now.second)&lt;br /&gt;
data.append(0) # millis&lt;br /&gt;
data.append(1) # reason&lt;br /&gt;
cts.WriteValue(data, {})&lt;br /&gt;
&lt;br /&gt;
print('New value: \t', cts.ReadValue({}))&lt;br /&gt;
&lt;br /&gt;
device.Disconnect()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Structure of a Current Time Service packet:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
          uint16_t year;&lt;br /&gt;
          uint8_t month;&lt;br /&gt;
          uint8_t dayofmonth;&lt;br /&gt;
          uint8_t hour;&lt;br /&gt;
          uint8_t minute;&lt;br /&gt;
          uint8_t second;&lt;br /&gt;
          uint8_t millis;&lt;br /&gt;
          uint8_t reason;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Alert Notification ===&lt;br /&gt;
This [[Python]] script pushes a short alert notification to the device:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import sys&lt;br /&gt;
import pydbus&lt;br /&gt;
from gi.repository import GLib&lt;br /&gt;
&lt;br /&gt;
# Setup of device specific values&lt;br /&gt;
dev_id = 'AA:BB:CC:DD:EE:FF'&lt;br /&gt;
char_uuid = '00002a46-0000-1000-8000-00805f9b34fb'&lt;br /&gt;
&lt;br /&gt;
# DBus object paths&lt;br /&gt;
bluez_service = 'org.bluez'&lt;br /&gt;
adapter_path = '/org/bluez/hci0'&lt;br /&gt;
device_path = f&amp;quot;{adapter_path}/dev_{dev_id.replace(':', '_')}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
bus = pydbus.SystemBus()&lt;br /&gt;
adapter = bus.get(bluez_service, adapter_path)&lt;br /&gt;
device = bus.get(bluez_service, device_path)&lt;br /&gt;
mngr = bus.get(bluez_service, '/')&lt;br /&gt;
&lt;br /&gt;
# Assume device has been paired already so can use connect&lt;br /&gt;
device.Connect()&lt;br /&gt;
&lt;br /&gt;
def get_characteristic_path(dev_path, uuid):&lt;br /&gt;
    mng_objs = mngr.GetManagedObjects()&lt;br /&gt;
    for path in mng_objs:&lt;br /&gt;
        chr_uuid = mng_objs[path].get('org.bluez.GattCharacteristic1', {}).get('UUID')&lt;br /&gt;
        if path.startswith(dev_path) and chr_uuid == uuid:&lt;br /&gt;
           return path&lt;br /&gt;
&lt;br /&gt;
char_path = get_characteristic_path(device._path, char_uuid)&lt;br /&gt;
alert = bus.get(bluez_service, char_path)&lt;br /&gt;
&lt;br /&gt;
categoryId = 1&lt;br /&gt;
categoryCount = 1&lt;br /&gt;
text = ' '.join(sys.argv[1:])&lt;br /&gt;
data = bytearray(int(categoryId).to_bytes(2, byteorder='little'))&lt;br /&gt;
data.append(categoryCount)&lt;br /&gt;
data.extend(map(ord, text))&lt;br /&gt;
data.append(0)&lt;br /&gt;
print('Sending:')&lt;br /&gt;
print(data)&lt;br /&gt;
alert.WriteValue(data, {})&lt;br /&gt;
&lt;br /&gt;
device.Disconnect()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flashing ==&lt;br /&gt;
=== JLinkExe without nrfjprog ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# Resources: https://www.silabs.com/community/mcu/32-bit/knowledge-base.entry.html/2014/10/22/using_jlink_commande-YYdy&lt;br /&gt;
#&lt;br /&gt;
# == Manual Steps ==&lt;br /&gt;
#&lt;br /&gt;
# (SWD mode)&lt;br /&gt;
# J-Link&amp;gt;si 1&lt;br /&gt;
# &lt;br /&gt;
# (transfer speed)&lt;br /&gt;
# J-Link&amp;gt;speed 4000&lt;br /&gt;
#&lt;br /&gt;
# (select the PineTime CPU)&lt;br /&gt;
# J-Link&amp;gt;device NRF52832_XXAA&lt;br /&gt;
#&lt;br /&gt;
# (clear the flash)&lt;br /&gt;
# J-Link&amp;gt;erase&lt;br /&gt;
#&lt;br /&gt;
# (flash the binary image)&lt;br /&gt;
# J-Link&amp;gt;loadbin src/pinetime-app.bin&lt;br /&gt;
#&lt;br /&gt;
# (reset)&lt;br /&gt;
# J-Link&amp;gt;r&lt;br /&gt;
#&lt;br /&gt;
# (start program execution)&lt;br /&gt;
# J-Link&amp;gt;g&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF | /opt/SEGGER/JLink/JLinkExe -device nrf52 -if swd -speed 4000 -autoconnect 1&lt;br /&gt;
erase&lt;br /&gt;
loadbin src/pinetime-app.hex&lt;br /&gt;
r&lt;br /&gt;
g&lt;br /&gt;
q&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [[Pine64]] wiki on [https://wiki.pine64.org/index.php/PineTime PineTime]&lt;br /&gt;
* OS: [https://github.com/JF002/Pinetime JF002/Pinetime] (Infinitime)&lt;br /&gt;
* Bluetooth - Writing to GATT[https://raspberrypi.stackexchange.com/questions/114150/bluez-btgatt-client-py-writevalue/114175#114175]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=PineTime&amp;diff=568</id>
		<title>PineTime</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=PineTime&amp;diff=568"/>
		<updated>2020-08-31T17:47:45Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Open smartwatch from [[Pine64]].&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
{{todo|Copy from the official page}}&lt;br /&gt;
* [[Bluetooth]]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
You can use 'bluetoothctl' to manually interact (connect/pair/read/write) with a bluetooth device.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# bluetoothctl&lt;br /&gt;
[bluetooth] power on&lt;br /&gt;
[bluetooth] scan on&lt;br /&gt;
...&lt;br /&gt;
[bluetooth] pair AA:BB:CC:DD:EE:FF&lt;br /&gt;
[bluetooth] connect AA:BB:CC:DD:EE:FF&lt;br /&gt;
[PineTime] menu gatt&lt;br /&gt;
[PineTime] select-attribute /org/bluez/hci0/dev_AA_BB_CC_DD_EE_FF/service0015/char0016&lt;br /&gt;
[PineTime] write &amp;quot;0xe4 0x07 0x08 0x30 0x21 0x36 0x2c 0x00 0x01&amp;quot;&lt;br /&gt;
[PineTime] read&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Time Sync ===&lt;br /&gt;
This [[Python]] script pushes the current time to the device:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import datetime&lt;br /&gt;
import pydbus&lt;br /&gt;
from gi.repository import GLib&lt;br /&gt;
&lt;br /&gt;
# Setup of device specific values&lt;br /&gt;
dev_id = 'AA:BB:CC:DD:EE:FF'&lt;br /&gt;
char_uuid = '00002a2b-0000-1000-8000-00805f9b34fb'&lt;br /&gt;
&lt;br /&gt;
# DBus object paths&lt;br /&gt;
bluez_service = 'org.bluez'&lt;br /&gt;
adapter_path = '/org/bluez/hci0'&lt;br /&gt;
device_path = f&amp;quot;{adapter_path}/dev_{dev_id.replace(':', '_')}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
bus = pydbus.SystemBus()&lt;br /&gt;
adapter = bus.get(bluez_service, adapter_path)&lt;br /&gt;
device = bus.get(bluez_service, device_path)&lt;br /&gt;
mngr = bus.get(bluez_service, '/')&lt;br /&gt;
&lt;br /&gt;
# Assume device has been paired already so can use connect&lt;br /&gt;
device.Connect()&lt;br /&gt;
&lt;br /&gt;
def get_characteristic_path(dev_path, uuid):&lt;br /&gt;
    mng_objs = mngr.GetManagedObjects()&lt;br /&gt;
    for path in mng_objs:&lt;br /&gt;
        chr_uuid = mng_objs[path].get('org.bluez.GattCharacteristic1', {}).get('UUID')&lt;br /&gt;
        if path.startswith(dev_path) and chr_uuid == uuid:&lt;br /&gt;
           return path&lt;br /&gt;
&lt;br /&gt;
char_path = get_characteristic_path(device._path, char_uuid)&lt;br /&gt;
cts = bus.get(bluez_service, char_path)&lt;br /&gt;
print('Old value: \t', cts.ReadValue({}))&lt;br /&gt;
&lt;br /&gt;
now = datetime.datetime.now()&lt;br /&gt;
data = bytearray(int(now.year).to_bytes(2, byteorder='little'))&lt;br /&gt;
data.append(now.month)&lt;br /&gt;
data.append(now.day)&lt;br /&gt;
data.append(now.hour)&lt;br /&gt;
data.append(now.minute)&lt;br /&gt;
data.append(now.second)&lt;br /&gt;
data.append(0) # millis&lt;br /&gt;
data.append(1) # reason&lt;br /&gt;
cts.WriteValue(data, {})&lt;br /&gt;
&lt;br /&gt;
print('New value: \t', cts.ReadValue({}))&lt;br /&gt;
&lt;br /&gt;
device.Disconnect()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Structure of a Current Time Service packet:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
          uint16_t year;&lt;br /&gt;
          uint8_t month;&lt;br /&gt;
          uint8_t dayofmonth;&lt;br /&gt;
          uint8_t hour;&lt;br /&gt;
          uint8_t minute;&lt;br /&gt;
          uint8_t second;&lt;br /&gt;
          uint8_t millis;&lt;br /&gt;
          uint8_t reason;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Alert Notification ===&lt;br /&gt;
This [[Python]] script pushes a short alert notification to the device:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import sys&lt;br /&gt;
import pydbus&lt;br /&gt;
from gi.repository import GLib&lt;br /&gt;
&lt;br /&gt;
# Setup of device specific values&lt;br /&gt;
dev_id = 'AA:BB:CC:DD:EE:FF'&lt;br /&gt;
char_uuid = '00002a46-0000-1000-8000-00805f9b34fb'&lt;br /&gt;
&lt;br /&gt;
# DBus object paths&lt;br /&gt;
bluez_service = 'org.bluez'&lt;br /&gt;
adapter_path = '/org/bluez/hci0'&lt;br /&gt;
device_path = f&amp;quot;{adapter_path}/dev_{dev_id.replace(':', '_')}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
bus = pydbus.SystemBus()&lt;br /&gt;
adapter = bus.get(bluez_service, adapter_path)&lt;br /&gt;
device = bus.get(bluez_service, device_path)&lt;br /&gt;
mngr = bus.get(bluez_service, '/')&lt;br /&gt;
&lt;br /&gt;
# Assume device has been paired already so can use connect&lt;br /&gt;
device.Connect()&lt;br /&gt;
&lt;br /&gt;
def get_characteristic_path(dev_path, uuid):&lt;br /&gt;
    mng_objs = mngr.GetManagedObjects()&lt;br /&gt;
    for path in mng_objs:&lt;br /&gt;
        chr_uuid = mng_objs[path].get('org.bluez.GattCharacteristic1', {}).get('UUID')&lt;br /&gt;
        if path.startswith(dev_path) and chr_uuid == uuid:&lt;br /&gt;
           return path&lt;br /&gt;
&lt;br /&gt;
char_path = get_characteristic_path(device._path, char_uuid)&lt;br /&gt;
alert = bus.get(bluez_service, char_path)&lt;br /&gt;
&lt;br /&gt;
categoryId = 1&lt;br /&gt;
categoryCount = 1&lt;br /&gt;
text = ' '.join(sys.argv[1:])&lt;br /&gt;
data = bytearray(int(categoryId).to_bytes(2, byteorder='little'))&lt;br /&gt;
data.append(categoryCount)&lt;br /&gt;
data.extend(map(ord, text))&lt;br /&gt;
data.append(0)&lt;br /&gt;
print('Sending:')&lt;br /&gt;
print(data)&lt;br /&gt;
alert.WriteValue(data, {})&lt;br /&gt;
&lt;br /&gt;
device.Disconnect()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flashing ==&lt;br /&gt;
=== JLinkExe without nrfjprog ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# Resources: https://www.silabs.com/community/mcu/32-bit/knowledge-base.entry.html/2014/10/22/using_jlink_commande-YYdy&lt;br /&gt;
#&lt;br /&gt;
# == Manual Steps ==&lt;br /&gt;
#&lt;br /&gt;
# (SWD mode)&lt;br /&gt;
# J-Link&amp;gt;si 1&lt;br /&gt;
# &lt;br /&gt;
# (transfer speed)&lt;br /&gt;
# J-Link&amp;gt;speed 4000&lt;br /&gt;
#&lt;br /&gt;
# (select the PineTime CPU)&lt;br /&gt;
# J-Link&amp;gt;device NRF52832_XXAA&lt;br /&gt;
#&lt;br /&gt;
# (clear the flash)&lt;br /&gt;
# J-Link&amp;gt;erase&lt;br /&gt;
#&lt;br /&gt;
# (flash the binary image)&lt;br /&gt;
# J-Link&amp;gt;loadbin src/pinetime-app.bin&lt;br /&gt;
#&lt;br /&gt;
# (reset)&lt;br /&gt;
# J-Link&amp;gt;r&lt;br /&gt;
#&lt;br /&gt;
# (start program execution)&lt;br /&gt;
# J-Link&amp;gt;g&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF | /opt/SEGGER/JLink/JLinkExe&lt;br /&gt;
si 1&lt;br /&gt;
speed 4000&lt;br /&gt;
device NRF52832_XXAA&lt;br /&gt;
erase&lt;br /&gt;
loadbin src/pinetime-app.bin 0x0&lt;br /&gt;
r&lt;br /&gt;
g&lt;br /&gt;
q&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [[Pine64]] wiki on [https://wiki.pine64.org/index.php/PineTime PineTime]&lt;br /&gt;
* OS: [https://github.com/JF002/Pinetime JF002/Pinetime] (Infinitime)&lt;br /&gt;
* Bluetooth - Writing to GATT[https://raspberrypi.stackexchange.com/questions/114150/bluez-btgatt-client-py-writevalue/114175#114175]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
	<entry>
		<id>https://kb.d5o.eu/index.php?title=PineTime&amp;diff=567</id>
		<title>PineTime</title>
		<link rel="alternate" type="text/html" href="https://kb.d5o.eu/index.php?title=PineTime&amp;diff=567"/>
		<updated>2020-08-31T13:54:40Z</updated>

		<summary type="html">&lt;p&gt;Dejvino: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Open smartwatch from [[Pine64]].&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
{{todo|Copy from the official page}}&lt;br /&gt;
* [[Bluetooth]]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
You can use 'bluetoothctl' to manually interact (connect/pair/read/write) with a bluetooth device.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# bluetoothctl&lt;br /&gt;
[bluetooth] power on&lt;br /&gt;
[bluetooth] scan on&lt;br /&gt;
...&lt;br /&gt;
[bluetooth] pair AA:BB:CC:DD:EE:FF&lt;br /&gt;
[bluetooth] connect AA:BB:CC:DD:EE:FF&lt;br /&gt;
[PineTime] menu gatt&lt;br /&gt;
[PineTime] select-attribute /org/bluez/hci0/dev_AA_BB_CC_DD_EE_FF/service0015/char0016&lt;br /&gt;
[PineTime] write &amp;quot;0xe4 0x07 0x08 0x30 0x21 0x36 0x2c 0x00 0x01&amp;quot;&lt;br /&gt;
[PineTime] read&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Time Sync ===&lt;br /&gt;
This [[Python]] script pushes the current time to the device:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import datetime&lt;br /&gt;
import pydbus&lt;br /&gt;
from gi.repository import GLib&lt;br /&gt;
&lt;br /&gt;
# Setup of device specific values&lt;br /&gt;
dev_id = 'AA:BB:CC:DD:EE:FF'&lt;br /&gt;
char_uuid = '00002a2b-0000-1000-8000-00805f9b34fb'&lt;br /&gt;
&lt;br /&gt;
# DBus object paths&lt;br /&gt;
bluez_service = 'org.bluez'&lt;br /&gt;
adapter_path = '/org/bluez/hci0'&lt;br /&gt;
device_path = f&amp;quot;{adapter_path}/dev_{dev_id.replace(':', '_')}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
bus = pydbus.SystemBus()&lt;br /&gt;
adapter = bus.get(bluez_service, adapter_path)&lt;br /&gt;
device = bus.get(bluez_service, device_path)&lt;br /&gt;
mngr = bus.get(bluez_service, '/')&lt;br /&gt;
&lt;br /&gt;
# Assume device has been paired already so can use connect&lt;br /&gt;
device.Connect()&lt;br /&gt;
&lt;br /&gt;
def get_characteristic_path(dev_path, uuid):&lt;br /&gt;
    mng_objs = mngr.GetManagedObjects()&lt;br /&gt;
    for path in mng_objs:&lt;br /&gt;
        chr_uuid = mng_objs[path].get('org.bluez.GattCharacteristic1', {}).get('UUID')&lt;br /&gt;
        if path.startswith(dev_path) and chr_uuid == uuid:&lt;br /&gt;
           return path&lt;br /&gt;
&lt;br /&gt;
char_path = get_characteristic_path(device._path, char_uuid)&lt;br /&gt;
cts = bus.get(bluez_service, char_path)&lt;br /&gt;
print('Old value: \t', cts.ReadValue({}))&lt;br /&gt;
&lt;br /&gt;
now = datetime.datetime.now()&lt;br /&gt;
data = bytearray(int(now.year).to_bytes(2, byteorder='little'))&lt;br /&gt;
data.append(now.month)&lt;br /&gt;
data.append(now.day)&lt;br /&gt;
data.append(now.hour)&lt;br /&gt;
data.append(now.minute)&lt;br /&gt;
data.append(now.second)&lt;br /&gt;
data.append(0) # millis&lt;br /&gt;
data.append(1) # reason&lt;br /&gt;
cts.WriteValue(data, {})&lt;br /&gt;
&lt;br /&gt;
print('New value: \t', cts.ReadValue({}))&lt;br /&gt;
&lt;br /&gt;
device.Disconnect()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Structure of a Current Time Service packet:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
          uint16_t year;&lt;br /&gt;
          uint8_t month;&lt;br /&gt;
          uint8_t dayofmonth;&lt;br /&gt;
          uint8_t hour;&lt;br /&gt;
          uint8_t minute;&lt;br /&gt;
          uint8_t second;&lt;br /&gt;
          uint8_t millis;&lt;br /&gt;
          uint8_t reason;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Alert Notification ===&lt;br /&gt;
This [[Python]] script pushes a short alert notification to the device:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import sys&lt;br /&gt;
import pydbus&lt;br /&gt;
from gi.repository import GLib&lt;br /&gt;
&lt;br /&gt;
# Setup of device specific values&lt;br /&gt;
dev_id = 'AA:BB:CC:DD:EE:FF'&lt;br /&gt;
char_uuid = '00002a46-0000-1000-8000-00805f9b34fb'&lt;br /&gt;
&lt;br /&gt;
# DBus object paths&lt;br /&gt;
bluez_service = 'org.bluez'&lt;br /&gt;
adapter_path = '/org/bluez/hci0'&lt;br /&gt;
device_path = f&amp;quot;{adapter_path}/dev_{dev_id.replace(':', '_')}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
bus = pydbus.SystemBus()&lt;br /&gt;
adapter = bus.get(bluez_service, adapter_path)&lt;br /&gt;
device = bus.get(bluez_service, device_path)&lt;br /&gt;
mngr = bus.get(bluez_service, '/')&lt;br /&gt;
&lt;br /&gt;
# Assume device has been paired already so can use connect&lt;br /&gt;
device.Connect()&lt;br /&gt;
&lt;br /&gt;
def get_characteristic_path(dev_path, uuid):&lt;br /&gt;
    mng_objs = mngr.GetManagedObjects()&lt;br /&gt;
    for path in mng_objs:&lt;br /&gt;
        chr_uuid = mng_objs[path].get('org.bluez.GattCharacteristic1', {}).get('UUID')&lt;br /&gt;
        if path.startswith(dev_path) and chr_uuid == uuid:&lt;br /&gt;
           return path&lt;br /&gt;
&lt;br /&gt;
char_path = get_characteristic_path(device._path, char_uuid)&lt;br /&gt;
alert = bus.get(bluez_service, char_path)&lt;br /&gt;
&lt;br /&gt;
categoryId = 1&lt;br /&gt;
categoryCount = 1&lt;br /&gt;
text = ' '.join(sys.argv[1:])&lt;br /&gt;
data = bytearray(int(categoryId).to_bytes(2, byteorder='little'))&lt;br /&gt;
data.append(categoryCount)&lt;br /&gt;
data.extend(map(ord, text))&lt;br /&gt;
data.append(0)&lt;br /&gt;
print('Sending:')&lt;br /&gt;
print(data)&lt;br /&gt;
alert.WriteValue(data, {})&lt;br /&gt;
&lt;br /&gt;
device.Disconnect()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flashing ==&lt;br /&gt;
=== JLinkExe without nrfjprog ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# Resources: https://www.silabs.com/community/mcu/32-bit/knowledge-base.entry.html/2014/10/22/using_jlink_commande-YYdy&lt;br /&gt;
#&lt;br /&gt;
# == Manual Steps ==&lt;br /&gt;
#&lt;br /&gt;
# (SWD mode)&lt;br /&gt;
# J-Link&amp;gt;si 1&lt;br /&gt;
# &lt;br /&gt;
# (transfer speed)&lt;br /&gt;
# J-Link&amp;gt;speed 4000&lt;br /&gt;
#&lt;br /&gt;
# (select the PineTime CPU)&lt;br /&gt;
# J-Link&amp;gt;device NRF52832_XXAA&lt;br /&gt;
#&lt;br /&gt;
# (clear the flash)&lt;br /&gt;
# J-Link&amp;gt;erase&lt;br /&gt;
#&lt;br /&gt;
# (flash the binary image)&lt;br /&gt;
# J-Link&amp;gt;loadbin src/pinetime-app.bin&lt;br /&gt;
#&lt;br /&gt;
# (reset)&lt;br /&gt;
# J-Link&amp;gt;r&lt;br /&gt;
#&lt;br /&gt;
# (start program execution)&lt;br /&gt;
# J-Link&amp;gt;g&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF | /opt/SEGGER/JLink/JLinkExe&lt;br /&gt;
si 1&lt;br /&gt;
speed 4000&lt;br /&gt;
device NRF52832_XXAA&lt;br /&gt;
erase&lt;br /&gt;
loadbin src/pinetime-app.bin 0x0&lt;br /&gt;
r&lt;br /&gt;
g&lt;br /&gt;
q&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [[Pine64]] wiki on [https://wiki.pine64.org/index.php/PineTime PineTime]&lt;br /&gt;
* Bluetooth - Writing to GATT[https://raspberrypi.stackexchange.com/questions/114150/bluez-btgatt-client-py-writevalue/114175#114175]&lt;/div&gt;</summary>
		<author><name>Dejvino</name></author>
		
	</entry>
</feed>