GithubHelp home page GithubHelp logo

gsl-firmware's Introduction

gsl-firmware

This repository contains firmware images for the Silead touchscreen controllers in various tablet (and other) devices.

There is also a number of conversion tools here that help with extraction and preparation of firmware images.

The firmware files were extracted from Android and Windows device drivers, as published by device manufacturers. They are intended for people who prefer to replace the shipped operating system with a generic Linux distribution such as Debian or Ubuntu.

The files may be covered by proprietary licenses or copyright. Please consult the manufacturer's website or device documentation for more information.

In contrast, everything in the tools directory is published under the GNU General Public license v2, as laid out in tools/LICENSE. See tools/AUTHORS.md for copyright information.

Device list

Manufacturer Device Tested Firmware
Archos 101 Cesium Educ yes firmware/archos/101_cesium_educ
BUSH Bush Windows tablet yes firmware/bush/bush_windows_tablet
Chuwi hi8 yes firmware/chuwi/hi8
Chuwi Hi8 Air yes firmware/chuwi/hi8_air
Chuwi vi8 no firmware/chuwi/vi8
Chuwi vi10 yes firmware/chuwi/vi10
Chuwi Hi10 Air yes firmware/chuwi/hi10_air
Chuwi Hi10 Pro yes firmware/chuwi/hi10_pro
Chuwi Hi10 Pro new (z8350, 20161209) yes firmware/chuwi/hi10_pro-z8350
Chuwi Hi10 Plus yes firmware/chuwi/hi10_plus
Chuwi HiBook yes firmware/chuwi/hibook
Chuwi SurBook mini yes firmware/chuwi/surbook_mini
Chuwi vx8 3G 32GB no firmware/chuwi/vx8_3g_32GB
Nuvision NES11 yes firmware/nuvision/nes11
EastRising ER-TPC050-1 yes firmware/eastrising/er-tpc050-1
Trekstor SurfTab wintron 7.0 yes firmware/trekstor/surftab7old
Trekstor SurfTab wintron 7.0 (ST70416-6) yes firmware/trekstor/surftab7new
Trekstor SurfTab twin 10.1 (ST10432-8) yes firmware/trekstor/surftab-twin-10.1-ST10432-8
Trekstor Primebook C13 yes firmware/trekstor/primebook-c13/
Trekstor Primetab T13B no firmware/trekstor/primetab-t13b/
Utok i800 yes firmware/utok/i800
RCA Cambio W101 V2 10.1" tablet yes firmware/rca/w101v2
RCA Cambio W122SC24T2 12.2 tablet no firmware/rca/w122sc24t2
Odys Fusion Win 12 - 2in1 yes firmware/odys/fusionwin12
Onda V820w 16G yes firmware/onda/v820w_16g
Onda V820w 32G yes firmware/onda/v820w_32g
Onda V891 v5 yes firmware/onda/v891_v5
Onda V891w no firmware/onda/v891w
Onda oBook 20 Plus yes firmware/onda/obook_20_plus
EduGear XR2N1 yes firmware/edugear/xr2n1
Cube i10 yes firmware/cube/i10
Cube KNote (i1101) yes firmware/cube/i1101
Cube KNote Go(i1101S) yes firmware/cube/i1101S
jumper EZpad mini3 yes firmware/jumper/EZpad_mini3
jumper EZpad 5SE no firmware/jumper/EZpad_5SE
jumper EZpad 6 yes firmware/jumper/EZpad_6
jumper EZpad 6(S) Pro yes firmware/jumper/EZpad_6_pro
jumper EZpad 6(S) Pro b yes firmware/jumper/EZpad_6_pro_b
jumper EZpad 8 Pro yes firmware/jumper/EZpad_8_pro
4Good T803i no firmware/4good/t803i
Voyo VBOOK A1 yes firmware/voyo/at13
Voyo VBOOK V3Pro no firmware/voyo/vbook_v3pro
DEXP Ursus 7W Rev.1 yes firmware/dexp/ursus7w-rev1
DEXP Ursus 7W Rev.2 yes firmware/dexp/ursus7w-rev1
DEXP Ursus KX210i yes firmware/dexp/ursus-kx210i
Teclast X3 Plus yes firmware/teclast/x3_plus
Teclast X5 Pro yes firmware/teclast/x5_pro
Proworx MX049 yes firmware/proworx/mx049
Insignia Flex 8 yes firmware/insignia/flex8
Insignia Flex 11 yes firmware/insignia/flex11
iLife ZedBook 2 yes firmware/ilife/zedbook2
IRBIS tw48 yes firmware/irbis/tw48/
IRBIS TW39 yes (doesn't work) firmware/irbis/TW39
Myria MY8307 yes firmware/myria/my8307
Schneider SCT101CTM yes firmware/schneider/sct101ctm
techBite Arc 11.6 yes firmware/techbite/arc_11_6
Vinga Twizzle J116 yes firmware/vinga/twizzle_j116
Multilaser M11W yes firmware/multilaser/m11w
RWC NANOTE P8 yes firmware/rwc/nanote-p8
RWC NANOTE NEXT yes firmware/rwc/nanote-next
viglen connect10" yes firmware/vliglen/connect10
Saphir WinPad 10.1 FHD no firmware/saphir/winpad_10_1
Hykker Hello yes firmware/hykker/hello
Fusion5 FWIN232PLUS yes firmware/fusion5/fwin232plus
CSL Panther Tab HD yes firmware/csl/panther-tab-hd
Positivo C4128B yes firmware/positivo/c4128b
Globalspace SoLT IVW 11.6" yes firmware/globalspace/solt-ivw-11.6

Adding new firmware

To request new firmware to be added to the list, please send a pull request with the following structure:

  • firmware/<manufacturer>/<device>/<unpacked driver>/ The original Windows or Android drivers or firmware files (SileadTouch.sys, SileadTouch.fw, gslx68x_ts.ko, ...)
  • firmware/<manufacturer>/<device>/README.md A readme containing all (known) device information plus download links to the original Windows/Android driver or firmware. See firmware/README.md.template for an example with explanations.
  • firmware/<manufacturer>/<device>/silead.fw (optional) The extracted regular firmware, as created by fw_extractor, untscfg, unscramble or scanwindrv (see below).
  • firmware/linux/gsl1680-<manufacturer>-<device>.fw (optional) The same file as silead.fw, for use with the silead.ko driver that is part of the Linux kernel (see below). If you add this please also add an entry for this to firmware/linux/README.md.
  • firmware/<manufacturer>/<device>/silead_ts.fw (optional) Firmware in gslx680_ts_acpi format created by fwtool using correct parameters (see below).
  • README.md A patch to this readme file that adds an entry to the device list.

The "Tested" field should only be "Yes" if you have confirmed that the converted firmware works with silead_ts.ko or gslx680_ts_acpi.ko and the touchscreen responds properly, i.e. the device parameters are good.

Extracting firmware

Original vendor firmware comes in various formats, depending on the operating system and driver version.

Android driver

The official Android driver can be found under this path (or similar): /system/vendor/modules/gslx680.ko Copy this file to an SD card, use a file transfer utility, or use adb pull.

On your build machine, use the script 'firmware/fw_extractor' from the command line to extract the firmware from the driver:

tools/fw_extractor my_android_gslx680.ko

The Android driver may well contain multiple firmwares to support different hardware configurations with the same driver. The extractor will spit those out as seperate files. We currently have no way of knowing which is right for your device. You will have to try each. Sometimes, the file names will give a clue, like panel size, product name, resolution or chip name. Test the matching ones first.

Windows driver

If you have a Windows driver instead, the firmware either comes in the form of a file named GSL_TS_CFG.h (or similar) or SileadTouch.fw. The latter is just a scrambled version of GSL_TS_CFG.h and can be easily restored by XORing every byte with 0x88.

To convert GSL_TS_CFG.h to binary, use:

tools/untscfg GSL_TS_CFG.h firmware.fw

For a scrambled SileadTouch.fw, use:

tools/unscramble SileadTouch.fw firmware.fw

If your vendor only supplied a Windows driver and no separate firmware, you can still extract the firmware blob that is contained inside.

Use the scanwindrv script to extract it:

tools/scanwindrv SileadTouch.sys

As with the Android driver, this may produce multiple firmware files named firmware_00.fw, firmware_01.fw, etc. - you have to test them to find the correct one for your device.

Usage

There are currently two open-source drivers available for Silead chips: silead_ts and gslx680_ts_acpi.

silead_ts ships with the Linux kernel since version 4.8 and is the recommended driver. gslx680_ts_acpi can still be useful for initial testing or if silead_ts does not work for you.

When Silead touchscreen support was added to ACPI (PC) platforms, the integrator did not anticipate any uses cases outside the device vendor's ecosystems. For this reason, it is required to pass additional device parameters to the driver that are neither contained in the firmware nor in the ACPI DSDT. silead_ts handles this in the kernel, using a DMI quirk table. gslx680_ts_acpi expects firmware in its own format which contains this information.

silead_ts allows passing the device parameters on the kernel commandline to test on devices which are not yet in the DMI quirk table. This is supported in kernel 6.10 and later, for older kernels the kernel needs to be patched and rebuilt (see e.g. kernel-recompile-debian.md) to test parameter changes. For older kernels testing is easier with gslx680_ts_acpi.

Determining the touchscreen's parameters

1. Extract the firmware from the factory OS

Before even installing Linux make sure you have extracted the firmware from the original factory OS as described above. Silead firmwares are model specific, so if the factory OS is wiped before retrieving the firmware then things will not work. In this case you may still be able to download a factory OS image from the device vendor's website, but not all vendors offer this.

2. Copying the firmware to /lib/firmare

silead_ts, which should already be enabled in your Linux distribution's kernel, will print an error message about not being able to find the firmware in dmesg. To get this error message run sudo dmesg | grep silead.

Copy the extracted firmware under /lib/firmware/silead/ using the name given in the error message. Usually it should be copied to /lib/firmware/silead/mssl1680.fw. After copying run sudo rmmod silead; sudo modprobe silead and then rerun sudo dmesg | grep silead this should now show the touchscreen getting registered in the form of a line containing input: silead_ts as ....

3. Testing you have the right firmware

Install evtest or evemu-record (evemu), although all examples below use evtest using either the evtest or evemu-record command should work.

Run sudo evtest. This gives a list of /dev/input/event# devices. Replace # in the commands below with the number of the /dev/input/event# node for the silead_ts input device.

Run sudo evtest /dev/input/event# | grep ABS_X and then slowly run your finger over the screen from the left edge of the screen to the right edge along the middle line of the display and press Ctrl + C to terminate evtest when done. This should print slowly increasing or decreasing ABS_X values.

If instead the ABS_X values stay approx. the same then your X and Y axis are swapped. Redo the test moving your finger over the screen from the top edge of the screen to the bottom edge along the middle line of the display instead.

If there are big jumps or holes in the range, retry making sure your finger makes proper contact with the screen. If that doesn't help, then you have the wrong firmware.

After verifying the X axis works well repeat the process for ABS_Y and verify that the Y axis works well too.

4. Determine the min and max values of the axis

Run sudo evtest /dev/input/event# | grep ABS_X and for the same edges as used for ABS_X during step 3 first place your finger on the display near the edge and then slowly move it over the edge to the bezel, notice the lowest or highest value reported for ABS_X while doing this. Repeat this about 5 times to make sure you really have found the lowest / highest value the axis reports.

Write down the lowest ABS_X value observed as x-min and the highest observed value (on the other edge) as x-max.

Repeat this for ABS_Y and write down y-min and y-max.

5. Testing the parameters

When running kernel 6.10 or later you can now test the found min/max values on the kernel commandline.

This requires the ACPI Hardware ID (HID) for the touchscreen. Run ls -d /sys/bus/i2c/devices/i2c-MSSL*, this should output a single line ending in e.g. i2c-MSSL1680:00. The ACPI HID of the touchscreen is the bit after the i2c- and before the :00 so MSSL1680 in this case.

This HID is the first argument for the i2c_touchscreen_props kernel commandline argument. To pass the found min/max values the following syntax is used:

i2c_touchscreen_props=<ACPI_HW_ID>:touchscreen-min-x=<x-min>:touchscreen-min-y=<y-min>:touchscreen-size-x=<x-max + 1>:touchscreen-size-y=<y-max + 1>

So if for example in step 4. you have found values of x-min=8, y-min=8, x-max=1919, y-max=1079 then the kernel commandline argument to pass would be:

i2c_touchscreen_props=MSSL1680:touchscreen-min-x=8:touchscreen-min-y=8:touchscreen-size-x=1920:touchscreen-size-y=1080

Edit your kernel configuration, e.g. /boot/loader/entries/<current-kernel>.conf, add this to your kernel commandline then reboot to test. After reboot run sudo cat /proc/cmdline to make sure that i2c_touchscreen_props=... is there and is correct.

With some luck your touchscreen will now work right away. Sometimes the X/Y axis need be to swapped or inverted. Note swapping will automatically swap the size and min parameters, so those must not be swapped manually. So lets say you need to swap and invert the Y axis, you would then extend i2c_touchscreen_props= by adding :touchscreen-swapped-x-y:touchscreen-inverted-y after the size-x parameter, so you would get (abbreviated):

i2c_touchscreen_props=MSSL1680:touchscreen-min-x=...:touchscreen-size-y=1080:touchscreen-swapped-x-y:touchscreen-inverted-y

If one of the bezels around the display has a Windows logo chances are this can operate as a capacitive home-button. To test this add :silead,home-button after the existing i2c_touchscreen_props= parameters. After rebooting with :silead,home-button added to the parameters run sudo evtest /dev/input/event# and press the Windows logo if this reports KEY_LEFTMETA events then it works.

If this does not work drop silead,home-button from your parameters since this may cause spurious KEY_LEFTMETA events when it is not supported.

The linux touchscreen framework also supports some other properties that may be useful, see touchscreen.yaml for a full list.

6. Submit the parameters to gsl-firmware

At this point everything should work. Please submit a pull request as described under "Adding new firmware" above. Please include a copy of the working firmware as firmware/linux/silead/gsl<chip name>-<manufacturer>-<device>.fw in this pull request. If you don't know the chip name, use gsl1680. Manufacturer and device name should be shortened to make the name readable, but still sufficiently unique.

Also update firmware/linux/README.md adding an entry for the new firmware.

In the pull request text please provide the working i2c_touchscreen_props= parameters and the output of running grep . /sys/class/dmi/id/* 2> /dev/null as a normal user. Then the gsl-firmware maintainers can help with creating a DMI quirk for your device model to make future kernels automatically apply the right parameters.

You can also create a touchscreen_dmi.c patch yourself if you want, see below.

Patching touchscreen_dmi.c

Fetch the current Linux source code and open drivers/platform/x86/silead_dmi.c in a text editor. Since Linux kernel 4.19, this file is called drivers/platform/x86/touchscreen_dmi.c.

Supposing you named your firmware gsl1680-mycompany-mytablet.fw and the touchscreen has a resolution of 128x128 points, add a new section to the file:

static const struct property_entry mycompany_mytablet_props[] = {
	PROPERTY_ENTRY_U32("touchscreen-size-x", 128),
	PROPERTY_ENTRY_U32("touchscreen-size-y", 128),
	PROPERTY_ENTRY_STRING("firmware-name", "gsl1680-mycompany_mytablet.fw"),
	PROPERTY_ENTRY_U32("silead,max-fingers", 10),
	{ }
};

static const struct silead_ts_dmi_data mycompany_mytablet_data = {
	.acpi_name	= "MSSL1680:00",
	.properties	= mycompany_mytablet_props,
};

In some rare cases, the acpi_name may be different.

Further below, there is a list named silead_ts_dmi_table:

static const struct dmi_system_id silead_ts_dmi_table[] = {

Add a new entry to this list:

	{
		/* Teclast X3 Plus */
		.driver_data = (void *)&mycompany_mytablet_data,
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "MyCompany"),
			DMI_MATCH(DMI_PRODUCT_NAME, "MyTablet"),
			DMI_MATCH(DMI_BOARD_NAME, "Generic Board"),
		},
	},

