PocketBook Touch Lux 3

= Identification =

On the back of the device, the following is printed: PocketBook Touch Lux 3

The PCB has the following silkscreened on it: IDIG E028 PB626 V1.6 20141229

= Sunxi support =

Current status

 * Full mainline/linux/u-boot support for all HW (with some extra out-of-tree patches), except for the eInk display.
 * PMIC for the eInk panel is properly supported and can be controlled from sysfs via userspace-regulator-consumer driver.
 * eInk display can be controlled via bit-banging on PD port from userspace. (for now)
 * eInk display interface is known, including timing and routing of signals to the SoC

TODO

 * Waveforms for the display are stored on the SPI NOR flash, analyze the format
 * Investigate if bitbanging can be sped up by bumping the speed of the APB bus where the PIO is connected to
 * Opensource epdc driver is available at https://github.com/pazos/linux-3.0.35-kobo/tree/master/drivers/video/mxc (can be used to figure out the waveform format, etc.) - PB's variant of this driver is not available, but it uses DEBE and TCON to communicate with the display in some semi-adhoc way (analyzing this can help understand the waveform format)

Images
Pre-built kernel/u-boot available at https://xff.cz/kernels

BSP

 * https://github.com/pocketbook/Platform_A13 (does not contain code for all drivers, code for cyttsp4.ko, epdc.ko is missing)

Manual build
You can build things for yourself by following our Manual build howto and by choosing from the configurations available below.

Sunxi/Legacy U-Boot
No u-boot code is available from the manufacturer.

Mainline U-Boot
Not yet upstreamed, but patches are available here for now:


 * https://xff.cz/git/u-boot/log/?h=opi-v2019.10

Use the pocketbook_touch_lux_3_defconfig build target.

Mainline kernel
Not yet upstreamed, but patches are available here for now:


 * https://xff.cz/git/linux/log/?h=pb-5.4

Use the sun5i-a13-pocketbook-touch-lux-3.dtb device-tree binary and pocketbook_touch_lux_3_defconfig config.

= Tips, Tricks, Caveats =


 * you can bit-bang eInk display on PD port

FEL mode
The button triggers  FEL mode.

List of HW
Reverse enginnered:

SoC: A13 rev b

DRAM: 256MiB (Samsung k4b2g1646q-bck0)

Internal uSD card slot (4-bit) (MMC2) - works out of the box

External uSD card slot (4-bit) (MMC0) - PE4 needs to be driven low to enable it - PG0 is connected to CD  - can't boot

ED060XD4 display with touch panel and backlight + MX25U4033 512kB flash on the dispaly FFC (SPI) + Cypress TMA445 FW 0x0108 touch controller + TP65185 eInk voltage regulator

Serial debug port at PG3/PG4 3.3V (UART1)

I2C devices:

I2C-0 (PB0/PB1) AXP209 @0x34 (CHIP ID: 0x41) LDO1 1.3V (1.3V) LDO2 3V (1.8-3.3V) LDO3 3.3V (0.7-3.5V)  - powers wifi chip (needs slew rate control on enable) LDO4 3.3V (1.2-3.3V) BUCK2 1.4V (0.7-2.275V) BUCK3 1.2V (0.7-3.5V) LDOIO0 1.8V (1.8V)

- POK key input

I2C-1 (PB15/PB16) - RTC / pcf8563 @0x51 - TP65185 @0x68

I2C-2 (PB17/PB18) - Cypress TMA445 @0x24 - Power 1.8V - Enabled by PC15=1 and PC13=1

SPI devices:

SPI-2 (PE0-PE3) - MX25U4033 - Power 1.8V - enabled by PC15=1 and PC14=1 - PE1 kills usb bus?

Backlight via PWM: - enable at PB4 - pwm at PB2

GPIO buttons: - at PG9 and PG10

Power LED: - at PE8

USB: - host controller connected to the USB wifi chip

WiFi: - RTL8188EUS 802.11n Wireless Network Adapter - 0x0bda:0x8179 - CHIP_8188E_Normal_Chip_TSMC_UNKNOWN_CUT(10)_1T1R_RomVer(0) - EEPROM ID=0x8129

