Firmware upgrade using Linux tool, requires no hardware

Adjusting BENQ Blur Reduction and DyAc (Dynamic Acceleration) including Blur Busters Strobe Utility. Supports most BenQ/Zowie Z-Series monitors (XL2411, XL2420, XL2720, XL2735, XL2540, XL2546)
urut
Posts: 111
Joined: 08 Aug 2014, 13:15

Re: Firmware upgrade using Linux tool, requires no hardware

Post by urut » 01 May 2015, 16:31

When i do what you say in http://www.testufo.com/#test=photo&phot ... &height=-1

i've got perfect with no-trail ufos on the top and middle screen, but on the bottom i see second ufo (2 ufos :P) if you know what i mean

Falkentyne
Posts: 2795
Joined: 26 Mar 2014, 07:23

Re: Firmware upgrade using Linux tool, requires no hardware

Post by Falkentyne » 01 May 2015, 16:45

Yes, because you are not using a vertical total tweak. That's normal.
if you want those UFO's to not appear as doubles on the bottom, you need a Vertical total 1500 tweak.

I'm bored so I'll try to explain the reason why.

Ok, a monitor usually completes a vertical blanking period interval, in about 0.5 milliseconds. This is average for current gaming TN monitors.

HOWEVER...the PIXELS themselves are unable to complete a full transition (on to off to on again fully being in a new voltage state) in 0.5 ms!! Even the fastest TN panels do not have grey to grey pixel transition speed this fast! At best case, you may get 1 ms. On average it may be anywhere from 2 to 6 ms.

So the monitor 'strobe' sync finishes and the vertical blank finishes BEFORE the pixels are ready for it !
The panel updates top to bottom. So it's the bottom that is going to be "behind."

guess where the double UFOs' are? :):)

So.......
the default "vertical total" on these 1080p screens is 1125 lines.