The exact values and suitable matching tags depend on the particular device. You can find them by running grep . /sys/class/dmi/id/* 2> /dev/null.

See here for an example patch.

After adding the override tables, you have to recompile your kernel, as the DMI overrides are outside the context of the driver. Install and reboot. You may also try reloading the kernel using kexec, but this can lead to an unstable system and is not recommended.

Once the parameters have been tested successfully, it's recommended that you submit the patch for Linux kernel inclusion. See the Submitting patches documentation on how to do this. Please send it to the linux-input and platform-driver-x86 mailing lists.

gslx680_ts_acpi

The gslx680-acpi driver requires firmware in a special compact format.

Use tools/fwtool to convert regular firmware into this format. The tool will also store device parameters (such as such as panel width and height, tracking support, etc.) inside the firmware.

The file format is described in 'firmware/Firmware/Silead.pm'. Use perldoc or a text editor to read.

Example usage:

tools/fwtool -c firmware.fw -m 1680 -w 940 -h 750 -t 10 silead_ts.fw

This will read the regular firmware.fw file and convert it into silead_ts.fw in the gslx680_ts_acpi format, then set the controller type to GSL1680, the panel width to 940 dots, the height to 750 dots and the maximum number of touch points to 10. The README for each firmware should give you information on the information to put there.

It is also possible to convert the scrambled SileadTouch.fw from a Windows driver directly:

tools/fwtool -c SileadTouch.fw -3 -m 1680 -w 940 -h 750 -t 10 silead_ts.fw

And for an unscrambled GSL_TS_CFG.h, use:

tools/fwtool -c TS_CFG.h -2 -m 1680 -w 940 -h 750 -t 10 silead_ts.fw

You might still need to calibrate the touchscreen later, if the numbers are unknown or not accurate. Note that the maximum width and height are 4095. The driver is currently hardcoded to a touch point limit of 10 fingers, so specifying more than that will not work.

If your touchscreen controller does not support finger tracking (this is crucial for proper mouse emulation) or axes seem to be mirrored or swapped, you can modify the firmware to enable corresponding features in the driver.

For example, this enables software finger tracking and mirrors the horizontal axis:

tools/fwtool -s -f track,xflip silead_ts.fw

The -f option may also be specified directly when converting a firmware image.

The resulting firmware should be named silead_ts.fw and installed into /lib/firmware so the driver can find it.

To convert a firmware image back into regular format, use:

tools/fwtool -x gslxxxx.fw silead_ts.fw

Note that memory page order is not preserved. This should not pose a problem for the controller, however.

gsl-firmware's People

Contributors

astroprofundis avatar avdeev-av avatar benjaminrenz avatar bernhardu avatar dogelabshokyu avatar enaut avatar hmtheboy154 avatar hrimfaxi avatar ilia1 avatar jambonmcyeah avatar jlempen avatar jwrdegoede avatar lilstevie avatar mj12301 avatar onitake avatar ouija avatar padicao2010 avatar pcounhago avatar pepelillo avatar ponces avatar seltsamsel avatar sinxwal avatar strongtabletman avatar syco avatar tapeguy avatar tuxcoder avatar userx14 avatar vanlaser avatar wpa2 avatar yuk7 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gsl-firmware's Issues

strange touchscreen behavior teclast x3 plus + questions

hi i have installed the teclast x3 plus firware and globally it's working fine
there is just one problem, if you don't use the touchscreen for 2 seconds the next input is not detected.
a sort of sleep mode or something else do you know what is the issue ?

next question i have tried the last linux kernem 4.16 from yesterday and the touchscreen is not detected but the changelog tells that the support of teclast x3 plus touchscreen has been implemented is it normal ?

silead_ts.fw from SileadTouch.fw not covering the whole screen

My Tablet 7inch has a resolution of 1024x600. I checked with wm The touchscreen was all messed up after RemixOS installation but, I tried converting SileadTouch to silead_ts.fw with a resolution of 1024x600 first and then tried with different resolutions. 1024x600 was the one that came closest to perfection. But, it still has got issues like the right 2-3 cm screen isnt detected and the touches are registered a cm or less to the left of the area of actual input. I am not an expert. Can anyone tell me what I am doing wrong.

firmware for Hi12?

Hi,

I am trying to install Linux to my Hi12 z8350 dual-boot. Touch screen works with Mint 19.,but only just. No rotation or multi-finger. Update kernel to 4.19 but still no success.

There seems to have drivers to many Chuwi models but not Hi12. Is it possible to get firmware and installation instruction for Hi12?

Here is lshw data concerning the display:
description: VGA compatible controller product: Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series PCI Configuration Registers vendor: Intel Corporation physical id: 2 bus info: pci@0000:00:02.0 version: 36 width: 64 bits clock: 33MHz capabilities: pm msi vga_controller bus_master cap_list rom configuration: driver=i915 latency=0 resources: irq:119 memory:90000000-90ffffff memory:80000000-8fffffff ioport:f000(size=64) memory:c0000-dffff

Wrong diver loaded silead_ts jumper ezpad 6 (mssl1680.fw)

I'm trying to get the driver to load my firmware for the b-version of the ezpad 6 pro, but it always defaults to mssl1680.fw.
I already tried:
modifying the sourced file in the linux kernel, compiling the module and manually copying it to
/lib/modules/4.18.0-13-generic/kernel/drivers/input/touchscreen/silead.ko
it also is using this driver, (modprobe -v shows this location) but it still loads the default firmware nevertheless.

[ 266.164048] silead_ts i2c-MSSL1680:00: Silead chip ID: 0x80360000
[ 266.305777] silead_ts i2c-MSSL1680:00: Direct firmware load for silead/mssl1680.fw failed with error -2

I get partial touch when renaming my firmware to the default name.

I have added the following to the silead_dmi.c file:
{ /* Jumper EZpad 6 Pro b*/ .driver_data = (void *)&jumper_ezpad_6_pro_b_data, .matches = { DMI_MATCH(DMI_PRODUCT_NAME, "EZpad"), DMI_MATCH(DMI_BIOS_VERSION, "5.12"), /* Above matches are too generic, add bios-date match */ DMI_MATCH(DMI_BIOS_DATE, "04/24/2018"), }, },