USB OTG: - only peripheral mode, as ID detection pin is not routed to SoC - id-det from fex should be at PG2, but does not react to plug-in - vbus is not controllable - detection should be at PG1 (not tested) - vbus enable shoudld be at PG12 (not working)

Also see DTS file, wich contains more details.

ED060XD4 eInk display
This display is sold in 3 variants on the internet. Just eInk display panel, + backlight, + backlight and touch.

Current status of reverse engineering:

FFP pinout: (reverse engieneered) - It turns out that ED060XD4 has the same interface as ED060XC5 or ED060XC3 (Touch Lux 2).

The datasheet for ED060XC5 is available on the internet. It looks like ED060XG1 has also the same interface and its datasheet contains extra timing/interface information, that can be useful.

FFP pin | SoC  | Meaning              | Open questions? 1      |       | 22V                  | 2      |       | 15V                  | 3      |       | GND                  | 4      |       | BORDER               | Thin wire to the panel (border voltage) 5      |       | Flash VCC 1.8V       | PC14 and PC15 are set (thicker wire) 6      | D23   | GA START PULSE - SPV | somehow special (set to 1 when not transmitting) 7      | D22   | GA CLK - CKV         | 8      | D15   | MODE 1               | 9      |       | GND                  | 10     | PE3   | Flash SO             | - 11     | PE0   | Flash CS#            | 12     | PE2   | Flash SI             | 13     | PE1   | Flash SCLK           | shuts down USB when used 14     |       | -3V (VCOM)           | thicker wire 15     | D12   | D7                   | 16     | D11   | D6                   | 17     | D10   | D5                   | 18     | D7    | D4                   | 19     | D6    | D3                   | 20     | D5    | D2                   | - 21     | D4    | D1                   | 22     | D3    | D0                   | 23     | D21   | SD START PULSE - SPH | somehow special (set to 1 when not transmitting) 24     | D20   | SD OE                | 25     | D13   | SD LE                | 26     |       | GND                  | 27     | D24   | SD CLK - CKH         | 28     |       | GND                  | 29     |       | 3.2V (VDD)           | 30     |       | ???                  | 30 + 31 are tied via some black resistor below the flash chip - 31     |       | ???                  | see 30 above 32     |       | GND                  | 33     |       | -20V                 | 34     |       | -15V                 |

Timing of the signals produced by the vendor's edpc.ko driver was analyzed with a logical probe.

Cable contains MX25U4033 serial 1.8V flash --

4Mbit / 500kB (possibly for wave data)

pinout:

CS#  1 \/ 8  VCC SO   2    7  HOLD# WP#  3    6  SCLK GND  4    5  SI


 * 1) HOLD tied to GND
 * 2) WP tied to VCC

Driving the display ---

Display power up needs to be sequenced:

- VDD rail (V3P3 switch must be enabled over I2C) - 4 "High" voltage rails (default sequencing in the PMIC is good enough) - VCOM

At the begining both SPV and SPH are high, the rest is low.

Frame signals timing:

- MODE1 high for the duration of the frame (no CKV clk is sent without MODE1 being high) - 5 CKV pulses after mode high - SPV goes low during the high state of the 2nd CKV pulse - SPV goes high during the high state of the 3nd CKV pulse - during the high state of 6th CKV pulse, row data start being shifted in:

(a) - CKV goes high - SPH goes low - row data shifted in (CKV goes low in 3/4 of the data shift) - SPH goes high and OE goes low - ~2us - LE goes high - OE goes high - LE goes low - CKV goes high - go to (a) for a next row or (b) at the end of a frame

(b) - end of frame - wait for the duration of row data cycle (last row needs to be applied) - CKV goes low (3/4 to the end) - OE goes low - MODE1 goes low

Frame frequency can be up to 85Hz.

= Adding a serial port (voids warranty) =


 * UART has nice big pads on the side of the board, easy to solder some wires to
 * pads are clearly marked
 * 3.3V

Device disassembly
Front panel contains hooks that unlock when sticking sharp tool in between it and the back panel. Avoid bottom side of the device when opening, as it contains vulnerable cables and electronics. The back panel pops out almost too easily.

= Pictures =

= Also known as =


 * PocketBook 626(2)

= See also =