by increasing the vertical total from 1125 to 1500, you 'extend' the vertical blanking interval, because NOW, there is a LARGER VERTICAL TOTAL to blank! (vertical total isn't pixel panel size. it's complicated. However they are related in a strange way. The scaler actually gets confused by the presence of a VT tweak and thinks the horizontal is 1280. The SCALER, not the screen itself, don't worry about this at all now).

Anyway...the vertical blanking period is made longer by the increase in VT.
So the blanking interval goes from 0.5 miliiseconds to around 4 milliseconds!

TADA!
Now the screen has MORE time to complete MOST pixel transitions!
End result:
Bottom looks MUCH better. Now you only see the 'beginning' of the double UFO stuff instead of ALL of it.

Must use Nvidia or AMD pixel clock patcher (ToastyX) for this.

You can use horizontal total 2200 for VT 1500 at 100 hz.
best to use HT 2080 for VT 1500 at 120 hz. Maybe with a very good DVI cable you can use 2200 but maybe swimming pixels because of too high DVI clock.

144 hz: can NOT use ANY vertical total tweaks. 144 hz is not standard refresh rate. It already uses "reduced" blank just to not go out of range. (it's basically an overclock).

kimpaul
Posts: 14
Joined: 12 Feb 2015, 18:34

Re: Firmware upgrade using Linux tool, requires no hardware

Post by kimpaul » 14 May 2015, 00:00

Would like to do this but im so lost :/

Jiigeri
Posts: 20
Joined: 16 May 2015, 15:15

Re: Firmware upgrade using Linux tool, requires no hardware

Post by Jiigeri » 16 May 2015, 15:23

Has anyone done a clean tutorial for this? I mean no offense but some of the posts are fairly confusing for me as a total novice when it comes to linux. What size should the USB drive be? Would 8GB be enough?

I wouldn't mind if that automatically flashing .iso was already created.. :roll:

Any help would be much appreciated!

Falkentyne
Posts: 2795
Joined: 26 Mar 2014, 07:23

Re: Firmware upgrade using Linux tool, requires no hardware

Post by Falkentyne » 16 May 2015, 18:23

lol
I used a 2 GB USB drive and it worked.
But you run out of space for "local storage" fast on a 2 gb drive, like if you wanted to download other things and save it to the drive, or keep saved packages for the future.

2 GB will work.
But anything 4+GB will be perfect.

There's an option somewhere in Ubuntu to have it delete all saved settings from the last session (no idea if that includes deleting saved packages) when booting from the flash drive.

The guide I wrote on page 200 still works perfectly. It's as 'step by step' as you can get without a video tutorial.

I'm going to copy everything I wrote. Just follow the instructions step by step.

-------

First grab a USB flash drive. 8 GB+ works best, though I did use an empty 2 GB one.
Get the ISO for Linux (Ubuntu)
http://releases.ubuntu.com/14.04/
I used the i386 one for my core i7.

Download the easy to use USB installer here:
"http://www.pendrivelinux.com/universal- ... -as-1-2-3/"

Install it then boot to the flash drive and run the try Ubuntu mode.
When it finishes loading, open a terminal (Ctrl + Alt + T);

*EDIT*:
Literally EVERY command here is CASE SENSITIVE. Capitalizing something, even a link when it's not supposed to be capitalized, or not capitalizing something when it should be, can cause an error.

Example: writing Universe Multiverse in the below edit instead of universe multiverse will cause a download package failure!

type "sudo gedit /etc/apt/sources.list" without the quotes to bring up the editor.
At the end of the second line, add "universe multiverse" so the line looks exactly iike this:

"deb http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse"
Save and exit the sources.list file.

Then type "sudo apt-get update"
That should download some updates.
Then type:
"sudo apt-get install i2c-tools subversion libpci-dev"
That should update and install some package lists.

You MIGHT also need this command too. This is in case some usb libraries are missing.
"sudo apt-get install libusb-dev"

If everything installs correctly, great.
But now things get tricky.

Using the instructions on this website, you need to find and backup the V4 firmware. The hard part is actually finding the i2c bus where it's located.

"http://boeglin.org/blog/index.php?entry ... -free(dom)"

Type these commands: Remove any quotes I put, though, including the quotes in the wget command (trying to bypass link creation).

"svn co svn://flashrom.org/flashrom/trunk@1846 flashrom"

(this link may not work now, use the below)
#svn co svn://flashrom.org/flashrom/trunk@1846 flashrom
# updated to ->

"svn co https://code.coreboot.org/svn/flashrom/trunk@1846 flashrom"
"cd flashrom"

wget -O- "http://boeglin.org/static/benq/0001-Add ... ocol.patch | patch -p1" (<---the | is the shifted \ key, aka the "Pipe" symbol). On this website, that link shows up truncated with "...." unless you mouse over it. The full link without truncation is on the main site: "http://boeglin.org/blog/index.php?entry ... -free(dom)"

*Remove the quote before http and after -p1 !! *

The actual command is:
wget -O- http://boeglin.org/static/benq/0001-Add ... ocol.patch | patch -p1
(you can see what the link creation does to make it hard to see what to type. In future steps, you will require quotes (for the flash type chip later))

next is building the flashrom patcher with the stuff you downloaded last few steps :)

"make -j" (<-this should make the flashrom patcher with the data for the mstar scaler)

"sudo modprobe i2c-dev"

"sudo i2cdetect -l" <--this lists all i2c buses

"sudo i2cdetect 1" <---this lists al i2c buses on bus 1.

"sudo i2cdump -r 0-127 1 0x50" <--- get EDID (0x50) from bus 1. You are looking for an EDID dump that shows the monitor name in it. You may have to change the 1 to a 0 ( 0 0x50 insteada of 1 0x50), or you may have to change 0x50 to 0x49. Once you find the dump that says "XL2411Z" then you're good to go. In some cases your monitor may be on bus 0, thus the change from a 1 to a 0.

(edit):
If you are using a laptop through VGA, you SHOULD be able to find the monitor i2c identifier name easily. If you are using a desktop through DVI and flashing through the desktop and you can not find the monitor bus or get random data where the monitor 'should' be located (or in the rare case that the laptop can't see it through VGA, reboot the host computer back to windows and install the monitor driver from the DVD (device manager or displays in control panel); this has been confirmed to have helped people who kept getting "Unknown" data on the i2c bus. (0x50 buses 0-4 usually). Not sure why this works; maybe Linux has access to installed inf data.

"sudo ./flashrom -p mstarddc_spi:dev=/dev/i2c-1:49" <----# identify flash chip, on bus 1 (/dev/i2c-1) at address 0x49. Change the 1 to a 0 if you are on bus 0.

(dump current firmware)
sudo ./flashrom -p mstarddc_spi:dev=/dev/i2c-1:49 -c "MX25L1605A/MX25L1606E" -r backup.bin <--again change the 1 to a 0 if you are on bus 0. You need the quotes around the flash chip type.

This should take about 5 minutes to dump. Once that's done, copy backup.bin to a folder on the local hard drive (NOT the USB drive) so you can can upload it somewhere. The dumped file should be 2 mb in size. We can easily verify if you dumped the right thing by a hex editor.

(Funny enough I forgot the actual flash command for flashing the firmware itself; the above is for finding the Benq and backing up the current firmware).

Copy the EXTRACTED Version 4 firmware into the flashrom folder. If you renamed it in windows (I suggest this), copy the renamed file. I suggest renaming XL2411Z's V4 (if you downloaded whitestar's backup.bin dump) to XL2411Z_V4.BIN, XL2420Z to XL2420Z_V4.BIN and the XL2720Z file to XL2720Z_V4.BIN

DO NOT RENAME IT TO FIRMWARE.BIN !!!!!

# extend firmware to 2MB, to match the flash chip size
(this step is important; the flash chip is 2 MB, but the raw firmware is 800k'ish. In order to flash with this flashrom patcher (the MSTAR ISP unit does not have this limitation), the other 1.2 MB must be filled with "empty/dummy" bytes to make the file 2 MB in total size. This is a limitation of flashrom itself).

tr '\000' '\377' < /dev/zero | dd of=firmware.bin bs=1k count=2k <--yes you need the ' ' there.
dd if=XL2411Z_V2_20131209_8B72.BIN of=firmware.bin conv=notrunc (# < important !--REPLACE XL2411Z_V2_20131209_8B72.BIN with your firmware you are flashing!! Example: XL2411Z_V4.BIN or XL2420Z_V4.BIN or XL2720Z_V4.bin (as I suggested above).

(What this did was, it created a DUMMY empty 2 MB file called firmware.bin.
Then it MERGED the V2 (for this example only, in your case it will be the V4 file) with the 2 MB dummy file, a new 2 MB V4 file, that will be called firmware.bin

# write firmware
sudo ./flashrom -p mstarddc_spi:dev=/dev/i2c-1:49 -c "MX25L1605A/MX25L1606E" -w firmware.bin <-don't forget the quotes.

(this will take between 5-20 minutes).
Last edited by Falkentyne on 25 Jan 2017, 11:55, edited 2 times in total.

Jiigeri
Posts: 20
Joined: 16 May 2015, 15:15

Re: Firmware upgrade using Linux tool, requires no hardware

Post by Jiigeri » 17 May 2015, 01:46

Falkentyne wrote:lol
I used a 2 GB USB drive and it worked.
But you run out of space for "local storage" fast on a 2 gb drive, like if you wanted to download other things and save it to the drive, or keep saved packages for the future.

2 GB will work.
But anything 4+GB will be perfect.

*snip*
Does it matter how my monitor has been plugged into my PC? It's on DVI right now and I'm not sure if I have any VGA cables at home anymore (angry girlfriend did some cleaning few years back). Will DVI be fine or do I need the VGA cable instead?

Edit: I started to read through your guide and spotted the part about VGA/DVI. So that's clear now, but how do I separate the xl2411z bus when using DVI? Would I still be looking for the XL2411Z string?

Thanks alot in advance!

Edit2: So I installed linux on my usb. Upon booting ubuntu flickered like crazy whenever I moved my mouse and trying to log in with the default username etc resulted in a crash every time. I now formatted the USB drive and reinstall ubuntu in hope it'll work. If it does not, I'll try to write down the errors.

Edit3: I fixed the last problem and got into ubuntu just fine. I got a new problem though.

Code: Select all

sudo apt-get install i2c-tools subversion libpci-dev
Returns as "E: Unable to locate package i2c-tools". I did download the packages before that step (and the usb library) but this one just doesn't work. I did edit the sources.list step aswell.

Edit4: I think I got the i2c-tools installed. I dont see make -j doing anything but "Nothing to be done for 'all'". Any of the steps after wont do anything either.

Falkentyne
Posts: 2795
Joined: 26 Mar 2014, 07:23

Re: Firmware upgrade using Linux tool, requires no hardware

Post by Falkentyne » 17 May 2015, 08:18

Did you do the wget command?
a lot of stuff should have been downloaded.

the make -j should flood the screen with stuff.

You may have forgotten a step.

What I found is, if something didn't work, it's -fastest- to just restart the computer and reboot Ubuntu and do the commands all over again.

It actually took me a few hours.

And to be honest, EVERY mistake was my fault.
I either forgot a step, or made a typing mistake.

Jiigeri
Posts: 20
Joined: 16 May 2015, 15:15

Re: Firmware upgrade using Linux tool, requires no hardware

Post by Jiigeri » 17 May 2015, 08:20

Falkentyne wrote:Did you do the wget command?
a lot of stuff should have been downloaded.

the make -j should flood the screen with stuff.

You may have forgotten a step.

What I found is, if something didn't work, it's -fastest- to just restart the computer and reboot Ubuntu and do the commands all over again.
I just switched to the VGA connection and iGPU and am starting all over again. I will get back to you in a moment!

edit: sudo i2cdetect -l does nothing for me. Im fairly positive I did everything this far. Should sudo modprobe i2c-dev give some response aswell? I had make -j spam the screen with a wall of text, as it did before.

sudo i2cdetect does return with list of the commands available. With -l it does not return anything though.

edit2: One more try for tonight, I will be very careful and on point with the steps and what I type. Will report back soon.

And no cigar, i2cdetect does return with the usage help (listing available parameters) but i2cdetect -l does absolutely nothing. Now I am 100% sure I did every step and I did them correctly. Something is not right. Not saying it's your guide but something is way way off here. All other steps went like they should, no errors whatsoever but for some reason any i2cdetect parameter does nothing.

All the previous errors were caused by me and I got them sorted, but this one I couldn't figure out. Either I'm missing something or it's indeed a problem with the software itself (I found some threads elsewhere about raspberry pi upgrade breaking i2c, so it's certainly possible even though this is not a raspberry pi in use).

Hopefully someone can help me out so I can try again on another day but this has been enough for tonight. :lol:

Falkentyne
Posts: 2795
Joined: 26 Mar 2014, 07:23

Re: Firmware upgrade using Linux tool, requires no hardware

Post by Falkentyne » 17 May 2015, 10:57

Hmmm
I forgot what happened when I did i2cdetect -l.
What happens when you do sudo i2cdetect -1 though?

Usually the monitor is on 1 or 0.
Did you try the i2cdump command?

Jiigeri
Posts: 20
Joined: 16 May 2015, 15:15

Re: Firmware upgrade using Linux tool, requires no hardware

Post by Jiigeri » 17 May 2015, 11:50

Falkentyne wrote:Hmmm
I forgot what happened when I did i2cdetect -l.
What happens when you do sudo i2cdetect -1 though?

Usually the monitor is on 1 or 0.
Did you try the i2cdump command?
i2cdump did nothing, i2cdetect -1 I dont remember trying.

Post Reply