dmidecode returns the following
Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: Jumper.A116
Version: 5.12
Release Date: 04/24/2018
Address: 0xF0000
Runtime Size: 64 kB
ROM Size: 5120 kB
Characteristics:
PCI is supported
BIOS is upgradeable
BIOS shadowing is allowed
Boot from CD is supported
Selectable boot is supported
BIOS ROM is socketed
EDD is supported
5.25"/1.2 MB floppy services are supported (int 13h)
3.5"/720 kB floppy services are supported (int 13h)
3.5"/2.88 MB floppy services are supported (int 13h)
Print screen service is supported (int 5h)
Serial services are supported (int 14h)
Printer services are supported (int 17h)
ACPI is supported
USB legacy is supported
BIOS boot specification is supported
Targeted content distribution is supported
UEFI is supported
BIOS Revision: 5.12
Firmware Revision: 176.6

Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: Jumper
Product Name: EZpad
Version:
Serial Number:
UUID: 03000200-0400-0500-0006-000700080009
Wake-up Type: Power Switch
SKU Number: 0001
Family: WS

Maybe @jwrdegoede could give me a hint on why the dmi match does not work?
Thanks for your help.

Mirrored X axis on the other half of the screen?

I've just installed the converted firmware from the Windows driver that my manufacturer provides.
However, the other half of the screen mirrors the X axis (the first half is alright except there are deadzones)

