Skip to content

Commit

Permalink
Adding introduction to different BlissOS variants and iptsd calibrati…
Browse files Browse the repository at this point in the history
…ng manual

Signed-off-by: hmtheboy154 <[email protected]>
  • Loading branch information
hmtheboy154 committed Jan 17, 2024
1 parent affa642 commit f5594c6
Show file tree
Hide file tree
Showing 5 changed files with 96 additions and 0 deletions.
78 changes: 78 additions & 0 deletions configuration/Calibrate-and-configure-iptsd.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# Calibrate and configure iptsd

This section is a copy of [linux-surface iptsd wiki](https://github.com/linux-surface/iptsd/wiki/Calibrating-iptsd) with a few edit for BlissOS's iptsd. If you have any trouble with configuring iptsd, please file a bug report [here for BlissOS 14 & 15](https://github.com/BlissRoms-x86/support/issues) and [here for BlissOS 16+](https://github.com/BlissOS/bug_reports/issues). You can also file a bug report at [the main iptsd repo](https://github.com/linux-surface/iptsd/issues).

The palm rejection of iptsd relies on measuring the size and aspect ratio of every contact and then comparing these values to a reference to determine whether the contact is valid or not. The default values will try to cover the finger size of most people, but it is possible (and recommended) to tune these values to better match your fingers. This by extension will also improve palm rejection.

The values that are interesting for calibration are:
* `SizeMin` (Default: 0.2 cm)
* `SizeMax` (Default: 2.0 cm)
* `AspectMin` (Default: 1.0)
* `AspectMax` (Default: 2.5)

To calibrate iptsd, you need to measure the size of your own fingers and then input those values into the configuration file of the daemon. But before you go away and grab a ruler (or just go away), wait! To make this easier, iptsd includes a tool that will do these measurements for you: `iptsd-calibrate`.

The first thing you need to do is stop iptsd. Grant Termux root permission using KernelSU Manager and then :

```bash
su
stop iptsd_runner
killall iptsd
```

Once that is done you can run the calibration tool.

```bash
su
iptsd-calibrate $(iptsd-find-hidraw)
```

You will see something like this:

```
[17:46:55.678] [info] Connected to device 045E:0021
[17:46:55.678] [info] Samples: 0
[17:46:55.678] [info] Size: 0.000 (Min: 0.000; Max: 0.000)
[17:46:55.678] [info] Aspect: 0.000 (Min: 0.000; Max: 0.000)
```

The values will update as soon as you touch the display and iptsd registers a contact. You can now start the actual calibration process. Touch the screen with each of your fingers, one time pressing hard and one time pressing lightly. Then put all your fingers on the display at the same time. You should also do some common gestures like pinch-to-zoom or swiping across the display with three or four fingers, since gestures tend to deform the contact. If you only press your fingers straight on the display, iptsd will detect touches fine but will fail to detect gestures.

There is no need for extensively long contacts. Keeping the finger on the display for a long time won't improve calibration accuracy, since you only need a minimal and a maximal value. But it has the potential to introduce noise into the calibration process which will distort the Min/Max values. 3000 to 4000 samples should be plenty.

**NOTE**: During the calibration, palm rejection is not active! So dont put your palm on the display. If you can, detach the display from the keyboard.

When you are done with the calibration, you should see something like this in the terminal:

```
[17:46:55.678] [info] Connected to device 045E:0021
[17:46:57.186] [info] Samples: 3629
[17:46:57.186] [info] Size: 0.636 (Min: 0.425; Max: 0.859)
[17:46:57.187] [info] Aspect: 1.298 (Min: 1.021; Max: 2.323)
```

In this case the new values would be:
* `SizeMin`: 0.425 cm
* `SizeMax`: 0.859 cm
* `AspectMin`: 1.021
* `AspectMax`: 2.323

Create a file `/data/vendor/ipts/90-calibration.conf` with a text editor of your choice, and enter the above values like this:

```ini
[Contacts]
SizeMin = 0.425
SizeMax = 0.859
AspectMin = 1.021
AspectMax = 2.323
```

After you did that, you can restart iptsd and try out your new calibration.

```bash
start iptsd_runner
```

If you have issues with iptsd not detecting a particular gesture or contact, you should repeat this process and only do the gesture that iptsd has problems with. Then compare the reported values with the ones from your earlier run and adjust them accordingly.

Also check out [this iptsd.conf sample](https://github.com/linux-surface/iptsd/blob/master/etc/iptsd.conf) if you want reference for manual tweaking.
3 changes: 3 additions & 0 deletions knowledgebase/other-bliss-variant/go-builds.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# BlissOS Go

This variant is designed specifically for the low-end hardware that meet the minimum requirement to run BlissOS. While using the same LTS kernel as the Generic variant, we've added a few tweaks to the internal Android parts to make sure you can have a good experience even if your hardware is limited.
1 change: 1 addition & 0 deletions knowledgebase/other-bliss-variant/index.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Label: Other Bliss Variant
11 changes: 11 additions & 0 deletions knowledgebase/other-bliss-variant/surface-builds.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# BlissOS for Surface devices

This version is designed specifically for the Microsoft Surface devices. The kernel use almost the same LTS kernel but with extra patches from the [linux-surface](https://github.com/linux-surface) project to ensure the most compatibility.

While this build indicate that this is for Surface devices, not all devices need to use this build. To know that your device need to install this build, go to this section of linux-surface wiki:

https://github.com/linux-surface/linux-surface/wiki/Supported-Devices-and-Features

If you see your device has the number that said `Requires linux-surface kernel` or `Requires linux-surface kernel >=x.x.x` then this is the build you are looking for.

The Surface build of BlissOS also include `iptsd` an userspace touch processing daemon for Microsoft Surface devices using Intel Precise Touch technology made by linux-surface team. If you have any issue with the touchscreen, try to Calibrate or tweak the daemon. Go to [Calibrate and configure iptsd](/configuration/Calibrate-and-configure-iptsd.md) to know how.
3 changes: 3 additions & 0 deletions knowledgebase/other-bliss-variant/zenith-builds.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# BlissOS Zenith

BlissOS Zenith is the new flagship build of BlissOS. Zenith is a BlissOS variant that is intended for "chasing the latest". We will build this variant weekly with only the latest version of BlissOS that is available, combine with latest Stable kernel. BlissOS is intended for people who are having a new hardware that LTS kernel can't support, or people who just want to get latest stable kernel to run on their builds.

0 comments on commit f5594c6

Please sign in to comment.