Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Problem:
- Surfans F20 (2024 Firmware v3.2 Model) with obviously New Display Module
- (Mirrored/Inverted and bad Contrast/Gamma/Blacklevel with orig. Rockbox LCD Init sequence)
- Solution:
- For the TL/DR Quick-Starters -
- Rockbox-Patch for ERosQK_v3 LCD-Type 'Galaxycore GC9A01' Style-Init Sequence
- Go straight to Chapter 04 .... and don't look back.
- Table of contents
- 00. Eros Q V2.1 Firmware decode: Hunt for LCD Init Sequence
- 01. Controller Type with similar Command set found
- 02. Transform the LCD Init Sequence for more readability
- 03. Recheck my Surface F20 v3.2 - Kernel extraction and Linux-x1000 LCD-Panel-Init Sequence Table Search
- 04. Creating a Rockbox Source Patch for ErosQ v3 GC9A01 Style Init
- 05. Compile and install with this Patch for a Surfans F20 v3.2 / Hifi Walker H2 v1.8
- 06. Result - Success
- 00. Eros Q V2.1 Firmware decode: Hunt for LCD Init Sequence
- --------------------------------------------------------------
- Found following Link: http://www.eroshifi.com/download/firmware/122.html
- (Deepl.com English Translation of the Chinese Stuff...)
- EROS Q (Port C) Upgrade Firmware V2.1 Description .................. April 9, 2024 (latest)
- This upgrade firmware is for EROS Q hifi player products with tpye c interface.
- This firmware is used to restore EROS Q display irregularity (reverse display) caused by flashing the wrong system firmware
- This firmware is only for recovery use, if there is no problem of brushing wrong firmware, no need to use
- (* This firmware is the factory default V2.1 version firmware) EROS Q (c-port) currently has two versions
- of firmware: V2.0 and V2.1 version, the two versions to adapt to different batches of products optimized
- for the screen hardware driver launched (can not be universal interchangeable, the two versions of the
- firmware function is identical. V2.1 is not an upgraded and optimized version of the function)
- Please download this firmware file, copy the update.upt file to the root directory of the TF card, and
- make sure that there is no other version of the firmware file in the card.
- Please follow the upgrade method described in the manual and select firmware upgrade in the product settings
- Click to download !!! -> There is followig Firmware-File
- EROS Q (c口)_V2.1_20231209固件.zip
- (cd /tmp)
- unzip EROS\ Q\ (c口)_V2.1_20231209固件.zip
- mv update.upt update.iso
- Extract the 'uboot.bin' (to /tmp etc.)
- Convert in a Hex-Listing: od -Ax -x uboot.bin >uboot.hex
- Edit the File z.B.: kate uboot.hex
- Search for "2c2c 2c2c" or "0000 0001 0000"
- And found: A Linux-x1000 LCD-Panel-Init Sequence Table at 0x52da4 !
- 052da0 2c2c 2c2c 0000 0000 00fe 0000 0000 0000
- 052db0 00ef 0000 0000 0000 0036 0000 0001 0000
- 052dc0 0090 0000 0000 0000 003a 0000 0001 0000
- 052dd0 0066 0000 0000 0000 0084 0000 0001 0000
- 052de0 0004 0000 0000 0000 0086 0000 0001 0000
- 052df0 00fb 0000 0000 0000 0087 0000 0001 0000
- 052e00 0079 0000 0000 0000 0089 0000 0001 0000
- 052e10 000b 0000 0000 0000 008a 0000 0001 0000
- 052e20 0020 0000 0000 0000 008b 0000 0001 0000
- 052e30 0080 0000 0000 0000 008d 0000 0001 0000
- 052e40 003b 0000 0000 0000 008e 0000 0001 0000
- 052e50 00cf 0000 0000 0000 00ec 0000 0001 0000
- 052e60 0033 0000 0001 0000 0002 0000 0001 0000
- 052e70 004c 0000 0000 0000 0098 0000 0001 0000
- 052e80 003e 0000 0000 0000 009c 0000 0001 0000
- 052e90 004b 0000 0000 0000 0099 0000 0001 0000
- 052ea0 003e 0000 0000 0000 009d 0000 0001 0000
- 052eb0 004b 0000 0000 0000 009b 0000 0001 0000
- 052ec0 0055 0000 0000 0000 00e8 0000 0001 0000
- 052ed0 0011 0000 0001 0000 0000 0000 0000 0000
- 052ee0 00ff 0000 0001 0000 0062 0000 0000 0000
- 052ef0 00c3 0000 0001 0000 0020 0000 0000 0000
- 052f00 00c4 0000 0001 0000 0003 0000 0000 0000
- 052f10 00c9 0000 0001 0000 002a 0000 0000 0000
- 052f20 00f0 0000 0001 0000 004a 0000 0001 0000
- 052f30 0010 0000 0001 0000 000a 0000 0001 0000
- 052f40 000a 0000 0001 0000 0026 0000 0001 0000
- 052f50 0039 0000 0000 0000 00f2 0000 0001 0000
- 052f60 004a 0000 0001 0000 0010 0000 0001 0000
- 052f70 000a 0000 0001 0000 000a 0000 0001 0000
- 052f80 0026 0000 0001 0000 0039 0000 0000 0000
- 052f90 00f1 0000 0001 0000 0050 0000 0001 0000
- 052fa0 008f 0000 0001 0000 00af 0000 0001 0000
- 052fb0 003b 0000 0001 0000 003f 0000 0001 0000
- 052fc0 007f 0000 0000 0000 00f3 0000 0001 0000
- 052fd0 0050 0000 0001 0000 008f 0000 0001 0000
- 052fe0 00af 0000 0001 0000 003b 0000 0001 0000
- 052ff0 003f 0000 0001 0000 007f 0000 0000 0000
- 053000 00ba 0000 0001 0000 000a 0000 0000 0000
- 053010 0035 0000 0001 0000 0000 0000 0000 0000
- 053020 0021 0000 0000 0000 00fe 0000 0000 0000
- 053030 00ee 0000 0000 0000 0011 0000 0002 0000
- 053040 d4c0 0001 0000 0000 0029 0000 0002 0000
- 053050 4e20 0000 0000 0000 002c 0000 ffff ffff
- 01. Controller Type with similar Command set found
- --------------------------------------------------
- Google Search 'lcd controller 0xfe 0xef 0xec 0xba' (or so) pointed u.a. to GC9A01 Type
- That thingy is vastly similar the ErosQ_V3 Init Commands (0x6x 0x8x 0x9x Commands are undocumented)
- https://espruino.microcosm.app/api/v1/files/9dc1b976d621a2ab3854312cce862c4a9a50dc1b.html#GC9A01
- https://www.google.com/search?q=gc9a01+datasheet
- 02. Transform the LCD Init Sequence for more readability
- ---------------------------------------------------------
- 0000 0000 xxcc xxxx – Command
- 0001 0000 xxdd xxxx – Command Data
- 0002 0000 tttt tttt – Delay uS
- ffff ffff – End of List
- 0000 0000 00fe 0000 <Inter Register Enable1>
- 0000 0000 00ef 0000 <Inter Register Enable2>
- 0000 0000 0036 0000 0001 0000 0090 0000 <Memory Access Control>
- 0000 0000 003a 0000 0001 0000 0066 0000 <Pixel Format Set>
- 0000 0000 0084 0000 0001 0000 0004 0000 (undocumented)
- 0000 0000 0086 0000 0001 0000 00fb 0000
- 0000 0000 0087 0000 0001 0000 0079 0000
- 0000 0000 0089 0000 0001 0000 000b 0000
- 0000 0000 008a 0000 0001 0000 0020 0000
- 0000 0000 008b 0000 0001 0000 0080 0000
- 0000 0000 008d 0000 0001 0000 003b 0000
- 0000 0000 008e 0000 0001 0000 00cf 0000
- 0000 0000 00ec 0000 <Charge Pump Frequent Control>
- 0001 0000 0033 0000 0001 0000 0002 0000 0001 0000 004c 0000
- 0000 0000 0098 0000 0001 0000 003e 0000 (undocumented)
- 0000 0000 009c 0000 0001 0000 004b 0000
- 0000 0000 0099 0000 0001 0000 003e 0000
- 0000 0000 009d 0000 0001 0000 004b 0000
- 0000 0000 009b 0000 0001 0000 0055 0000
- 0000 0000 00e8 0000 <Frame Rate>
- 0001 0000 0011 0000 0001 0000 0000 0000
- 0000 0000 00ff 0000 0001 0000 0062 0000 (undocumented)
- 0000 0000 00c3 0000 0001 0000 0020 0000 <Vreg1a voltage Control>
- 0000 0000 00c4 0000 0001 0000 0003 0000 <Vreg1b voltage Control>
- 0000 0000 00c9 0000 0001 0000 002a 0000 <Vreg2a voltage Control>
- 0000 0000 00f0 0000 <Gamma1>
- 0001 0000 004a 0000 0001 0000 0010 0000 0001 0000 000a 0000
- 0001 0000 000a 0000 0001 0000 0026 0000 0001 0000 0039 0000
- 0000 0000 00f2 0000 <Gamma3>
- 0001 0000 004a 0000 0001 0000 0010 0000 0001 0000 000a 0000
- 0001 0000 000a 0000 0001 0000 0026 0000 0001 0000 0039 0000
- 0000 0000 00f1 0000 <Gamma2>
- 0001 0000 0050 0000 0001 0000 008f 0000 0001 0000 00af 0000
- 0001 0000 003b 0000 0001 0000 003f 0000 0001 0000 007f 0000
- 0000 0000 00f3 0000 <Gamma4>
- 0001 0000 0050 0000 0001 0000 008f 0000 0001 0000 00af 0000
- 0001 0000 003b 0000 0001 0000 003f 0000 0001 0000 007f 0000
- 0000 0000 00ba 0000 0001 0000 000a 0000 <TE Control>
- 0000 0000 0035 0000 0001 0000 0000 0000 <Tearing Effect Line ON>
- 0000 0000 0021 0000 <Invert>
- 0000 0000 00fe 0000 <Inter Register Enable1>
- 0000 0000 00ee 0000 (undocumented)
- 0000 0000 0011 0000 0002 0000 d4c0 0001 <Exit Sleep + Wait 120mS>
- 0000 0000 0029 0000 0002 0000 4e20 0000 <Display On + Wait 20mS>
- ffff ffff
- 03. Recheck my Surface F20 v3.2 - Kernel extraction and Linux-x1000 LCD-Panel-Init Sequence Table Search
- ---------------------------------------------------------------------------------------------------------
- Compile and Run a modified Rockbox-ErosQ Bootloader (Memory Access Commands 0x36 0x90 and Invert 0x21)
- via jztool on the Surfans F20 v3.2
- Backup erosqnative-boot.bin, of_player.img, flash.img, flash_info.txt flash_onfi_info.txt
- on a SD Card via jztool Ram-Bootloader...
- Copy the of_player.img to /tmp
- Strip u-Boot header: tail -c+65 < /tmp/of_player.img > out.gz
- Its an gzipped Blob: gzip -cd out.gz >out.bin (trailing Garbage ignored)
- Convert in a Hex-Listing: od -Ax -x out.bin >out.hex
- Edit the File z.B.: kate out.hex
- Search for "2c2c 2c2c" or "0000 0001 0000"
- And found: A Linux-x1000 LCD-Panel-Init Sequence Table at 0x4a3f18 !
- !!! Identical to the LCD-Init sequence of the Eros Q V2.1 Firmware !!!
- 4a3f14 2c2c 2c2c 0000 0000 00fe 0000 0000 0000
- 4a3f24 00ef 0000 0000 0000 0036 0000 0001 0000
- 4a3f34 0090 0000 0000 0000 003a 0000 0001 0000
- 4a3f44 0066 0000 0000 0000 0084 0000 0001 0000
- 4a3f54 0004 0000 0000 0000 0086 0000 0001 0000
- 4a3f64 00fb 0000 0000 0000 0087 0000 0001 0000
- 4a3f74 0079 0000 0000 0000 0089 0000 0001 0000
- 4a3f84 000b 0000 0000 0000 008a 0000 0001 0000
- 4a3f94 0020 0000 0000 0000 008b 0000 0001 0000
- 4a3fa4 0080 0000 0000 0000 008d 0000 0001 0000
- 4a3fb4 003b 0000 0000 0000 008e 0000 0001 0000
- 4a3fc4 00cf 0000 0000 0000 00ec 0000 0001 0000
- 4a3fd4 0033 0000 0001 0000 0002 0000 0001 0000
- 4a3fe4 004c 0000 0000 0000 0098 0000 0001 0000
- 4a3ff4 003e 0000 0000 0000 009c 0000 0001 0000
- 4a4004 004b 0000 0000 0000 0099 0000 0001 0000
- 4a4014 003e 0000 0000 0000 009d 0000 0001 0000
- 4a4024 004b 0000 0000 0000 009b 0000 0001 0000
- 4a4034 0055 0000 0000 0000 00e8 0000 0001 0000
- 4a4044 0011 0000 0001 0000 0000 0000 0000 0000
- 4a4054 00ff 0000 0001 0000 0062 0000 0000 0000
- 4a4064 00c3 0000 0001 0000 0020 0000 0000 0000
- 4a4074 00c4 0000 0001 0000 0003 0000 0000 0000
- 4a4084 00c9 0000 0001 0000 002a 0000 0000 0000
- 4a4094 00f0 0000 0001 0000 004a 0000 0001 0000
- 4a40a4 0010 0000 0001 0000 000a 0000 0001 0000
- 4a40b4 000a 0000 0001 0000 0026 0000 0001 0000
- 4a40c4 0039 0000 0000 0000 00f2 0000 0001 0000
- 4a40d4 004a 0000 0001 0000 0010 0000 0001 0000
- 4a40e4 000a 0000 0001 0000 000a 0000 0001 0000
- 4a40f4 0026 0000 0001 0000 0039 0000 0000 0000
- 4a4104 00f1 0000 0001 0000 0050 0000 0001 0000
- 4a4114 008f 0000 0001 0000 00af 0000 0001 0000
- 4a4124 003b 0000 0001 0000 003f 0000 0001 0000
- 4a4134 007f 0000 0000 0000 00f3 0000 0001 0000
- 4a4144 0050 0000 0001 0000 008f 0000 0001 0000
- 4a4154 00af 0000 0001 0000 003b 0000 0001 0000
- 4a4164 003f 0000 0001 0000 007f 0000 0000 0000
- 4a4174 00ba 0000 0001 0000 000a 0000 0000 0000
- 4a4184 0035 0000 0001 0000 0000 0000 0000 0000
- 4a4194 0021 0000 0000 0000 00fe 0000 0000 0000
- 4a41a4 00ee 0000 0000 0000 0011 0000 0002 0000
- 4a41b4 d4c0 0001 0000 0000 0029 0000 0002 0000
- 4a41c4 4e20 0000 0000 0000 002c 0000 0000 0000
- (p.s. same Sequence found in an Hifi Walker H2 v1.8 of_player.img)
- 04. Creating a Rockbox Source Patch for ErosQ v3 GC9A01 Style Init
- -------------------------------------------------------------------
- Pastebin-Link: <<< https://pastebin.com/X5ha2JYd >>>
- 05. Compile and install with this Patch for a Surfans F20 v3.2 / Hifi Walker H2 v1.8
- ------------------------------------------------------------------------------------
- Build a Bootloader for ErosQK_v3 Model (Device 248)
- Build a Rockbox.zip for ErosQK_v3 Model (Device 248)
- Install native Bootloader for v3 on a ErosQK_v3 Device normally
- Install native Rockbox.zip v3 on a SD-Card
- 06. Result - Success:
- ---------------------
- The Display Color Format and Orientation are OK
- The Gamme Curve is vastly better, No more washed out
- Colors/Contrast/Blacklevel on ErosQK_v3 with GC9A01 Display.
- When boot to original-Firmware with the v3 bootloader no more Flicker and
- Wrong Contrast/Gamma at first Display-On.
- (Original-Firmware semms to runs always the Complete LCD-Init Sequence
- at Display-Wakeup after Sleep)
Advertisement
Add Comment
Please, Sign In to add comment