"can't load firmware invalid magic" on firmware.fw unscrambled from sileadtouch.fw

I got SileadTouch.fw from the manufacturer's website for Windows 10. Anyways, I downloaded your repo and ran unscramble with Perl locally. I unscrambled it to firmware.fw as in docs without any issues (I guess). But, SileadTouch is 103KB file whereas firmware.fw is 40KB.
Anyways, I moved onto run fwtool on firmware.fw and it says, "Can't load firmware firmware.fw: Invalid magic = at fwtool line 84"
I also tried adding attributes "-c -m -w -h" with no success.
I am a total noob though. Forgive me if I have done something wrong. But, please help me sort this issue out.

Firmware not named GSL_TS_CFG.h nor SileadTouch.fw

Hi, I have a chinese 10" tablet with windows 10 that uses this driver but trying the chuwi firmwares didn't work(mouse movement is erratic, but does respond to touch, dragging stuff everywhere, etc). This tablet has a 1280x800 resolution.


[   21.289014] silead_ts i2c-MSSL1680:00: Shutdown GPIO request failed
[   21.333134] axp20x-i2c i2c-INT33F4:00: AXP20x variant AXP288 found
[   21.401805] axp20x-i2c i2c-INT33F4:00: AXP20X driver loaded
[   21.472145] silead_ts: probe of i2c-MSSL1680:00 failed with error -16
[   23.897294] input: axp20x-pek as /devices/pci0000:00/808622C1:06/i2c-6/i2c-INT33F4:00/axp20x-pek/input/input6

The SoC is a Intel(R) Atom(TM) x5-Z8300 CPU @ 1.44GHz

My question is, what can I do ? I have the SileadTouch.{sys,cat,inf} files (attached)

SileadTouch.cat: data
SileadTouch.sys: PE32 executable (native) Intel 80386, for MS Windows
sileadtouch.inf: Windows setup INFormation, ASCII text, with CRLF line terminators

touch1280x800.zip

Anything else I can try/give you to extract the firmware?

question

hi . you write a script tools/untscfg GSL_TS_CFG.h firmware.fw but how about script firmware.fw -> GSL_TS_CFG.h ?

Firmware request for EastRising Display: TFTM050A2-3-3661

Hi,

Right now I'm using the ER-TFTM050A2-3-3661 Display:
https://www.buydisplay.com/default/5-inch-tft-lcd-display-capacitive-touchscreen-ra8875-controller-800x480

The display is used on the Intel Cycone V dev. board with the Linux Silead.ko driver. I tried to use the firmware from this repository:
https://github.com/onitake/gsl-firmware/tree/master/firmware/eastrising/er-tpc050-1
but none is working.

So, I tried the firmware from this repository:
https://github.com/onitake/gsl-firmware/tree/master/firmware/linux
and I found some firmware that was working with my display.

The one working best is the gsl1680-polaroid-mid2407pxe03.fw firmware, but the y-axis is flipped and the resolution is something like: 850x640.

Is it possible to get firmware for the ER-TFTM050A2-3-3661 Display that is working with the Linux Silead.ko driver?

Many Thanks!

Peter

Some problems with firmware GSL1680

Hello,

I'm currently working with this touch panel:
https://www.buydisplay.com/default/5-inch-capacitive-touch-panel-screen-with-controller-gsl1680f

but the firmware I found for it is not working, because I get a "firmware load error -121".
The firmware I used is from this repository:
https://github.com/onitake/gsl-firmware/tree/master/firmware/eastrising/er-tpc050-1

Because this firmware wasn't working I tried out some other firmware's from your repository and found this one ("Sorry, forgot which device"):
gsl1680.fw.zip

Using this firmware the touchscreen works, but it seems to be 90 degrees rotated.
So, I wanted to swap/mirror the axes with the fwtool, but this doesn't work. See the image for the error message:
untitled

After all this trial and lots of errors I tried to make my own firmware using the code provided by buydisplay.com:
https://www.buydisplay.com/download/democode/CTP-800x480/gslX680_311_5_E.h

Via Python I managed to convert the code into a "newfirm.fw" file and tried again.
newfirm.fw.zip

This firmware is working partly. Only the bottom part (200x480 pixels or so) of the touch panel seems to react on touch. The X-axis shows the right coordination, but the Y-axis is always at the complete bottom.

Do you maybe know what is going on?

Thanks,
Peter

Self-generated silead_ts.fw for Wintron 7.0 doesn't work

When I copy this repository's firmware/trekstor/surftab7new/silead_ts.fw to /lib/firmware and modprobe the driver, the touchscreen works just fine, except for the screen orientation being 90 degrees off. So I used fwtool with the parameters found in firmware/trekstor/surftab7new/README.md, but an added ,xflip to generate a new file. With it, the driver loads fine, too, but the touchscreen doesn't react to any input. Also, if I use exactly the same fwtool command as given in the README (without xflip added), a different silead_ts.fw results from that as the one that has been committed to your repo. Is it possible that a bug/regression was introduced into the fwtool at some point?

Firmware for unknown generic Windows tablet

Hello,

I own a Windows tablet that is unbranded, and came with Windows 8.1

Stupid me has clean installed Windows 10 and after that touch is not working properly - touch points are registered all over the place.

I have identified some components in that tablet:

SCREEN

8 inch
1280×800
IPS
CPU

Intel Atom Z3745, 1.33GHz
RAM

2GB LDDR3
ROM

32GB + optional microSD card
aluminium back side, no HDMI output
BIOS

Some sort of Insyde BIOS, full of advanced features
LINK to pictures:

https://imgur.com/a/3tIYY

Speccy:

http://speccy.piriform.com/results/kcvPqOiOjL57kTVSdiNbJWo

Video of the issue:

https://vid.me/95wU

I have opened up tablet and recognized other components:

  • 4000mAH battery, SJY 3565155
  • LCD Manufacturer: Samsung V200
  • Touch digitizer is ZHG-0100A01, with Silead GSL 3676 chip

It is same like this one:
https://www.aliexpress.com/store/product/Black-New-For-ZHG-0100A01-Tablet-PC-Capacitive-Touch-Screen-Panel-Digitizer-Sensor-Replacement-Parts-Free/2446005_32775630447.html

but unfortunately there is no tablet model name that comes with it.

What can I do?

Thank you very much in advance,

Mario

"Jumpy" touchscreen

When using Linux, the display isn't uniformly covered by the touchscreen. In other words, there are "gaps" on the screen, which can never be touched. This is most apparent when slowly scrolling: when certian places on the screen are scrolled over, the scrolled content will jump forward abot 25 pixels. This is on a Teclast X3 Plus.

Help needed

well i gonna tell all my story to clarify that i'm kinda of noob

i installed an android x86 on my windows tablet , but the touch screen all missed up ( ex: when i touch the top left it registered the touch to bottom right , and some areas the touch isn't working on it )

so i google it :"D and i find out that the problem is with the "silead_ts.fw" , and that i must convert my windows "SileadTouch.fw" to "silead_ts.fw "

and i remembered that when i did clean install of windows on my tablet i faced a problem where the axis was all missed up but hopefully i had a backup of my old windows drivers and sileadtouch.fw and as soon as i install it everything back to normal

so long story short , i have some questions

  1. is my problem is really with the "silead_ts.fw" ?
  2. i noticed that in some cases the touch resolution maybe less than the display actual resolution , so my question is how to know my touch resolution on windows ?

I attached my windows touch drivers along with sileadtouch.fw at the end of the post

My tablet is Sary 8 inch model
display resolution is : 1200x800
touch driver : ACPI\MSSL1680

if someone could help me and do the port by himself i will be so thankful as i'm noob at linux and i'm rn downloading ubuntu specially for this thing

Touch.zip

Chuwi HI8

Hello , I have seen your files on github and would like to try as my touchscreen on the tablet no longer works. so far I have everything imaginable tried and unfortunately without success. the silead touch drivers I can not install with double drivers, there is always an error .

can you tell me how I install your files best?

I am grateful to you for any help

Leandro

Firmware for iLife ZedBook 2?

Hi,

I have this device which is sold in the middle east and isn't really known worldwide: https://www.i-life.us/product/zedbook-ll/

If I use the generic firmware by edward-p: https://github.com/edward-p/mssl1680-firmware

The touch screen interacts but its not calibrated at all, for example if I touch the far right of the touch screen while in landscape orientation, the pointer clicks in the top of the screen.

Using scanwindrv on SileadTouch.sys outputs the following file (Only firmware_00.fw): https://drive.google.com/open?id=1qL9GYjr6RLHZGViEXGD9WjPX0ZZ5h5BQ

Can this device be supported? I really want to use Linux on it since Windows is really slow on the Intel Atom x5 8350, while most Linux distros are pretty smooth.

It has screen resolution of: 1920x1080

I tried once to use fwtool to do it but I always got flawd calibration.

Some error, chip reset failed.

I am trying to install an Android on Onda obook 20 plus. Unfortunately, the touch screen driver never works.

It is still complaining about this error.

[    8.430139] gslx680 i2c-MSSL1680:00: gsl_ts_probe: got a device named MSSL1680:00 at address 0x40, IRQ 168, flags 0x0
[    8.435212] input: Silead GSLx680 Touchscreen as /devices/pci0000:00/808622C1:05/i2c-5/i2c-MSSL1680:00/input/input6
[    8.880578] gslx680 i2c-MSSL1680:00: gsl_ts_reset_chip: gsl_ts_write 1 fail!
[    8.880592] gslx680 i2c-MSSL1680:00: gsl_ts_probe: chip reset failed
[    9.061064] gslx680: probe of i2c-MSSL1680:00 failed with error -121
[    9.068907] gslx680_ts_acpi: module is from the staging directory, the quality is unknown, you have been warned.

I queried the DSDT table and the Windows Device Manager. They were found to communicate with the chip through the I2C6 channel. Different from the choice of gslx680.

Silead_ts returned a log before gslx680 worked. But the return value is still -121.

[    7.998321] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply vddio not found, using dummy regulator
[    7.998608] silead_ts i2c-MSSL1680:00: Linked as a consumer to regulator.0
[    7.998624] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply avdd not found, using dummy regulator
[    7.999209] silead_ts i2c-MSSL1680:00: Chip ID read error -121
[    8.160083] silead_ts: probe of i2c-MSSL1680:00 failed with error -121

Very strange, I can't understand what I did wrong and caused the driver to be abnormal.

Does this mean that I need to do a DSDT patch?

Firmware for VOYO V3 Pentium version (perhaps for all V3 models)

This is mostly again about fwtool unable to locate Silead.pm.
Stuck with this issue on Ubuntu 17,04 Mate, and cannot sort it out.
When I enter
./fwtool -c firmware.fw -m t113 -w 1920 -h 1080 -t 10 silead_ts.fw
I got the same

Can't locate Firmware/Silead.pm in @inc (you may need to install the Firmware::Silead module)

And this happens even if I have added it, below is part of perl -V output:

%ENV:
    PERL5LIB="/home/voyo/gsl-firmware/tools/Firmware/Silead.pm"
  @INC:
    /home/voyo/gsl-firmware/tools/Firmware/Silead.pm
    /etc/perl
    /usr/local/lib/x86_64-linux-gnu/perl/5.24.1
    /usr/local/share/perl/5.24.1
    /usr/lib/x86_64-linux-gnu/perl5/5.24
    /usr/share/perl5
    /usr/lib/x86_64-linux-gnu/perl/5.24
    /usr/share/perl/5.24
    /usr/local/lib/site_perl
    /usr/lib/x86_64-linux-gnu/perl-base

Please, help me sort out this issue or create firmware. The model description is here(needs translation from Chinese):http://www.myvoyo.com/chanpin/pingban/714.shtml
Downloads are available from http://en.myvoyo.com/xiazai/Win%20Pad/VBOOK%5FV3%5Fpentium/down/ and http://pan.baidu.com/share/init?shareid=3303446473&uk=2905619295 , password xdbg.
The touch screen driver available only with entire OS recovery and all drivers huge package. Hence, I upload .h file here
SileadTouch_voyo.zip

Change touchscreen resolution

Hi. Recently downloaded and installed gsl3676-chuwi-vi8.fw firmware from gsl-firmware/firmware/linux/silead/
And my touch resolution is awful - about 1/4 part of screen. How can I fix it? Maybe the reason is - desktop orientation? I'm working with 90 degrees clockwise desktop.

Touch & hold only last less than 2 seconds

Hello,

I success to configure silead_ts.fw for my RCA W101 v2 with this script :

./fwtool -c SileadTouch.fw -3 -m 1680 -w 890 -h 1660 -t 10 -f yflip,swap,track silead_ts.fw

Its work perfectly on alignment, but the problem is when I touch and hold, the input only last less than 2 seconds and then gone.

How I fix it?

Thanks.

Driver for Teclast 16 Power

Hello,
I need some advice on how to proceed about the FW for Silead on a Teclast 16
Power.

This is a Z8750 (Intel Atom) based device.
As far as I see the controller is recognized as Silead on my Ubuntu 17.10
(with smaller area and inverted X axis if using firmware included in 17.10 )

I got the Android 6.0 image (system.img) for the device and into it I found
the /etc/firmware folder with some fw files. Among them

4   -rw-r--r--.  1 root root       3514 dic 31  2008 maxtouch.cfg

112 -rw-r--r--. 1 root root 113856 dic 31 2008 maxtouch.fw
40 -rw-r--r--. 1 root root 39272 dic 31 2008 silead.fw

But no .ko files (I guess as it is a x86 Android, not pure Google/ARM one)

As you see there are two FW files.

I found no instruction this case (but I could be wrong)... How to proceed?

Best Regards,
Leonardo

Insignia Flex NS-P10w8100/Where do I start?

Hi All! I've been trying to get Android x86 working on my tablet. Everything that I've tested seems to work just fine, except for the touch screen. It appears to be a Silead device with the HID of MSSL1680. On the Windows side of this dual-boot setup, the drivers associated with it are SileadTouch.sys and mshidkmdf.sys. As I understand it, I need to run the script "scanwindrv" to extract the necessary driver. How exactly do I do this? I'll be honest with you, this is a bit over my head, but I'm desperately trying to learn. I didn't see any notes on what language the script was written in, so I'm not exactly sure how to execute it. Is there some sort of step by step guide that I can follow to get this all working?

Issue with silead_ts.fw on Kernel 4.10.0.10-linuxium

Hi,

I've been trying for some time to make my touchscreen work on Ubuntu.

My device is named AllView Wi901N (9 inches), it is a BayTrail tablet and comes preinstalled only with Windows 10. Unfortunately, there is very little technical information available.
The following are the SileadTouch.sys and SileadTouch.fw that come with the tablet:
SileadTouch.zip

Lately I used the Ubuntu "16.04.2" build done by Linuxium which contains patches that make a lot of devices work on my tablet, which otherwise wouldn't with the mainstream Ubuntu.

I guess that the new kernel version (and the fact that it's been modified, also including the "silead" driver) prevent the gslx680-acpi driver from functioning properly.

I used both SileadTouch.fw (unscrambled then compacted it) and I also extracted the firmware from SileadTouch.sys, then compacted it.

Here are the silead_ts.fw files I obtained:
silead_ts.zip

Using the silead_ts.fw files obtained from both methods, I get the following:

404.713398] gslx680 i2c-MSSL1680:00: gsl_ts_probe: got a device named MSSL1680:00 at address 0x40, IRQ 194, flags 0x0
[ 404.714002] input: Silead GSLx680 Touchscreen as /devices/platform/80860F41:03/i2c-11/i2c-MSSL1680:00/input/input10
[ 404.919854] i2c_designware 80860F41:03: i2c_dw_handle_tx_abort: lost arbitration
[ 404.920287] i2c_designware 80860F41:03: i2c_dw_handle_tx_abort: lost arbitration
[ 404.920635] i2c_designware 80860F41:03: i2c_dw_handle_tx_abort: lost arbitration
[ 404.923797] i2c_designware 80860F41:03: i2c_dw_handle_tx_abort: lost arbitration
[ 404.923824] gslx680 i2c-MSSL1680:00: gsl_ts_reset_chip: gsl_ts_write 1 fail!
[ 404.923839] gslx680 i2c-MSSL1680:00: gsl_ts_probe: chip reset failed
[ 404.994041] gslx680: probe of i2c-MSSL1680:00 failed with error -11

After a reboot, those are the entries related to i2c (note that the silead driver is automatically loaded)
These messages appear regardless if there is a firmware file present or not.

[ 2.511229] i2c /dev entries driver
[ 8.871782] i2c_designware 80860F41:04: I2C bus managed by PUNIT
[ 8.958705] axp20x-i2c i2c-INT33F4:00: AXP20x variant AXP288 found
[ 8.971020] i2c-MSSL1680:00 supply vddio not found, using dummy regulator
[ 8.971049] i2c-MSSL1680:00 supply avdd not found, using dummy regulator
[ 9.018663] axp20x-i2c i2c-INT33F4:00: AXP20X driver loaded
[ 9.027616] silead_ts i2c-MSSL1680:00: Silead chip ID: 0x50910000
[ 9.027920] i2c_designware 80860F41:03: i2c_dw_handle_tx_abort: lost arbitration
[ 9.028331] i2c_designware 80860F41:03: i2c_dw_handle_tx_abort: lost arbitration
[ 9.028724] i2c_designware 80860F41:03: i2c_dw_handle_tx_abort: lost arbitration
[ 9.029116] i2c_designware 80860F41:03: i2c_dw_handle_tx_abort: lost arbitration
[ 9.029238] silead_ts i2c-MSSL1680:00: Registers clear error -11
[ 9.038946] silead_ts: probe of i2c-MSSL1680:00 failed with error -11
[ 9.653009] input: axp20x-pek as /devices/platform/80860F41:04/i2c-12/i2c-INT33F4:00/axp20x-pek/input/input9

Later, after restarting silead (rmmod and modprobe), I get the following.
Again, those messages are generated regardless if there is a firmware file present or not.

[ 1890.748093] i2c-MSSL1680:00 supply vddio not found, using dummy regulator
[ 1890.748170] i2c-MSSL1680:00 supply avdd not found, using dummy regulator
[ 1890.748422] silead_ts i2c-MSSL1680:00: Shutdown GPIO request failed
[ 1890.764675] silead_ts: probe of i2c-MSSL1680:00 failed with error -16

I also removed the silead driver during the tests with gslx680-acpi, with no success unfortunately.

firmware mssl1680.fw

How to convert firmware from windows to linux for mssl1680 controller? File format is different or not? It is possible through the hex editor to change the title to mssl1680 and prescribe the magic number? How do you calculate the magic number, and where prescribed?

Not an issue rather a bonus, Mediacom tablet are the same as those of the TrekStor and (basic) help needed

I discovered that the Mediacom drivers are the same as those for TrekStor, a company that also works with Mediacom.
Mediacom Winpad 7.0 W700 corresponds at SurfTab wintron 7.0 (ST70416-6)
Mediacom WinPad 8.0 W801 corresponds at SurfTab wintron 8.0
Mediacom WinPad 10.1 W101 corresponds at SurfTab wintron 10.1

Also i would like some help i don' t know how install the firmware.
I have a Mediacom Winpad W700 so i should install the silead_ts.fw file (of my model)? How?

Big problem with cube knote5

After do as README ,knote5(GSL3692) problems turns out.
We have tried to get silead_ts.fw from GSL_TS_CFG.h and SileadTouch.sys. Same problems.
Can't drag , and only 5 times and 6 times have response after 10 clicks. Cannot normal use.
Files have been upload.
GSL_TS_CFG.h and SileadTouch.sys.zip

touch only working in one screen orientation

I build the firmware with

./fwtool -c SileadTouch.fw -3 -m 1680 -w 1700 -h 1125 -t 10 -f track,yflip silead_ts.fw

And it only tracks correctly in the clockwise screen rotation. I don't know how X work, but I don't see why this should be an issue. Is there a workaround? If rotation worked, then there would be point in trying to get the accelerometer to work as well.

Driver for Ezpad 6 plus

I did not find the driver for ezpad 6 plus, where can i download it. My ezpad touch work is faulty. Thanks

Problem with touchscreen calibration from onda v891w

I installed Debian Gnu/Linux Buster, that will go stable in near time, and installer the gslx680_ts_acpi and copy the firmware this repository "silead_ts.fw" for onda v891w but the calibration no way function, the touchscreen don't touch in the same place that I touch, only in some places on the screen. Can you help me?

Help--no multitouch

On my Teclast x3 plus tablet, I've installed the firmware and the gslx680 driver, and touch with a single finger works, but multitouch gestures don't. xinput test with multiple fingers never shows more than one "button press" at a time. I was wondering if this is an issue with known workarounds.

Strange deadzone in tablet Neso Volans WT1035 (SOLVED)

The tablet has a silead gsl3692 but is enumerated as SILD0005 (PNP0C50).
After add this device I can use gslx680-acpi driver.
The tablet come with Android. I have extracted the FW from gslx68x_ts.ko and I have this result:

fw_index.fw
gsl_load_fw.fw
gslx680_fw_grp.fw
GSLX680_FW_gsl_customer.fw
GSLX680_FW_TEST.fw

Only GSLX680_FW_gsl_customer.fw seems to work

The problem is that coordinate is splitted and there is a dead zone in the middle.
If I touch at bottom the mouse start at middle of screen and can up to the top of screen with touch near to the middle . After that there is a zone that not respond (and not generate irq, with this driver in debug mode) then continue to touch to the top of the screen but the mouse start at bottom to up.
This happen whatever -w and -h parameter I use.
Some idea?

Here is my FW: https://drive.google.com/open?id=1h1llvggSYhE_6lWtuXoNbKWUp18d4MkC

Port driver embedded in android kernel

Dear onitake,
Please, If you can help me with informations.
I found firmware from a customer tablet inside android kernel image, its give me four files and one of then can function with the "modprobe silead", but its have one inch of dead zone at right region and jump to the border.

How can i pass these parameters to silead module?
input:b0018v0000p0000e0000-e0,1,3,14,k8B,9E,AC,D9,ra2F,30,32,35,36,39,mlsfw

ANDROID:

cat /sys/class/input/event7/device/uevent
PRODUCT=18/0/0/0
NAME="GSL_TP"
PROP=2
EV=10000b
KEY=2000000 1000 40000800 0 0 0 0
ABS=2658000 0
MODALIAS=input:b0018v0000p0000e0000-e0,1,3,14,k8B,9E,AC,D9,ra2F,30,32,35,36,39,mlsfw

UBUNTU:

cat /sys/bus/i2c/devices/i2c-MSSL1680:00/input/input16/uevent
PRODUCT=18/0/0/0
NAME="silead_ts"
PHYS="input/ts"
PROP=2
EV=b
KEY=400 0 0 0 0 0
ABS=260800000000003
MODALIAS=input:b0018v0000p0000e0000-e0,1,3,k14A,ra0,1,2F,35,36,39,mlsfw

#--------------------------------------#
#firmware extraction from android kernel

cat kenelimage
| hexdump -e '1/1 "0x%8.8_ax "' -e '1/1 "%8._ad "' -e '8/1 "%02X ""\n"""'
| grep -i -E "F0 00 00 00 02 00 00 00|7C 00 00 00 .. .. .. .."
| grep "F0 00 00 00 02 00 00 00" -B1
;
echo --
;
cat kenelimage
| hexdump -e '1/1 "0x%8.8_ax "' -e '1/1 "%8._ad "' -e '8/1 "%02X ""\n"""'
| grep -i -E "F0 00 00 00 02 00 00 00|7C 00 00 00 .. .. .. .."
| tail -n2

#--------------------------------------#

Thanks so much.

cube i10w

i got fw_extractor to work off my android-tablet's.ko, however i don't know how to make use of the fw files so that my touchscreen works.

Can you help me to get a sileadtouch.fw?Thanks a lot for you.

The first,thanks a lot for you to read the mail.I am so sorry to take up your valuable time.But I think only you can answer my question.I bought a x86 pad but I don't know it's brand.When i got it, it is normal. Then I backup its drivers and reinstall WIN10.But I forgot to backup sileadtouch.fw .When I open the new WIN10 system and install the drivers that I backup,I find the touch screen is wrong.It's X-Y swap.If I point the left up corner,the left low corner have reaction.If I point the left low corner,the right low corner have reaction.If I point the rigth low corner,the right up corner have reaction. I want to get the suitable sileadtouch.fw. Can you help me to get a sileadtouch.fw?Or can you tell me how to do that I can get a sileadtouch.fw from sileadtouch.sys. I give you my driver.Look forward to your reply.Thanks a lot for you.

KMDF HID Minidriver for Touch I2C Device_15.34.52.998_11-27-2015_10.0_x64.zip
A Chinese Friend.

fwtool can't find/load Silead.pm

I'm not sure what I'm doing wrong but when I run fwtool -c FW_I89_GSL3676B_19201200_.fw -w 1665 -h 1140 -t 10 -f yflip,track silead_ts.fw perl outputs that it can't find the Silead.pm in any of the INC directories even though afaik it should be using the pm from the Firmware folder, no?

Ubuntu 18.10 calibration.

Hi,
The driver and firmware is working in that the screen responds to my finger
The touchscreen is not calibrating.
I tried xinput --map-to-output silead_ts DSI-1
when using xcal, all the points tend to group on the left (towards bottom) side of the screen. The tablet is docked to keyboard in landscape mode (rotated right). I also tried it in all screen orientations.
The matrix that xcal produces is roughly
[[0 -2 2]
[-3 0 1]
[0 0 1]]
The model is CWI529, HQ64G42161206XXX
I used the hi10_pro-z8350 firmware
Please advise.

Update: While xinput_calibrator does not work with newer versions of Ubuntu, it can output settings suggestions. It shows SwapXY "1" so, I need to swap the XY axis somehow.
Section "InputClass"
Identifier "calibration"
MatchProduct "silead_ts"
Option "MinX" "30808"
Option "MaxX" "30648"
Option "MinY" "16061"
Option "MaxY" "16243"
Option "SwapXY" "1" # unless it was already set to 1
Option "InvertX" "0" # unless it was already set
Option "InvertY" "0" # unless it was already set
EndSection

Can you make for Chuwi Hi 8 Air

Hi ya. i’m a big fan of your project. May you make firmware for Chuwi Hi 8 Air new release 2018, please because I want to run it on Kali Linux. Thank you.
I have a windows driver for it and I will send you as soon as possible!

Stylus support possible?

Would it be possible to modify the firmware of the touchscreen driver to enable palm rejection? I'm thinking of a super simple active stylus which just has a tip which detects if it is pressed or not.
Could one make a special mode where the touchscreen is blocked as standard behaviour, but when the stylus is triggered/pressed the new touch points tracked and used as a stylus (created by the active coil in the pencil). All other touch points by the palm should be rejected.
How 'deep' is the access to the behaviour of the touchscreen driver (Raw data?).
Greetings appswert

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.